Utilizando os IoCs do Microsoft Defender Threat Intelligence no Sentinel

A alguns anos que a Microsoft adquiriu a RiskIQ e lançou recentemente o Microsoft Defender for Threat Intel (MDTI).

O que é o MDTI?

Já tratei algumas vezes sobre IoCs, ou indicadores de comprometimento em inglês, e como eles podem ser integrados como o caso do VirusTotal (Marcelo Sincic | Enriquecendo o Sentinel com dados do Virus Total).

Nesse post vamos falar da solução do MDTI e como integrar a base dele ao Senitnel e utilizar para hunting e análise de incidentes e alertas em seu ambiente.

Primeiramente é importante saber que o serviço MDTI é pago por usuário em um modelo de licenciamento por contrato, mas a base de dados pode ser importada para o Sentinel por meio de um conector.

Conectando o Sentinel a base do MDTI

Para isso você precisará instalar a solução Microsoft Defender for Threat Intel no Sentinel a paritr do Content Hub e depois configurar o Data Connector como abaixo:

8

Uma vez configurado será feita a ingestão diária os dados do MDTI para a base Threat Intelligence do Sentinel:

7

Importante lembrar que os IoCs ingeridos do MDTI irão se somar aos IoCs customizados ou importados de outras bases que você tenha configurado.

Configurando as integrações de Log com TIs

Ao instalar a solução e fazer a configuração do conector de dados, o passo seguinte é configurar e instalar as regras de cruzamento de dados utilizando o Analytics do Sentinel.

São varias regras diferentes que você poderá utilizar que já estão prontas:

9

Estas regras são compostas de consultas KQL que analisar um alerta e incidente para cruzar co ma base de IoCs importadas, resultando em um enriquecimento de dados ao validar que um determinado IP ou URL maliciosa foi acessada ou tentou acessar seu ambiente.

Claro que isso pode ser feito manualmente, bastaria rodar uma query KQL manual ou customizada no Sentinel em hunting queries para cruzar IPs e URLs com os diferentes logs do Sentinel existentes. Um exemplo disso foi um recente cliente onde discutimos o cruzamento do log do Umbrella DNS com o MDTI para detectar sites maliciosos acessados pelos usuários.

Visualizando os incidentes com os dados do MDTI

Agora vem a parte prática. Tudo configurado você terá alertas e incidentes novos em seu ambiente:

6

Vamos abrir os detalhes do primeiro e ver o IP que indica um ataque potencial:

1

Uma vez que no proprio incidente já sei que o IP é considerado suspeito, podemos investigar os detalhes importados na base para visualizar os detalhes:

5

E por fim, vou utilizar a interface do MDTI para consultar os dados do IP, lembrando que neste caso preciso ter uma licença de MDTI para ver os detalhes:

3

Vamos agora fazer o mesmo processo com o segundo incidente de exemplo que tenho na minha lista e abrir os detalhes no MDTI:

2

4

Conclusão

O serviço Microsoft Defender for Threat Intel (MDTI) irá ajudá-lo a detectar diversas formas de ataques vindas de ofensores e grupos profissionais ou previamente identificados.

Alem disso, sua base é rica em detalhes do tipo de ataque, alvos e grupos que atuam com aquele IoC especifico que foi utilizado para tentar acesso ao seu ambiente.

Utilizando o Log Analytics do Application Insights para detectar anomalias em Web Apps

Em um post passado abordei o uso do Log do Application Insigths para visualizar ataques e anomalias Marcelo Sincic | Utilizando o Azure Application Insigths na Analise de Vulnerabilidades

Porem, vi a necessidade de complementar para alguns que me pediram para integrar as consultas com logs do MCAS, Defender e outros.

Partindo do principio que em todas as ferramentas utilizaremos KQL (Kusto Query Language) o primeiro passo é escrever o comando para isso e trazer o log como a imagem abaixo:

Captura de tela 2023-07-17 103348

Na consulta acima é possivel trazer os dados que estão no dashboard do artigo anterior, porem por estar escrito em KQL poderá customizar as colunas, formatos e filtra o que melhor lhe interessa.

Por exemplo, poderá alerar a consulta original para trazer os IPs por paises que mais consultaram as páginas de seu site para detectar origens que deseja filtrar e barrar no firewall:

AppRequests
    | where TimeGenerated > ago(1d)
    | where Success == False
    | summarize count() by ClientIP, ClientCountryOrRegion

