A segurança deve ser sempre um dos principais motivos pelos quais procuramos soluções integrais tanto interna como externamente ao nível do hardware, dos serviços, dos processos e dos próprios utilizadores. Sem dúvida, em ambientes Linux podemos fazer uso das várias soluções que são desenvolvidas para melhorar a segurança dos nossos sistemas e é por isso que a Solvetic irá explicar um especial chamado OSQuery e poderemos compreender como graças a ele um mais nível de segurança é adicionado ao nosso sistema e, como administradores ou grupo de TI, estaremos um pouco mais confiantes, mas sem nunca desistir dos conselhos de segurança tradicionais.
O que é OSQueryOSQuery foi desenvolvido como uma estrutura de instrumentação para o sistema operacional e está disponível para Windows, OS X (macOS), Linux e FreeBSD. OSQuery tem ferramentas práticas, mas abrangentes, que são responsáveis por executar várias varreduras de sistema operacional de baixo nível e monitorar o desempenho e cada processo de uma maneira abrangente.
OSQuery utiliza um plugin simples e uma API de extensões para implementar tabelas SQL, mas já existe uma coleção de tabelas prontas para uso, algumas dessas tabelas estão disponíveis apenas para um sistema especial, por exemplo, no caso de Linux, veremos apenas a tabela kernel_modules.
Para entender como o OSQuery funciona, esta ferramenta expõe o sistema operacional como um banco de dados relacional de alto desempenho para que, graças a essa exposição, as consultas SQL possam ser escritas para explorar os dados do sistema operacional de uma maneira muito mais profunda. Ao usar OSQuery, as tabelas SQL são representadas como conceitos abstratos semelhantes a processos em execução, módulos de kernel carregados, conexões de rede abertas, eventos de hardware, hashes de arquivo ou mais.
Recursos OSQuery
Entre os diferentes recursos do OSQuery, encontramos:
- Possui um daemon de monitoramento de host distribuído de alto desempenho, mas de baixo impacto, chamado osqueryd, graças ao qual será possível agendar consultas para execução em toda a infraestrutura montada na organização.
- O registro gerado pelo osqueryd pode ser integrado aos registros internos graças a uma arquitetura de plugin para ter sempre disponíveis as melhores opções de segurança.
- Possui um console de consulta interativo, chamado osqueryi, que é uma interface SQL desenvolvida para testar novas consultas e explorar profundamente o sistema operacional, este console possui todos os benefícios da linguagem SQL completa e possui centenas de tabelas integradas que serão vitais para o incidente resposta, diagnósticos de problemas de nível de operação do sistema e muito mais.
- OSQuery é uma plataforma cruzada, independentemente de este aplicativo usar APIs de sistema operacional de baixo nível, podemos construir e usar OSQuery em sistemas Windows, macOS, Ubuntu, CentOS e outras distribuições Linux no nível da empresa.
- OSQuery possui pacotes nativos para todos os sistemas operacionais compatíveis, também existem ferramentas e muita documentação sobre a criação de pacotes com os quais temos recursos para sua administração.
- A base de código OSQuery é composta de componentes modulares de alto desempenho que usam APIs públicas para expandir seus benefícios.
Agora veremos como instalar o OSQuery no Linux.
1. Instale OSQuery no Linux
Passo 1
OSQuery pode ser instalado a partir do repositório oficial usando as ferramentas de gerenciamento de pacotes apt, yum ou dnf, dependendo da distribuição usada desta forma:
Em ambientes Debian ou Ubuntu
export OSQUERY_KEY = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $ OSQUERY_KEY sudo add-apt-repository 'deb [arch = amd64 main] debio https: // pkg / deb64] / debquery 'sudo apt update sudo apt install osquery
Em ambientes Fedora
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee / etc / pki / rpm-gpg / RPM-GPG-KEY-osquery dnf config-manager --add-repo --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm. repo sudo dnf config-manager --set-enabled osquery-s3-rpm sudo dnf install osquery
Em ambientes CentOS 7Para ambientes CentOS 7, que usaremos neste tutorial, vamos executar cada uma das seguintes linhas:
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee / etc / pki / rpm-gpg / RPM-GPG-KEY-osquery sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo sudo yum -config-manager --enable osquery-s3-rpm sudo yum install osquery
Passo 2
Mas para o CentOS 7 temos a possibilidade de instalar o RPM "auto-repo-add" ou adicionar o destino do repositório. Esses RPMs funcionam em qualquer Linux x86-64 com uma instalação básica a partir do ano de 2011 e primeiro executamos o seguinte:
sudo rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
etapa 3
Em seguida, executamos a instalação do OSQuery assim.
sudo yum install osquery
Passo 4
Entramos com a letra y para confirmar o download e instalação do OSQuery no CentOS 7. Em algum momento da instalação devemos autorizar a instalação da chave GPG:
Etapa 5
Digitaremos a letra s para confirmar isso e veremos que o OSQuery está instalado corretamente no CentOS 7.
2. Use OSQuery para analisar Linux
Passo 1
Uma vez que o OSQuery esteja instalado corretamente no CentOS 7, vamos iniciar o shell osqueryi para iniciar as consultas de status do sistema operacional, para isso executamos:
Osqueryi
Passo 2
Para obter um resumo das informações de nosso sistema operacional Linux, vamos executar o seguinte comando:
SELECT * FROM system_info;etapa 3
Nos resultados veremos detalhes como:
- Nome de anfitrião
- Direção IP
- Tipo de CPU usado
- UUID e mais
Passo 4
Se quisermos obter uma lista de todos os usuários no sistema Linux, vamos executar a seguinte consulta OSQuery:
SELECT * FROM usuários;
Etapa 5
Para obter uma lista de todos os módulos do kernel do Linux e seus respectivos status, vamos executar o seguinte.
SELECT * FROM kernel_modules;
Etapa 6
Caso seja necessário acessar a lista de todos os pacotes RPM instalados no CentOS, RHEL e Fedora, iremos executar a seguinte consulta:
.all rpm_packages;
Etapa 7
Para acessar informações sobre como executar processos no Linux, a seguinte consulta será útil:
SELECT DISTINCT process.name, listening_ports.port, process.pid FROM listening_ports JOIN process USING (pid) WHERE listening_ports.address = '0.0.0.0';Etapa 8
Para listar todas as tabelas implementadas, executamos:
.tables
Etapa 9
Para listar o esquema (colunas, tipos) de uma tabela específica, executamos uma das seguintes linhas:
.schema nome_tabela pragma info_tabela (nome_tabela);
Etapa 10
Para exibir a ajuda geral, vamos executar o seguinte:
.ajuda
Etapa 11
Para sair do OSQuery, executamos:
.saídaCom o OSQuery será possível acessar informações detalhadas sobre diversos parâmetros do sistema, a fim de melhorar as tarefas de administração e sempre ter ótimos recursos de funcionalidade.