Sysmon v13.31
Por Mark Russinovich e Thomas Garnier
Publicado: 16 de dezembro de 2021
Baixar Sysmon(3.1 MB)
Introdução
System Monitor(Sysmon)é um Windows sistema de serviço e controlador de dispositivos que, uma vez instalado num sistema, permanece residente em todo o sistema reinicializa para monitorizar e registar a atividade do sistema para o registo de eventos Windows. Fornece informações detalhadas sobre criações de processos, ligações de rede e alterações para o tempo de criação de ficheiros. Ao recolher os eventos que gera utilizando Windows agentes da Coleção de Eventos ou SIEM e posteriormente analisá-los, pode identificar atividade maliciosa ou anómala e entender como os intrusos e malware operam na sua rede.
Note que Sysmon não fornece a análise dos eventos que gera, nem tenta proteger-se ou esconder-se dos atacantes.
Visão geral das capacidades do Sysmon
A Sysmon inclui as seguintes capacidades:
- Logs processam criação com linha de comando completa para processos atuais e pais.
- Regista o haxixe dos ficheiros de imagem de processo utilizando SHA1 (o padrão), MD5, SHA256 ou IMPHASH.
- Podem ser usados múltiplos hashes ao mesmo tempo.
- Inclui um processo GUID em processo criar eventos para permitir a correlação de eventos mesmo quando Windows reutiliza iDs de processo.
- Inclui uma sessão GUID em cada evento para permitir a correlação de eventos na mesma sessão de início de sessão.
- Regista carregamento de condutores ou DLLs com as suas assinaturas e hashes.
- Os registos abrem-se para acesso de discos e volumes de leitura bruta.
- Regista opcionalmente ligações de rede, incluindo o processo de origem de cada ligação, endereços IP, números de porta, nomes de anfitriões e nomes de portas.
- Deteta alterações no tempo de criação de ficheiros para perceber quando um ficheiro foi realmente criado. A modificação dos timetamps de criação de ficheiros é uma técnica comumente utilizada por malware para cobrir as suas faixas.
- Recarregar automaticamente a configuração se for alterada no registo.
- Filtragem de regras para incluir ou excluir determinados eventos dinamicamente.
- Gera eventos desde o início do processo de boot para capturar atividade feita por malware sofisticado de modo kernel.
Capturas de ecrã

