Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Empresas de antivírus, especialistas em segurança da informação e simplesmente entusiastas colocam sistemas honeypot na Internet para “capturar” uma nova variante do vírus ou identificar táticas incomuns de hackers. Os honeypots são tão comuns que os cibercriminosos desenvolveram uma espécie de imunidade: identificam rapidamente que estão diante de uma armadilha e simplesmente a ignoram. Para explorar as táticas dos hackers modernos, criamos um honeypot realista que viveu na Internet durante sete meses, atraindo uma variedade de ataques. Conversamos sobre como isso aconteceu em nosso estudo "Pego na Lei: Executando um Honeypot de Fábrica Realista para Capturar Ameaças Reais" Alguns fatos do estudo estão neste post.

Desenvolvimento Honeypot: lista de verificação

A principal tarefa na criação de nossa superarmadilha foi evitar que fôssemos expostos por hackers que demonstrassem interesse nela. Isso exigiu muito trabalho:

  1. Crie uma lenda realista sobre a empresa, incluindo nomes completos e fotos dos funcionários, números de telefone e e-mails.
  2. Criar e implementar um modelo de infraestrutura industrial que corresponda à lenda da atividade da nossa empresa.
  3. Decida quais serviços de rede serão acessíveis de fora, mas não se empolgue em abrir portas vulneráveis ​​para que não pareça uma armadilha para otários.
  4. Organize a visibilidade de vazamentos de informações sobre um sistema vulnerável e distribua essas informações entre possíveis invasores.
  5. Implemente monitoramento discreto de atividades de hackers na infraestrutura do honeypot.

E agora tudo em ordem.

Criando uma lenda

Os cibercriminosos já estão acostumados a encontrar muitos honeypots, então a parte mais avançada deles conduz uma investigação aprofundada de cada sistema vulnerável para ter certeza de que não é uma armadilha. Pela mesma razão, procurámos garantir que o honeypot não fosse apenas realista em termos de design e aspectos técnicos, mas também criasse a aparência de uma empresa real.

Colocando-nos no lugar de um hipotético hacker legal, desenvolvemos um algoritmo de verificação que distinguiria um sistema real de uma armadilha. Incluía a busca de endereços IP de empresas em sistemas de reputação, pesquisa reversa do histórico de endereços IP, busca de nomes e palavras-chave relacionadas à empresa, bem como às suas contrapartes, e muitas outras coisas. Como resultado, a lenda revelou-se bastante convincente e atraente.

Decidimos posicionar a fábrica de iscas como uma pequena boutique de prototipagem industrial trabalhando para grandes clientes anônimos no segmento militar e de aviação. Isto libertou-nos das complicações legais associadas à utilização de uma marca existente.

Em seguida, tivemos que definir uma visão, missão e nome para a organização. Decidimos que nossa empresa seria uma startup com um pequeno número de funcionários, cada um deles fundador. Isso acrescentou credibilidade à história da natureza especializada do nosso negócio, o que lhe permite lidar com projetos sensíveis para clientes grandes e importantes. Queríamos que a nossa empresa parecesse fraca do ponto de vista da segurança cibernética, mas ao mesmo tempo era óbvio que estávamos a trabalhar com ativos importantes em sistemas-alvo.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Captura de tela do site honeypot da MeTech. Fonte: Trend Micro

Escolhemos a palavra MeTech como nome da empresa. O site foi feito com base em um template gratuito. As imagens foram retiradas de bancos de fotos, utilizando as mais impopulares e modificando-as para torná-las menos reconhecíveis.

Queríamos que a empresa parecesse real, por isso precisámos agregar colaboradores com competências profissionais que correspondam ao perfil da atividade. Criamos nomes e personalidades para eles e depois tentamos selecionar imagens de bancos de fotos de acordo com a etnia.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Captura de tela do site honeypot da MeTech. Fonte: Trend Micro

Para evitar sermos descobertos, procuramos fotos de grupo de boa qualidade, nas quais pudéssemos escolher os rostos que precisávamos. No entanto, abandonámos esta opção, uma vez que um potencial hacker poderia usar a pesquisa inversa de imagens e descobrir que os nossos “funcionários” vivem apenas em bancos de fotos. No final, utilizamos fotografias de pessoas inexistentes criadas por meio de redes neurais.

Os perfis dos funcionários publicados no site continham informações importantes sobre suas competências técnicas, mas evitamos identificar escolas ou cidades específicas.
Para criar caixas de correio, usamos um servidor de provedor de hospedagem e depois alugamos vários números de telefone nos Estados Unidos e os combinamos em um PBX virtual com menu de voz e secretária eletrônica.

