Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

Investigando casos relacionados a phishing, botnets, transações fraudulentas e grupos criminosos de hackers, os especialistas do Grupo-IB usam análise gráfica há muitos anos para identificar vários tipos de conexões. Diferentes casos têm seus próprios conjuntos de dados, seus próprios algoritmos para identificar conexões e interfaces adaptadas para tarefas específicas. Todas estas ferramentas foram desenvolvidas internamente pelo Grupo-IB e estavam disponíveis apenas para os nossos colaboradores.

Análise gráfica da infraestrutura de rede (gráfico de rede) se tornou a primeira ferramenta interna que incorporamos em todos os produtos públicos da empresa. Antes de criar nosso gráfico de rede, analisamos muitos desenvolvimentos semelhantes no mercado e não encontramos um único produto que atendesse às nossas necessidades. Neste artigo falaremos sobre como criamos o gráfico de rede, como o utilizamos e quais dificuldades encontramos.

Dmitri Volkov, CTO Group-IB e chefe de inteligência cibernética

O que o gráfico da rede do Grupo-IB pode fazer?

Investigações

Desde a fundação do Grupo-IB em 2003 até ao presente, identificar, desqualificar e levar os cibercriminosos à justiça tem sido uma prioridade máxima no nosso trabalho. Nenhuma investigação de ataque cibernético foi concluída sem a análise da infraestrutura de rede dos invasores. No início da nossa jornada, foi um “trabalho manual” bastante árduo procurar relações que pudessem ajudar na identificação de criminosos: informações sobre nomes de domínio, endereços IP, impressões digitais de servidores, etc.

A maioria dos invasores tenta agir da forma mais anônima possível na rede. Porém, como todas as pessoas, eles cometem erros. O principal objetivo dessa análise é encontrar projetos históricos “brancos” ou “cinzas” de invasores que tenham interseções com a infraestrutura maliciosa usada no incidente atual que estamos investigando. Se for possível detectar “projetos brancos”, então encontrar o invasor, via de regra, torna-se uma tarefa trivial. No caso dos “cinzas”, a busca demanda mais tempo e esforço, já que seus donos tentam anonimizar ou ocultar dados cadastrais, mas as chances continuam bastante altas. Via de regra, no início de suas atividades criminosas, os invasores prestam menos atenção à sua própria segurança e cometem mais erros, portanto, quanto mais fundo pudermos nos aprofundar na história, maiores serão as chances de uma investigação bem-sucedida. É por isso que um gráfico de rede com um bom histórico é um elemento extremamente importante de tal investigação. Simplificando, quanto mais profundos os dados históricos uma empresa tiver, melhor será o seu gráfico. Digamos que uma história de 5 anos possa ajudar a resolver, condicionalmente, 1-2 em cada 10 crimes, e uma história de 15 anos dê a oportunidade de resolver todos os dez.

Detecção de Phishing e Fraude

Cada vez que recebemos um link suspeito para um recurso de phishing, fraudulento ou pirateado, construímos automaticamente um gráfico de recursos de rede relacionados e verificamos todos os hosts encontrados em busca de conteúdo semelhante. Isso permite que você encontre sites de phishing antigos que estavam ativos, mas desconhecidos, bem como sites completamente novos que estão preparados para ataques futuros, mas ainda não foram usados. Um exemplo elementar que ocorre com bastante frequência: encontramos um site de phishing em um servidor com apenas 5 sites. Ao verificar cada um deles, encontramos conteúdo de phishing em outros sites, o que significa que podemos bloquear 5 em vez de 1.

Pesquisar back-ends

Este processo é necessário para determinar onde o servidor malicioso realmente reside.
99% das lojas de cartões, fóruns de hackers, muitos recursos de phishing e outros servidores maliciosos estão escondidos atrás de seus próprios servidores proxy e de proxies de serviços legítimos, por exemplo, Cloudflare. O conhecimento sobre o backend real é muito importante para as investigações: o provedor de hospedagem do qual o servidor pode ser apreendido torna-se conhecido e torna-se possível construir conexões com outros projetos maliciosos.

