Threat hunting com osquery

osquery permite que você veja detalhes de um sistema operacional como um banco de dados relacional. Isso permite que você escreva consultas baseadas em SQL para explorar os dados do sistema como pode exemplo:

Com osquery, as tabelas SQL representam conceitos abstratos como processos em execução, módulos de kernel carregados, conexões de rede abertas, plugins de navegador, eventos de hardware ou hashes de arquivos.

https://osquery.io/

As tabelas SQL são implementadas por meio de um plugin simples e API de extensões. Já existe uma variedade de tabelas e mais estão sendo escritas: https://osquery.io/schema. Para entender melhor a expressividade oferecida a você pelo osquery, considere as seguintes consultas SQL:

Download

osquery funciona para Windows, macOS, CentOS, FreeBSD e quase todos os sistemas operacionais Linux lançados desde 2011 são suportados sem dependências.

https://osquery.io/downloads.

Instalação

A instalação é manual é supor simples e logo após instalar podemos acessar o diretório de instalação C:\Program Files\osquery e executar o shell interativo através do comando: osqueryi

Packs ou pacotes de consulta são coleções de consultas predefinidas Alguns desses pacotes são distribuídos com osquery e nomeados com base em categorias de informações e visibilidade. Por exemplo, um pacote de “windows-attacks.conf” incluirá consultas sobre ataques. Um pacote de “vuln-management.conf” pode executar consultas gerais de gerenciamento de ativos que criam logs de eventos em torno de alterações de instalação de pacote e software.

Comandos

Vamos usar as consultas baseadas em SQL Certame o Select será o comando que mais iremos utilizar mas sempre lembre que podemos e devemos consultar o .help. Note que os comandos iniciam com ponto (.).

Exemplo do select:,

select * from arp_cache;

Vamos usar o Select para consultar dados armazenados nas tabelas e recomendo acessar o https://osquery.io/schema e consultar as tabelas de modo mais detalhado. No Shell podemos usar o comando:

.tables

Visualização padrão é no modo “pretty” mas podemos mudar para outros modos:

Modo Pretty

.mode csv Valores separados por vírgulas
.mode column Colunas alinhadas à esquerda veja .width
.mode line Um valor por linha
.mode list Valores delimitados por string .separator
.mode Pretty Resultados SQL bem impressos (padrão)

Log Agregation

osquery não implementa o encaminhamento de log internamente, mas sim via plugins. abaixo alguns exemplos de produtos comerciais e de código aberto suportados.

  • Logstash
  • Splunk
  • Fluentd
  • Rsyslog

Quando se trata de agregar os logs gerados pelo osqueryd, você tem várias opções. Se você usar o plug-in do registrador do sistema de arquivos (que é o padrão), será responsável por enviar os logs para algum lugar.

https://osquery.readthedocs.io/en/stable/deployment/log-aggregation/

https://osquery.readthedocs.io/en/stable/development/logger-plugins/

Frequentemente, os invasores deixam um processo malicioso em execução, mas excluem o binário original no disco. Essa consulta retorna qualquer processo cujo binário original tenha sido excluído, o que pode ser um indicador de um processo suspeito.

Palantir

Uma vantagem é que existem diversos projetos comunitários para ajudá-lo a usar e estender os recursos do osquery, como por exemplo o repositório do Palantir (que já citei algumas vezes) https://github.com/palantir/osquery-configuration

O objetivo deste projeto é fornecer um modelo de linha de base para qualquer organização que esteja considerando a implantação do osquery em um ambiente de produção.

Eles incluíram pacotes de consulta adicionais que são mais adaptados a ambientes específicos que podem ser úteis para algumas ou pelo menos servir como referência para outras organizações.

Osquery-ATT&CK

https://github.com/teoseller/osquery-attck

O objetivo deste repositório é tentar mapear o MITRE ATT&CK com o Osquery para threat hunting.

Cada arquivo conf é um Query Pack que pode ser usado para caçar ameaças corporativas com osquery.

Mapeando a Matriz MITRE ATT&CK com Osquery

Exemplo acima: Windows_Process_Network_Conn

select DISTINCT p.name, p.path, pos.remote_address, pos.remote_port from process_open_sockets pos LEFT JOIN processes p ON pos.pid = p.pid WHERE pos.remote_port != 0 AND p.name != ”;

Retorna as conexões de rede dos processos do sistema – ATT&CK 086,T1093,T1020,T1041,T1011,T1029,T1043,T1090,T1094,T1024,T1008,T1219,T1105,T1065″

Threat Hunting & Incident Investigation with Osquery

O objetivo deste repositório é compartilhar mais de 100 hunting queries (osquery) que ajudarão os analistas de ameaças cibernéticas (hunter/investigato) em seus exercícios de hunting ou investigação. De modo geral, o autor aborda persistência, processos, análise de memória, perfil de driver e outras categorias diversas. As consultas de Persistência e Interrogações de Processo mapeiam as múltiplas táticas e técnicas/subtécnicas do framework MITRE ATT&CK.

https://github.com/Kirtar22/ThreatHunting_with_Osquery

Anúncio

Sobre Daniel Donda 538 Artigos
Olá, meu nome é Daniel Donda e sou especialista em cibersegurança, autor de livros, professor e palestrante. Saiba mais

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*