Infraestrutura de honeypot

Para evitar a exposição, decidimos utilizar uma combinação de hardware industrial real, computadores físicos e máquinas virtuais seguras. Olhando para o futuro, diremos que verificamos o resultado de nossos esforços usando o mecanismo de busca Shodan e mostrou que o honeypot se parece com um sistema industrial real.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
O resultado da varredura de um honeypot usando Shodan. Fonte: Trend Micro

Usamos quatro PLCs como hardware para nossa armadilha:

  • Siemens S7-1200,
  • dois AllenBradley MicroLogix 1100,
  • Omron CP1L.

Esses PLCs foram selecionados por sua popularidade no mercado global de sistemas de controle. E cada um desses controladores utiliza um protocolo próprio, o que nos permitiu verificar quais dos CLPs seriam atacados com mais frequência e se eles interessariam a alguém em princípio.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Equipamento da nossa armadilha de “fábrica”. Fonte: Trend Micro

Não apenas instalamos hardware e o conectamos à Internet. Programamos cada controlador para executar tarefas, incluindo

  • misturando,
  • controle do queimador e da correia transportadora,
  • paletização usando um manipulador robótico.

E para tornar o processo de produção realista, programamos uma lógica para alterar aleatoriamente os parâmetros de feedback, simular a partida e a parada de motores e o ligar e desligar dos queimadores.

Nossa fábrica contava com três computadores virtuais e um físico. Computadores virtuais foram usados ​​para controlar uma planta, um robô paletizador e como estação de trabalho para um engenheiro de software PLC. O computador físico funcionou como um servidor de arquivos.

Além de monitorar ataques a PLCs, queríamos monitorar o status dos programas carregados em nossos dispositivos. Para fazer isso, criamos uma interface que nos permitiu determinar rapidamente como os estados de nossos atuadores virtuais e configurações foram modificados. Já na fase de planejamento, descobrimos que é muito mais fácil implementar isso utilizando um programa de controle do que através da programação direta da lógica do controlador. Abrimos o acesso à interface de gerenciamento de dispositivos do nosso honeypot via VNC sem senha.

Os robôs industriais são um componente chave da fabricação inteligente moderna. Neste sentido, decidimos adicionar um robô e um local de trabalho automatizado para controlá-lo aos equipamentos da nossa fábrica de armadilhas. Para tornar a “fábrica” mais realista, instalamos software real na estação de controle, que os engenheiros utilizam para programar graficamente a lógica do robô. Pois bem, como os robôs industriais geralmente ficam localizados em uma rede interna isolada, decidimos deixar o acesso desprotegido via VNC apenas à estação de controle.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Ambiente RobotStudio com um modelo 3D do nosso robô. Fonte: Trend Micro

Instalamos o ambiente de programação RobotStudio da ABB Robotics em uma máquina virtual com estação de trabalho de controle de robô. Após configurar o RobotStudio, abrimos um arquivo de simulação com nosso robô para que sua imagem 3D ficasse visível na tela. Como resultado, Shodan e outros motores de busca, ao detectar um servidor VNC inseguro, irão capturar esta imagem da tela e mostrá-la para aqueles que procuram robôs industriais com acesso aberto ao controle.

O objetivo dessa atenção aos detalhes era criar um alvo atraente e realista para os invasores que, uma vez encontrados, retornariam a ele repetidas vezes.

Estação de trabalho do engenheiro


Para programar a lógica do PLC, adicionamos um computador de engenharia à infraestrutura. Nele foi instalado software industrial para programação de PLC:

  • Portal TIA para Siemens,
  • MicroLogix para controlador Allen-Bradley,
  • CX-One para Omron.

Decidimos que o espaço de trabalho de engenharia não seria acessível fora da rede. Em vez disso, definimos a mesma senha para a conta do administrador que na estação de trabalho de controle do robô e na estação de trabalho de controle de fábrica acessível pela Internet. Essa configuração é bastante comum em muitas empresas.
Infelizmente, apesar de todos os nossos esforços, nem um único invasor chegou à estação de trabalho do engenheiro.

Servidor de arquivos

Precisávamos disso como isca para os invasores e como meio de respaldar nosso próprio “trabalho” na fábrica de iscas. Isso nos permitiu compartilhar arquivos com nosso honeypot usando dispositivos USB sem deixar rastros na rede do honeypot. Instalamos o Windows 7 Pro como sistema operacional para o servidor de arquivos, no qual criamos uma pasta compartilhada que pode ser lida e escrita por qualquer pessoa.