Por exemplo, você tem um site de phishing para coletar dados de cartões bancários que resolve o endereço IP 11.11.11.11 e um endereço de loja de cartões que resolve o endereço IP 22.22.22.22. Durante a análise, pode acontecer que tanto o site de phishing quanto a cardshop tenham um endereço IP de back-end comum, por exemplo, 33.33.33.33. Este conhecimento permite-nos estabelecer uma ligação entre ataques de phishing e uma loja de cartões onde os dados de cartões bancários podem ser vendidos.

Correlação de eventos

Quando você tem dois gatilhos diferentes (digamos, em um IDS) com malware e servidores diferentes para controlar o ataque, você os tratará como dois eventos independentes. Mas se houver uma boa conexão entre infraestruturas maliciosas, torna-se óbvio que não se trata de ataques diferentes, mas de estágios de um ataque mais complexo em vários estágios. E se um dos eventos já for atribuído a algum grupo de atacantes, o segundo também poderá ser atribuído ao mesmo grupo. É claro que o processo de atribuição é muito mais complexo, então trate isso como um exemplo simples.

Enriquecimento de indicadores

Não prestaremos muita atenção a isso, pois este é o cenário mais comum para o uso de gráficos em segurança cibernética: você fornece um indicador como entrada e como saída obtém uma série de indicadores relacionados.

Identificando padrões

Identificar padrões é essencial para uma caça eficaz. Os gráficos permitem não apenas encontrar elementos relacionados, mas também identificar propriedades comuns que são características de um determinado grupo de hackers. O conhecimento dessas características únicas permite reconhecer a infraestrutura do invasor mesmo na fase de preparação e sem evidências que confirmem o ataque, como e-mails de phishing ou malware.

Por que criamos nosso próprio gráfico de rede?

Novamente, analisamos soluções de diferentes fornecedores antes de chegarmos à conclusão de que precisávamos desenvolver nossa própria ferramenta que pudesse fazer algo que nenhum produto existente poderia fazer. Demorou vários anos para criá-lo, durante os quais o alteramos completamente várias vezes. Mas, apesar do longo período de desenvolvimento, ainda não encontramos um único análogo que satisfizesse as nossas necessidades. Usando nosso próprio produto, conseguimos resolver quase todos os problemas que descobrimos nos gráficos de rede existentes. Abaixo consideraremos esses problemas em detalhes:

problema
Solução

Falta de um provedor com diferentes coleções de dados: domínios, DNS passivo, SSL passivo, registros DNS, portas abertas, serviços em execução nas portas, arquivos interagindo com nomes de domínio e endereços IP. Explicação. Normalmente, os provedores fornecem tipos separados de dados e, para ter uma visão completa, você precisa comprar assinaturas de todos. Mesmo assim, nem sempre é possível obter todos os dados: alguns fornecedores de SSL passivo fornecem dados apenas sobre certificados emitidos por CAs confiáveis, e a sua cobertura de certificados autoassinados é extremamente fraca. Outros também fornecem dados usando certificados autoassinados, mas os coletam apenas em portas padrão.
Nós mesmos coletamos todas as coleções acima. Por exemplo, para coletar dados sobre certificados SSL, escrevemos nosso próprio serviço que os coleta de CAs confiáveis ​​e verifica todo o espaço IPv4. Os certificados foram coletados não só do IP, mas também de todos os domínios e subdomínios da nossa base de dados: se você possui o domínio exemplo.com e seu subdomínio www.example.com e todos eles resolvem para IP 1.1.1.1, quando você tenta obter um certificado SSL da porta 443 em um IP, domínio e seu subdomínio, você pode obter três resultados diferentes. Para coletar dados sobre portas abertas e serviços em execução, tivemos que criar nosso próprio sistema de varredura distribuída, porque outros serviços muitas vezes tinham os endereços IP de seus servidores de varredura em “listas negras”. Nossos servidores de varredura também acabam em listas negras, mas o resultado da detecção dos serviços de que precisamos é superior ao de quem simplesmente escaneia o máximo de portas possível e vende o acesso a esses dados.

