Partilhar via


Sysmon v15.2

Por Mark Russinovich e Thomas Garnier

Publicado: 26 de março de 2026

Download Baixar Sysmon(4.6 MB)

Baixar Sysmon para Linux (GitHub)

Introdução

O Monitor do Sistema (Sysmon) é um serviço do sistema Windows e driver de dispositivo que, uma vez instalado em um sistema, permanece residente nas reinicializações do sistema para monitorar e registrar a atividade do sistema no log de eventos do Windows. Ele fornece informações detalhadas sobre criações de processos, conexões de rede e alterações no tempo de criação de arquivos. Ao coletar os eventos gerados usando a Coleta de Eventos do Windows ou agentes SIEM e, posteriormente, analisá-los, você pode identificar atividades maliciosas ou anômalas e entender como intrusos e malware operam em sua rede. O serviço é executado como um processo protegido, não permitindo assim uma ampla gama de interações de modo de usuário.

Note que o Sysmon não fornece análise dos eventos que gera, nem tenta esconder-se dos atacantes.

Visão geral dos recursos do Sysmon

O Sysmon inclui os seguintes recursos:

  • Regista a criação de processos com linha de comando completa para os processos atuais e os processos pai.
  • Registra o hash de arquivos de imagem de processo usando SHA1 (o padrão), MD5, SHA256 ou IMPHASH.
  • Vários hashes podem ser usados ao mesmo tempo.
  • Inclui um GUID de processo em eventos de criação de processo para permitir a correlação de eventos, mesmo quando o Windows reutiliza IDs de processo.
  • Inclui um GUID de sessão em cada evento para permitir a correlação de eventos na mesma sessão de logon.
  • Registra o carregamento de drivers ou DLLs com suas assinaturas e hashes.
  • Os logs são abertos para leitura direta de discos e volumes.
  • Opcionalmente, registra conexões de rede, incluindo o processo de origem de cada conexão, endereços IP, números de porta, nomes de host e nomes de porta.
  • Deteta alterações no tempo de criação de arquivos para entender quando um arquivo foi realmente criado. A modificação dos carimbos de data e hora de criação de arquivos é uma técnica frequentemente utilizada por software malicioso para encobrir os seus rastros.
  • Recarregue automaticamente a configuração se alterada no registro.
  • Filtragem de regras para incluir ou excluir determinados eventos dinamicamente.
  • Gera eventos desde o início do processo de inicialização para capturar a atividade feita até mesmo por malware sofisticado de modo kernel.

Capturas de ecrã

EventViewer

Utilização

Uso comum com opções de linha de comando simples para instalar e desinstalar o Sysmon, bem como para verificar e modificar sua configuração:

Instalar: sysmon64 -i [<configfile>]
Configuração da atualização: sysmon64 -c [<configfile>]
Manifesto do evento de instalação: sysmon64 -m
Esquema de impressão: sysmon64 -s
Desinstalar: sysmon64 -u [force]

Parâmetro Descrição
-i Instale o serviço e o driver. Opcionalmente, pegue um arquivo de configuração.
-c Atualize a configuração de um driver Sysmon instalado ou despeje a configuração atual se nenhum outro argumento for fornecido. Opcionalmente, aceita um ficheiro de configuração.
-m Instale o manifesto do evento (também feito implicitamente na instalação do serviço).
-s Definição do esquema de configuração de impressão.
-u Desinstale o serviço e o driver. O uso -u force faz com que a desinstalação prossiga mesmo quando alguns componentes não estão instalados.

O serviço registra eventos imediatamente e o driver é instalado como um driver de inicialização para capturar a atividade desde o início da inicialização que o serviço gravará no log de eventos quando ele for iniciado.

No Vista e superior, os eventos são armazenados em Applications and Services Logs/Microsoft/Windows/Sysmon/Operational. Em sistemas mais antigos, os eventos são gravados no log de System eventos.

Se precisar de mais informações sobre arquivos de configuração, use o -? config comando.