A princípio não criamos nenhuma hierarquia de pastas e documentos no servidor de arquivos. No entanto, descobrimos mais tarde que os invasores estavam estudando ativamente essa pasta, por isso decidimos preenchê-la com vários arquivos. Para isso, escrevemos um script python que criava um arquivo de tamanho aleatório com uma das extensões fornecidas, formando um nome baseado no dicionário.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Script para gerar nomes de arquivos atraentes. Fonte: Trend Micro

Após executar o script, obtivemos o resultado desejado na forma de uma pasta repleta de arquivos com nomes muito interessantes.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
O resultado do roteiro. Fonte: Trend Micro

Ambiente de monitoramento


Tendo despendido tanto esforço para criar uma empresa realista, simplesmente não podíamos nos dar ao luxo de falhar no ambiente para monitorar nossos “visitantes”. Precisávamos obter todos os dados em tempo real, sem que os invasores percebessem que estavam sendo vigiados.

Implementamos isso usando quatro adaptadores USB para Ethernet, quatro torneiras SharkTap Ethernet, um Raspberry Pi 3 e uma grande unidade externa. Nosso diagrama de rede ficou assim:

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Diagrama de rede Honeypot com equipamento de monitoramento. Fonte: Trend Micro

Posicionamos três taps SharkTap de forma a monitorar todo o tráfego externo ao PLC, acessível apenas pela rede interna. O quarto SharkTap monitorou o tráfego de convidados de uma máquina virtual vulnerável.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
SharkTap Ethernet Tap e roteador Sierra Wireless AirLink RV50. Fonte: Trend Micro

Raspberry Pi realizou captura diária de tráfego. Nós nos conectamos à Internet usando um roteador celular Sierra Wireless AirLink RV50, frequentemente usado em empresas industriais.

Infelizmente, este roteador não nos permitiu bloquear seletivamente ataques que não correspondiam aos nossos planos, por isso adicionamos um firewall Cisco ASA 5505 à rede em modo transparente para realizar o bloqueio com impacto mínimo na rede.

Análise de tráfego


Tshark e tcpdump são apropriados para resolver rapidamente problemas atuais, mas no nosso caso suas capacidades não foram suficientes, pois tínhamos muitos gigabytes de tráfego, que foram analisados ​​por diversas pessoas. Usamos o analisador Moloch de código aberto desenvolvido pela AOL. É comparável em funcionalidade ao Wireshark, mas possui mais recursos para colaboração, descrição e marcação de pacotes, exportação e outras tarefas.

Como não queríamos processar os dados coletados em computadores honeypot, os dumps PCAP eram exportados todos os dias para o armazenamento AWS, de onde já os importamos para a máquina Moloch.

Gravação de tela

Para documentar as ações dos hackers em nosso honeypot, escrevemos um script que tirava screenshots da máquina virtual em um determinado intervalo e, comparando com o screenshot anterior, determinava se algo estava acontecendo ali ou não. Quando a atividade foi detectada, o script incluiu gravação de tela. Esta abordagem revelou-se a mais eficaz. Também tentamos analisar o tráfego VNC de um dump PCAP para entender quais mudanças ocorreram no sistema, mas no final a gravação de tela que implementamos acabou sendo mais simples e visual.

Monitorando sessões VNC


Para isso utilizamos Chaosreader e VNCLogger. Ambos os utilitários extraem as teclas digitadas de um dump PCAP, mas o VNCLogger lida com teclas como Backspace, Enter, Ctrl de forma mais correta.

O VNCLogger tem duas desvantagens. Primeiro: ele só pode extrair chaves “escutando” o tráfego na interface, então tivemos que simular uma sessão VNC para ele usando tcpreplay. A segunda desvantagem do VNCLogger é comum ao Chaosreader: ambos não mostram o conteúdo da área de transferência. Para fazer isso eu tive que usar o Wireshark.

Nós atraímos hackers


Criamos honeypot para ser atacado. Para conseguir isso, realizamos um vazamento de informações para atrair a atenção de possíveis invasores. As seguintes portas foram abertas no honeypot:

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto

A porta RDP teve que ser fechada logo após entrarmos no ar porque a enorme quantidade de tráfego de varredura em nossa rede estava causando problemas de desempenho.
Os terminais VNC funcionaram primeiro no modo somente visualização sem senha e depois “por engano” os mudamos para o modo de acesso total.