Captura de tela 2023-07-17 104320

Outro exemplo é filtrar as requisições que tentaram baixar arquivos compactados diretamente de seu site, como o exemplo abaixo:

AppRequests
    | where TimeGenerated > ago(1d)
    | where Success == False
    | where Url contains "zip" or Url contains "rar"
    | project ClientCountryOrRegion, ClientStateOrProvince, ClientCity, ClientIP, Url

Captura de tela 2023-07-17 104909

Um terceiro exemplo é eu conseguir identificar as tentativas de SQL Injection a partir dos comandos básicos utilizados para esse tipo de exploração de vulnerabilidade:

AppRequests
    | where TimeGenerated > ago(1d)
    | where Success == False
    | where Url contains "select" or Url contains "union"
    | project Url, ClientCountryOrRegion, ClientStateOrProvince, ClientCity, ClientIP

Captura de tela 2023-07-17 105200

Conclusão

Com o uso dos logs armazenados de sua aplicação será possivel visualizar os principais ataques e como se defender melhorando sua aplicação e ter um monitoramento de atividades.

Enriquecendo o Sentinel com dados do Virus Total

Apresentando o Virus Total

O site Virus Total é um serviço muito conhecido do time de cibersegurança por permitir acompanhar diversos IoCs (Indicators of Compromissed) como hash de arquivo, IP, dominio ou URL baseado em uma pesquisa simples.
O Virus Total tem uma modalidade de assinatura onde é gratuita e possui limites para consultas, a fim de evitar o uso por bots ou sistemas de terceiros.
Veja abaixo os detalhes e note que temos aqui nossa API Key mesmo sendo uma conta gratuita:

Solution no Sentinel

Já que temos a possibilidade de integrar os dados do Virus Total com os alertas e incidentes do Sentinel, a primeira ação é instalarmos a Solution:

Ao instalar a solução verá na tela de informações a esquerda que inclui 9 playbooks que irão colher os dados do incidente, alerta, domínio ou arquivo para buscar e correlacionar os dados do Sentinel com o Virus Total.
O passo seguinte é clicar em Automation --> Playbook templates e instalar os playbooks, para isso poderá filtrar pela palavra "virus total" e usar o botão Create Template para abrir a janela de instalação do playbook em seu ambiente:


Nesta tela verá que não é necessário ainda conectar seu API Key nem o Log Analytics, isso será feito após o deploy quando ele abrir a tela de design do Logic Apps:


Note que ao abrir as tarefas e sequencia do Logic Apps verá que a conexão do Virus Total e do LogAnalytics estarão com o simbolo de aviso e o botão salvar não irá funcionar até que arrume as conexões.
Para isso a primeira vez será necessáiro clicar em API Connections e informar os dados tanto do Virus Total quanto do Log Analaytics que será utilizado. Abaixo o exemplo de conexão com a Virus Total:


Nos próximos conectores você não precisará mais configurar as conexões, pois ele irá permitir utilizar a conexão já configurada nos playbooks anteriores, como a imagem abaixo:


Lembre-se que precisará conectar tanto a API do Virus Total quanto do Log Analytics (workspace ID e Key).
Uma vez configurado, agora você depois de abrir todas as tarefas e indicar as conexões poderá salvar o Logic Apps e verá que ele irá aparecer na tab Active playbooks:

Criando a Automação

Agora que já importamos a solução e criamos os playbooks que desejamos usar, o passo seguinte é criar a regra para executá-lo, chamada de Automation Rule.
Para isso clique no botão Create --> Automation Rule e indique o nome da regra e o disparador (trigger) que pode ser um incidente novo, alterado ou um novo alerta.
Ao escolher o tipo de disparador utilize como ação Run Playbook para escolher um dos que criamos no passo anterior:


Ao criar a regra há varias formas de filtros que você poderá utilizar, por exemplo para detectar que há um arquivo que será analisado já que um dos playbooks é especifico para hash. Tambem poderá filtrar apenas para certos tipos de incidentes ou alertas.

Conclusão

Integrar diferentes serviços para ter IoCs de diversas fontes irá ajudar muito em suas análises de incidentes.
Tambem estão sendo testados nesse momento em private preview widgets para trazer dados do Anomali, Record Future e do Virus Total quando você estiver investigando uma entidade (Entity) mas esse é outro post futuro