Especifique -accepteula para aceitar automaticamente o EULA na instalação, caso contrário, você será solicitado interativamente a aceitá-lo.

Nem instalar nem desinstalar requer uma reinicialização.

Exemplos

Instalar com configurações padrão (processar imagens em hash com SHA1 e sem monitoramento de rede)

sysmon -accepteula -i

Instale o Sysmon com um arquivo de configuração (conforme descrito abaixo)

sysmon -accepteula -i c:\windows\config.xml

Desinstalar

sysmon -u

Fazer o dump da configuração atual

sysmon -c

Reconfigurar um Sysmon ativo com um arquivo de configuração (conforme descrito abaixo)

sysmon -c c:\windows\config.xml

Alterar a configuração para as configurações padrão

sysmon -c --

Mostrar o esquema de configuração

sysmon -s

eventos

No Vista e superior, os eventos são armazenados em Applications and Services Logs/Microsoft/Windows/Sysmon/Operational, e em sistemas mais antigos, os eventos são gravados no log de eventos System. Os carimbos de data/hora do evento estão na hora padrão UTC.

A seguir estão exemplos de cada tipo de evento que o Sysmon gera.

ID do Evento 1: Criação do processo

O evento de criação de processo fornece informações detalhadas sobre um processo recém-criado. A linha de comando completa fornece contexto sobre a execução do processo. O ProcessGUID campo é um valor exclusivo para esse processo em um domínio para facilitar a correlação de eventos. O hash é um hash completo do arquivo com os algoritmos no HashType campo.

ID do Evento 2: Um processo alterou um tempo de criação de arquivo

O evento de alteração do tempo de criação do arquivo é registado quando o tempo de criação do arquivo é explicitamente modificado por um processo. Esse evento ajuda a controlar o tempo real de criação de um arquivo. Os invasores podem alterar a data de criação de um ficheiro de backdoor para fazer parecer que foi instalado com o sistema operativo. Observe que muitos processos alteram legitimamente o tempo de criação de um arquivo; não indica necessariamente atividade maliciosa.

ID do Evento 3: Conexão de rede

O evento de conexão de rede registra conexões TCP/UDP na máquina. Está desativado por predefinição. Cada conexão está ligada a um processo através dos ProcessId campos e ProcessGuid . O evento também contém os nomes de host de origem e destino, endereços IP, números de porta e status IPv6.

ID do Evento 4: Estado do serviço Sysmon alterado

O evento de alteração de estado do serviço relata o estado do serviço Sysmon (iniciado ou interrompido).

ID do Evento 5: Processo encerrado

O processo encerra relatórios de eventos quando um processo é encerrado. Fornece o UtcTime, ProcessGuid e ProcessId do processo.

ID do Evento 6: Driver carregado

Os eventos carregados pelo driver fornecem informações sobre um driver que está sendo carregado no sistema. Os hashes configurados são fornecidos, bem como informações de assinatura. A assinatura é criada de forma assíncrona por motivos de desempenho e indica se o arquivo foi removido após o carregamento.

ID do Evento 7: Imagem carregada

O evento de carregamento de imagem é registado quando um módulo é carregado num processo específico. Esse evento está desabilitado por padrão e precisa ser configurado com a opção "–l". Ele indica o processo em que o módulo é carregado, hashes e informações de assinatura. A assinatura é criada de forma assíncrona por motivos de desempenho e indica se o arquivo foi removido após o carregamento. Esse evento deve ser configurado com cuidado, pois o monitoramento de todos os eventos de carregamento de imagem gerará uma quantidade significativa de registro.

ID do Evento 8: CreateRemoteThread

O CreateRemoteThread evento deteta quando um processo cria um thread em outro processo. Esta técnica é usada por malware para injetar código e se esconder em outros processos. O evento indica os processos de origem e de destino. Ele fornece informações sobre o código que será executado no novo thread: StartAddress, StartModule e StartFunction. Observe que StartModule e StartFunction os campos são inferidos, eles podem estar vazios se o endereço inicial estiver fora dos módulos carregados ou funções conhecidas exportadas.

