Prenda-me se for capaz: técnicas evasivas e defensivas em phishing
Phishing é um tipo multifacetado de ataque, que tem como objetivo coletar nomes de usuários e senhas, informações pessoais ou, às vezes, ambos. No entanto, esses ataques só funcionam enquanto o próprio kit de phishing permanecer oculto. O phishing é um jogo de números, e o tempo é um fator. Quanto mais tempo um kit de phishing permanecer ativo e não detectado, maior será o tempo em que o golpe pode ser executado. Quanto maior o tempo em que o golpe é executado, maior o número de vítimas.
Os kits de phishing usam muitas técnicas evasivas e defensivas para ajudar a contornar os controles de segurança e evitar a detecção. Isso ajuda o criminoso que está implantando esses kits a evitar que os pesquisadores de segurança os encontrem manualmente e fornecedores de segurança que usam aprendizado de máquina para detecção preditiva ou verificação da Internet em busca de domínios suspeitos.
Esta publicação do blog vai examinar várias técnicas evasivas e defensivas que foram desenvolvidas e usadas em milhares de websites em centenas de kits. Algumas dessas técnicas são comuns, enquanto outras podem ser bastante sofisticadas. A diferença é geralmente determinada pelo próprio kit, seu uso e a funcionalidade pretendida.
Evasão baseada em conteúdo
No setor de segurança, o bloqueio de kits de phishing por meio de detecção baseada em assinatura no website de phishing (também conhecido como página de destino) tem sido uma técnica comum há muitos anos. No entanto, os desenvolvedores de kits de phishing continuaram a se concentrar em técnicas que dificultam a eficiência de soluções baseadas em assinaturas na detecção e prevenção de ataques de phishing. Para lidar com problemas de evasão de kits, os fornecedores de segurança tiveram que usar uma abordagem de vários níveis. Veja alguns exemplos recentes de técnicas evasivas baseadas em conteúdo.
Geração de conteúdo aleatório
Nas imagens abaixo, o conteúdo em questão é uma página do PayPal fraudulenta. Esse ataque de phishing está em busca principalmente de nomes de usuário e senhas do PayPal da vítima, mas às vezes se estende a outras informações pessoais e financeiras.
A Figura 1 é como a página de destino aparece para a vítima, enquanto a Figura 2 é o código-fonte HTML que renderiza a página em si. Na Figura 2, a imagem à direita foi captada segundos após a imagem à esquerda. Embora o código-fonte HTML seja completamente diferente em ambos os lados, a página de destino principal permanece inalterada. A geração de valores HTML aleatórios força as empresas de segurança a manter assinaturas para cada iteração do código-fonte carregado, o que é praticamente impossível.
Quando a vítima carrega a página pela primeira vez, as chances estão a favor do criminoso de que não há assinaturas pré-existentes registradas para a página. Se o domínio tiver uma reputação neutra ou desconhecida, ou pior, for um domínio comprometido com uma reputação positiva, ataques como esses têm uma taxa de sucesso melhor do que a média.
Figura 1: A aparência da página de phishing gerada aleatoriamente pelo conteúdo
Figura 2: Mesmo kit de ferramentas com dois conteúdos HTML diferentes gerados aleatoriamente
Evasão de codificação HTML
Outra técnica comumente usada e difundida é substituir valores de texto ASCII pela combinação de codificação ASCII e HTML. Embora essa ação não altere a maneira como o texto será renderizado e apresentado pelo navegador, essas combinações podem se esquivar de monitores de segurança que não estejam escapando HTML na página antes de tentar corresponder assinaturas textuais.
Figura 3: Valor do título do website de phishing com combinação de codificação ASCII e HTML
Evasão de fontes CSS
Em janeiro de 2019, pesquisadores da Proofpoint descobriram um kit de phishing que usou fontes da Web para codificar texto. Ao examinar uma página de destino, os pesquisadores da Proofpoint descobriram que o código-fonte havia sido codificado, mas isso não afetaria a renderização da página. Analisando mais a fundo o assunto, os pesquisadores descobriram a cifra responsável por decodificar o código-fonte no código CSS da página.
O CSS fez chamadas para uma pasta de fontes que não existia e então carregou dois arquivos de fonte WOFF e WOFF2 com codificação base64. Personalizados, os arquivos de fonte tinham letras fora de ordem e, quando a página era processada, o navegador tratava as fontes como se estivessem em ordem alfabética, substituindo o código-fonte por texto legível.
URLs gerados aleatoriamente
Uma das maneiras mais conhecidas de compartilhar inteligência no setor de segurança é por meio de feeds de inteligência. Esses feeds são conhecidos por muitos nomes comuns, como "listas" genéricas ou "listas negras", mas o ponto é distribuir informações para colegas, a fim de que eles possam se defender de ameaças observadas anteriormente. Quando se trata de phishing, há muitos feeds por aí. Os criminosos estão bem cientes deles, e eles procuram evitá-los a todo custo.
Muitos kits de phishing usam strings geradas aleatoriamente para alterar o URL para a página de destino, sempre que a página é acessada. Isso impede que o kit seja bloqueado completamente quando as listas negras estiverem usando a URL completa, em vez de apenas um domínio. A randomização também entra em jogo como um meio de adicionar legitimidade ao ataque de phishing em si, uma vez que dígitos e letras aleatórios muitas vezes distraem a vítima e tornam a página mais oficial.
Veja um exemplo de URLs que foram gerados pelo kit de ferramentas observado recentemente "in the wild":
http://whiteohio{.}ga/secure/santos/4a19123eb1279a47c524bb5610c04eb2fc9f4af3/
http://whiteohio{.}ga/secure/santos/f1236dff5933eac286085df87abcac581b12a7de/
http://whiteohio{.}ga/secure/santos/4fa97942c5059d10bfa08e7cc61cbdba566e52c9/
Neste kit, todas as vezes que o site era carregado por uma vítima, uma nova pasta e um novo URL eram gerados, usando muito pouco código (veja a Figura 4).
Figura 4: Código de phishing executando geração aleatória de URL
Parâmetros de URL aleatórios
Relacionados a URLs gerados aleatoriamente são parâmetros gerados aleatoriamente. Mais uma vez, o objetivo aqui é dividir entre adicionar legitimidade à página de destino e evitar detecção. Muitas vezes, os websites de login exibem uma longa e aparentemente aleatória string de caracteres e números para o visitante, portanto, quando os kits de phishing querem fazer isso, eles simplesmente usam o comando rand() em cada carregamento de página. Veja abaixo alguns exemplos de parâmetros gerados aleatoriamente.
- hxxps://chicagocontracts{.}tk/files/adobeproject/952cdca7aae137e22d7e1eedc7cc81a1/login.php?cmd=login_submit&id=f44b5e2fe6bb7f972a476a386cbf7626f44b5e2fe6bb7f972a476a386cbf7626&session=f44b5e2fe6bb7f972a476a386cbf7626f44b5e2fe6bb7f972a476a386cbf7626
- hxxps://chicagocontracts{.}tk/files/adobeproject/00e0b678a385a1f097044f8953fa0be1/login.php?cmd=login_submit&id=653af29587971f829e7d45ecb72c2860653af29587971f829e7d45ecb72c2860&session=653af29587971f829e7d45ecb72c2860653af29587971f829e7d45ecb72c2860
- hxxps://chicagocontracts{.}tk/files/adobeproject/e130e2f6df8ae2f5b9be01a8edaeaa7a/login.php?cmd=login_submit&id=4ec8655cab2e9c4b0119c2c6ca9c80274ec8655cab2e9c4b0119c2c6ca9c8027&session=4ec8655cab2e9c4b0119c2c6ca9c80274ec8655cab2e9c4b0119c2c6ca9c8027
Figura 5: Código-fonte do kit de ferramentas que randomiza parâmetros
Subdomínios gerados aleatoriamente
Outro método para evitar centros de detecção é o uso de subdomínios aleatórios. Isso só funciona se o domínio raiz em si não estiver sendo filtrado nem bloqueado completamente. Nesse método, o invasor criará uma lista de subdomínios que podem ser usados dependendo de como a vítima acessa a página de destino.
Figura 6: Uma lista parcial de subdomínios randomizados sendo usados no cenário
Além disso, os kits de phishing tentarão evitar a detecção limitando o acesso às vítimas selecionadas. Esses métodos são comumente encontrados em quase todos os kits e, embora tenham um grau moderado de sucesso em geral, eles não são infalíveis. Na maioria das vezes, esses métodos são projetados para bloquear varreduras, blocos e pesquisadores automatizados.
Reverter exclusão de PTR
Os criminosos procuram bloquear domínios conhecidos tomando o endereço IP de um visitante e realizando uma consulta DNS PTR, uma consulta DNS que resolve um endereço IP para seu domínio associado. No exemplo abaixo, você pode ver que o código-fonte está procurando bloquear rastreadores, fornecedores conhecidos (cyveillance, phishtank, sucuri.net) e provedores de hospedagem em nuvem, como Amazon ou Google. Além disso, há alguns fornecedores de segurança mencionados diretamente, incluindo Message Labs e Trend Micro.
Figura 7: Código fonte de exclusão de PTR
Filtragem de agente de usuário HTTP
Neste método (Figura 8), os kits de phishing filtram um visitante na página de destino examinando o User-Agent HTTP e procuram palavras-chave que indiquem tráfego de bots ou varredura automatizada.
Os bots são um problema para websites legítimos, mas, claramente, eles são um problema para os criminosos também. Muitos dos bots filtrados por kits de phishing são relacionados a mecanismos de pesquisa ou scrapers de conteúdo. No entanto, os kits também buscam bloquear rastreadores automatizados usados por pesquisadores e empresas de segurança. O esforço de bloqueio de bots é ajustado para manter o kit de phishing oculto pelo maior tempo possível, de modo que apenas as vítimas do kit possam acessar sua localização.
Há também evasões baseadas em ISP e visitação de IP (para impedir que o mesmo endereço visite o kit de phishing mais de uma vez). Os filtros baseados em ISP são usados para manter as vítimas do kit de phishing bloqueadas em uma região específica ou, se o kit tiver como alvo direto um ISP, atinge apenas os clientes desse serviço.
Figura 8: Código-fonte mostrando a filtragem do User-Agent
Configuração .htaccess personalizada
Em servidores da Web, os arquivos .htaccess são usados para controlar o tráfego de visitantes, como redirecionamentos para páginas de erro personalizadas, controle de índice ou prevenção de hotlinking. Para kits de phishing, os arquivos .htaccess são utilizados para bloquear por IP. Muitos dos arquivos .htaccess comuns usados atualmente por kits de phishing bloquearão intervalos de IP inteiros de propriedade de fornecedores de segurança, fornecedores de nuvem, nós Tor conhecidos, pesquisadores conhecidos, universidades e muito mais.
Conclusão
Phishing é um jogo de gato e rato. Pesquisadores e fornecedores de segurança desenvolvem métodos de detecção, e os desenvolvedores de kits de phishing criam um meio de burlar esses métodos. Como mostramos neste post, a maioria dos kits usa métodos básicos, mas eficazes, de evasão. Os avanços feitos pelos defensores, incluindo aprendizado de máquina e detecção algorítmica, colocam os desenvolvedores de kits de phishing em certa desvantagem.
Tentar parar o phishing permanentemente é tolice, as pessoas sempre vão clicar em um link ou terão sua curiosidade aguçada por algo. Em vez disso, concentrar-se na detecção e diminuir a vida útil de uma determinada implantação de kit de phishing é uma vitória no espaço de segurança que pode ser obtida. Como o phishing não é apenas um problema de e-mail, as defesas precisam existir fora da caixa de entrada, que é onde a conscientização, a verificação proativa e a impressão digital baseada em kit entram em jogo em vez da impressão digital baseada em domínio.
À medida que as fronteiras entre técnicas defensivas e ofensivas se esvaem, agora que ambos os lados as estão usando, os profissionais da segurança são obrigados a garantir que estejamos completamente familiarizados com a ameaça e que saibamos mais sobre os muros que estão sendo construídos pelos agentes de ameaça para garantir que não fiquemos fora da cerca.