Coletar registros do Microsoft System Center Endpoint Protection (SCEP)
Este documento descreve como coletar registros do Microsoft System Center Endpoint Protection (SCEP) configurando um feed do Google Security Operations usando o Microsoft Azure Blob Storage V2.
O Microsoft System Center Endpoint Protection (SCEP) é uma solução corporativa antimalware e antivírus integrada ao System Center Configuration Manager (SCCM). O SCEP oferece proteção em tempo real contra malware, vírus, spyware e outros softwares maliciosos para endpoints baseados no Windows. O SCEP grava eventos de segurança no canal Microsoft-Windows-Windows Defender/Operational do log de eventos do Windows, que pode ser coletado usando o agente do Azure Monitor e exportado para o Armazenamento de Blobs do Azure.
Antes de começar
Verifique se você atende os seguintes pré-requisitos:
- Uma instância do Google SecOps
- Acesso privilegiado ao portal do Microsoft Azure com permissões para:
- Criar contas de armazenamento
- Criar e gerenciar espaços de trabalho do Log Analytics
- Criar e gerenciar regras de coleta de dados
- Configurar regras de exportação de dados
- Gerenciar chaves de acesso
- Windows Server 2012 R2 ou posterior com SCEP instalado ou Windows Server 2016 ou posterior com o Windows Defender Antivirus
- Agente do Azure Monitor instalado no servidor Windows (requer o Azure Arc para servidores locais ou suporte nativo para VMs do Azure)
Acesso de administrador no servidor Windows em que o SCEP está implantado
Configurar a conta de armazenamento do Azure
Criar conta de armazenamento
- No portal do Azure, pesquise Contas de armazenamento.
- Clique em Criar.
Informe os seguintes detalhes de configuração:
Configuração Valor Assinatura Selecione sua assinatura do Azure Grupo de recursos Selecionar ou criar Nome da conta de armazenamento Insira um nome exclusivo (por exemplo, sceplogssa).Região Selecione a região (por exemplo, East US).Desempenho Padrão (recomendado) Redundância GRS (armazenamento com redundância geográfica) ou LRS (armazenamento com redundância local) Clique em Revisar + criar.
Revise a visão geral da conta e clique em Criar.
Aguarde até que a implantação seja concluída.
Receber credenciais da conta de armazenamento
- Acesse a Conta de armazenamento que você acabou de criar.
- Na navegação à esquerda, selecione Chaves de acesso em Segurança e rede.
- Clique em Mostrar chaves.
- Copie e salve o seguinte para uso posterior:
- Nome da conta de armazenamento: o nome que você criou (por exemplo,
sceplogssa) - Chave 1 ou Chave 2: a chave de acesso compartilhado (uma string aleatória de 512 bits na codificação base64).
- Nome da conta de armazenamento: o nome que você criou (por exemplo,
Receber endpoint do serviço de blob
- Na mesma conta de armazenamento, selecione Endpoints na navegação à esquerda.
- Copie e salve o URL do endpoint do serviço de blob.
- Exemplo:
https://sceplogssa.blob.core.windows.net/
- Exemplo:
Criar um espaço de trabalho do Log Analytics
- No portal do Azure, pesquise Espaços de trabalho de Análise de dados de registros.
- Clique em Criar.
Informe os seguintes detalhes de configuração:
Configuração Valor Assinatura Selecione sua assinatura do Azure Grupo de recursos Selecione o mesmo grupo de recursos da conta de armazenamento. Nome Insira um nome exclusivo (por exemplo, scep-logs-workspace).Região Selecione a mesma região da conta de armazenamento. Clique em Revisar + criar.
Clique em Criar.
Aguarde até que a implantação seja concluída.
Instalar o agente do Azure Monitor no servidor Windows
Para servidores locais que executam o SCEP, primeiro faça a integração do servidor no Azure Arc e instale o agente do Azure Monitor.
Integrar ao Azure Arc (somente servidores locais)
- No portal do Azure, pesquise Azure Arc.
- Selecione Servidores em Infraestrutura.
- Clique em + Adicionar.
- Selecione Adicionar um único servidor e clique em Gerar script.
- Informe os seguintes detalhes de configuração:
- Assinatura: selecione sua assinatura do Azure.
- Grupo de recursos: selecione seu grupo de recursos.
- Região: selecione a mesma região da conta de armazenamento.
- Sistema operacional: selecione Windows
- Clique em Fazer o download e executar o script.
- No servidor Windows que executa o SCEP, abra o PowerShell como administrador.
Execute o script baixado para concluir a integração do Azure Arc.
Instalar o agente do Azure Monitor
- No portal do Azure, acesse Azure Arc > Servidores (ou Máquinas virtuais para VMs do Azure).
- Selecione o servidor que executa o SCEP.
- Na navegação à esquerda, selecione Extensões em Configurações.
- Clique em + Adicionar.
- Pesquise e selecione Agente do Azure Monitor.
- Clique em Próxima e em Revisar + criar.
- Clique em Criar.
- Aguarde a conclusão da instalação da extensão.
Criar uma regra de coleta de dados para eventos SCEP
- No portal do Azure, pesquise Monitor.
- Selecione Regras de coleta de dados em Configurações.
- Clique em Criar.
- Na guia Noções básicas, forneça os seguintes detalhes de configuração:
- Nome da regra: insira um nome descritivo, por exemplo,
dcr-scep-events. - Assinatura: selecione sua assinatura do Azure.
- Grupo de recursos: selecione seu grupo de recursos.
- Região: selecione a mesma região do espaço de trabalho do Análise de dados de registros.
- Tipo de plataforma: selecione Windows
- Nome da regra: insira um nome descritivo, por exemplo,
- Clique em Próxima: Recursos.
- Na guia Recursos:
- Clique em + Adicionar recursos.
- Expanda o grupo de recursos e selecione o servidor que executa o SCEP (servidor do Azure Arc ou VM do Azure).
- Clique em Aplicar.
- Clique em Próxima: Coletar e entregar.
Na guia Retirar e entregar:
- Clique em + Adicionar fonte de dados.
- No menu suspenso Tipo de origem de dados, selecione Registros de eventos do Windows.
- Selecione Personalizado para inserir consultas XPath.
Clique em + Adicionar consulta XPath e insira a seguinte consulta XPath para coletar todos os eventos do SCEP e do Windows Defender:
Microsoft-Windows-Windows Defender/Operational!*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]Essa consulta XPath coleta todos os eventos (crítico, erro, aviso, informação e detalhado) do canal operacional do Windows Defender. Para coletar apenas IDs de eventos específicos (por exemplo, detecções de malware), use uma consulta mais segmentada, como:
Microsoft-Windows-Windows Defender/Operational!*[System[(EventID=1006 or EventID=1007 or EventID=1116 or EventID=1117 or EventID=2000 or EventID=2001 or EventID=5007)]]Na guia Destino, clique em + Adicionar destino.
Selecione Registros do Azure Monitor como o Tipo de destino.
Selecione o espaço de trabalho do Análise de dados de registros que você criou anteriormente (por exemplo,
scep-logs-workspace).
Clique em Adicionar fonte de dados.
Clique em Revisar + criar.
Clique em Criar.
IDs de eventos principais coletados
A regra de coleta de dados coleta eventos do canal Microsoft-Windows-Windows Defender/Operational, que inclui os seguintes IDs de eventos SCEP principais:
| ID do evento | Descrição |
|---|---|
| 1006 | Malware detectado pelo mecanismo antimalware |
| 1007 | Ação antimalware realizada no malware detectado |
| 1116 | A proteção em tempo real detectou malware ou software potencialmente indesejado |
| 1117 | A proteção em tempo real agiu contra o malware |
| 2000 | A atualização da assinatura antimalware foi iniciada |
| 2001 | A atualização da assinatura antimalware foi concluída |
| 5007 | A configuração da plataforma antimalware foi alterada |
Configurar a exportação de dados do workspace do Log Analytics para o Azure Blob Storage
Registrar o provedor de recursos Microsoft.Insights
- No portal do Azure, acesse Assinaturas.
- Selecione sua assinatura.
- Na navegação à esquerda, selecione Provedores de recursos em Configurações.
- Pesquise Microsoft.Insights.
- Se o status não for Registrado, selecione-o e clique em Registrar.
Criar uma regra de exportação de dados
- No portal do Azure, acesse seu espaço de trabalho do Log Analytics (por exemplo,
scep-logs-workspace). - Na navegação à esquerda, selecione Exportação de dados em Configurações.
- Clique em + Nova regra de exportação.
- Na guia Configurações básicas:
- Nome da regra de exportação de dados: digite um nome descritivo, por exemplo,
export-scep-to-blob.
- Nome da regra de exportação de dados: digite um nome descritivo, por exemplo,
- Clique em Próxima: origem.
Na guia Origem, selecione a tabela Evento.
Clique em Próxima: destino.
Na guia Destino:
- Tipo de destino: selecione Conta de armazenamento.
- Assinatura: selecione a assinatura que contém a conta de armazenamento.
- Conta de armazenamento: selecione a conta de armazenamento criada anteriormente (por exemplo,
sceplogssa).
Clique em Próxima: revisar + criar.
Clique em Criar.
Depois da configuração, os eventos são exportados automaticamente para a conta de armazenamento. Um contêiner chamado
am-Eventé criado na conta de armazenamento. Os blobs são armazenados em pastas de cinco minutos usando a seguinte estrutura de caminho:am-Event/ └── WorkspaceResourceId=/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.operationalinsights/workspaces/{workspace}/ └── y={year}/m={month}/d={day}/h={hour}/m={minute}/ └── PT05M.json
Verificar a exportação de dados
- No portal do Azure, acesse a Conta de armazenamento (por exemplo,
sceplogssa). - Na navegação à esquerda, selecione Contêineres em Armazenamento de dados.
- Verifique se o contêiner
am-Eventexiste. - Acesse o contêiner e verifique se os arquivos JSON com dados de eventos estão sendo criados na estrutura de pastas.
Configurar um feed no Google SecOps para ingerir registros do Microsoft System Center Endpoint Protection (SCEP)
- 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,
Microsoft SCEP Logs). - Selecione Microsoft Azure Blob Storage V2 como o Tipo de origem.
- Selecione Microsoft System Center Endpoint Protection (SCEP) como o Tipo de registro.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
- URI do Azure: insira o URL do endpoint do serviço de blobs com o caminho do contêiner:
https://sceplogssa.blob.core.windows.net/am-Event/Substitua:
sceplogssa: o nome da sua conta de armazenamento do Azure.am-Event: o nome do contêiner de blob em que os eventos exportados são armazenados.
- Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência:
- Nunca: nunca exclui arquivos após as transferências.
- Excluir arquivos transferidos: exclui os arquivos após a transferência ser concluída.
- Excluir arquivos transferidos e diretórios vazios: exclui arquivos e diretórios vazios após a transferência bem-sucedida.
- Idade máxima do arquivo: inclui arquivos modificados nos últimos dias (o padrão é 180 dias).
- Chave compartilhada: insira o valor da chave compartilhada (chave de acesso) capturado da conta de armazenamento.
- Namespace do recurso: o namespace do recurso
- Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Configurar o firewall do Azure Storage (se ativado)
Se a sua conta do Azure Storage usar um firewall, adicione os intervalos de IP do Google SecOps.
- No portal do Azure, acesse sua conta de armazenamento.
- Selecione Rede em Segurança e rede.
- Em Firewalls e redes virtuais, selecione Ativado nas redes virtuais e endereços IP selecionados.
- Na seção Firewall, em Intervalo de endereços, clique em + Adicionar intervalo de IP.
Adicione cada intervalo de IP do Google SecOps na notação CIDR.
Para acessar os intervalos de IP atuais:
- Consulte a documentação sobre a lista de permissões de IP
- Ou recupere-os de maneira programática usando a API Management do Feed.
Além disso, marque a caixa de seleção Permitir que os serviços do Azure na lista de serviços confiáveis acessem esta conta de armazenamento para permitir que a exportação de dados do espaço de trabalho da Análise de dados de registros grave na conta de armazenamento.
Clique em Salvar.
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| about.hostname | about.hostname | Defina como "%{_DB_HOST}" |
| _DB_PORT | about.port | Valor copiado diretamente, convertido em número inteiro |
| _DB_DRIVER | about.resource.name | Definido como "%{_DB_DRIVER}" |
| _DB_URL | about.url | Definido como "%{_DB_URL}" |
| signature_labels | event.idm.read_only_udm.additional.fields | Mesclado de "signature_labels" se a assinatura não estiver vazia, "pending_action" se "PendingAction" não estiver vazio, "execution_status" se "ExecutionStatus" não estiver vazio, "record_id" se "RecordID" não estiver vazio, "error_code" se "ErrorCode" não estiver vazio e "action_success" se "ActionSuccess" não estiver vazio. |
| pending_action | event.idm.read_only_udm.additional.fields | |
| execution_status | event.idm.read_only_udm.additional.fields | |
| record_id | event.idm.read_only_udm.additional.fields | |
| error_code | event.idm.read_only_udm.additional.fields | |
| action_success | event.idm.read_only_udm.additional.fields | |
| source_url | event.idm.read_only_udm.src.url | Valor de source_url se não estiver vazio, caso contrário, de my_string1 se não estiver vazio |
| my_string1 | event.idm.read_only_udm.src.url | |
| has_principal | metadata.event_type | Definido como "NETWORK_CONNECTION" se has_principal e has_target forem verdadeiros. Caso contrário, "STATUS_UPDATE" se has_principal for verdadeiro. Caso contrário, "SCAN_FILE" se no_target_host não for verdadeiro e path_available for verdadeiro. Caso contrário, "STATUS_UNCATEGORIZED" se no_target_host não for verdadeiro. Caso contrário, "USER_UNCATEGORIZED" se has_user for verdadeiro. Caso contrário, "GENERIC_EVENT". |
| has_user | metadata.event_type | |
| has_target | metadata.event_type | |
| no_target_host | metadata.event_type | |
| path_available | metadata.event_type | |
| Nome | metadata.product_event_type | Valor copiado diretamente |
| DetectionID | metadata.product_log_id | Valor copiado diretamente |
| metadata.product_name | metadata.product_name | Definido como "MICROSOFT SYSTEM CENTER ENDPOINT PROTECTION" |
| metadata.vendor_name | metadata.vendor_name | Definido como "MICROSOFT" |
| NTdomain | principal.administrative_domain | Valor copiado diretamente |
| nome do host | principal.asset.hostname | Valor do nome do host se não estiver vazio. Caso contrário, de TargetHost. |
| TargetHost | principal.asset.hostname | |
| action_type | principal.group.attribute.labels | Unido de "action_type_label" se "action_type" não estiver vazio |
| nome do host | principal.hostname | Valor do nome do host se não estiver vazio. Caso contrário, de TargetHost. |
| TargetHost | principal.hostname | |
| Processo | principal.process.file.full_path | Valor copiado diretamente se o processo não estiver vazio |
| NOME DE USUÁRIO | principal.user.user_display_name | Valor copiado diretamente |
| Nome de usuário | principal.user.userid | Valor de UserName se não estiver vazio, caso contrário, do usuário se não estiver vazio |
| usuário | principal.user.userid | |
| ação | security_result.action | Definido com base em valores de ação (ALLOW para success/created/started/delivered/allowed, BLOCK para failure/blocked/teardown/deferred/deleted/rejected/dropped/error/locked, ALLOW_WITH_MODIFICATION para acl_modified/modified, QUARANTINE para quarantined) ou CleanAction (FAIL se Failed, QUARANTINE se Quarantined, ALLOW se Allowed, BLOCK se Blocked) |
| CleanAction | security_result.action | |
| CleanAction | security_result.action_details | Valor copiado diretamente se CleanAction não estiver vazio |
| categoria | security_result.category_details | Mesclado da categoria se não estiver vazio, caso contrário, da categoria |
| Categoria | security_result.category_details | |
| DetectionID | security_result.detection_fields | Mesclado de DetectionID_field se DetectionID não estiver vazio, detectionid_field se detectionid não estiver vazio, detection_source_labels se detection_source não estiver vazio, pending_action_labels se pending_action não estiver vazio, detection_Path se source_url e file_path e Path não estiverem vazios |
| detectionid | security_result.detection_fields | |
| detection_source | security_result.detection_fields | |
| pending_action | security_result.detection_fields | |
| Caminho | security_result.detection_fields | |
| gravidade, | security_result.severity | Definido com base na gravidade (LOW para 0/1/2/3/LOW, MEDIUM para 4/5/6/MEDIUM/SUBSTANTIAL/INFO, HIGH para 7/8/HIGH/SEVERE, CRITICAL para 9/10/VERY-HIGH/CRITICAL) ou SeverityID (LOW para 1, MEDIUM para 2, HIGH para 4, CRITICAL para 5, UNKNOWN_SEVERITY para outros casos) |
| SeverityID | security_result.severity | |
| SeverityID | security_result.severity_details | Valor copiado diretamente |
| ThreatID | security_result.threat_id | Valor copiado diretamente |
| ThreatName | security_result.threat_name | Valor copiado diretamente |
| MaliciousFileCt | security_result.verdict_info | Valor copiado diretamente, convertido em número inteiro, mesclado como malicious_file_ct |
| dest_nt_domain | target.administrative_domain | Valor copiado diretamente |
| dest_name | target.asset.hostname | Valor copiado diretamente se dest_name não estiver vazio |
| file_path | target.file.full_path | Valor de "file_path" se não estiver vazio. Caso contrário, de "Path" se "file_path" estiver vazio. Caso contrário, de "my_string" se não estiver vazio. |
| Caminho | target.file.full_path | |
| my_string | target.file.full_path | |
| dest_name | target.hostname | Valor copiado diretamente se dest_name não estiver vazio |
| ResourceID | target.resource.name | Valor de ResourceID se não estiver vazio, caso contrário, de resourceid se não estiver vazio |
| resourceid | target.resource.name | |
| usuário | target.user.userid | Valor copiado diretamente se o usuário não estiver vazio |
| tempo | metadata.event_timestamp | Convertido do tempo usando o formato "MMM dd HH:mm:ss" se o tempo não estiver vazio. Caso contrário, de DetectionTime ou detectiontime usando UNIX_MS. |
| DetectionTime | metadata.event_timestamp | |
| detectiontime | metadata.event_timestamp |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.