Referência do esquema de normalização do DNS do ASIM (Modelo de Informações de Segurança Avançado) (versão prévia)
O modelo de informações DNS é usado para descrever eventos relatados por um servidor DNS ou um sistema de segurança DNS e é usado pelo Microsoft Sentinel para habilitar a análise independente da origem.
Para obter mais informações, confira Normalização e o ASIM (Modelo de Informações de Segurança Avançado).
Importante
O esquema de normalização DNS está atualmente em VERSÃO PRÉVIA. Esse recurso é fornecido sem um contrato de nível de serviço e não é recomendado para cargas de trabalho de produção.
Os termos suplementares de versão prévia do Azure incluem termos legais adicionais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
Visão geral do esquema
O esquema DNS do ASIM representa a atividade do protocolo DNS. Os servidores DNS e os dispositivos que enviam solicitações DNS para uma atividade DNS de log do servidor DNS. A atividade de protocolo DNS inclui consultas DNS, atualizações de servidor DNS e transferências de dados em massa de DNS. Como o esquema representa atividade de protocolo, ele é regido por RFCs e listas de parâmetros oficialmente atribuídas, que são referenciadas neste artigo quando apropriado. O esquema DNS não representa eventos de auditoria do servidor DNS.
A atividade mais importante relatada pelos servidores DNS é uma consulta DNS, para a qual o campo EventType
é definido como Query
.
Os campos mais importantes em um evento DNS são:
O DnsQuery, que informa o nome de domínio para o qual a consulta foi emitida.
O SrcIpAddr (com alias de IpAddr),que representa o endereço IP do qual a solicitação foi gerada. Os servidores DNS normalmente fornecem o campo SrcIpAddr, mas os clientes DNS às vezes não fornecem esse campo e fornecem apenas o campoSrcHostname.
O EventResultDetails, que informa se a solicitação foi bem-sucedida e, caso contrário, por quê não.
Quando disponível, o DnsResponseName, que contém a resposta fornecida pelo servidor para a consulta. O ASIM não exige a análise da resposta e seu formato varia entre as fontes.
Para usar esse campo no conteúdo independente da origem, pesquise o conteúdo com os operadores
has
oucontains
.
Os eventos DNS coletados no dispositivo cliente também podem incluir informações de Usuário e Processo.
Diretrizes para coletar eventos DNS
O DNS é um protocolo exclusivo, porque pode cruzar um grande número de computadores. Além disso, como o DNS usa UDP, solicitações e respostas são desacopladas e não estão diretamente relacionadas entre si.
A imagem a seguir mostra um fluxo de solicitação DNS simplificado, incluindo quatro segmentos. Uma solicitação real pode ser mais complexa, com mais segmentos envolvidos.
Como os segmentos de solicitação e resposta não estão diretamente conectados entre si no fluxo de solicitação DNS, o log completo pode resultar em duplicação significativa.
O segmento mais valioso para registrar em log é a resposta para o cliente. A resposta fornece as consultas de nome de domínio, o resultado da pesquisa e o endereço IP do cliente. Embora muitos sistemas DNS registrem somente esse segmento, há valor no registro em log das outras partes. Por exemplo, um ataque de falsificação de cache DNS geralmente aproveita respostas falsas de um servidor upstream.
Se a fonte de dados for compatível com o registro em log do DNS completo e você tiver optado por registrar em log vários segmentos, ajuste suas consultas para evitar a duplicação de dados no Microsoft Sentinel.
Por exemplo, você pode modificar sua consulta com a seguinte normalização:
_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"
Analisadores
Para obter mais informações sobre os analisadores do ASIM, consulte a Visão geral dos analisadores do ASIM.
Analisadores prontos para uso
Para usar os analisadores que unificam todos os analisadores prontos para uso do ASIM e garantir que a análise seja executada em todas as origens configuradas, use o analisador unificador _Im_Dns
como o nome da tabela da sua consulta.
Para obter a lista dos analisadores de DNS que o Microsoft Sentinel fornece prontos para uso, confira a lista de analisadores ASIM.
Adicionar seus próprios analisadores normalizados
Ao implementar analisadores personalizados para o modelo de informação de DNS, nomeie as funções KQL usando o formato vimDns<vendor><Product>
. Consulte o artigo Gerenciar analisadores do ASIM para saber como adicionar os analisadores personalizados ao analisador unificador de DNS.
Filtragem de parâmetros de analisador
Os analisadores de DNS dão suporte a parâmetros de filtragem. Embora esses analisadores sejam opcionais, eles podem melhorar o desempenho da consulta.
Os seguintes parâmetros de filtragem estão disponíveis:
Nome | Tipo | Descrição |
---|---|---|
starttime | DATETIME | Filtre somente consultas DNS executadas nesse horário ou depois dele. |
endtime | DATETIME | Filtre somente consultas DNS que terminaram de ser executadas nesse horário ou antes dele. |
srcipaddr | string | Filtre somente consultas DNS desse endereço IP de origem. |
domain_has_any | dynamic/string | Filtre somente consultas DNS em que o domain (ou query ) tenha qualquer um dos nomes de domínio listados, incluindo como parte do domínio de evento. O comprimento da lista é limitado a dez mil itens. |
responsecodename | string | Filtre somente consultas DNS para as quais o nome do código de resposta corresponde ao valor fornecido. Por exemplo: NXDOMAIN |
response_has_ipv4 | string | Filtre somente consultas DNS nas quais o campo de resposta inclui o endereço IP ou o prefixo de endereço IP fornecido. Use esse parâmetro quando quiser filtrar um único endereço IP ou prefixo. Os resultados não são retornados para fontes que não fornecem uma resposta. |
response_has_any_prefix | dinâmico | Filtre somente consultas DNS nas quais o campo de resposta inclui qualquer um dos endereços IP ou prefixos de endereço IP listados. Os prefixos devem terminar com um . , por exemplo: 10.0. . Use esse parâmetro quando quiser filtrar uma lista de endereços IP ou prefixos. Os resultados não são retornados para fontes que não fornecem uma resposta. O comprimento da lista é limitado a dez mil itens. |
eventtype | string | Filtre somente consultas DNS do tipo especificado. Se nenhum valor for especificado, somente as consultas de pesquisa serão retornadas. |
Por exemplo, para filtrar somente as consultas DNS do último dia que falharam ao resolver o nome de domínio, use:
_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())
Para filtrar somente as consultas DNS de uma lista especificada de nomes de domínio, use:
let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_Dns (domain_has_any = torProxies)
Alguns parâmetros podem aceitar uma lista de valores do tipo dynamic
ou um só valor de cadeia de caracteres. Para passar uma lista literal para parâmetros que esperam um valor dinâmico, use explicitamente um literal dinâmico. Por exemplo: dynamic(['192.168.','10.'])
Conteúdo normalizado
Para obter uma lista completa de regras de análise que usam eventos DNS normalizados, confira o Conteúdo de segurança da consulta DNS.
Detalhes do esquema
O modelo de informação DNS está alinhado com o esquema de entidade DNS OSSEM.
Para saber mais, confira a Referência de parâmetro do DNS da IANA (Internet Assigned Numbers Authority).
Campos comuns do ASIM
Importante
Os campos comuns a todos os esquemas estão descritos em detalhes no artigo Campos comuns do ASIM.
Campos comuns com diretrizes específicas
A lista a seguir menciona os campos que têm diretrizes específicas para eventos de DNS:
Campo | Classe | Tipo | Descrição |
---|---|---|---|
EventType | Obrigatório | Enumerated | Indica a operação relatada pelo registro. Para registros DNS, esse valor seria o código de operação DNS. Exemplo: Query |
EventSubType | Opcional | Enumerated | request ou response . Para a maioria das origens, somente as respostas são registradas e, portanto, o valor geralmente é a resposta. |
EventResultDetails | Obrigatório | Enumerated | Para eventos DNS, esse campo fornece o código de resposta DNS. Observações: - A IANA não define o caso para os valores, portanto, a análise deve normalizar o caso. - Se a origem fornecer apenas um código de resposta numérica, e não um nome do código de resposta, o analisador deverá incluir uma tabela de pesquisa para enriquecer com esse valor. - Se esse registro representar uma solicitação, e não uma resposta, defina como NA. Exemplo: NXDOMAIN |
EventSchemaVersion | Obrigatório | Cadeia de caracteres | A versão do esquema documentado aqui é 0.1.7. |
EventSchema | Obrigatório | String | O nome do esquema documentado aqui é Dns. |
Campos Dvc | - | - | Nos eventos DNS, os campos de dispositivo referem-se ao sistema que relata o evento DNS. |
Todos campos comuns
Os campos que aparecem na tabela abaixo são comuns a todos os esquemas do ASIM. Qualquer diretriz especificada acima substitui as diretrizes gerais do campo. Por exemplo, um campo pode ser opcional em geral, mas obrigatório para um esquema específico. Para saber mais sobre cada campo, consulte o artigo Campos comuns do ASIM.
Classe | Fields |
---|---|
Obrigatório | - EventCount - EventStartTime - EventEndTime - EventType - EventResult - EventProduct - EventVendor - EventSchema - EventSchemaVersion - Dvc |
Recomendadas | - EventResultDetails - EventSeverity - EventUid - DvcIpAddr - DvcHostname - DvcDomain - DvcDomainType - DvcFQDN - DvcId - DvcIdType - DvcAction |
Opcional | - EventMessage - EventSubType - EventOriginalUid - EventOriginalType - EventOriginalSubType - EventOriginalResultDetails - EventOriginalSeverity - EventProductVersion - EventReportUrl - EventOwner - DvcZone - DvcMacAddr - DvcOs - DvcOsVersion - DvcOriginalAction - DvcInterface - AdditionalFields - DvcDescription - DvcScopeId - DvcScope |
Campos do sistema de origem
Campo | Classe | Tipo | Descrição |
---|---|---|---|
Src | Alias | String | Um identificador exclusivo do dispositivo de origem. Esse campo pode gerar alias dos campos SrcDvcId, SrcHostname ou SrcIpAddr. Exemplo: 192.168.12.1 |
SrcIpAddr | Recomendadas | Endereço IP | O endereço IP do cliente que envia a solicitação de DNS. Para uma solicitação DNS recursiva, esse valor normalmente seria o dispositivo de relatório e, na maioria dos casos, definido como 127.0.0.1 . Exemplo: 192.168.12.1 |
SrcPortNumber | Opcional | Inteiro | Porta de origem da consulta DNS. Exemplo: 54312 |
IpAddr | Alias | Alias para SrcIpAddr | |
SrcGeoCountry | Opcional | País | O país/região associado ao endereço IP de origem. Exemplo: USA |
SrcGeoRegion | Opcional | Região | A região associada ao endereço IP de origem. Exemplo: Vermont |
SrcGeoCity | Opcional | City | A cidade associada ao endereço IP de origem. Exemplo: Burlington |
SrcGeoLatitude | Opcional | Latitude | A latitude da coordenada geográfica associada ao endereço IP de origem. Exemplo: 44.475833 |
SrcGeoLongitude | Opcional | Longitude | A longitude da coordenada geográfica associada ao endereço IP de origem. Exemplo: 73.211944 |
SrcRiskLevel | Opcional | Inteiro | O nível de risco associado à origem. O valor deve ser ajustado para um intervalo de 0 para 100 , com 0 para benigno e 100 para um risco alto.Exemplo: 90 |
SrcOriginalRiskLevel | Opcional | Inteiro | O nível de risco associado à ameaça identificada com a origem, conforme relatado pelo dispositivo de relatório. Exemplo: Suspicious |
SrcHostname | Recomendadas | String | O nome do host do dispositivo de origem, incluindo informações de domínio. Exemplo: DESKTOP-1282V4D |
Nome do host | Alias | Alias para SrcHostname | |
SrcDomain | Recomendadas | String | O domínio do dispositivo de origem. Exemplo: Contoso |
SrcDomainType | Condicional | Enumerated | O tipo de SrcDomain, se conhecido. Os valores possíveis incluem: - Windows (como contoso )- FQDN (como microsoft.com )Necessário se SrcDomain for usado. |
SrcFQDN | Opcional | Cadeia de caracteres | O nome do host do dispositivo de origem, incluindo informações de domínio quando disponível. Observação: esse campo dá suporte ao formato FQDN tradicional e ao formato domínio\nome do host do Windows. O campo SrcDomainType reflete o formato usado. Exemplo: Contoso\DESKTOP-1282V4D |
SrcDvcId | Opcional | Cadeia de caracteres | A ID do dispositivo de origem, conforme relatado no registro. Por exemplo: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
SrcDvcScopeId | Opcional | String | A ID do escopo da plataforma de nuvem à qual o dispositivo pertence. Mapa do SrcDvcScopeId para uma ID da assinatura no Azure e para uma ID da conta na AWS. |
SrcDvcScope | Opcional | String | O escopo da plataforma de nuvem à qual o dispositivo pertence. Mapa do SrcDvcScope para uma ID da assinatura no Azure e para uma ID da conta no AWS. |
SrcDvcIdType | Condicional | Enumerated | O tipo de SrcDvcId, se conhecido. Os valores possíveis incluem: - AzureResourceId - MDEid Se várias IDs estão disponíveis, use a primeira da lista e armazene as outras em SrcDvcAzureResourceId e SrcDvcMDEid, respectivamente. Observação: esse campo será obrigatório se SrcDvcId for usado. |
SrcDeviceType | Opcional | Enumerated | O tipo do dispositivo de origem. Os valores possíveis incluem: - Computer - Mobile Device - IOT Device - Other |
SrcDescription | Opcional | String | Um texto descritivo associado ao dispositivo. Por exemplo: Primary Domain Controller . |
Campos do usuário de origem
Campo | Classe | Tipo | Descrição |
---|---|---|---|
SrcUserId | Opcional | Cadeia de caracteres | Uma representação exclusiva, alfanumérica e legível pelo computador do usuário de origem. Para obter mais informações e campos alternativos para IDs adicionais, consulte Entidade do usuário. Exemplo: S-1-12-1-4141952679-1282074057-627758481-2916039507 |
SrcUserScope | Opcional | String | O escopo, como o locatário do Microsoft Entra, no qual SrcUserId e SrcUsername são definidos. Para obter mais informações e uma lista de valores permitidos, consulte UserScope no artigo Visão geral do esquema. |
SrcUserScopeId | Opcional | String | A ID do escopo, como o Microsoft Entra Directory ID, na qual são definidos SrcUserId e SrcUsername. para obter mais informações e uma lista de valores permitidos, consulte UserScopeId no artigo Visão geral do esquema. |
SrcUserIdType | Condicional | UserIdType | O tipo da ID armazenada no campo SrcUserId. Para obter mais informações e uma lista de valores permitidos, consulte UserIdType no artigo Visão geral do esquema. |
SrcUsername | Opcional | Nome de Usuário | O nome de usuário de origem, incluindo informações de domínio, quando disponíveis. Para saber mais, confira A entidade de usuário. Exemplo: AlbertE |
SrcUsernameType | Condicional | UsernameType | Especifica o tipo do nome de usuário armazenado no campo SrcUsername. Para obter mais informações e uma lista de valores permitidos, consulte UsernameType no artigo Visão geral do esquema. Exemplo: Windows |
Usuário | Alias | Alias para SrcUsername | |
SrcUserType | Opcional | UserType | O tipo do usuário de origem. Para obter mais informações e uma lista de valores permitidos, consulte UserType no artigo Visão geral do esquema. Por exemplo: Guest |
SrcUserSessionId | Opcional | Cadeia de caracteres | A ID exclusiva da sessão de entrada do Ator. Exemplo: 102pTUgC3p8RIqHvzxLCHnFlg |
SrcOriginalUserType | Opcional | Cadeia de caracteres | O tipo de usuário de origem, se fornecido pela origem. |
Campos do processo de origem
Campo | Classe | Tipo | Descrição |
---|---|---|---|
SrcProcessName | Opcional | String | O nome do arquivo do processo que iniciou a solicitação DNS. Normalmente, esse nome é considerado como o nome do processo. Exemplo: C:\Windows\explorer.exe |
Processo | Alias | Alias para o SrcProcessName Exemplo: C:\Windows\System32\rundll32.exe |
|
SrcProcessId | Opcional | String | A ID do processo (PID) do processo que iniciou a solicitação DNS. Exemplo: 48610176 Observação: o tipo é definido como uma cadeia de caracteres para ser compatível com sistemas variados, mas no Windows e no Linux esse valor deve ser numérico. Se você estiver usando um computador Windows ou Linux e tiver usado um tipo diferente, converta os valores. Por exemplo, se você tiver usado um valor hexadecimal, converta-o em um valor decimal. |
SrcProcessGuid | Opcional | String | Um GUID (identificador exclusivo) gerado do processo que iniciou a solicitação DNS. Exemplo: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
Campos do sistema de destino
Campo | Classe | Tipo | Descrição |
---|---|---|---|
Dst | Alias | String | Um identificador exclusivo do servidor que recebeu a solicitação DNS. Esse campo pode gerar alias dos campos DstDvcId, DstHostname ou DstIpAddr. Exemplo: 192.168.12.1 |
DstIpAddr | Opcional | Endereço IP | O endereço IP do servidor que recebeu a solicitação DNS. Para uma solicitação DNS regular, esse valor normalmente seria o dispositivo de relatório e, na maioria dos casos, definido como 127.0.0.1 .Exemplo: 127.0.0.1 |
DstGeoCountry | Opcional | País | O país/região associado ao endereço IP de destino. Para obter mais informações, confira Tipos lógicos. Exemplo: USA |
DstGeoRegion | Opcional | Região | A região ou estado associado ao endereço IP de destino. Para obter mais informações, confira Tipos lógicos. Exemplo: Vermont |
DstGeoCity | Opcional | City | A cidade associada ao endereço IP de destino. Para obter mais informações, confira Tipos lógicos. Exemplo: Burlington |
DstGeoLatitude | Opcional | Latitude | A latitude da coordenada geográfica associada ao endereço IP de destino. Para obter mais informações, confira Tipos lógicos. Exemplo: 44.475833 |
DstGeoLongitude | Opcional | Longitude | A longitude da coordenada geográfica associada ao endereço IP de destino. Para obter mais informações, confira Tipos lógicos. Exemplo: 73.211944 |
DstRiskLevel | Opcional | Inteiro | O nível de risco associado ao destino. O valor deve ser ajustado para um intervalo de 0 a 100, sendo 0 benigno e 100 um risco alto. Exemplo: 90 |
DstOriginalRiskLevel | Opcional | Inteiro | O nível de risco associado à ameaça identificada com o destino, conforme relatado pelo dispositivo de relatório. Exemplo: Malicious |
DstPortNumber | Opcional | Inteiro | Número da porta de destino. Exemplo: 53 |
DstHostname | Opcional | String | O nome do host do dispositivo de destino, excluindo informações de domínio. Se nenhum nome de dispositivo estiver disponível, armazene o endereço IP relevante nesse campo. Exemplo: DESKTOP-1282V4D Observação: esse valor será obrigatório se DstIpAddr for especificado. |
DstDomain | Opcional | String | O domínio do dispositivo de destino. Exemplo: Contoso |
DstDomainType | Condicional | Enumerated | O tipo de DstDomain, se conhecido. Os valores possíveis incluem: - Windows (contoso\mypc) - FQDN (learn.microsoft.com) Obrigatório se DstDomain for usado. |
DstFQDN | Opcional | Cadeia de caracteres | O nome do host do dispositivo de destino, incluindo informações de domínio, quando disponíveis. Exemplo: Contoso\DESKTOP-1282V4D Observação: esse campo dá suporte ao formato FQDN tradicional e ao formato domínio\nome do host do Windows. O DstDomainType reflete o formato usado. |
DstDvcId | Opcional | Cadeia de caracteres | A ID do dispositivo de destino, conforme relatado no registro. Exemplo: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
DstDvcScopeId | Opcional | String | A ID do escopo da plataforma de nuvem à qual o dispositivo pertence. Mapa do DstDvcScopeId para uma ID da assinatura no Azure e para uma ID da conta no AWS. |
DstDvcScope | Opcional | String | O escopo da plataforma de nuvem à qual o dispositivo pertence. Mapa do DstDvcScope para uma ID da assinatura no Azure e para uma ID da conta no AWS. |
DstDvcIdType | Condicional | Enumerated | O tipo de DstDvcId, se conhecido. Os valores possíveis incluem: - AzureResourceId - MDEidIf Se várias IDs estiverem disponíveis, use a primeira da lista acima e armazene as outras nos campos DstDvcAzureResourceId ou DstDvcMDEid, respectivamente. Obrigatório se DstDeviceId for usado. |
DstDeviceType | Opcional | Enumerated | O tipo do dispositivo de destino. Os valores possíveis incluem: - Computer - Mobile Device - IOT Device - Other |
DstDescription | Opcional | String | Um texto descritivo associado ao dispositivo. Por exemplo: Primary Domain Controller . |
Campos específicos de DNS
Campo | Classe | Tipo | Descrição |
---|---|---|---|
DnsQuery | Obrigatório | String | O domínio que a solicitação tenta resolver. Observações: - Algumas origens enviam consultas FQDN válidas em um formato diferente. Por exemplo, no próprio protocolo DNS, a consulta inclui um ponto (.) no final, que deve ser removido. - Embora o protocolo DNS limite o tipo de valor nesse campo a um FQDN, a maioria dos servidores DNS permite qualquer valor e, portanto, esse campo não se limita apenas a valores FQDN. É importante observar que os ataques de túnel DNS podem usar valores FQDN inválidos no campo de consulta. - Embora o protocolo DNS permita várias consultas em uma única solicitação, esse cenário é raro caso seja encontrado. Se a solicitação tiver várias consultas, armazene a primeira nesse campo e, em seguida, e, opcionalmente, mantenha o restante no campo AdditionalFields. Exemplo: www.malicious.com |
Domain | Alias | Alias para DnsQuery. | |
DnsQueryType | Opcional | Inteiro | Os códigos de tipo de registro de recurso de DNS. Exemplo: 28 |
DnsQueryTypeName | Recomendadas | Enumerated | Os nomes de tipo de registro de recurso de DNS. Observações: - A IANA não define o caso para os valores, portanto, a análise deve normalizar o caso conforme necessário. - O valor ANY é compatível com o código de resposta 255.- O valor TYPExxxx é compatível com códigos de resposta não mapeados, onde xxxx é o valor numérico do código de resposta, conforme relatado pelo Servidor DNS BIND.- Se a origem fornecer apenas um código de tipo de consulta numérica, e não um nome de tipo de consulta, o analisador deverá incluir uma tabela de pesquisa para enriquecer com esse valor. Exemplo: AAAA |
DnsResponseName | Opcional | Cadeia de caracteres | O conteúdo da resposta, conforme incluído no registro. Os dados de resposta DNS são inconsistentes em dispositivos de relatório, são complexos de analisar e têm menos valor para a análise independente de origem. Portanto, o modelo de informação não requer análise e normalização, e o Microsoft Sentinel usa uma função auxiliar para fornecer informações de resposta. Para saber mais, confira Lidar com respostas DNS. |
DnsResponseCodeName | Alias | Alias de EventResultDetails | |
DnsResponseCode | Opcional | Inteiro | O código de resposta numérica do DNS. Exemplo: 3 |
TransactionIdHex | Recomendadas | String | A ID exclusiva da consulta DNS atribuída pelo cliente DNS, em formato hexadecimal. Observe que esse valor faz parte do protocolo DNS e é diferente de DnsSessionId, a ID de sessão da camada de rede, normalmente atribuída pelo dispositivo de relatório. |
NetworkProtocol | Opcional | Enumerated | O protocolo de transporte usado pelo evento de resolução de rede. O valor pode ser UDP ou TCP, e é definido com mais frequência como UDP para DNS. Exemplo: UDP |
NetworkProtocolVersion | Opcional | Enumerated | A versão do NetworkProtocol. Ao usá-lo para distinguir entre a versão de IP, use os valores IPv4 e IPv6 . |
DnsQueryClass | Opcional | Inteiro | A ID da classe DNS. Na prática, apenas a classe IN (ID 1) é usada e, portanto, este campo é menos valioso. |
DnsQueryClassName | Opcional | Cadeia de caracteres | O nome de classe DNS. Na prática, apenas a classe IN (ID 1) é usada e, portanto, este campo é menos valioso. Exemplo: IN |
DnsFlags | Opcional | Cadeia de caracteres | O campo Flags, conforme fornecido pelo dispositivo de relatório. Se as informações do sinalizador forem fornecidas em vários campos, concatene-as com vírgula como separador. Como os sinalizadores DNS são complexos de serem analisados e são menos frequentemente usados pela análise, a análise e a normalização não são necessárias. O Microsoft Sentinel pode usar uma função auxiliar para fornecer informações de sinalizadores. Para saber mais, confira Lidar com respostas DNS. Exemplo: ["DR"] |
DnsNetworkDuration | Opcional | Inteiro | O tempo total, em milissegundos, para a conclusão da solicitação DNS. Exemplo: 1500 |
Duration | Alias | Alias para DnsNetworkDuration | |
DnsFlagsAuthenticated | Opcional | Boolean | O sinalizador DNS AD , que está relacionado a DNSSEC, indica em uma resposta que todos os dados incluídos nas seções de resposta e autoridade da resposta foram verificados pelo servidor, de acordo com as políticas desse servidor. Para obter mais informações, confira Seção 6.1 do RFC 3655. |
DnsFlagsAuthoritative | Opcional | Boolean | O sinalizador DNS AA indica se a resposta do servidor foi autoritativa |
DnsFlagsCheckingDisabled | Opcional | Boolean | O sinalizador DNS CD , que está relacionado a DNSSEC, indica em uma consulta que os dados não verificados são aceitáveis para o sistema que envia a consulta. Para obter mais informações, confira Seção 6.1 do RFC 3655. |
DnsFlagsRecursionAvailable | Opcional | Boolean | O sinalizador DNS RA indica em uma resposta que o servidor dá suporte a consultas recursivas. |
DnsFlagsRecursionDesired | Opcional | Boolean | O sinalizador DNS RD indica em uma solicitação que o cliente gostaria que o servidor usasse consultas recursivas. |
DnsFlagsTruncated | Opcional | Boolean | O sinalizador DNS TC indica que uma resposta foi truncada, pois excedeu o tamanho máximo da resposta. |
DnsFlagsZ | Opcional | Boolean | O sinalizador DNS Z é preterido, o que pode ser reportado por sistemas DNS mais antigos. |
DnsSessionId | Opcional | string | O identificador de sessão DNS, conforme relatado pelo dispositivo de relatório. Esse valor é diferente de TransactionIdHex, a ID exclusiva da consulta DNS atribuída pelo cliente DNS. Exemplo: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55 |
SessionId | Alias | Alias para DnsSessionId | |
DnsResponseIpCountry | Opcional | País | O país/região associado a um dos endereços IP na resposta DNS. Para obter mais informações, confira Tipos lógicos. Exemplo: USA |
DnsResponseIpRegion | Opcional | Região | A região ou estado associado a um dos endereços IP na resposta do DNS. Para obter mais informações, confira Tipos lógicos. Exemplo: Vermont |
DnsResponseIpCity | Opcional | City | A cidade associada a um dos endereços IP na resposta DNS. Para obter mais informações, confira Tipos lógicos. Exemplo: Burlington |
DnsResponseIpLatitude | Opcional | Latitude | A latitude da coordenada geográfica associada a um dos endereços IP na resposta DNS. Para obter mais informações, confira Tipos lógicos. Exemplo: 44.475833 |
DnsResponseIpLongitude | Opcional | Longitude | A longitude da coordenada geográfica associada a um dos endereços IP na resposta DNS. Para obter mais informações, confira Tipos lógicos. Exemplo: 73.211944 |
Campos de inspeção
Os campos a seguir são usados para representar uma inspeção que um dispositivo de segurança DNS executou. Os campos relacionados à ameaça representam uma ameaça associada ao endereço de origem, ao endereço de destino, a um dos endereços IP na resposta ou ao domínio de consulta DNS. Se mais de uma ameaça foi identificada como ameaça, informações sobre outros endereços IP poderão ser armazenadas no campo AdditionalFields
.
Campo | Classe | Tipo | Descrição |
---|---|---|---|
UrlCategory | Opcional | String | Uma origem de evento DNS também pode procurar a categoria dos domínios solicitados. O campo é chamado de UrlCategory para alinhar com o esquema de rede do Microsoft Sentinel. DomainCategory é adicionado como alias adequado para o DNS. Exemplo: Educational \\ Phishing |
DomainCategory | Alias | Alias para UrlCategory. | |
NetworkRuleName | Opcional | Cadeia de caracteres | O nome ou a ID da regra que identificou a ameaça. Exemplo: AnyAnyDrop |
NetworkRuleNumber | Opcional | Inteiro | O número da regra que identificou a ameaça. Exemplo: 23 |
Regra | Alias | String | O valor de NetworkRuleName ou o valor de NetworkRuleNumber. Se o valor de NetworkRuleNumber for usado, o tipo deverá ser convertido em cadeia de caracteres. |
ThreatId | Opcional | Cadeia de caracteres | A ID da ameaça ou do malware identificado na sessão de rede. Exemplo: Tr.124 |
ThreatCategory | Opcional | String | Se uma origem de evento DNS também fornecer segurança DNS, ela também poderá avaliar o evento DNS. Por exemplo, ele pode pesquisar o endereço IP ou o domínio em um banco de dados de inteligência contra ameaças e atribuir o domínio ou o endereço IP com uma categoria de ameaça. |
ThreatIpAddr | Opcional | Endereço IP | Um endereço IP para o qual uma ameaça foi identificada. O campo ThreatField contém o nome do campo que ThreatIpAddr representa. Se uma ameaça for identificada no campo Domínio, esse campo deverá estar vazio. |
ThreatField | Condicional | Enumerated | O campo para o qual uma ameaça foi identificada. O valor é SrcIpAddr , DstIpAddr , Domain ou DnsResponseName . |
ThreatName | Opcional | String | O nome da ameaça identificada, conforme relatado pelo dispositivo de relatório. |
ThreatConfidence | Opcional | Inteiro | O nível de confiança da ameaça identificada, normalizado para um valor entre 0 e 100. |
ThreatOriginalConfidence | Opcional | String | O nível de confiança original da ameaça identificada, conforme relatado pelo dispositivo de relatório. |
ThreatRiskLevel | Opcional | Inteiro | O nível de risco associado à ameaça identificada, normalizado para um valor entre 0 e 100. |
ThreatOriginalRiskLevel | Opcional | String | O nível de risco original associado à ameaça identificada, conforme relatado pelo dispositivo de relatório. |
ThreatIsActive | Opcional | Boolean | True, se a ameaça identificada é considerada uma ameaça ativa. |
ThreatFirstReportedTime | Opcional | DATETIME | A primeira vez em que o endereço IP ou domínio foi identificado como uma ameaça. |
ThreatLastReportedTime | Opcional | DATETIME | A última vez em que o endereço IP ou domínio foi identificado como uma ameaça. |
Aliases e campos preteridos
Os seguintes campos são alias mantidos para compatibilidade com versões anteriores. Eles foram removidos do esquema em 31 de dezembro de 2021.
Query
(alias deDnsQuery
)QueryType
(alias deDnsQueryType
)QueryTypeName
(alias deDnsQueryTypeName
)ResponseName
(alias deDnsResponseName
)ResponseCodeName
(alias deDnsResponseCodeName
)ResponseCode
(alias deDnsResponseCode
)QueryClass
(alias deDnsQueryClass
)QueryClassName
(alias deDnsQueryClassName
)Flags
(alias deDnsFlags
)SrcUserDomain
Atualizações de esquema
As alterações na versão 0.1.2 do esquema são:
- Adicionou o campo
EventSchema
. - Adicionado campo de sinalizador dedicado que aumenta o campo de Sinalizadores combinados:
DnsFlagsAuthoritative
,DnsFlagsCheckingDisabled
,DnsFlagsRecursionAvailable
,DnsFlagsRecursionDesired
,DnsFlagsTruncated
eDnsFlagsZ
.
As alterações na versão 0.1.3 do esquema são:
- Agora, o esquema documenta explicitamente os campos
Src*
,Dst*
,Process*
eUser*
. - Adicionados mais campos
Dvc*
para corresponder à definição de campos comuns mais recentes. - Adicionados
Src
eDst
como aliases a um identificador principal para os sistemas de origem e de destino. - Adicionados
DnsNetworkDuration
eDuration
opcionais, um alias a eles. - Adicionados campos de Nível de Risco e Localização geográfica opcionais.
As alterações na versão 0.1.4 do esquema são:
- Adicionados os campos opcionais
ThreatIpAddr
,ThreatField
,ThreatName
,ThreatConfidence
,ThreatOriginalConfidence
,ThreatOriginalRiskLevel
,ThreatIsActive
,ThreatFirstReportedTime
eThreatLastReportedTime
.
As alterações na versão 0.1.5 do esquema são:
- Adicionados os campos
SrcUserScope
,SrcUserSessionId
,SrcDvcScopeId
,SrcDvcScope
,DstDvcScopeId
,DstDvcScope
,DvcScopeId
eDvcScope
.
As alterações na versão 0.1.6 do esquema são:
- Adicionados os campos
DnsResponseIpCountry
,DnsResponseIpRegion
,DnsResponseIpCity
,DnsResponseIpLatitude
eDnsResponseIpLongitude
.
As alterações na versão 0.1.7 do esquema são:
- Adicionados os campos
SrcDescription
,SrcOriginalRiskLevel
,DstDescription
,DstOriginalRiskLevel
,SrcUserScopeId
,NetworkProtocolVersion
,Rule
,RuleName
,RuleNumber
eThreatId
.
Discrepâncias específicas de origem
O objetivo da normalização é garantir que todas as fontes forneçam telemetria consistente. Uma fonte que não fornece a telemetria necessária, como campos de esquema obrigatórios, não pode ser normalizada. No entanto, as fontes que normalmente fornecem todas as telemetrias necessárias, mesmo se houver algumas discrepâncias, podem ser normalizadas. As discrepâncias podem afetar a integridade dos resultados da consulta.
A tabela a seguir lista as discrepâncias conhecidas:
Fonte | Discrepâncias |
---|---|
Servidor DNS da Microsoft coletado usando o conector DNS e o agente do Log Analytics | O conector não fornece o campo DnsQuery obrigatório para a ID de evento original 264 (resposta a uma atualização dinâmica). Os dados estão disponíveis na origem, mas não são encaminhados pelo conector. |
Corelight Zeek | Corelight Zeek não pode fornecer o campo DnsQuery obrigatório. Observamos esse comportamento em determinados casos em que o nome do código de resposta DNS é NXDOMAIN . |
Lidar com a resposta DNS
Na maioria dos casos, os eventos DNS registrados não incluem informações de resposta, que podem ser grandes e detalhadas. Se o registro incluir mais informações de resposta, armazene-o no campo ResponseName como ele aparece no registro.
Você também pode fornecer uma função KQL extra chamada _imDNS<vendor>Response_
, que aceita a resposta não analisada como entrada e retorna o valor dinâmico com a seguinte estrutura:
[
{
"part": "answer"
"query": "yahoo.com."
"TTL": 1782
"Class": "IN"
"Type": "A"
"Response": "74.6.231.21"
}
{
"part": "authority"
"query": "yahoo.com."
"TTL": 113066
"Class": "IN"
"Type": "NS"
"Response": "ns5.yahoo.com"
}
...
]
Os campos em cada dicionário no valor dinâmico correspondem aos campos em cada resposta DNS. A entrada part
deve incluir answer
, authority
ou additional
para refletir a parte da resposta a que o dicionário pertence.
Dica
Para garantir o desempenho ideal, chame a função imDNS<vendor>Response
somente quando necessário e somente após uma filtragem inicial para garantir um melhor desempenho.
Lidar com sinalizadores DNS
A análise e a normalização não são necessárias para dados de sinalizador. Em vez disso, armazene os dados de sinalizador fornecidos pelo dispositivo de relatório no campo Flags. Se a determinação do valor de sinalizadores individuais for direta, você também poderá usar os campos de sinalizadores dedicados.
Você também pode fornecer uma função KQL extra chamada _imDNS<vendor>Flags_
, que aceita a resposta não analisada, ou campos de sinalizadores dedicados, como entrada e retorna uma lista dinâmica, com valores boolianos que representam cada sinalizador na seguinte ordem:
- AD (Autenticado)
- AA (Autoritativo)
- CD (Verificação desabilitada)
- RA (Recursão disponível)
- RD (Recursão desejada)
- TC (Truncado)
- Z
Próximas etapas
Para obter mais informações, consulte:
- Assista ao Webinar do ASIM ou examine os slides
- Visão geral do ASIM (Modelo de Informações de Segurança Avançado)
- Esquemas do ASIM (Modelo de Informações de Segurança Avançado)
- Analisadores do ASIM (Modelo de Informações de Segurança Avançado)
- Conteúdo do ASIM (Modelo de Informações de Segurança Avançado)