Partilhar via


Agregar dados do Microsoft Sentinel com regras de resumo (visualização)

Use regras de resumo no Microsoft Sentinel para agregar grandes conjuntos de dados em segundo plano para uma experiência de operações de segurança mais suave em todas as camadas de log. Os dados de resumo são pré-compilados em tabelas de log personalizadas e fornecem desempenho de consulta rápido, incluindo consultas executadas em dados derivados de camadas de log de baixo custo. As regras de resumo podem ajudar a otimizar seus dados para:

  • Análise e relatórios, especialmente em grandes conjuntos de dados e intervalos de tempo, conforme necessário para análise de segurança e incidentes, relatórios de negócios mês a mês ou anuais e assim por diante.
  • Economia de custos em logs detalhados, que você pode reter por tão pouco ou quanto tempo precisar em uma camada de log mais barata, e enviar como dados resumidos apenas para uma tabela do Google Analytics para análise e relatórios.
  • Segurança e privacidade de dados, removendo ou ofuscando detalhes de privacidade em dados compartilháveis resumidos e limitando o acesso a tabelas com dados brutos.

Acesse os resultados da regra de resumo por meio da Kusto Query Language (KQL) em atividades de deteção, investigação, caça e relatórios. Use resultados de regras de resumo por períodos mais longos em investigações históricas, caça e atividades de conformidade.

Os resultados da regra de resumo são armazenados em tabelas separadas no plano de dados do Google Analytics e cobrados de acordo. Para obter mais informações sobre planos de dados e custos de armazenamento, consulte Selecionar um plano de tabela com base em padrões de uso em um espaço de trabalho do Log Analytics

Importante

As regras sumárias estão atualmente em pré-visualização. Consulte os Termos de Utilização Suplementares das Pré-visualizações do Microsoft Azure para obter os termos legais adicionais que se aplicam às funcionalidades do Azure que estão em versão beta, pré-visualização ou ainda não disponibilizadas para disponibilidade geral.

O Microsoft Sentinel está geralmente disponível na plataforma unificada de operações de segurança da Microsoft no portal Microsoft Defender. Para visualização, o Microsoft Sentinel está disponível no portal do Defender sem o Microsoft Defender XDR ou uma licença E5. Para obter mais informações, consulte Microsoft Sentinel no portal do Microsoft Defender.

Pré-requisitos

Para criar regras de resumo no Microsoft Sentinel:

Recomendamos que você experimente a consulta de regra de resumo na página Logs antes de criar a regra. Verifique se a consulta não atinge ou se aproxima do limite de consulta e verifique se a consulta produz o esquema pretendido e os resultados esperados. Se a consulta estiver próxima dos limites de consulta, considere usar um menor binSize para processar menos dados por compartimento. Você também pode modificar a consulta para retornar menos registros ou remover campos com maior volume.

Criar uma regra de resumo