Para atrair invasores, publicamos dois posts com informações vazadas sobre o sistema industrial disponível no PasteBin.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
Um dos posts postados no PasteBin para atrair ataques. Fonte: Trend Micro

Ataques


Honeypot viveu online por cerca de sete meses. O primeiro ataque ocorreu um mês depois que o honeypot ficou online.

Scanners

Houve muito tráfego de scanners de empresas conhecidas - ip-ip, Rapid, Shadow Server, Shodan, ZoomEye e outras. Eram tantos que tivemos que excluir seus endereços IP da análise: 610 de 9452 ou 6,45% de todos os endereços IP exclusivos pertenciam a scanners completamente legítimos.

Golpistas

Um dos maiores riscos que enfrentamos é o uso do nosso sistema para fins criminosos: comprar smartphones através da conta do assinante, sacar milhas aéreas com cartões-presente e outros tipos de fraude.

Mineiros

Um dos primeiros visitantes do nosso sistema era um mineiro. Ele baixou o software de mineração Monero nele. Ele não teria conseguido ganhar muito dinheiro com nosso sistema específico devido à baixa produtividade. No entanto, se combinarmos os esforços de várias dezenas ou mesmo centenas de tais sistemas, o resultado poderá ser bastante bom.

Ransomware

Durante o trabalho do honeypot, encontramos vírus ransomware reais duas vezes. No primeiro caso foi Crysis. Seus operadores fizeram login no sistema via VNC, mas instalaram o TeamViewer e o usaram para realizar outras ações. Depois de esperar por uma mensagem de extorsão exigindo resgate de US$ 10 em BTC, trocamos correspondência com os criminosos, pedindo que descriptografassem um dos arquivos para nós. Eles atenderam ao pedido e repetiram o pedido de resgate. Conseguimos negociar até 6 mil dólares, após o que simplesmente recarregamos o sistema para uma máquina virtual, já que recebemos todas as informações necessárias.

O segundo ransomware acabou sendo Phobos. O hacker que o instalou passou uma hora navegando no sistema de arquivos honeypot e verificando a rede e, finalmente, instalou o ransomware.
O terceiro ataque de ransomware revelou-se falso. Um “hacker” desconhecido baixou o arquivo haha.bat em nosso sistema, após o qual observamos por um tempo enquanto ele tentava fazê-lo funcionar. Uma das tentativas foi renomear haha.bat para haha.rnsmwr.

Indescritivelmente atraente: como criamos um honeypot que não pode ser exposto
O “hacker” aumenta a nocividade do arquivo bat alterando sua extensão para .rnsmwr. Fonte: Trend Micro

Quando o arquivo em lote finalmente começou a ser executado, o “hacker” o editou, aumentando o resgate de US$ 200 para US$ 750. Depois disso, ele “criptografou” todos os arquivos, deixou uma mensagem de extorsão no desktop e desapareceu, alterando as senhas do nosso VNC.

Alguns dias depois, o hacker voltou e, para se lembrar, lançou um arquivo em lote que abriu muitas janelas com um site pornográfico. Aparentemente, dessa forma ele tentou chamar a atenção para sua demanda.

Resultados de


Durante o estudo, descobriu-se que assim que as informações sobre a vulnerabilidade foram publicadas, o honeypot atraiu a atenção, com atividade crescendo a cada dia. Para que a armadilha chamasse a atenção, nossa empresa fictícia teve que sofrer diversas falhas de segurança. Infelizmente, esta situação está longe de ser incomum entre muitas empresas reais que não possuem funcionários de TI e segurança da informação em tempo integral.

Em geral, as organizações devem usar o princípio do menor privilégio, enquanto implementamos exatamente o oposto para atrair invasores. E quanto mais observávamos os ataques, mais sofisticados eles se tornavam em comparação com os métodos padrão de testes de penetração.

E o mais importante é que todos estes ataques teriam falhado se medidas de segurança adequadas tivessem sido implementadas durante a configuração da rede. As organizações devem garantir que os seus equipamentos e componentes de infraestrutura industrial não sejam acessíveis a partir da Internet, como fizemos especificamente na nossa armadilha.

Embora não tenhamos registrado um único ataque à estação de trabalho de um engenheiro, apesar de utilizar a mesma senha de administrador local em todos os computadores, esta prática deve ser evitada para minimizar a possibilidade de invasões. Afinal, a segurança fraca serve como um convite adicional para atacar sistemas industriais, que há muito interessam aos cibercriminosos.

Fonte: habr.com

Adicionar um comentário