Detectar novas ameaças usando o Microsoft Sentinel com o Firewall de Aplicativo Web do Azure

Os aplicativos web enfrentam com frequência ataques mal-intencionados que exploram vulnerabilidades conhecidas, como Ataques de Injeção de Código e Travessia de Caminho. Esses ataques são difíceis de evitar no código do aplicativo, já que exigem manutenção constante, aplicação de patches e monitoramento em vários níveis da arquitetura do aplicativo. Uma solução de Firewall de Aplicativo Web (WAF) pode fornecer uma segurança mais rápida e centralizada ao corrigir uma vulnerabilidade conhecida para todos os aplicativos web, em vez de proteger cada um individualmente. O Firewall de Aplicativo Web (WAF) do Azure é um serviço nativo de nuvem que protege os aplicativos web contra técnicas comuns de hacking. O recurso pode ser implantado rapidamente para obter visibilidade total do tráfego do aplicativo web e bloquear ataques mal-intencionados na web.

Ao integrar o WAF do Azure ao Microsoft Sentinel (uma solução SIEM nativa de nuvem), você pode automatizar a detecção e resposta a ameaças/incidentes/alertas, além de economizar tempo e esforço atualizando a política do WAF. Este artigo mostra como criar detecções/regras analíticas no Microsoft Sentinel para ataques como a Injeção de Código.

Consultas de detecção para ataques a aplicativos web

O Repositório de Segurança de Rede do Azure no GitHub contém as seguintes consultas predefinidas que você pode usar para criar regras analíticas no Microsoft Sentinel. Essas regras analíticas ajudam na detecção e resposta automatizadas a ataques como Injeção de Código, Travessia de Caminho e baseados em varredura.

  • Ataques de Injeção de Código (WAF de Gateway de Aplicativo e do Front Door)

    Ataque de injeção de código é um tipo de ataque cibernético que envolve a injeção de um código mal-intencionado em um aplicativo. Em seguida, o aplicativo interpreta ou executa o código, afetando o desempenho e o funcionamento do aplicativo.

  • Ataques de Travessia de Caminho (WAF de Gateway de Aplicativo e do Front Door)

    Ataque de travessia de caminho é um tipo de ataque cibernético que envolve a manipulação dos caminhos de arquivo de um aplicativo para acessar arquivos e diretórios armazenados fora da pasta raiz da web. O invasor pode usar sequências de caracteres especiais, como …/ ou …\, para subir na hierarquia do diretório e acessar dados sensíveis ou confidenciais como arquivos de configuração, códigos-fonte ou arquivos do sistema.

  • Ataques baseados em varredura (WAF de Gateway de Aplicativo)

    Um ataque da web baseado em varredura é um tipo de ataque cibernético que envolve o uso de um scanner de vulnerabilidades da web para encontrar e explorar pontos fracos de segurança em aplicativos web. Um scanner de vulnerabilidades da web é uma ferramenta que verifica os aplicativos web automaticamente em busca de vulnerabilidades comuns, como injeção de SQL, XSS, CSRF e travessia de caminho. O invasor pode usar o scanner para identificar alvos vulneráveis e iniciar ataques para comprometê-los.

Configurar regras analíticas no Sentinel para ataques a aplicativos web

Os seguintes pré-requisitos são necessários para configurar regras analíticas:

Use as etapas a seguir para configurar uma regra analítica no Sentinel.

  1. Navegue até o Microsoft Sentinel e selecione a guia Analytics. Selecione Criar e, a seguir, selecione a Regra de consulta agendada. Screenshot showing creating a scheduled query rule.

    As táticas e técnicas fornecidas aqui são somente para fins de informação e originárias da Base de Dados de Ataques do MITRE — uma base de dados de táticas e técnicas de adversários baseadas em observações do mundo real.

  2. Você pode usar o assistente de regras do Analytics para definir um nível de gravidade para esse incidente. Como esses ataques são enormes, selecionamos Alta Gravidade.

    Screenshot showing the analytics rule wizard.

  3. Na página Definir lógica de regras, insira a seguinte consulta de Injeção de Código predefinida: você pode encontrar essa consulta no Repositório de Segurança de Rede do Azure no GitHub. Da mesma forma, você pode usar qualquer outra consulta disponível no repositório para criar regras no Analytics e detectar os respectivos padrões de ataque.

     let Threshold = 3; 
    
     AzureDiagnostics
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Matched"
     | where Message has "Injection" or Message has "File Inclusion"
     | where ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or ruleGroup_s ==    "REQUEST-931-APPLICATION-ATTACK-RFI" or ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or    ruleGroup_s == "REQUEST-933-APPLICATION-ATTACK-PHP" or ruleGroup_s ==    "REQUEST-942-APPLICATION-ATTACK-SQLI" or ruleGroup_s == "REQUEST-921-PROTOCOL-ATTACK" or ruleGroup_s    == "REQUEST-941-APPLICATION-ATTACK-XSS"
     | project transactionId_g, hostname_s, requestUri_s, TimeGenerated, clientIp_s, Message,    details_message_s, details_data_s
     | join kind = inner(
    
     AzureDiagnostics
    
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Blocked") on transactionId_g
     | extend Uri = strcat(hostname_s,requestUri_s)
     | summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), TransactionID = make_set   (transactionId_g,100), Message = make_set(Message,100), Detail_Message = make_set(details_message_s,   100), Detail_Data = make_set(details_data_s,100), Total_TransactionId = dcount(transactionId_g) by    clientIp_s, Uri, action_s
     | where Total_TransactionId >= Threshold
    

    Screenshot showing the rule query.

    Observação

    É importante garantir que os logs do WAF já estejam no Workspace do Log Analytics antes de criar essa regra analítica. Caso contrário, o Sentinel não reconhecerá algumas das colunas na consulta e você precisará adicionar dados adicionais, como | extend action_s = column_ifexists(“action_s”, “”), transactionId_g = column_ifexists(“transactionId_g”, “”), para cada coluna que retornar um erro. Essa entrada de dados cria os nomes de coluna manualmente e lhes atribui valores nulos. Para ignorar essa etapa, comece por enviar os logs do WAF para o workspace.

  4. Na página Configurações de Incidentes, habilite a configuração Criar incidentes a partir de alertas disparados por essa regra analítica. O agrupamento de alertas pode ser configurado conforme necessário.

  5. Opcionalmente, você também pode adicionar qualquer resposta automatizada ao incidente, se necessário. Confira Detecção e resposta automatizadas do WAF do Azure com Microsoft Sentinel para obter informações mais detalhadas sobre a configuração de resposta automatizada.

  6. Para terminar, selecione Salvar na guia Revisar e criar.

Essa regra analítica permite que o Sentinel crie um incidente com base nos logs do WAF que registrem quaisquer ataques de Injeção de Código. O WAF do Azure bloqueia esses ataques por padrão, mas a criação de incidentes fornece mais suporte para que o analista de segurança responda a ameaças futuras.

Você pode configurar regras analíticas no Sentinel para vários ataques a aplicativos web usando as consultas de detecção predefinidas disponíveis no Repositório de Segurança de Rede do Azure no GitHub. Essas consultas serão adicionadas diretamente aos Modelos de Detecção do Sentinel. Após terem sido adicionadas, essas consultas estarão diretamente disponíveis na seção de Modelos de Regras Analíticas do Sentinel.

Próximas etapas