Utilização
Utilização comum com opções simples de linha de comando para instalar e desinstalar o Sysmon, bem como para verificar e modificar a sua configuração:
Instalação: sysmon64 -i [<configfile>]
Configuração de atualização: sysmon64 -c [<configfile>]
Instalar manifesto de evento: sysmon64 -m
Esquema de impressão: sysmon64 -s
Desinstalar: sysmon64 -u [force]
| Parâmetro | Descrição |
|---|---|
| -i | Instale o serviço e o controlador. Opcionalmente, pegue um ficheiro de configuração. |
| -c | Atualize a configuração de um controlador Sysmon instalado ou despeje a configuração atual se não for fornecido nenhum outro argumento. Opcionalmente, leva um ficheiro de configuração. |
| -m | Instale o manifesto do evento (implicitamente feito também na instalação de serviço). |
| -s | Imprima definição de esquema de configuração. |
| -u | Desinstalar o serviço e o motorista. A utilização -u force de causas de desinstalar para proceder mesmo quando alguns componentes não estão instalados. |
O serviço regista imediatamente os eventos e o controlador instala-se como controlador de arranque para capturar a atividade desde o início da bagageira que o serviço escreverá para o registo do evento quando começar.
No Vista e mais alto, os eventos são armazenados em Applications and Services Logs/Microsoft/Windows/Sysmon/Operational .
Em sistemas mais antigos, os eventos são escritos no registo do System evento.
Se precisar de mais informações sobre ficheiros de configuração, utilize o -? config comando.
Especifique -accepteula para aceitar automaticamente o EULA na instalação, caso contrário será solicitado interativamente para aceitá-lo.
Nem a instalação nem a desinstalação requer um reboot.
Exemplos
Instale com definições predefinidas (imagens de processo hashed com SHA1 e sem monitorização de rede)
sysmon -accepteula -i
Instale o Sysmon com um ficheiro de configuração (conforme descrito abaixo)
sysmon -accepteula -i c:\windows\config.xml
Desinstalar
sysmon -u
Despeje a configuração atual
sysmon -c
Reconfigure um Sysmon ativo com um ficheiro de configuração (como descrito abaixo)
sysmon -c c:\windows\config.xml
Alterar a configuração para definições predefinidos
sysmon -c --
Mostrar o esquema de configuração
sysmon -s
evento
No Vista e mais alto, os eventos são armazenados em Applications and Services Logs/Microsoft/Windows/Sysmon/Operational , e em eventos de sistemas mais antigos são escritos para o registo de eventos do Sistema. Os prazos do evento estão no tempo padrão utc.
Seguem-se exemplos de cada tipo de evento que o Sysmon gera.
ID do evento 1: Criação de processo
O evento de criação de processos fornece informações alargadas sobre um processo recém-criado. A linha de comando completa fornece contexto sobre a execução do processo. O campo ProcessGUID é um valor único para este processo através de um domínio para facilitar a correlação de eventos. O haxixe é um haxixe completo do ficheiro com os algoritmos no campo HashType.
ID do evento 2: Um processo mudou o tempo de criação de ficheiros
O evento de alteração do tempo de criação de ficheiros é registado quando um tempo de criação de ficheiros é explicitamente modificado por um processo. Este evento ajuda a rastrear o tempo real de criação de um ficheiro. Os atacantes podem alterar o tempo de criação de ficheiros de uma porta traseira para fazer parecer que foi instalado com o sistema operativo. Note que muitos processos mudam legitimamente o tempo de criação de um ficheiro; não indica necessariamente atividade maliciosa.
ID do evento 3: Ligação à rede
O evento de ligação de rede regista ligações TCP/UDP na máquina. Está desativado por predefinição. Cada ligação está ligada a um processo através dos campos ProcessId e ProcessGUID. O evento também contém os nomes IP de origem e destino, números de porta e estado do IPv6.
ID do evento 4: Estado de serviço Sysmon alterado
O evento de alteração do estado de serviço informa o estado do serviço Sysmon (iniciado ou parado).
ID do evento 5: Processo encerrado
O processo termina os relatórios do evento quando um processo termina. Fornece o UtcTime, ProcessGuid e ProcessId do processo.
ID do evento 6: Condutor carregado
Os eventos carregados pelo condutor fornecem informações sobre o condutor que está a ser carregado no sistema. Os hashes configurados são fornecidos, bem como informações de assinatura. A assinatura é criada assíncroneamente por razões de desempenho e indica se o ficheiro foi removido após o carregamento.
ID do evento 7: Imagem carregada
A imagem carregada regista-se quando um módulo é carregado num processo específico. Este evento é desativado por padrão e precisa de ser configurado com a opção -l. Indica o processo em que o módulo é carregado, hashes e informações de assinatura. A assinatura é criada assíncroneamente por razões de desempenho e indica se o ficheiro foi removido após o carregamento. Este evento deve ser configurado cuidadosamente, uma vez que monitorizar todos os eventos de carga de imagem gerará um grande número de eventos.
ID do evento 8: CreateRemoteThread
O evento CreateRemoteThread deteta quando um processo cria um fio noutro processo. Esta técnica é usada por malware para injetar código e esconder-se em outros processos. O evento indica a origem e o processo alvo. Fornece informações sobre o código que será executado no novo fio: StartAddress, StartModule e StartFunction. Note que os campos StartModule e StartFunction são inferidos, podem estar vazios se o endereço de partida estiver fora de módulos carregados ou funções exportadas conhecidas.
ID do evento 9: RawAccessRead
O evento RawAccessRead deteta quando um processo realiza operações de leitura a partir da unidade utilizando a \\.\ denotação. Esta técnica é frequentemente utilizada 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 alvo.
ID do evento 10: ProcessAccess
O processo acedeu aos relatórios de eventos quando um processo abre outro processo, uma operação que é frequentemente seguida por consultas de informação ou leitura e escrita do espaço de endereço do processo-alvo. Isto permite a deteção de ferramentas de hacking que lêem 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. Permitir que possa gerar quantidades significativas de registo se existirem utilitários de diagnóstico ativos que abrem repetidamente processos para consultar o seu estado, pelo que, geralmente, só deve ser feito com filtros que removem os acessos esperados.
ID do evento 11: FileCreate
As operações de criação de ficheiros são registadas quando um ficheiro é criado ou substituído. Este evento é útil para monitorizar localizações de arranque automático, como a pasta Startup, bem como diretórios temporários e de descarregamento, que são locais comuns que o malware cai durante a infeção inicial.
ID do evento 12: RegistryEvent (Criar e excluir objetos)
A chave de registo e o valor criam e apagam o mapa de operações deste tipo de evento, o que pode ser útil para monitorizar alterações nas localizações de arranque automático do Registo ou modificações específicas do registo de malware.
A Sysmon utiliza versões abreviadas de nomes-chave de raiz do registo, 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 Valor)
Este tipo de evento de registo identifica modificações de valor do registo. O evento regista o valor escrito para valores de registo do tipo DWORD e QWORD.
ID do evento 14: RegistryEvent (Chave e Renome de Valor)
Chave de registo e valor rebatizam mapa de operações para este tipo de evento, registando o novo nome da chave ou valor que foi renomeado.
ID do evento 15: FileCreateStreamHash
Este evento regista-se quando um fluxo de ficheiros nomeado é criado, e gera eventos que registam o haxixe do conteúdo do ficheiro ao qual o stream é atribuído (o fluxo não nomeado), bem como o conteúdo do stream nomeado. Existem variantes de malware que deixam cair as suas configurações executáveis ou configurações através de downloads de navegador, e este evento destina-se a capturar isso com base no navegador anexando uma Zone.Identifier "marca da web".
ID do evento 16: ServiceConfigurationChange
Este evento regista alterações na configuração do Sysmon - por exemplo, quando as regras de filtragem são atualizadas.
ID do evento 17: Pipeevent (Tubo criado)
Este evento gera quando um tubo nomeado é criado. Malware usa frequentemente tubos nomeados para comunicação interprocessa.
ID do evento 18: PipeEvent (Pipe Connected)
Este evento regista-se quando uma ligação de tubos com nome é feita entre um cliente e um servidor.
ID do evento 19: WmiEvent (atividade do WmiEventFilter detetada)
Quando um filtro de evento WMI é registado, que é um método usado por malware para executar, este evento regista o espaço de nome WMI, nome do filtro e expressão de filtro.
ID do evento 20: WmiEvent (atividade WmiEventConsumer detetada)
Este evento regista o registo dos consumidores de IMI, registando o nome do consumidor, registo e destino.
ID do evento 21: WmiEvent (WmiEventConsumerToFiltro detetado)
Quando um consumidor se liga a um filtro, este evento regista o nome do consumidor e o caminho do filtro.
ID do evento 22: DNSEvent (consulta DNS)
Este evento é gerado quando um processo executa uma consulta DNS, se o resultado é bem sucedido ou falha, em cache ou não. A telemetria para este evento foi adicionada para Windows 8.1 por isso não está disponível no Windows 7 e mais cedo.
ID do evento 23: FileDelete (Arquivo Delete arquivado)
Um ficheiro foi apagado. Além de registar o evento, o ficheiro eliminado também é guardado no ArchiveDirectory (que é C:\Sysmon por defeito). Em condições normais de funcionamento este diretório pode crescer para um tamanho irracional - ver iD 26 do evento: FileDeleteDetected para comportamento semelhante, mas sem guardar os ficheiros eliminados.
ID do evento 24: ClipboardChange (Novo conteúdo na área de transferência)
Este evento é gerado quando o conteúdo da área de transferência do sistema muda.
ID do evento 25: ProcessTampering (alteração de imagem de processo)
Este evento é gerado quando estão a ser detetadas técnicas de ocultação de processos como "oco" ou "herpaderp".
ID do evento 26: FileDeleteDeteced (Ficheiro Delete registado)
Um ficheiro foi apagado.
ID do evento 255: Erro
Este evento é gerado quando ocorreu um erro dentro de Sysmon. Podem ocorrer se o sistema estiver sob carga pesada e determinados tarefas não puderem ser executados ou existir um bug no serviço Sysmon. Pode reportar quaisquer bugs no fórum Sysinternals ou no Twitter(@markrussinovich).
Ficheiros de configuração
Os ficheiros de configuração podem ser especificados após os interruptores de configuração -i (instalação) ou -c (instalação). Facilitam a implementação de uma configuração predefinida e filtram eventos capturados.
Um simples ficheiro xml de configuração é assim:

O ficheiro de configuração contém um atributo de schemaversion na etiqueta Sysmon. Esta versão é independente da versão binária Sysmon e permite a análise de ficheiros de configuração mais antigos. Pode obter a versão atual do esquema usando o "-? config " linha de comando. As entradas de configuração estão diretamente sob a tag Sysmon e os filtros estão sob a etiqueta EventFiltering.
Entradas de Configuração
As entradas de configuração são semelhantes aos comutadores da linha de comando e incluem os seguintes
As entradas de configuração incluem:
| Entrada | Valor | Descrição |
|---|---|---|
| ArquivoDirectório | String | Nome dos diretórios nas raízes do volume em que os ficheiros copy-on-delete são movidos. O diretório está protegido com um Sistema ACL (pode utilizar o PsExec a partir de Sysinternals para aceder ao diretório psexec -sid cmd utilizando). Padrão: Sysmon |
| CheckRevocation | Booleano | Controla as verificações de revogação de assinaturas. Padrão: Verdadeiro |
| CopyOnDeletePE | Booleano | Preserva ficheiros de imagem executáveis eliminados. Padrão: Falso |
| CopyOnDeleteSIDs | Cadeias | A lista de SIDs de conta separadas por vírgulas para as quais os ficheiros serão preservados. |
| CopyOnDeleteExtensions | Cadeias | Extensões para ficheiros que são preservados na eliminação. |
| CopyOnDeleteProcessamentos | Cadeias | Os nomes do processo para os quais os ficheiros serão excluídos serão preservados. |
| DnsLookup | Booleano | Controla a procura de DNS inversa. Padrão: Verdadeiro |
| Nome do condutor | String | Utiliza o nome especitado para imagens de motorista e serviço. |
| HashAlgorithms | Cadeias | Algoritmo de haxixe para se candidatar ao hashing. Os algoritmos suportados incluem MD5, SHA1, SHA256, IMPHASH e * (todos). Padrão: Nenhum |
Os comutadores da linha de comando têm a sua entrada de configuração descrita na saída de utilização do Sysmon. Os parâmetros são opcionais com base na etiqueta. Se um interruptor de linha de comando também ativar um evento, tem de ser configurado embora a sua etiqueta de filtro. Pode especificar o interruptor para que o Sysmon imprima o esquema de configuração completo, incluindo tags de eventos, bem como 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 do evento permite filtrar eventos gerados. Em muitos casos, os eventos podem ser barulhentos e reunir tudo não é possível. Por exemplo, pode estar interessado em ligações de rede apenas para um determinado processo, mas não todos. Pode filtrar a saída do hospedeiro reduzindo os dados a recolher.
Cada evento tem a sua própria etiqueta de filtro sob o nó Desateramento do Evento num ficheiro de configuração:
| ID | Etiqueta | Evento |
|---|---|---|
| 1 ProcessCreate | Criar processos | |
| 2 FileCreateTime | Tempo de criação de ficheiros | |
| 3 NetworkConnect | Ligação de rede detetada | |
| 4 n/a | Alteração do estado de serviço Sysmon (não pode ser filtrada) | |
| 5 Processoterminar | Processo encerrado | |
| 6 DriverLoad | Motorista carregado | |
| 7 ImageLoad | Imagem carregada | |
| 8 CreateRemoteThread | CreateRemoteThread detetado | |
| 9 RawAccessRead | RawAccessRead detetado | |
| 10 ProcessAccess | Processo acedido | |
| 11 FileCreate | Arquivo criado | |
| 12 Evento de Registo | Objeto de registo adicionado ou eliminado | |
| 13 Evento de Registo | Conjunto de valor do registo | |
| 14 Evento de Registo | Objeto de registo renomeado | |
| 15 FileCreateStreamHash | Fluxo de ficheiros criado | |
| 16 n/a | Alteração de configuração do Sysmon (não pode ser filtrada) | |
| 17 PipeEvent | Tubo nomeado criado | |
| 18 PipeEvent | Tubo nomeado conectado | |
| 19 WmiEvent | Filtro WMI | |
| 20 WmiEvent | Consumidor de WMI | |
| 21 WmiEvent | Filtro de consumo do WMI | |
| 22 DNSQuery | Consulta DNS | |
| 23 FileDelete | Ficheiro Excluir arquivado | |
| 24 ClipboardChange | Novos conteúdos na área de transferência | |
| 25 ProcessTampering | Mudança de imagem de processo | |
| 26 FileDeleteDetes | Excluir ficheiros registados |
Também pode encontrar estas etiquetas no espectador do evento no nome da tarefa.
O onmatch filtro é aplicado se os eventos forem combinados. Pode ser alterado com o onmatch atributo para a etiqueta do filtro. Se o valor "include" for, significa que apenas estão incluídos eventos combinados. Se estiver programado "exclude" para , o evento será incluído, exceto se uma regra corresponder. Pode especificar um conjunto de filtros incluído e um conjunto de filtro de exclusão para cada ID do evento, onde os jogos de exclusão têm precedência.
Cada filtro pode incluir zero ou mais regras. Cada etiqueta sob a etiqueta de filtro é um nome de campo do evento. Regras que especificam uma condição para o mesmo nome de campo comportam-se como condições de OR, e as que especificam diferentes nomes de campo comportam-se como condições E. As regras de campo também podem usar condições para corresponder a um valor. As condições são as seguintes (todas são insensíveis a casos):
| Condition | Descrição |
|---|---|
| é | Padrão, valores são iguais |
| é qualquer | O campo é um dos ; valores delimitados |
| Não é | Os valores são diferentes |
| contains | O campo contém este valor |
| contém qualquer | O campo contém qualquer um dos ; valores delimitados |
| contém tudo | O campo contém qualquer um dos ; valores delimitados |
| exclui | O campo não contém este valor |
| exclui qualquer | 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 terminar com | O campo não termina com este valor |
| menor que | A comparação lexicográfica é inferior a zero |
| mais do que | A comparação lexicográfica é mais do que zero |
| image | Combine um caminho de imagem (caminho completo ou apenas nome de imagem). Por exemplo: lsass.exe vai corresponder c:\windows\system32\lsass.exe |
Pode utilizar uma condição diferente especificando-a como um atributo. Isto exclui a atividade da rede de processos com iexplore.exe no seu caminho:
<NetworkConnect onmatch="exclude">
<Image condition="contains">iexplore.exe</Image>
</NetworkConnect>
Para ter o relatório Sysmon que regra corresponde resultou em um evento ser registado, adicione nomes às regras:
<NetworkConnect onmatch="exclude">
<Image name="network iexplore" condition="contains">iexplore.exe</Image>
</NetworkConnect>
Pode utilizar ambas as regras para a mesma etiqueta, onde excluir regras que substituem incluem regras. Dentro de uma regra, as condições do filtro têm ou comportamento.
Na configuração da amostra mostrada anteriormente, o filtro de rede utiliza uma regra de incluir e excluir a atividade de captura para a porta 80 e 443 por todos os processos, exceto aqueles que têm iexplore.exe em seu nome.
Também é possível anular a forma como as regras são combinadas através de um grupo de regras que permite que o tipo de combinação de regras para um ou mais eventos seja explicitamente definido para E ou OR.
O exemplo a seguir demonstra esta utilização. No grupo de primeira regra, um evento de criação de processo será gerado quando timeout.exe for executado apenas com um argumento de linha de comando de 100 , mas um evento de fim de processo será gerado para o encerramento de e ping.exe . 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>
Baixar Sysmon(3.1 MB)
Continua:
- Cliente: Windows 8.1 e superior.
- Servidor: Windows Server 2012 e mais alto.