Crie uma nova regra de resumo para agregar um grande conjunto específico de dados em uma tabela dinâmica. Configure a frequência da regra para determinar com que frequência o conjunto de dados agregados é atualizado a partir dos dados brutos.

  1. No portal do Azure, no menu de navegação do Microsoft Sentinel, em Configuração, selecione Regras de resumo (Pré-visualização). No portal do Defender, selecione Regras de resumo de configuração > do Microsoft Sentinel > (Visualização). Por exemplo:

    Captura de ecrã da página Regras de resumo no portal do Azure.

  2. Selecione + Criar e insira os seguintes detalhes:

    • Nome. Insira um nome significativo para sua regra.

    • Descrição. Insira uma descrição opcional.

    • Tabela de destino. Defina a tabela de log personalizada onde seus dados são agregados:

      • Se você selecionar Tabela de log personalizada existente, selecione a tabela que deseja usar.

      • Se você selecionar Nova tabela de log personalizada, insira um nome significativo para a tabela. O nome completo da tabela usa a seguinte sintaxe: <tableName>_CL.

  3. Recomendamos que você habilite as configurações de diagnóstico do SummaryLogs em seu espaço de trabalho para obter visibilidade para runas e falhas históricas. Se as configurações de diagnóstico SummaryLogs não estiverem habilitadas, você será solicitado a habilitá-las na área Configurações de diagnóstico .

    Se as configurações de diagnóstico SummaryLogs já estiverem habilitadas, mas você quiser modificá-las, selecione Configurar configurações avançadas de diagnóstico. Quando voltar à página do assistente Regra de resumo, selecione Atualizar para atualizar os detalhes da configuração.

    Importante

    As configurações de diagnóstico SummaryLogs têm custos adicionais. Para obter mais informações, consulte Configurações de diagnóstico no Azure Monitor.

  4. Selecione Avançar: Definir lógica > de resumo para continuar.

  5. Na página Definir lógica de resumo, insira sua consulta de resumo. Por exemplo, para extrair conteúdo do Google Cloud Platform, talvez você queira inserir:

    GCPAuditLogs
    | where ServiceName == 'pubsub.googleapis.com'
    | summarize count() by Severity
    

    Para obter mais informações, consulte Cenários de regra de resumo de exemplo e KQL (Kusto Query Language) no Azure Monitor.

  6. Selecione Visualizar resultados para mostrar um exemplo dos dados que você coletaria com a consulta configurada.

  7. Na área Agendamento de consultas, defina os seguintes detalhes:

    • Com que frequência pretende que a regra seja executada
    • Se você quer que a regra seja executada com qualquer tipo de atraso, em minutos
    • Quando você deseja que a regra comece a ser executada

    Os horários definidos no agendamento são baseados na timegenerated coluna em seus dados

  8. Selecione Seguinte: Rever + criar >>Guardar para concluir a regra de resumo.

As regras de resumo existentes são listadas na página Regras de resumo (Pré-visualização), onde pode rever o estado da regra. Para cada regra, selecione o menu de opções no final da linha para executar qualquer uma das seguintes ações:

  • Exiba os dados atuais da regra na página Logs , como se fosse executar a consulta imediatamente
  • Exibir o histórico de execução da regra selecionada
  • Desative ou habilite a regra.
  • Editar a configuração da regra

Para eliminar uma regra, selecione a linha da regra e, em seguida, selecione Eliminar na barra de ferramentas na parte superior da página.

Nota

O Azure Monitor também dá suporte à criação de regras de resumo por meio da API ou de um modelo do Azure Resource Monitor (ARM). Para obter mais informações, consulte Criar ou atualizar uma regra de resumo.

Exemplos de cenários de regras de resumo

Esta seção analisa cenários comuns para a criação de regras de resumo no Microsoft Sentinel e nossas recomendações sobre como configurar cada regra. Para obter mais informações e exemplos, consulte Usar regras de resumo com logs auxiliares (processo de exemplo) e Fontes de log a serem usadas para ingestão de logs auxiliares.

Encontre rapidamente um endereço IP malicioso no seu tráfego de rede

Cenário: Você é um caçador de ameaças e um dos objetivos da sua equipe é identificar todas as instâncias de quando um endereço IP mal-intencionado interagiu nos logs de tráfego de rede de um incidente ativo, nos últimos 90 dias.

Desafio: Atualmente, o Microsoft Sentinel ingere vários terabytes de logs de rede por dia. Você precisa passar por eles rapidamente para encontrar correspondências para o endereço IP malicioso.