ID do Evento 9: RawAccessRead

O RawAccessRead evento detecta quando um processo conduz operações de leitura do disco usando a \\.\ denotação. Esta técnica é frequentemente usada por malware para exfiltração de dados de ficheiros que estão bloqueados para leitura, bem como para evitar ferramentas de auditoria de acesso a ficheiros. O evento indica o processo de origem e o dispositivo de destino.

ID do Evento 10: ProcessAccess

O processo acessou relatórios de eventos quando um processo abre outro processo, uma operação que geralmente é seguida por consultas de informações ou leitura e gravação do espaço de endereço do processo de destino. Isso permite a deteção de ferramentas de hacking que leem o conteúdo da memória de processos como a Autoridade de Segurança Local (Lsass.exe) para roubar credenciais para uso em ataques Pass-the-Hash. Habilitá-lo pode gerar quantidades significativas de registro se houver utilitários de diagnóstico ativos que abrem repetidamente processos para consultar seu estado, portanto, geralmente, isso só deve ser feito com filtros que removem os acessos esperados.

ID do Evento 11: FileCreate

As operações de criação de arquivo são registradas quando um arquivo é criado ou substituído. Este evento é útil para monitorar locais de início automático, como a pasta de inicialização, bem como diretórios temporários e de download, que são lugares comuns em que o malware cai durante a infeção inicial.

ID do Evento 12: RegistryEvent (Criação e exclusão de objetos)

As operações de criação e exclusão de chave e valor do Registo são mapeadas para este tipo de evento, o que pode ser útil para monitorizar alterações nos locais de início automático do Registo ou modificações específicas do registo de malware.

O Sysmon usa versões abreviadas de nomes de chaves raiz do Registro, com os seguintes mapeamentos:

Nome da chave Abreviatura
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_LOCAL_MACHINE\System\ControlSet00x HKLM\System\CurrentControlSet
HKEY_LOCAL_MACHINE\Classes HKCR

ID do Evento 13: RegistryEvent (conjunto de valores)

Esse tipo de evento do Registro identifica as modificações do valor do Registro. O evento registra o valor gravado para valores do Registro do tipo DWORD e QWORD.

ID do Evento 14: RegistryEvent (Renomeação de Chave e Valor)

As operações de renomeação de chave e valor do registo são mapeadas para este tipo de evento, registando o novo nome da chave ou do valor que foi renomeado.

ID do Evento 15: FileCreateStreamHash

Esse evento registra quando um fluxo de arquivo nomeado é criado e gera eventos que registram o hash do conteúdo do arquivo ao qual o fluxo é atribuído (o fluxo sem nome), bem como o conteúdo do fluxo nomeado. Existem variantes de malware que descartam seus executáveis ou definições de configuração por meio de downloads do navegador, e esse evento tem como objetivo capturar isso com base no navegador anexando um Zone.Identifier fluxo de "marca da web".

ID do Evento 16: Alteração da Configuração do Serviço

Esse evento registra alterações na configuração do Sysmon - por exemplo, quando as regras de filtragem são atualizadas.

ID do Evento 17: PipeEvent (Pipe Created)

Esse evento é gerado quando um pipe nomeado é criado. O malware geralmente usa pipes nomeados para comunicação entre processos.

ID do Evento 18: PipeEvent (Pipe Connected)

Esse evento regista quando uma ligação de tubo nomeado é estabelecida entre um cliente e um servidor.

ID do Evento 19: WmiEvent (atividade WmiEventFilter detetada)

Quando um filtro de eventos WMI é registrado, que é um método usado por malware para executar, esse evento registra o namespace WMI, o nome do filtro e a expressão de filtro.

ID do Evento 20: WmiEvent (atividade WmiEventConsumer detetada)

Este evento regista o registo de consumidores de WMI, anotando o nome, o log e o destino do consumidor.

ID do Evento 21: WmiEvent (atividade WmiEventConsumerToFilter detetada)

Quando um consumidor se liga a um filtro, esse evento registra o nome do consumidor e o caminho do filtro.

