Armadilhas de hackers. Detectar hackers cedo com Canarytokens

Honey Tokens (em inglês - “sinais / identificadores / identificadores de mel”) é uma das variedades da ideia Honeypot, uma isca para intrusos detectarem o fato de um hack ou identificarem sua origem. Quando o invasor já entrou no sistema, é provável que ele execute ações incomuns para o usuário comum. Isso pode ser usado como uma maneira de detectar hackers. Neste artigo, veremos como é fácil criar seus próprios gatilhos para detectar hackers em um estágio inicial. Essas armadilhas são úteis para administradores de sistema e até usuários comuns preocupados com a privacidade de seus dados.


Antes da invenção dos analisadores de gás, os mineiros levavam um canário para a mina. Devido ao corpo pequeno e ao rápido metabolismo, as aves reagiram a gases perigosos no ar muito antes e alertaram os mineiros.

Por que isso é necessário?



O hacker, uma vez no novo sistema, começa a olhar em volta, como um ladrão, tendo penetrado no apartamento, começa a abrir todas as caixas em busca de jóias. O invasor não sabe com antecedência quais dados específicos têm valor, mas com uma alta probabilidade, ele verificará todas as opções possíveis. Portanto, é importante que os traps pareçam dados reais e sejam o mais atraentes para o invasor possível. Quanto mais cedo o proprietário perceber que a armadilha é acionada, mais cedo ele perceberá que foi hackeado e poderá responder.

Serviço Canarytokens


O canarytokens.org é um serviço on-line para criar convenientemente seus próprios marcadores (hanitokens) para hackers. Ele suporta várias opções de gatilho e permite gerar um gatilho pronto com o correio anexado, para o qual uma notificação será enviada se o gatilho funcionar.

O serviço é totalmente gratuito e um gatilho pode ser gerado instantaneamente sem registro. Há também uma versão auto-hospedada para quem prefere manter segredos em sua infraestrutura. A seguir, veremos como cada um dos gatilhos funciona e, no final, implantaremos nosso próprio servidor canarytokens no contêiner Docker.

Disparar ao abrir um arquivo .doc e pdf



Funcionará se o documento tiver sido aberto pelo programa para visualização. Eu uso esse truque com muita frequência. Em cada computador e unidade flash, tenho documentos com nomes atraentes, como Passwords.pdf ou Bitcoins.doc. Gosto de ver como os contadores com curiosidade examinam todos os arquivos no pen drive transferidos para eles.
 
Considero esse gatilho o mais eficaz e útil para todas as categorias de usuários, de profissionais de segurança da informação a iniciantes. Quase ninguém sabe que um visualizador de PDF pode transmitir o fato de abrir um arquivo ao proprietário do documento. Todo mundo se depara com isso.
 
Existem várias maneiras de captar o fato de abrir um documento. O Canarytokens usa um URL específico do documento incorporado ao documento para verificar os certificados SSL revogados (lista de revogação de certificados). Como resultado, o programa vai para esse endereço e o gatilho é acionado.

Disparar via resolução de DNS



Esse é um gatilho muito interessante, cujos benefícios não são imediatamente óbvios. Funcionará se alguém solicitar o endereço IP do subdomínio gerado, que é gerado especialmente para que não possa ser adivinhado por acaso ou distorcido. Assim, operações acidentais são excluídas. Esse gatilho é usado para muitas das técnicas descritas abaixo, inclusive para detectar o fato de abrir uma pasta e como um gatilho no banco de dados MS SQL. De fato, existem muitas opções para usar esse gatilho.

Gatilho de URL



Nesse caso, basta que uma solicitação GET, POST ou HEAD seja executada por referência. Isso acionará o gatilho. Além do uso usual, também pode ser usado em scripts para verificar os analisadores que seguem os links para exibir as visualizações do conteúdo. O mesmo acontece com, por exemplo, mensageiros instantâneos: basta escrever um link no campo de entrada em que você clicou nos servidores de mensageiros.

Cenário


A imagem clássica de 1 x 1 pixel é conhecida por todos que rastreiam publicidade on-line. O gatilho funcionará se um arquivo de imagem tiver sido carregado. Esse pixel pode ser inserido em qualquer página html ou em uma carta. É conveniente chamá-lo de scripts JS na página se a condição necessária tiver funcionado. Você também pode substituir o pixel padrão por sua própria imagem.

Disparador de e-mail



Se alguma carta chegar na caixa de correio gerada, o gatilho funcionará. É conveniente usar endereços de e-mail, listas de contatos etc. para monitorar o vazamento de bancos de

dados.Por exemplo, você pode adicionar esse endereço à sua lista de contatos e descobrir quando seu notebook no seu telefone será mesclado por algum aplicativo que solicite acesso à sua lista de contatos. . Também é possível que todos os funcionários adicionem endereços de gatilho diferentes aos notebooks em um computador, telefone, cliente de e-mail e acompanhem a origem dos contatos.

Um endereço de email é gerado especialmente e não é previsível, portanto a probabilidade de seleção e acionamento acidental de um acionador é excluída.

Gatilho aberto de pasta do Windows



Certamente muitos viram um arquivo desktop.ini oculto que está em todas as pastas do Windows. Acontece que ele não é tão simples. Nele, você pode especificar o endereço do ícone no servidor remoto, usando caminhos UNC (esses são usados ​​para unidades de rede e começam com \\), enquanto o Windows executará a resolução de DNS no domínio especificado no link para o ícone e ativará o gatilho. O arquivo desktop.ini pode ser compactado com outros arquivos no arquivo morto e funcionará se o arquivo estiver descompactado.