Solução: recomendamos o uso de regras de resumo para fazer o seguinte:

  1. Crie um conjunto de dados resumido para cada endereço IP relacionado ao incidente, incluindo o SourceIP, DestinationIP, MaliciousIP, RemoteIP, , cada listando atributos importantes, como IPType, FirstTimeSeene LastTimeSeen.

    O conjunto de dados de resumo permite pesquisar rapidamente um endereço IP específico e reduzir o intervalo de tempo onde o endereço IP é encontrado. Você pode fazer isso mesmo quando os eventos pesquisados aconteceram há mais de 90 dias, o que está além do período de retenção do espaço de trabalho.

    Neste exemplo, configure o resumo para ser executado diariamente, para que a consulta adicione novos registros de resumo todos os dias até expirar.

  2. Crie uma regra de análise que seja executada por menos de dois minutos no conjunto de dados de resumo, detalhando rapidamente o intervalo de tempo específico em que o endereço IP mal-intencionado interagiu com a rede da empresa.

    Certifique-se de configurar intervalos de execução de até cinco minutos, no mínimo, para acomodar diferentes tamanhos de carga útil resumida. Isso garante que não haja perdas, mesmo quando há um atraso na ingestão de eventos.

    Por exemplo:

    let csl_columnmatch=(column_name: string) {
    summarized_CommonSecurityLog
    | where isnotempty(column_name)
    | extend
        Date = format_datetime(TimeGenerated, "yyyy-MM-dd"),
        IPaddress = column_ifexists(column_name, ""),
        FieldName = column_name
    | extend IPType = iff(ipv4_is_private(IPaddress) == true, "Private", "Public")
    | where isnotempty(IPaddress)
    | project Date, TimeGenerated, IPaddress, FieldName, IPType, DeviceVendor
    | summarize count(), FirstTimeSeen = min(TimeGenerated), LastTimeSeen = min(TimeGenerated) by Date, IPaddress, FieldName, IPType, DeviceVendor
    };
    union csl_columnmatch("SourceIP")
        , csl_columnmatch("DestinationIP") 
        , csl_columnmatch("MaliciousIP")
        , csl_columnmatch("RemoteIP")
    // Further summarization can be done per IPaddress to remove duplicates per day on larger timeframe for the first run
    | summarize make_set(FieldName), make_set(DeviceVendor) by IPType, IPaddress
    
  3. Execute uma pesquisa subsequente ou correlação com outros dados para completar a história do ataque.

Gerar alertas sobre correspondências de inteligência de ameaças com dados de rede

Gere alertas sobre correspondências de inteligência contra ameaças contra dados de rede barulhentos, de alto volume e de baixo valor de segurança.

Cenário: Você precisa criar uma regra de análise para que os logs de firewall correspondam aos nomes de domínio no sistema que foram visitados em relação a uma lista de nomes de domínio de inteligência de ameaças.

A maioria das fontes de dados são logs brutos que são barulhentos e têm alto volume, mas têm menor valor de segurança, incluindo endereços IP, tráfego do Firewall do Azure, tráfego Fortigate e assim por diante. Há um volume total de cerca de 1 TB por dia.

Desafio: Criar regras separadas requer vários aplicativos lógicos, exigindo despesas gerais e custos extras de configuração e manutenção.

Solução: recomendamos o uso de regras de resumo para fazer o seguinte:

  1. Crie uma regra de resumo:

    1. Estenda sua consulta para extrair campos-chave, como o endereço de origem, o endereço de destino e a porta de destino da tabela CommonSecurityLog_CL , que é o CommonSecurityLog com o plano Auxiliar.

    2. Realize uma pesquisa interna nos Indicadores de Inteligência de Ameaças ativos para identificar quaisquer correspondências com nosso endereço de origem. Isso permite que você faça referência cruzada de seus dados com ameaças conhecidas.

    3. Informações relevantes do projeto, incluindo o tempo gerado, o tipo de atividade e quaisquer IPs de origem mal-intencionados, juntamente com os detalhes do destino. Defina a frequência com que deseja que a consulta seja executada e a tabela de destino, como MaliciousIPDetection . Os resultados nesta tabela estão no nível analítico e são cobrados de acordo.

  2. Crie um alerta:

    Criação de uma regra de análise no Microsoft Sentinel que alerta com base nos resultados da tabela MaliciousIPDetection . Esta etapa é crucial para a deteção proativa de ameaças e resposta a incidentes.

Exemplo de regra de resumo:

