Ferramenta multiplataforma que permite, através de uma base de dados relacional, atualizada em tempo real, capturar informações e eventos do sistema usando sintaxe SQL. Conheça o OSQuery, um projeto de código aberto do Facebook que faz a “varredura” do sistema para capturar informações, eventos e, até, descobrir problemas de segurança, por exemplo. Tudo através de consultas SQL.
OSQuery
Na prática, o framework OSQuery “reproduz” o sistema operacional como um banco de dados relacional de alto desempenho. O OSQuery permite que você faça, facilmente, consultas sobre seu sistema (Linux, Windows, OS X e FreeBSD). Tendo como objetivo capturar informações e eventos do sistema em tempo real. Além disso, foca na busca por processos maliciosos, vulnerabilidades de software e outros problemas no sistema:
De acordo com o sistema, o OSQuery cria várias tabelas contendo informações do sistema operacional, processos em execução, módulos de kernel carregados, conexões de rede abertas, plugins de navegador, eventos de hardware, alterações de senha, dispositivos USB, regras de firewall e muito mais; por exemplo. E a forma de consulta é semelhante a consultas SQL; realizadas em base de dados relacionais \o/
Top 40 comandos para coletar informações dos sistemas Ubuntu
Saiba como monitorar o uso (leitura/escrita) do disco rígido no Linux
5 ferramentas para monitorar as atividades do disco em tempo real no Linux
Segundo o Facebook, esta ferramenta poderá ajudar a comunidade de segurança a ter um sistema de monitoramento satisfatório para monitorar sua infraestrutura. Além disso, ao disponibilizar o OSQuery como código aberto, o Facebook pretende que programadores de todo o mundo criem novos componentes para que o framework se torne mais robusto, completo e personalizável.
Capturar informações do sistema em tempo real
Os pacotes específicos do OSQuery são construídos para cada sistema operacional suportado. As distribuições Linux suportadas para instalações de pacotes são:
– Ubuntu Xenial 16,04 LTS, Trusty 14,04 LTS, Precise 12,04 LTS
– CentOS 6.6, 7.1
CentOS/RHEL 7.0
CentOS/RHEL 6.6
Ubuntu 16.04 (xenial), 14.04 (trusty), 12.04 (precise)
Altere DISTRO por “xenial”, “trusty” ou “precise”, conforme sua distribuição.
Pronto!! Depois de instalado, você pode iniciar o console interativo executando:
O console de consulta interativo, osqueryi, oferece uma interface SQL para testar novas consultas e explorar seu sistema operacional. Com o poder do SQL e dezenas de tabelas úteis incorporadas, o osqueryi é uma ferramenta disponível para inciar o console interativo.
Assim, como dito, o OSQuery “reproduz” um sistema operacional como um banco de dados relacional. Isso permite que você escreva consultas baseadas em SQL para explorar os dados do sistema. Com o 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 ou eventos de hardware.
As tabelas SQL são implementadas através de um simples plugin e API de extensões. Uma variedade de tabelas já existem e mais estão sendo escritas: https://osquery.io/tables.
Para melhor compreensão, considere as seguintes consultas SQL:
1. Listagem de usuários do sistema:
SELECT * FROM users;
2. Listar todos os processos do sistema, como PID, nome e caminho absoluto
SELECT pid, name, path FROM processes;
3. Capturar todos os processos (nome, porta e PID) que escutam em todas as interfaces:
SELECT DISTINCT processes.name, listening_ports.port, processes.pid
FROM listening_ports JOIN processes USING (pid)
WHERE listening_ports.address = '0.0.0.0';
4. Localizar todos os processos que estão escutando nas portas de rede
SELECT DISTINCT process.name, listening.port, listening.address, process.pid
FROM processes AS process JOIN listening_ports AS listening ON process.pid = listening.pid;
Para sair do console interativo, execute “.exit”
Existem muitas tabelas incluídas no osquery e cada dia são criadas mais. Para visualizar as tabelas disponíveis no sistema, execute no console interativo:
.table
Para visualizar todos os “schemas” disponíveis no sistema, execute no console interativo:
Schemas são modelos com todos os “CREATE” feitos no sistema. Por exemplo, “schema users” ou “schema process”. Eles são úteis, pois mostram como as tabelas foram criadas e quais parâmetros podem ser consultados 😉
.schema
.schema users
Por fim, para saber e aprender quais consultas SQL você poderá criar e executar, consulte o guia oficial AQUI. E obtenha ajuda executando, no console interativo:
.help