Coletar registros do Microsoft Sentinel
Visão geral
Esse analisador extrai campos de registros JSON do Microsoft Sentinel, realiza transformações como extração de endereço IP e manipulação de strings e mapeia os dados extraídos para a UDM, incluindo campos principal, target, security_result e metadata. Ele também processa vários tipos de dados e mescla as entidades extraídas na estrutura da UDM.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso ao Microsoft Sentinel.
Configurar feeds
Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:
- Configurações do SIEM > Feeds
- Central de conteúdo > Pacotes de conteúdo
Configure feeds em "Configurações do SIEM" > "Feeds".
Para configurar um feed, siga estas etapas:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Microsoft Sentinel.
- Selecione Webhook como o Tipo de origem.
- Selecione Microsoft Sentinel como o Tipo de registro.
- Clique em Próxima.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
\n
.
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
- Clique em Próxima.
- Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
- Clique em Gerar chave secreta para autenticar o feed.
- Copie e armazene a chave secreta, porque não será possível conferir esse secret novamente. Você pode gerar uma nova chave secreta, mas a regeneração torna a chave anterior obsoleta.
- Na guia Detalhes, copie o URL do endpoint do feed no campo Informações do endpoint. É necessário especificar esse URL de endpoint no aplicativo cliente.
- Clique em Concluído.
Configurar feeds na Central de conteúdo
Especifique valores para os seguintes campos:
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
\n
.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Tipo de origem: método usado para coletar registros no Google SecOps.
- Namespace do recurso: namespace associado ao feed.
Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
Clique em Gerar chave secreta para autenticar o feed.
Copie e armazene a chave secreta, porque não será possível conferir esse secret novamente. Você pode gerar uma nova chave secreta, mas a regeneração torna a chave anterior obsoleta.
Na guia Detalhes, copie o URL do endpoint do feed no campo Informações do endpoint. É necessário especificar esse URL de endpoint no aplicativo cliente.
Criar uma chave de API para o feed de webhook
Acesse console doGoogle Cloud > Credenciais.
Clique em Criar credenciais e, em seguida, selecione Chave de API.
Restrinja o acesso da chave de API à API Google Security Operations.
Especifique o URL do endpoint
- No aplicativo cliente, especifique o URL do endpoint HTTPS fornecido no feed do webhook.
Ative a autenticação especificando a chave de API e a chave secreta como parte do cabeçalho personalizado no seguinte formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendação: especifique a chave de API como um cabeçalho em vez de no URL. Se o cliente de webhook não aceitar cabeçalhos personalizados, especifique a chave de API e a chave secreta usando parâmetros de consulta no seguinte formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Substitua:
ENDPOINT_URL
: o URL do endpoint do feed.API_KEY
: a chave de API para autenticar no Google Security Operations.SECRET
: a chave secreta gerada para autenticar o feed.
Configurar o app lógico para incidentes do Microsoft Sentinel
Para configurar o aplicativo lógico para incidentes do Microsoft Sentinel, siga estas etapas:
- Faça login no portal do Azure.
- Clique em Criar um recurso.
- Pesquise "Logic App".
- Clique em Criar para iniciar o processo de criação.
- Especifique valores para os seguintes parâmetros de entrada:
- Assinatura: selecione a assinatura.
- Grupo de recursos: selecione o grupo de recursos.
- Nome: insira um nome para o aplicativo lógico.
- Região: selecione a região.
- Espaço de trabalho da Análise de registros: selecione o espaço de trabalho da Análise de registros.
- Clique em Revisar + criar.
- Clique em Criar.
- Depois que o aplicativo lógico for criado, clique em Ir para o recurso.
- Clique em Ferramentas de desenvolvimento > Designer de aplicativos lógicos.
- Clique em Adicionar um acionador.
- Pesquise Microsoft Sentinel.
- Selecione Incidente do Microsoft Sentinel como o gatilho.
- Se você ainda não tiver criado uma conexão com o Microsoft Sentinel, faça isso agora. Clique em Criar novo e siga as instruções para fazer a autenticação.
- Clique em Inserir uma nova etapa.
- Clique em Adicionar uma ação.
- Pesquise e selecione HTTP como a ação.
- Especifique valores para os seguintes parâmetros de entrada:
- URI: o URL do endpoint do feed.
- Método: POST
- Cabeçalhos: adicione os seguintes cabeçalhos:
- Content-Type: application/json
- X-goog-api-key: a chave de API para autenticação no Google Security Operations.
- X-Webhook-Access-Key: a chave secreta que você gerou para autenticar o feed.
Configurar o aplicativo lógico para alertas do Microsoft Sentinel
Para configurar o aplicativo lógico para alertas do Microsoft Sentinel, siga estas etapas:
- Acesse a página inicial do portal do Azure.
- Clique em Criar um recurso.
- Pesquise "Logic App".
- Clique em Criar para iniciar o processo de criação.
- Especifique valores para os seguintes parâmetros de entrada:
- Assinatura: selecione a assinatura.
- Grupo de recursos: selecione o grupo de recursos.
- Nome: insira um nome para o aplicativo lógico.
- Região: selecione a região.
- Espaço de trabalho da Análise de registros: selecione o espaço de trabalho da Análise de registros.
- Clique em Revisar + criar.
- Clique em Criar.
- Depois que o aplicativo lógico for criado, clique em Ir para o recurso.
- Clique em Ferramentas de desenvolvimento > Designer de aplicativos lógicos.
- Clique em Adicionar um acionador.
- Pesquise Microsoft Sentinel.
- Selecione Alerta do Microsoft Sentinel como o acionador.
- Se você ainda não tiver criado uma conexão com o Microsoft Sentinel, faça isso agora. Clique em Criar novo e siga as instruções para fazer a autenticação.
- Clique em Inserir uma nova etapa.
- Clique em Adicionar uma ação.
- Pesquise e selecione HTTP como a ação.
- Especifique valores para os seguintes parâmetros de entrada:
- URI: o URL do endpoint do feed.
- Método: POST
- Cabeçalhos: adicione os seguintes cabeçalhos:
- Content-Type: application/json
- X-goog-api-key: a chave de API para autenticação no Google Security Operations.
- X-Webhook-Access-Key: a chave secreta que você gerou para autenticar o feed.
Configurar regras de automação para o Microsoft Sentinel
Para configurar regras de automação para o Microsoft Sentinel, siga estas etapas:
- Acesse seu espaço de trabalho do Microsoft Sentinel.
- Clique em Configuração > Automação.
- Clique em Criar.
- Selecione Regra de automação.
- Especifique valores para os seguintes parâmetros de entrada:
- Nome: digite um nome para a regra de automação.
- Gatilho: selecione Quando um incidente é criado.
- Ações: selecione Executar playbook > App lógico criado para incidentes.
- Clique em Aplicar.
- Clique em Criar.
- Selecione Regra de automação.
- Especifique valores para os seguintes parâmetros de entrada:
- Nome: digite um nome para a regra de automação.
- Acionador: selecione Quando o incidente for atualizado.
- Condição: clique em Adicionar > Condição (E) > Status > Mudou.
- Ações: selecione Executar playbook > App lógico criado para incidentes.
- Clique em Aplicar.
- Clique em Criar.
- Selecione Regra de automação.
- Especifique valores para os seguintes parâmetros de entrada:
- Nome: digite um nome para a regra de automação.
- Gatilho: selecione Quando o alerta é criado.
- Ações: selecione Executar playbook > App lógico criado para alertas.
- Clique em Aplicar.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
AlertGenerationStatus |
security_result.detection_fields.AlertGenerationStatus |
Mapeado diretamente do campo ExtendedProperties após a análise JSON. |
AlertLink |
principal.labels.AlertLink |
Mapeado diretamente. |
AlertName |
security_result.rule_name |
Mapeado diretamente. |
AlertSeverity |
security_result.severity |
Mapeado diretamente e convertido em maiúsculas. Se o valor for ALTA, MÉDIA, BAIXA, CRÍTICA ou UNKNOWN_SEVERITY, ele será mapeado para security_result.severity . Caso contrário, ele será mapeado para security_result.severity_details . |
AlertType |
security_result.threat_name |
Mapeado diretamente. |
Category |
security_result.detection_fields.Category |
Mapeado diretamente do campo ExtendedProperties após a análise JSON. |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity |
Mapeado diretamente. |
CompromisedEntityId |
security_result.detection_fields.CompromisedEntityId |
Mapeado diretamente do campo ExtendedProperties após a análise JSON. |
ConfidenceLevel |
security_result.confidence_details |
Mapeado diretamente. |
ConfidenceScore |
security_result.detection_fields.ConfidenceScore |
Mapeado diretamente. |
cribl_pipe |
additional.fields.cribl_pipe |
Mapeado diretamente. |
Description |
security_result.description |
Mapeado diretamente. |
DestinationDevice |
security_result.detection_fields.DestinationDevice OU target.ip |
Mapeado do campo ExtendedProperties após a análise JSON. Se o valor for um endereço IP válido, ele será mapeado para target.ip . Caso contrário, ele será mapeado como um campo de detecção. |
DestinationDeviceAddress |
target.ip |
Mapeado do campo ExtendedProperties após a análise JSON, somente se for um endereço IP válido. |
DeviceId |
security_result.detection_fields.DeviceId |
Mapeado diretamente do campo ExtendedProperties após a análise JSON. |
DisplayName |
security_result.summary |
Mapeado diretamente. |
EndTime |
about.labels.EndTime |
Mapeado diretamente. |
Entities.Address |
principal.asset.ip |
Extraído da matriz Entities após a análise JSON. Somente endereços IP são mapeados. |
Entities.HostName |
principal.asset.hostname OU principal.asset.ip |
Extraído da matriz Entities após a análise JSON. Se o valor for um endereço IP válido, ele será mapeado para principal.asset.ip . Caso contrário, ele será mapeado para principal.asset.hostname . |
Entities.IoTDevice.DeviceId |
security_result.detection_fields.IoTDeviceID |
Extraído da matriz Entities após a análise JSON. |
Entities.IoTDevice.DeviceType |
security_result.detection_fields.IoTDeviceType |
Extraído da matriz Entities após a análise JSON. |
Entities.IoTDevice.DeviceTypeId |
security_result.detection_fields.IoTDeviceTypeId |
Extraído da matriz Entities após a análise JSON. |
Entities.IoTDevice.Importance |
security_result.detection_fields.IoTDeviceImportance |
Extraído da matriz Entities após a análise JSON. |
Entities.IoTDevice.IoTSecurityAgentId |
security_result.detection_fields.IoTSecurityAgentId |
Extraído da matriz Entities após a análise JSON. |
Entities.IoTDevice.Manufacturer |
security_result.detection_fields.IoT Manufacturer |
Extraído da matriz Entities após a análise JSON. |
Entities.IoTDevice.OperatingSystem |
principal.asset.platform_software.platform_version |
Extraído da matriz Entities após a análise JSON, espaços à direita removidos. |
Entities.IoTDevice.PurdueLayer |
security_result.detection_fields.IoT PurdueLayer |
Extraído da matriz Entities após a análise JSON. |
Entities.IoTDevice.Sensor |
security_result.detection_fields.IoT Sensor |
Extraído da matriz Entities após a análise JSON. |
ExtendedProperties.Protocol |
security_result.detection_fields.Protocol |
Mapeado diretamente do campo ExtendedProperties após a análise JSON. |
ExtendedProperties.SensorId |
security_result.detection_fields.SensorId |
Mapeado diretamente do campo ExtendedProperties após a análise JSON. |
ExtendedProperties.SourceDevice |
principal.ip OU security_result.detection_fields.SourceDevice |
Mapeado do campo ExtendedProperties após a análise JSON. Se o valor for um endereço IP válido, ele será mapeado para principal.ip . Caso contrário, ele será mapeado como um campo de detecção. |
ExtendedProperties.SourceDeviceAddress |
principal.ip |
Mapeado do campo ExtendedProperties após a análise JSON, somente se for um endereço IP válido. |
IsIncident |
security_result.detection_fields.IsIncident |
Mapeado diretamente, convertido em string. |
ProcessingEndTime |
about.labels.ProcessingEndTime |
Mapeado diretamente. |
ProductComponentName |
principal.resource.attribute.labels.ProductComponentName |
Mapeado diretamente. |
ProductName |
principal.resource.attribute.labels.ProductName |
Mapeado diretamente. |
ProviderName |
principal.resource.attribute.labels.ProviderName |
Mapeado diretamente. |
ResourceId |
principal.resource.product_object_id , target.resource.name |
Mapeado diretamente. |
SourceComputerId |
principal.asset.asset_id |
Mapeado diretamente, com o prefixo "SourceComputerId:". |
SourceSystem |
security_result.detection_fields.SourceSystem |
Mapeado diretamente. |
StartTime |
about.labels.StartTime |
Mapeado diretamente. |
Status |
security_result.detection_fields.Status |
Mapeado diretamente. |
SystemAlertId |
metadata.product_log_id |
Mapeado diretamente. |
Tactics |
security_result.attack_details.tactics.name |
Extraído do campo Tactics após a análise JSON e a remoção da barra invertida. |
Techniques |
security_result.attack_details.techniques.id |
Extraído do campo Techniques após a análise JSON e a remoção da barra invertida. |
TenantId |
additional.fields.TenantId |
Mapeado diretamente. |
TimeGenerated |
about.labels.TimeGenerated |
Mapeado diretamente. |
timestamp |
metadata.event_timestamp , events.timestamp |
Mapeado diretamente. |
VendorName |
metadata.vendor_name |
Mapeado diretamente. |
VendorOriginalId |
additional.fields.VendorOriginalId |
Mapeado diretamente. |
_time |
metadata.event_timestamp , events.timestamp |
Analisado como um carimbo de data/hora usando o formato UNIX ou UNIX_MS. |
(Lógica do analisador) | metadata.event_type |
Definido como "USER_RESOURCE_ACCESS" se principal, target e ResourceId estiverem presentes. Caso contrário, defina como "GENERIC_EVENT". |
(Lógica do analisador) | metadata.log_type |
Defina como "MICROSOFT_SENTINEL". |
(Lógica do analisador) | metadata.product_name |
Defina como "MICROSOFT_SENTINEL". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.