Falta de acesso a todo o banco de dados de registros históricos. Explicação. Todo fornecedor normal tem um bom histórico acumulado, mas por motivos naturais nós, como cliente, não conseguimos ter acesso a todos os dados históricos. Aqueles. Você pode obter todo o histórico de um único registro, por exemplo, por domínio ou endereço IP, mas não pode ver o histórico de tudo - e sem isso não pode ver o quadro completo.
Para coletar o máximo possível de registros históricos de domínios, compramos vários bancos de dados, analisamos muitos recursos abertos que tinham esse histórico (é bom que houvesse muitos deles) e negociamos com registradores de nomes de domínio. Todas as atualizações de nossas próprias coleções são, obviamente, mantidas com um histórico completo de revisões.

Todas as soluções existentes permitem construir um gráfico manualmente. Explicação. Digamos que você comprou muitas assinaturas de todos os provedores de dados possíveis (geralmente chamados de “enriquecedores”). Quando você precisa construir um gráfico, você “mãos” dá o comando para construir a partir do elemento de conexão desejado, depois seleciona os elementos necessários dos elementos que aparecem e dá o comando para completar as conexões a partir deles, e assim por diante. Nesse caso, a responsabilidade pela qualidade da construção do gráfico é inteiramente da pessoa.
Fizemos construção automática de gráficos. Aqueles. se você precisar construir um gráfico, as conexões do primeiro elemento serão construídas automaticamente e, em seguida, de todos os subsequentes também. O especialista indica apenas a profundidade em que o gráfico precisa ser construído. O processo de preenchimento automático de gráficos é simples, mas outros fornecedores não o implementam porque produz um grande número de resultados irrelevantes, e também tivemos que levar em consideração essa desvantagem (veja abaixo).

Muitos resultados irrelevantes são um problema com todos os gráficos de elementos de rede. Explicação. Por exemplo, um “domínio inválido” (participou de um ataque) está associado a um servidor que possui 10 outros domínios associados a ele nos últimos 500 anos. Ao adicionar manualmente ou construir automaticamente um gráfico, todos esses 500 domínios também devem aparecer no gráfico, embora não estejam relacionados ao ataque. Ou, por exemplo, você verifica o indicador IP no relatório de segurança do fornecedor. Normalmente, esses relatórios são divulgados com um atraso significativo e muitas vezes abrangem um ano ou mais. Muito provavelmente, no momento em que você lê o relatório, o servidor com este endereço IP já está alugado para outras pessoas com outras conexões, e a construção de um gráfico resultará novamente na obtenção de resultados irrelevantes.
Treinamos o sistema para identificar elementos irrelevantes usando a mesma lógica que nossos especialistas fizeram manualmente. Por exemplo, você está verificando um domínio inválido example.com, que agora resolve para IP 11.11.11.11 e há um mês - para IP 22.22.22.22. Além do domínio example.com, o IP 11.11.11.11 também está associado a example.ru, e o IP 22.22.22.22 está associado a 25 mil outros domínios. O sistema, como uma pessoa, entende que 11.11.11.11 é provavelmente um servidor dedicado e, como o domínio example.ru é semelhante em ortografia a example.com, então, com alta probabilidade, eles estão conectados e devem estar no gráfico; mas o IP 22.22.22.22 pertence à hospedagem compartilhada, portanto todos os seus domínios não precisam ser incluídos no gráfico, a menos que haja outras conexões mostrando que um desses 25 mil domínios também precisa ser incluído (por exemplo, example.net) . Antes que o sistema entenda que as conexões precisam ser quebradas e alguns elementos não movidos para o gráfico, ele leva em consideração muitas propriedades dos elementos e clusters nos quais esses elementos são combinados, bem como a força das conexões atuais. Por exemplo, se tivermos um cluster pequeno (50 elementos) no gráfico, que inclui um domínio ruim, e outro cluster grande (5 mil elementos) e ambos os clusters estiverem conectados por uma conexão (linha) com baixíssima resistência (peso) , essa conexão será interrompida e os elementos do cluster grande serão removidos. Mas se houver muitas conexões entre clusters pequenos e grandes e sua força aumentar gradualmente, nesse caso a conexão não será quebrada e os elementos necessários de ambos os clusters permanecerão no gráfico.

