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.

Integrando e 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 
 

Usando o Comportamento de Entidade (Entity behavior) do Microsoft Sentinel

O conceito de comportamento de entidade é muito importante em uma investigação ou suspeita de uso indevido de direitos ou ações que indiquem uma falha ou invasão.

Com o Entity Behavior podemos usar um IP, nome de maquina, nome do recurso no Azure o a conta de um usuário para verificar o histórico do que ele fez ao longo de um periodo e identificar um comportamento prejudicial.

Configurando o Entity Behavior

Ao clicar no Sentinel no menu “Threat management –> Entity behavior” você verá a opção “Entity behavior settings” onde irá configurar o que você quer incluir na pesquisa. Veja que no meu exemplo selecionei as diferentes fontes de auditoria que eu tenho habilitadas.

image

Note que você poderá usar o UEBA (User and Entity Behavior Analytics) que não trataremos aqui neste post, mas é uma feature do Sentinel para analise de comportamento analitico de entidades de forma autonoma.

Executando a consulta

O passo seguinte é escolher a entidade, ou objeto que você irá gerar os dados. Usarei como exemplo o meu usuário de teste:

Oash&ard Microsoft Sentinel ) 
Microsoft Sentinel I Entity behavior 
'K Last 24 v Emity Etti ng s 
%ffkbæks 
Hunting 
Notebwks 
%tity 
ATTACK 
Co ntent manag 
(Preview' 
Co nfig 
Gui&s & 
Si«ic

Uma vez selecionado o que você irá analisar, o Sentinel trará a tela de resumo com os dados do objeto, um gráfico de ações, anomalias ou atividades potencialmente perigosas e um quadro com análises do lado direito (Top Insights) como grupos e usuários similares, ações administrativas executadas como bloqueio de conta, privilégios cedidos, ações de SAP, anomalias, UEBA, therat indicators e watchlist.

No meu exemplo veja que no Top Insights uma regra de DLP foi alertada como atividade que pode ser indicativo de um comportamento perigoso.

image

Alem disso, no quadro Overview poderá notar que foi executada uma operação de pesquisa detectada por uma das regras analiticas do Sentinel. Essa regra detecta operações de listagem de objetos ativos, categorizado no MITRE como Initial Access.

image

Usando agora o botão Investigate você verá um interessante painel com o resumo das ações realizadas por esse usuário que está sendo analisado.

Note que tenho um detalhamento por objetos que foram acessados ou ações que geraram determinado comportamento.

image

Ao clicar na maioria deles não verá um resumo já analisado como abaixo, pois estarão com eventos agregados e será necessário abrir o Log Analytics, como a tela abaixo. Nesse caso abri um dos objetos e pedi seu detalhamento.

Apenas como observação, usei a consulta de UEBA para detectar ações onde eu tive anteriormente um alto numero de ações de deleção de arquivos.

Quer/ ed 。 「

P , , 囗

Conclusão

Ao ocorrer uma tentativa ou suspeita de uso indevido de privilégios ou comportamento errático, o Entity behavior é a ferrramenta que permitirá obter insights rápidos a partir da agregação de todas as features do Sentinel.

Com certeza é uma ferramenta excelente para o dia a dia de analises e detecções de ameaças que podem ainda não ter gerado um incidente mais grave ou que precisamos encontrar um ponto de ruptura de comportamento.