Gatilho de clonagem de site


Um script simples para páginas da Web que funciona se a página não estiver aberta no seu domínio. Pode ser útil para detectar phishing.

if (document.domain != "mydomain.com") {
    var l = location.href;
    var r = document.referrer;
    var m = new Image();
    m.src = "http://canarytokens.com/"+
            "blablabla.jpg?l="+
            encodeURI(l) + "&r=" + encodeURI(r);
}

Disparador para executar um arquivo EXE ou DLL



Permite colar o gatilho com um arquivo .exe ou biblioteca executável existente. Não é detectado por antivírus. Deve-se ter em mente que essa colagem pode quebrar alguns programas; portanto, é melhor usar algo simples. De fato, esse é um método conhecido há muito tempo usado para espalhar cavalos de Troia e vírus, apenas no nosso caso a funcionalidade oculta é completamente inofensiva. No entanto, deve-se ter em mente que o arquivo executável pode causar um alerta maior ao invasor e também não ser executado em seu sistema operacional.

Gatilho para MS SQL


O MS SQL permite adicionar um gatilho para executar INSERT, SELECT, DELETE etc. Para acionar um gatilho, use o mesmo método que para um arquivo desktop.ini, ou seja, resolva um nome DNS por caminhos UNC.
Exemplo de gatilho para MS SQL
--crie um proc armazenado que irá executar ping em canarytokens
CREATE proc ping_canarytoken
AS
BEGIN
declaranome do usuário varchar (max), base64 varchar (max), @tokendomain varchar (128), @unc varchar (128), Tamanho int feito int aleatória varchar(3);

--setup the variables
set @tokendomain = 'qo2dd6tftntl1pej9j68v31k6.canarytokens.com';
set size = 128;
set done = 0;
set random = cast(round(rand()*100,0) as varchar(2));
set random = concat(random, '.');
set username = SUSER_SNAME();

--loop runs until the UNC path is 128 chars or less
while done <= 0
begin
--convert username into base64
select base64 = (SELECT
CAST(N'' AS XML).value(
'xs:base64Binary(xs:hexBinary(sql:column(«bin»)))'
, 'VARCHAR(MAX)'
) Base64Encoding
FROM (
SELECT CAST(username AS VARBINARY(MAX)) AS bin
) AS bin_sql_server_temp);

--replace base64 padding as dns will choke on =
select base64 = replace(base64,'=','-')

--construct the UNC path
select @unc = concat('\\',@base64,'.',@random,@tokendomain,'\a')

— if too big, trim the username and try again
if len(@unc) <= size
set done = 1
else
--trim from the front, to keep the username and lose domain details
select username = substring(username, 2, len(username)-1)
end
exec master.dbo.xp_fileexist @unc;
END

--add a trigger if data is altered
CREATE TRIGGER TRIGGER1
ON TABLE1
AFTER INSERT
AS
BEGIN
exec ping_canarytoken
end

Acionador de logon do Amazon Web Services


A chave da API de serviços da Amazon deve atrair um invasor para verificar o que está lá. Se essa chave de API for usada para login, o gatilho será acionado. Nesse caso, é claro, não há dados lá.

Outros gatilhos


O serviço canarytokens.org também oferece suporte a outros gatilhos, como um gancho para SVN, um redirecionamento da Web, leitura de um código QR, chave da API do Slack e outros. Todos eles usam um princípio semelhante e, se desejar, você pode criar seu próprio gatilho de forma independente, tendo em seu arsenal um nome DNS, um link com uma imagem, um endereço para correspondência e chaves de API para serviços populares. Além das notificações por email, os Canarytokens podem ativar um gancho da Web se um gatilho for acionado. Os mecanismos de operação estão descritos na documentação.

Servidor nativo Canarytokens


Um cracker experiente, vendo no código fonte o endereço canarytokens.org imediatamente adivinhar tudo. Portanto, para uso na empresa, é melhor implantar sua própria instância de canarytokens, para que todos os endereços de acionador cheguem aos domínios internos da empresa e sejam indistinguíveis dos serviços internos reais.

Os desenvolvedores fornecem uma imagem do Docker pronta para uso . O processo de instalação é bastante típico para qualquer imagem, portanto não abordaremos esse tópico. Vamos nos concentrar apenas em pontos não óbvios. Antes da instalação, você precisará editar o arquivo frontend.env e switchboard.env .

# ()       
#     IP-    Docker.        SSL-.
CANARY_DOMAINS=example1.com,example2.com

#            PDF-
#    NS-          .
#   example3.com     example1.com  example2.com
CANARY_NXDOMAINS=example3.com

Para enviar e-mail, recomendo usar o serviço Mailgun, porque o Sendgrid é instável.

Conclusão


Essas armadilhas são realmente eficazes. No meu caso, gatilhos com arquivos PDF são especialmente úteis. O serviço será útil para usuários comuns e profissionais experientes. Mesmo um invasor sofisticado que conhece a existência de Hanipots e Hanitokens não será capaz de resistir à tentação de, pelo menos, deixar o subdomínio encontrado na documentação. Se você usar as armadilhas com cuidado e sabedoria, poderá detectar um cracker logo no início.

Essas técnicas podem ser usadas em servidores, computadores desktop, armazenamento de arquivos e até mesmo em telefones.

Se você deseja implantar tokens em sua própria instância do Docker, em nossas máquinas virtuais o Docker é instalado com apenas um clique no mercado . Além disso, oferecemos um desconto de 15% em todos os servidores usando o código promocional DONTPANIC.


All Articles