O intervalo de propriedade do servidor e do domínio não é levado em consideração. Explicação. “Domínios ruins” expirarão mais cedo ou mais tarde e serão adquiridos novamente para fins maliciosos ou legítimos. Mesmo servidores de hospedagem à prova de balas são alugados para diferentes hackers, por isso é fundamental saber e levar em consideração o intervalo em que um determinado domínio/servidor esteve sob o controle de um proprietário. Freqüentemente nos deparamos com uma situação em que um servidor com IP 11.11.11.11 agora é usado como C&C para um bot bancário e, há 2 meses, era controlado por Ransomware. Se construirmos uma conexão sem levar em conta os intervalos de propriedade, parecerá que há uma conexão entre os proprietários da botnet bancária e o ransomware, embora na verdade não exista. Em nosso trabalho, tal erro é crítico.
Ensinamos o sistema a determinar intervalos de propriedade. Para domínios isso é relativamente simples, porque o whois geralmente contém as datas de início e expiração do registro e, quando há um histórico completo das alterações do whois, é fácil determinar os intervalos. Quando o registro de um domínio não expirou, mas seu gerenciamento foi transferido para outros proprietários, ele também pode ser rastreado. Não existe esse problema para os certificados SSL, porque eles são emitidos uma vez e não são renovados ou transferidos. Mas com certificados autoassinados, você não pode confiar nas datas especificadas no período de validade do certificado, porque você pode gerar um certificado SSL hoje e especificar a data de início do certificado a partir de 2010. O mais difícil é determinar os intervalos de propriedade dos servidores, pois apenas os provedores de hospedagem possuem datas e períodos de aluguel. Para determinar o período de propriedade do servidor, começamos a usar os resultados da varredura de portas e a criação de impressões digitais de serviços em execução nas portas. Usando essas informações, podemos dizer com bastante precisão quando o proprietário do servidor mudou.

Poucas conexões. Explicação. Hoje em dia já não é problema obter uma lista gratuita de domínios cujo whois contém um endereço de e-mail específico, ou descobrir todos os domínios que estavam associados a um endereço IP específico. Mas quando se trata de hackers que fazem o possível para serem difíceis de rastrear, precisamos de truques adicionais para encontrar novas propriedades e construir novas conexões.
Passamos muito tempo pesquisando como poderíamos extrair dados que não estavam disponíveis de forma convencional. Não podemos descrever aqui como funciona por razões óbvias, mas em certas circunstâncias, os hackers, ao registrar domínios ou alugar e configurar servidores, cometem erros que lhes permitem descobrir endereços de e-mail, aliases de hackers e endereços de back-end. Quanto mais conexões você extrair, mais gráficos precisos você poderá construir.

Como funciona nosso gráfico

Para começar a usar o gráfico de rede, você precisa inserir o domínio, endereço IP, e-mail ou impressão digital do certificado SSL na barra de pesquisa. Existem três condições que o analista pode controlar: tempo, profundidade do passo e compensação.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

tempo

