Instalando Osquery no Ubuntu
Osquery pacotes não estão disponíveis no repositório padrão do Ubuntu, portanto, antes de instalá-lo, temos que adicionar o Osquery repositório apt executando o seguinte comando no terminal.
[email protegido]: ~ $ echo "deb [arch = amd64] https: // pkg.Osquery.io / deb deb main "|sudo tee / etc / apt / sources.Lista.d / osquery.Lista
Agora vamos importar a chave de assinatura executando o seguinte comando no terminal.
[email protegido]: ~ $ sudo apt-key adv --keyserver keyserver.ubuntu.com--recv-keys 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
Depois de importar a chave de assinatura, agora atualize seu sistema executando o seguinte comando no terminal.
[email protegido]: ~ $ sudo apt-get updateAgora instale Osquery executando o seguinte comando
[email protegido]: ~ $ sudo apt-get install osqueryDepois de instalar Osquery, agora temos que verificar se ele foi instalado corretamente executando o seguinte comando
[email protegido]: ~ $ osqueryi --versionSe der o seguinte resultado, então está instalado corretamente
Usando Osquery
Agora, após a instalação, estamos prontos para usar Osquery. Execute o seguinte comando para ir para o prompt de shell interativo
[email protegido]: ~ $ osqueryi
Conseguindo ajuda
Agora podemos executar consultas baseadas em SQL para obter dados do sistema operacional. Podemos obter ajuda sobre Osquery executando o seguinte comando no shell interativo.
osquery> .ajuda
Obtendo todas as tabelas
Como mencionado anteriormente, Osquery expõe os dados do sistema operacional como um banco de dados relacional, de modo que todos os dados são apresentados na forma de tabelas. Podemos obter todas as tabelas executando o seguinte comando no shell interativo
osquery> .mesas
Como podemos ver, executando o comando acima, podemos obter um monte de tabelas. Agora podemos obter dados dessas tabelas executando consultas baseadas em SQL.
Listando informações sobre todos os usuários
Podemos ver todas as informações sobre os usuários executando o seguinte comando no shell interativo
osquery> SELECT * FROM users;O comando acima exibirá gid, uid, descrição etc. de todos os usuários
Também podemos extrair apenas os dados relevantes sobre os usuários, por exemplo, queremos ver apenas os usuários e não outras informações sobre os usuários. Execute o seguinte comando no shell interativo para obter os nomes de usuário
osquery> SELECT username FROM users;O comando acima irá mostrar todos os usuários em seu sistema
Da mesma forma, podemos obter nomes de usuários junto com o diretório no qual o usuário existe, executando o seguinte comando.
osquery> SELECT nome de usuário, diretório DE usuários;
Da mesma forma, podemos consultar quantos campos quisermos, executando os comandos semelhantes.
Também podemos obter todos os dados de usuários específicos. Por exemplo, queremos obter todas as informações sobre o usuário root. Podemos obter todas as informações sobre o usuário root executando o seguinte comando.
osquery> SELECT * FROM users WHERE username = "root";
Também podemos obter dados específicos de campos específicos (colunas). Por exemplo, queremos obter o ID do grupo e nome de usuário do usuário root. Execute o seguinte comando para obter esses dados.
osquery> SELECT nome de usuário, gid FROM usuários WHERE nome de usuário = ”root”
Desta forma, podemos consultar qualquer coisa que quisermos de uma tabela.
Listando todos os processos
Podemos listar os primeiros cinco processos em execução no ubuntu executando o seguinte comando no shell interativo
osquery> SELECT * FROM processos LIMIT 5;
Como há muitos processos em execução no sistema, exibimos apenas cinco processos usando a palavra-chave LIMIT.
Podemos encontrar o id do processo de um processo específico, por exemplo, queremos encontrar o id do processo do mongodb por isso iremos executar o seguinte comando na shell interactiva
osquery> SELECT pid FROM processos WHERE name = "mongod";
Encontrar a versão do Ubuntu
Podemos encontrar a versão do nosso sistema Ubuntu executando o seguinte comando no shell interativo
osquery> SELECT * FROM os_version;Ele nos mostrará a versão do nosso sistema operacional
Verificando interfaces de rede e endereços IP
Podemos verificar o endereço IP, máscara de sub-rede das interfaces de rede executando a seguinte consulta no shell interativo.
osquery> SELECT interface, endereço, máscara FROM interface_addressesWHERE interface NÃO COMO '% lo%';
Verificando usuários conectados
Também podemos verificar os usuários logados em seu sistema, consultando os dados da tabela 'logging_in_users'. Execute o seguinte comando para encontrar usuários conectados.
osquery> SELECIONE usuário, host, hora de usuários_logados WHERE tty NÃO COMO '-';
Verificando a memória do sistema
Também podemos verificar a memória total, memória livre em cache, etc. executando algum comando baseado em SQL no shell interativo. Para verificar a memória total, execute o seguinte comando. Isso nos dará a memória total do sistema em bytes.
osquery> SELECT memory_total FROM memory_info;
Para verificar a memória livre do seu sistema, execute a seguinte consulta no shell interativo
osquery> SELECT memory_free FROM memory_info;Quando executamos o comando acima, ele nos dará memória livre disponível em nosso sistema
Também podemos verificar a memória em cache do sistema usando a tabela memory_info executando a seguinte consulta.
osquery> select cached from memory_info;
Listando os grupos
Podemos encontrar todos os grupos em seu sistema executando a seguinte consulta no shell interativo
osquery> SELECT * FROM groups;
Exibindo portas de escuta
Podemos exibir todas as portas de escuta do nosso sistema executando o seguinte comando no shell interativo
osquery> SELECT * FROM listening_ports;
Também podemos verificar se uma porta está escutando ou não executando o seguinte comando no shell interativo
osquery> SELECT porta, endereço FROM listen_ports WHERE port = 27017;Isso nos dará a saída conforme mostrado na figura a seguir
Conclusão
Osquery é um utilitário de software muito útil para encontrar qualquer tipo de informação sobre o seu sistema. Se você já conhece as consultas baseadas em SQL, então é muito fácil de usar para você ou se você não conhece as consultas baseadas em SQL, então eu tentei o meu melhor para mostrar a você algumas das principais consultas que são úteis para encontrar dados. Você pode encontrar qualquer tipo de dado em qualquer tabela executando consultas semelhantes.