Sysmon – Melhorando o nível de detecção em redes Windows
Sysmon é um software que faz parte da suite Sysinternals da Microsoft. Ele em si é um serviço do Windows que, após ativado, monitora as diversas atividades que não são logadas por padrão, no sistema de eventos do Windows.
Dentre as capacidades do Sysmon, destacamos as seguintes:
- Informações como conexões de rede, criação de processos e alterações de arquivos são alguns exemplos.
- Logs dos processos e subprocessos criados, contendo a linha de comando completa. Muito útil para identificação e detecção de processos maliciosos e análise de desvios na operação do S.O. que possam indicar a presença de um malware.
- Registra o hash de processos utilizando SHA-1, MD5, SHA256 ou IMPHASH.
- Gera registros GUID na criação dos processos, para facilitar a correção de eventos que fazem uso de um mesmo processo.
- Gera registros GUID em cada evento permitindo a correlação de eventos em uma mesma sessão de logon.
- Registra o carregamento de drivers DLL’s com suas respectivas assinaturas.
- Faz registro de conexões de rede incluindo processo que originou a comunicação, endereço IP, Portas e hostnames.
Os eventos gerados pelo Sysmon podem ser coletados por algum agente especializado ou enviados para um coletor de logs utilizando o Windows Event Collector.
Tabela com a relação de eventos gerados
Instalação
A instalação do Sysmon é feita com alguns parâmetros específicos, após o download no site oficial da Microsoft. Em sua opção padrão, ele registrará processos utilizando SHA-1, mas não fará monitoração e registro de eventos de rede.
Nestas condições basta executá-lo com o seguinte parâmetro: sysmon -accepteula –i
Outra opção é executá-lo a partir de um arquivo de configuração XML, que contém os parâmetros para registrar os eventos e pode ter também exceções como paths de executáveis confiáveis ou que geram muita informação.
Sysmon.exe -c arquivodeconfiguração.xml
Assim que ele for iniciado, os eventos serão registrados e salvos no log de eventos do Windows dentro do path Applications and Services logs > Microsoft > Windows > Sysmon > Operational.
Exemplo de uso
Neste exemplo, está sendo usado um laboratório de DNS tunneling, para validar os eventos gerados que podem ser utilizados para se criar algum tipo de detecção, um serviço de VPS e foi instalado um dnscat2 server nele.
Na máquina do laboratório foi feito o download do dnscat2 client e executados os seguintes parâmetros:
--dns server: indicando o endereço do meu VPS
Port: Indicando a porta 53 DNS
--secret: uma chave para validação de autenticação no dnscat2 server
O Sysmon registrou a criação do processo com os parâmetros completos da linha de comando - os processos pai e os hashes.
Abaixo visualizamos a sessão aceita no servidor.
Após a comunicação estabelecida, foi realizado um teste com a execução de um processo (notepad) na máquina teste. Este foi o resultado:
Novamente mostrando a linha de comando que recebeu a chamada da abertura do processo e a imagem executada a partir dele, em nosso caso o notepad.
Este foi um exemplo de uso simples do Sysmon, mas não é por acaso que ele está em alta como ferramenta no auxílio de coleta e enriquecimento de dados de monitoração. Atualmente, o Sysmon é uma ferramenta necessária no ecossistema de monitoramento de cibersegurança.
Referências:
https://www.darkoperator.com/blog/2014/8/8/sysinternals-sysmon
https://msdn.microsoft.com/en-us/library/windows/desktop/bb427443(v=vs.85).aspx
https://blogs.technet.microsoft.com/motiba/2016/10/18/sysinternals-sysmon-unleashed/