Hora – data ou intervalo em que o elemento pesquisado foi utilizado para fins maliciosos. Se você não especificar este parâmetro, o próprio sistema determinará o último intervalo de propriedade deste recurso. Por exemplo, em 11 de julho, a Eset publicou denunciar sobre como o Buhtrap usa a exploração do dia 0 para espionagem cibernética. Existem 6 indicadores no final do relatório. Um deles, secure-telemetry[.]net, foi registrado novamente em 16 de julho. Portanto, se você construir um gráfico após 16 de julho, obterá resultados irrelevantes. Mas se você indicar que este domínio foi usado antes desta data, o gráfico inclui 126 novos domínios, 69 endereços IP que não estão listados no relatório da Eset:

  • ukrfreshnews[.]com
  • unian-search[.]com
  • vesti-mundo[.]informações
  • runewsmeta[.]com
  • foxnewsmeta[.]biz
  • sobesednik-meta[.]informações
  • rian-ua[.]net
  • etc

Além dos indicadores de rede, encontramos de imediato ligações com ficheiros maliciosos que tinham ligações a esta infraestrutura e tags que nos indicam que foram utilizados Meterpreter e AZORult.

O bom é que você obtém esse resultado em um segundo e não precisa mais passar dias analisando os dados. É claro que esta abordagem por vezes reduz significativamente o tempo de investigação, o que é muitas vezes crítico.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

O número de etapas ou profundidade de recursão com a qual o gráfico será construído

Por padrão, a profundidade é 3. Isso significa que todos os elementos diretamente relacionados serão encontrados a partir do elemento desejado, então novas conexões serão construídas de cada novo elemento para outros elementos, e novos elementos serão criados a partir dos novos elementos do último etapa.

Vejamos um exemplo não relacionado ao APT e explorações de dia 0. Recentemente, um caso interessante de fraude relacionada a criptomoedas foi descrito em Habré. O relatório menciona o domínio theycx[.]co, usado por golpistas para hospedar um site que pretende ser um Miner Coin Exchange e pesquisa por telefone[.]xyz para atrair tráfego.

Fica claro pela descrição que o esquema requer uma infra-estrutura bastante grande para atrair tráfego para recursos fraudulentos. Decidimos analisar essa infraestrutura construindo um gráfico em 4 etapas. A saída foi um gráfico com 230 domínios e 39 endereços IP. A seguir, dividimos os domínios em 2 categorias: aqueles que são semelhantes aos serviços para trabalhar com criptomoedas e aqueles que se destinam a direcionar tráfego através de serviços de verificação telefônica:

Relacionado à criptomoeda
Associado a serviços de marcação telefônica

guarda-moedas[.]cc
site de registro de chamadas[.].

carteira mcx[.]co
registros telefônicos[.]espaço

btcnoise[.]com
fone-descobrir[.]xyz

criptominer[.]assistir
descoberta de número[.]informações

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

Очистка

Por padrão, a opção “Graph Cleanup” está habilitada e todos os elementos irrelevantes serão removidos do gráfico. Aliás, foi usado em todos os exemplos anteriores. Prevejo uma questão natural: como podemos garantir que algo importante não seja apagado? Vou responder: para analistas que gostam de construir gráficos manualmente, a limpeza automatizada pode ser desabilitada e o número de etapas pode ser selecionado = 1. A seguir, o analista poderá completar o gráfico a partir dos elementos que necessita e remover elementos de o gráfico que são irrelevantes para a tarefa.

Já no gráfico, o histórico de alterações no whois, no DNS, bem como nas portas abertas e nos serviços executados neles fica à disposição do analista.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

Phishing financeiro

Investigamos as atividades de um grupo APT, que durante vários anos realizou ataques de phishing contra clientes de vários bancos em diferentes regiões. Uma característica deste grupo era o registro de domínios muito semelhantes aos nomes de bancos reais, e a maioria dos sites de phishing tinham o mesmo design, sendo as únicas diferenças nos nomes dos bancos e seus logotipos.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio
Nesse caso, a análise gráfica automatizada nos ajudou muito. Tomando um de seus domínios - lloydsbnk-uk[.]com, em poucos segundos construímos um gráfico com profundidade de 3 etapas, que identificou mais de 250 domínios maliciosos que foram usados ​​por este grupo desde 2015 e continuam a ser usados . Alguns destes domínios já foram adquiridos por bancos, mas os registos históricos mostram que foram previamente registados por invasores.