CommonSecurityLog_CL​
| extend sourceAddress = tostring(parse_json(Message).sourceAddress), destinationAddress = tostring(parse_json(Message).destinationAddress), destinationPort = tostring(parse_json(Message).destinationPort)​
| lookup kind=inner (ThreatIntelligenceIndicator | where Active == true ) on $left.sourceAddress == $right.NetworkIP​
| project TimeGenerated, Activity, Message, DeviceVendor, DeviceProduct, sourceMaliciousIP =sourceAddress, destinationAddress, destinationPort

Usar regras de resumo com logs auxiliares (processo de exemplo)

Este procedimento descreve um processo de exemplo para usar regras de resumo com logs auxiliares, usando uma conexão personalizada criada por meio de um modelo ARM para ingerir dados CEF do Logstash.

  1. Configure seu conector CEF personalizado do Logstash:

    1. Implante o seguinte modelo ARM em seu espaço de trabalho do Microsoft Sentinel para criar uma tabela personalizada com regras de coleta de dados (DCR) e um ponto de extremidade de coleta de dados (DCE):

      Implementar no Azure

    2. Observe os seguintes detalhes da saída do modelo ARM:

      • tenant_id
      • data_collection_endpoint
      • dcr_immutable_id
      • dcr_stream_name
    3. Crie um aplicativo Microsoft Entra e anote a ID do Cliente e o Segredo do aplicativo. Para obter mais informações, consulte Tutorial: Enviar dados para o Azure Monitor Logs com API de ingestão de logs (portal do Azure).

    4. Use nosso script de exemplo para atualizar seu arquivo de configuração do Logstash. As atualizações configuram o Logstash para enviar logs CEF para a tabela personalizada criada pelo modelo ARM, transformando dados JSON para o formato DCR. Neste script, certifique-se de substituir os valores de espaço reservado por seus próprios valores para a tabela personalizada e o aplicativo Microsoft Entra que você criou anteriormente.

  2. Verifique se os dados do CEF estão fluindo do Logstash conforme o esperado. Por exemplo, no Microsoft Sentinel, vá para a página Logs e execute a seguinte consulta:

    CefAux_CL
    | take 10
    
  3. Crie regras de resumo que agreguem os dados do MIE. Por exemplo:

    • Dados de incidente de pesquisa de preocupação (IoC): procure IoCs específicos executando consultas de resumo agregadas para trazer ocorrências exclusivas e, em seguida, consulte apenas essas ocorrências para obter resultados mais rápidos. O exemplo a seguir mostra um exemplo de como trazer um feed exclusivo Source Ip junto com outros metadados, que podem ser usados em pesquisas de IoC:

      // Daily Network traffic trend Per Destination IP along with Data transfer stats 
      // Frequency - Daily - Maintain 30 day or 60 Day History. 
        Custom_CommonSecurityLog 
        | extend Day = format_datetime(TimeGenerated, "yyyy-MM-dd") 
        | summarize Count= count(), DistinctSourceIps = dcount(SourceIP), NoofByesTransferred = sum(SentBytes), NoofBytesReceived = sum(ReceivedBytes)  
        by Day,DestinationIp, DeviceVendor 
      
    • Consulte uma linha de base resumida para detetar anomalias. Em vez de executar suas consultas em grandes períodos históricos, como 30 ou 60 dias, recomendamos que você ingira dados em logs personalizados e, em seguida, consulte apenas dados de linha de base resumidos, como para deteções de anomalias de séries temporais. Por exemplo:

      // Time series data for Firewall traffic logs 
      let starttime = 14d; 
      let endtime = 1d; 
      let timeframe = 1h; 
      let TimeSeriesData =  
      Custom_CommonSecurityLog 
        | where TimeGenerated between (startofday(ago(starttime))..startofday(ago(endtime))) 
        | where isnotempty(DestinationIP) and isnotempty(SourceIP) 
        | where ipv4_is_private(DestinationIP) == false 
        | project TimeGenerated, SentBytes, DeviceVendor 
        | make-series TotalBytesSent=sum(SentBytes) on TimeGenerated from startofday(ago(starttime)) to startofday(ago(endtime)) step timeframe by DeviceVendor