Share via


Detetar novas ameaças usando o Microsoft Sentinel com o Azure Web Application Firewall

Os aplicativos da Web enfrentam ataques mal-intencionados frequentes que exploram vulnerabilidades bem conhecidas, como injeção de código e ataques de travessia de caminho. Esses ataques são difíceis de evitar no código do aplicativo, pois exigem manutenção, aplicação de patches e monitoramento constantes em vários níveis da arquitetura do aplicativo. Uma solução WAF (Web Application Firewall) pode fornecer segurança mais rápida e centralizada corrigindo uma vulnerabilidade conhecida para todos os aplicativos Web, em vez de proteger cada um individualmente. O Firewall de Aplicativo Web do Azure é um serviço nativo da nuvem que protege aplicativos Web contra técnicas comuns de invasão da Web. Ele pode ser implantado rapidamente para obter visibilidade total do tráfego do aplicativo Web e bloquear ataques mal-intencionados da Web.

Ao integrar o Azure WAF com o Microsoft Sentinel (uma solução SIEM nativa da nuvem), pode automatizar a deteção e a resposta a ameaças/incidentes/alertas e poupar tempo e esforço na atualização da política WAF. Este artigo mostra como criar regras/deteções analíticas no Microsoft Sentinel para ataques como a injeção de código.

Consultas de deteção para ataques a aplicativos Web

O repositório GitHub do Azure Network Security contém as seguintes consultas pré-criadas que você pode usar para criar regras analíticas no Microsoft Sentinel. Essas regras analíticas ajudam na deteção e resposta automatizadas para ataques como injeção de código, Path Traversal e ataques baseados em scanner.

  • Ataques de injeção de código (Application Gateway e WAF Front Door)

    Um ataque de injeção de código é um tipo de ataque cibernético que envolve a injeção de código malicioso em um aplicativo. Em seguida, o aplicativo interpreta ou executa o código, afetando o desempenho e a função do aplicativo.

  • Ataques Path Traversal (Application Gateway e WAF Front Door)

    Um 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 de diretórios e acessar dados confidenciais, como …/ arquivos de configuração, código-fonte ou …\arquivos do sistema.

  • Ataques baseados em scanner (Application Gateway WAF)

    Um ataque da Web baseado em scanner é um tipo de ciberataque que envolve o uso de um verificador de vulnerabilidades da Web para encontrar e explorar fraquezas de segurança em aplicativos da Web. Um verificador de vulnerabilidades da Web é uma ferramenta que verifica automaticamente os aplicativos da Web em busca de vulnerabilidades comuns, como injeção de SQL, XSS, CSRF e travessia de caminho. O invasor pode usar o mecanismo de varredura para identificar os alvos vulneráveis e lançar 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é Microsoft Sentinel e selecione a guia Análise . Selecione Criar e, em seguida, selecione Regra de consulta agendada. Screenshot showing creating a scheduled query rule.

    As táticas e técnicas fornecidas aqui são apenas informativas e são provenientes da Base de Conhecimento de Ataque MITRE Esta é uma base de conhecimento de táticas e técnicas adversárias baseadas em observações do mundo real.

  2. Você pode usar o assistente de regras do Google Analytics para definir um nível de gravidade para esse incidente. Uma vez que estes são ataques importantes, Alta gravidade é selecionada.

    Screenshot showing the analytics rule wizard.

  3. Na página Definir lógica da regra, insira a seguinte consulta de injeção de código pré-criada: Você pode encontrar essa consulta no repositório GitHub do Azure Network Security. Da mesma forma, você pode usar qualquer outra consulta disponível no repositório para criar regras analíticas e detetar os respetivos 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.

    Nota

    É importante garantir que os logs do WAF já estejam no espaço de trabalho 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ê terá que adicionar entrada extra como | extend action_s = column_ifexists(“action_s”, “”), transactionId_g = column_ifexists(“transactionId_g”, “”) para cada coluna que der um erro. Esta entrada cria os nomes das colunas manualmente e atribui-lhes valores nulos. Para ignorar esta etapa, envie os logs WAF para o espaço de trabalho primeiro.

  4. Na página Configurações de Incidentes, habilite a opção Criar incidentes a partir de alertas acionados por esta regra de análise. 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. Consulte Deteção e resposta automatizadas para o Azure WAF com o Microsoft Sentinel para obter informações mais detalhadas sobre a configuração de resposta automatizada.

  6. Por fim, selecione Salvar na guia Revisar e criar .

Essa regra analítica permite que o Sentinel crie um incidente com base nos logs WAF que registram 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 o analista de segurança responder a ameaças futuras.

Você pode configurar Regras Analíticas no Sentinel para vários ataques a aplicativos Web usando as consultas de deteção pré-criadas disponíveis no repositório GitHub do Azure Network Security. Essas consultas serão adicionadas diretamente aos Modelos de Deteção do Sentinel. Uma vez adicionadas, essas consultas estarão diretamente disponíveis na seção Modelos de regras analíticas do Sentinel.

Próximos passos