Para maior clareza, a figura mostra um gráfico com profundidade de 2 etapas.

Vale ressaltar que já em 2019, os invasores mudaram um pouco de tática e passaram a registrar não só domínios de bancos para hospedagem de web phishing, mas também domínios de diversas consultorias para envio de e-mails de phishing. Por exemplo, os domínios swift-department.com, saudconsultancy.com, vbgrigoryanpartners.com.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

Gangue cobalto

Em Dezembro de 2018, o grupo de hackers Cobalt, especializado em ataques direccionados a bancos, enviou uma campanha por correio electrónico em nome do Banco Nacional do Cazaquistão.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio
As cartas continham links para hXXps://nationalbank.bz/Doc/Prikaz.doc. O documento baixado continha uma macro que iniciava o Powershell, que tentaria carregar e executar o arquivo de hXXp://wateroilclub.com/file/dwm.exe em %Temp%einmrmdmy.exe. O arquivo %Temp%einmrmdmy.exe, também conhecido como dwm.exe, é um stager CobInt configurado para interagir com o servidor hXXp://admvmsopp.com/rilruietguadvtoefmuy.

Imagine não poder receber esses e-mails de phishing e realizar uma análise completa dos arquivos maliciosos. O gráfico do domínio malicioso nationalbank[.]bz mostra imediatamente conexões com outros domínios maliciosos, atribui-o a um grupo e mostra quais arquivos foram usados ​​no ataque.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio
Vamos pegar o endereço IP 46.173.219[.]152 deste gráfico e construir um gráfico a partir dele em uma passagem e desligar a limpeza. Existem 40 domínios associados a ele, por exemplo, bl0ckchain[.]ug
paypal.co.uk.qlg6[.]pw
criptoelips[.]com

A julgar pelos nomes de domínio, parece que são utilizados em esquemas fraudulentos, mas o algoritmo de limpeza percebeu que não estavam relacionados com este ataque e não os colocou no gráfico, o que simplifica muito o processo de análise e atribuição.

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio
Se você reconstruir o gráfico usando nationalbank[.]bz, mas desabilitando o algoritmo de limpeza do gráfico, ele conterá mais de 500 elementos, a maioria dos quais não tem nada a ver com o grupo Cobalt ou seus ataques. Um exemplo da aparência de tal gráfico é fornecido abaixo:

Sua saída, gráfico: como não encontramos um bom gráfico de rede e criamos o nosso próprio

Conclusão

Após vários anos de ajustes, testes em investigações reais, pesquisas de ameaças e caça a invasores, conseguimos não apenas criar uma ferramenta única, mas também mudar a atitude dos especialistas da empresa em relação a ela. Inicialmente, os especialistas técnicos desejam controle total sobre o processo de construção do gráfico. Convencê-los de que a construção automática de gráficos poderia fazer isso melhor do que uma pessoa com muitos anos de experiência foi extremamente difícil. Tudo foi decidido pelo tempo e múltiplas verificações “manuais” dos resultados produzidos pelo gráfico. Agora os nossos especialistas não só confiam no sistema, mas também utilizam os resultados que obtém no seu trabalho diário. Esta tecnologia funciona dentro de cada um dos nossos sistemas e permite-nos identificar melhor ameaças de qualquer tipo. A interface para análise gráfica manual está integrada em todos os produtos do Grupo-IB e expande significativamente os recursos de caça ao crime cibernético. Isto é confirmado por análises de analistas de nossos clientes. E nós, por sua vez, continuamos a enriquecer o gráfico com dados e a trabalhar em novos algoritmos usando inteligência artificial para criar o gráfico de rede mais preciso.

Fonte: habr.com

Adicionar um comentário