ID do Evento 22: DNSEvent (consulta DNS)

Esse evento é gerado quando um processo executa uma consulta DNS, quer o resultado seja bem-sucedido ou falhe, armazenado em cache ou não. A telemetria para este evento foi adicionada para o Windows 8.1 e, portanto, não está disponível no Windows 7 e versões anteriores.

ID do Evento 23: FileDelete (Eliminação de ficheiro arquivada)

Um arquivo foi excluído. Além de registrar o evento, o arquivo excluído também é salvo no ArchiveDirectory (que é C:\Sysmon por padrão). Em condições normais de operação, esse diretório pode crescer para um tamanho não razoável - consulte o ID do evento 26: para um comportamento semelhante, FileDeleteDetected mas sem salvar os arquivos excluídos.

ID do Evento 24: ClipboardChange (Novo conteúdo na área de transferência)

Esse evento é gerado quando o conteúdo da área de transferência do sistema é alterado.

ID do Evento 25: ProcessTampering (alteração da imagem do processo)

Este evento é gerado quando técnicas de ocultação de processos como "hollow" ou "herpaderp" são detetadas.

ID do Evento 26: FileDeleteDetected (Exclusão de arquivo registrada)

Um arquivo foi excluído.

ID do Evento 27: FileBlockExecutable

Este evento é gerado quando Sysmon deteta e bloqueia a criação de arquivos executáveis (formato PE).

ID do Evento 28: FileBlockShredding

Esse evento é gerado quando o Sysmon deteta e bloqueia a destruição de arquivos de ferramentas como SDelete.

ID do Evento 29: FileExecutableDetected

Esse evento é gerado quando o Sysmon deteta a criação de um novo arquivo executável (formato PE).

ID do Evento 255: Erro

Este evento é gerado quando ocorreu um erro no Sysmon. Eles podem acontecer se o sistema estiver sob carga pesada e certas tarefas não puderem ser executadas ou se existir um bug no serviço Sysmon, ou mesmo se certas condições de segurança e integridade não forem atendidas. Pode reportar quaisquer bugs no fórum Sysinternals.

Arquivos de configuração

Os ficheiros de configuração podem ser especificados após os interruptores -i (instalação) ou -c (instalação). Eles facilitam a implantação de uma configuração predefinida e o filtro de eventos capturados.

Um arquivo xml de configuração simples tem esta aparência:

<Sysmon schemaversion="4.82">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <DriverLoad onmatch="exclude">
      <Signature condition="contains">microsoft</Signature>
      <Signature condition="contains">windows</Signature>
    </DriverLoad>
    <!-- Do not log process termination -->
    <ProcessTerminate onmatch="include" />
    <!-- Log network connection if the destination port equal 443 -->
    <!-- or 80, and process isn't InternetExplorer -->
    <NetworkConnect onmatch="include">
      <DestinationPort>443</DestinationPort>
      <DestinationPort>80</DestinationPort>
    </NetworkConnect>
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">iexplore.exe</Image>
    </NetworkConnect>
  </EventFiltering>
</Sysmon>

O arquivo de configuração contém um atributo schemaversion na tag Sysmon. Esta versão é independente da versão binária do Sysmon e permite a análise de arquivos de configuração mais antigos. Você pode obter a versão atual do esquema usando a linha de comando "-? config". As entradas de configuração estão diretamente sob a tag Sysmon e os filtros estão sob a tag EventFiltering.

Entradas de configuração

As entradas de configuração são semelhantes às opções de linha de comando e incluem o seguinte

As entradas de configuração incluem o seguinte:

Entrada valor Descrição
Diretório de Arquivamento String Nome dos diretórios nas raízes do volume para os quais os arquivos copy-on-delete são movidos. O diretório é protegido com uma ACL do sistema (você pode usar PsExec de Sysinternals para acessar o diretório usando psexec -sid cmd). Predefinição: Sysmon
Verificação de Revogação booleano Controla as verificações de revogação de assinatura. Predefinição: True
CopyOnDeletePE booleano Preserva arquivos de imagem executáveis excluídos. Predefinição: False
CopyOnDeleteSIDs Cadeias Lista separada por vírgulas de SIDs de conta para os quais as exclusões de arquivos serão preservadas.
CopyOnDeleteExtensions Cadeias Extensões para ficheiros que são preservados quando eliminados.
CopiarAoEliminarProcessos Cadeias O(s) nome(s) do processo para o(s) qual(is) as exclusões de arquivo serão preservadas.
DnsLookup booleano Controla a pesquisa reversa de DNS. Predefinição: True
Nome do Driver String Usa o nome especificado para imagens de controlador e serviço.
Algoritmos de Hash Cadeias Algoritmo(s) de hash a aplicar. Os algoritmos suportados incluem MD5, SHA1, SHA256, IMPHASH e * (todos). Predefinição: None

As opções de linha de comando têm a sua configuração descrita no resultado de utilização do Sysmon. Os parâmetros são opcionais com base na tag . Se uma opção de linha de comando também habilitar um evento, ela precisará ser configurada por meio de sua marca de filtro. Você pode especificar a opção -s para que o Sysmon imprima o esquema de configuração completo, incluindo etiquetas de evento e também os nomes e tipos de campo para cada evento. Por exemplo, aqui está o esquema para o RawAccessRead tipo de evento:

<event name="SYSMON_RAWACCESS_READ" value="9" level="Informational "template="RawAccessRead detected" rulename="RawAccessRead" version="2">  
  <data name="UtcTime" inType="win:UnicodeString" outType="xs:string"/>  
  <data name="ProcessGuid" inType="win:GUID"/>  
  <data name="ProcessId" inType="win:UInt32" outType="win:PID"/>  
  <data name="Image" inType="win:UnicodeString" outType="xs:string"/>  
  <data name="Device" inType="win:UnicodeString" outType="xs:string"/>  
</event>  

Entradas de filtragem de eventos

A filtragem de eventos permite filtrar os eventos gerados. Em muitos casos, os eventos podem ser barulhentos e reunir tudo não é possível. Por exemplo, você pode estar interessado em conexões de rede apenas para um determinado processo, mas não para todas. Você pode filtrar a saída no host reduzindo os dados a serem coletados.

Cada evento tem sua própria marca de filtro no nó EventFiltering em um arquivo de configuração:

ID Etiqueta Evento
1 Criar Processo Criação de processos
2 HoraCriacaoFicheiro Tempo de criação do ficheiro
3 NetworkConnect Conexão de rede detetada
4 n/d Alteração do estado do serviço Sysmon (não pode ser filtrado)
5 ProcessTerminate Processo encerrado
6 DriverLoad Driver carregado
7 ImageLoad Imagem carregada
8 CreateRemoteThread CreateRemoteThread detetado
9 RawAccessRead RawAccessRead detetado
10 ProcessAccess Processo acessado
11 ArquivoCriar Arquivo criado
12 RegistroEvento Objeto do Registro adicionado ou excluído
13 Registo de Evento Conjunto de valores do Registro
14 Evento de Registo Objeto do Registro renomeado
15 FileCreateStreamHash Fluxo de arquivos criado
16 n/d Alteração de configuração do Sysmon (não pode ser filtrada)
17 PipeEvent Canalização nomeada criada
18 PipeEvent Tubo nomeado conectado
19 WmiEvent Filtro WMI
20 WmiEvent Consumidor de WMI
21 WmiEvent Filtro de consumidor WMI
22 DnsQuery consulta DNS
23 EliminarFicheiro Excluir arquivo arquivado
24 Área de transferênciaAlterar Novo conteúdo na área de transferência
25 Adulteração de processos Alterar imagem de processo
26 Eliminação de Ficheiro Detetada Registro de exclusão de arquivo
27 FileBlockExecutável Bloqueio de Arquivos Executáveis
28 FileBlockShredding Destruição de blocos de arquivos
29 FileExecutableDetected Arquivo executável detetado

Você também pode encontrar essas tags no visualizador de eventos no nome da tarefa.

O onmatch filtro é aplicado se os eventos forem correspondidos. Ele pode ser alterado com o onmatch atributo para a tag de filtro. Se o valor for "include", significa que apenas os eventos correspondentes são incluídos. Se estiver definido como "exclude", o evento será incluído, a não ser que haja correspondência com uma regra. Você pode especificar um conjunto de filtros de inclusão e um conjunto de filtros de exclusão para cada ID de evento, onde as correspondências de exclusão têm precedência.

Cada filtro pode incluir zero ou mais regras. Cada tag sob a tag de filtro é um nome de campo do evento. As regras que especificam uma condição para o mesmo nome de campo se comportam como condições OU e as que especificam nomes de campo diferentes se comportam como condições AND. As regras de campo também podem usar condições para corresponder a um valor. As condições são as seguintes (sem distinção entre maiúsculas e minúsculas):

Condição Descrição
é Padrão, os valores são iguais
é qualquer O campo é um dos ; valores delimitados
Não é Os valores são diferentes
contém: O campo contém este valor
contém qualquer O campo contém qualquer um dos ; valores delimitados
contém todos O campo contém todos os ; valores delimitados
exclui O campo não contém este valor
exclui todos os O campo não contém um ou mais dos ; valores delimitados
exclui todos os O campo não contém nenhum dos ; valores delimitados
começar com O campo começa com este valor
terminar com O campo termina com este valor
não começar com O campo não começa com este valor
não termina com O campo não termina com este valor
menos de A comparação lexicográfica é inferior a zero
mais do que A comparação lexicográfica é superior a zero
imagem Localizar um caminho para uma imagem (caminho completo ou apenas o nome da imagem). Por exemplo: lsass.exe corresponderá c:\windows\system32\lsass.exe

Você pode usar uma condição diferente especificando-a como um atributo. Isso exclui a atividade de rede de processos com iexplore.exe em seu caminho:

<NetworkConnect onmatch="exclude">
  <Image condition="contains">iexplore.exe</Image>
</NetworkConnect>

Para que o Sysmon relate qual a correspondência de regra que resultou no registo de um evento, adicione nomes às regras.

<NetworkConnect onmatch="exclude">
  <Image name="network iexplore" condition="contains">iexplore.exe</Image>
</NetworkConnect>

Você pode usar regras de inclusão e exclusão para a mesma tag, onde regras de exclusão substituem regras de inclusão. Dentro de uma regra, as condições do filtro têm comportamento do tipo lógico "OR".

Na configuração de exemplo mostrada anteriormente, o filtro de rede usa uma regra de inclusão e exclusão para capturar a atividade para as portas 80 e 443 por todos os processos, exceto aqueles que têm iexplore.exe em seu nome.

Também é possível substituir a maneira como as regras são combinadas usando um grupo de regras que permite que o tipo de combinação de regras para um ou mais eventos seja definido explicitamente como AND ou OR.

O exemplo a seguir demonstra esse uso. No primeiro grupo de regras, um evento process create será gerado quando timeout.exe for executado somente com um argumento de linha de comando de 100, mas um evento process terminate será gerado para o encerramento de ping.exe e timeout.exe.

  <EventFiltering>
    <RuleGroup name="group 1" groupRelation="and">
      <ProcessCreate onmatch="include">
        <Image condition="contains">timeout.exe</Image>
        <CommandLine condition="contains">100</CommandLine>
      </ProcessCreate>
    </RuleGroup>
    <RuleGroup groupRelation="or">
      <ProcessTerminate onmatch="include">
        <Image condition="contains">timeout.exe</Image>
        <Image condition="contains">ping.exe</Image>
      </ProcessTerminate>        
    </RuleGroup>
    <ImageLoad onmatch="include"/>
  </EventFiltering>

Download Baixar Sysmon(4.6 MB)

Funciona em:

  • Cliente: Windows 10 e superior.
  • Servidor: Windows Server 2016 e superior.