La sécurité doit toujours être l'une des principales raisons pour lesquelles nous recherchons des solutions intégrales tant en interne qu'en externe au niveau du matériel, des services, des processus et des utilisateurs eux-mêmes. Sans aucun doute, dans les environnements Linux, nous pouvons utiliser les différentes solutions développées pour améliorer la sécurité de nos systèmes et c'est pour cette raison que Solvetic expliquera un spécial appelé OSQuery et nous pourrons comprendre comment grâce à cela un plus niveau de sécurité est ajouté à notre système et en tant qu'administrateurs ou groupe informatique, nous serons un peu plus confiants, mais sans jamais abandonner les conseils de sécurité traditionnels.
Qu'est-ce que OSQueryOSQuery a été développé en tant que framework d'instrumentation pour le système d'exploitation et est disponible pour Windows, OS X (macOS), Linux et FreeBSD. OSQuery dispose d'outils pratiques mais complets qui sont chargés d'exécuter diverses analyses de bas niveau du système d'exploitation et de surveiller à la fois les performances et chaque processus de manière complète.
OSQuery utilise un simple plugin et une API d'extensions pour implémenter des tables SQL, mais il existe déjà une collection de tables prêtes à l'emploi, certaines de ces tables ne sont disponibles que pour un système spécial, par exemple, dans le cas de Linux, nous ne verrons que la table kernel_modules.
Pour comprendre le fonctionnement d'OSQuery, cet outil expose le système d'exploitation en tant que base de données relationnelle hautes performances afin que, grâce à cette exposition, des requêtes SQL puissent être écrites pour explorer les données du système d'exploitation de manière beaucoup plus approfondie. Lors de l'utilisation d'OSQuery, les tables SQL sont représentées sous forme de concepts abstraits similaires aux processus en cours d'exécution, aux modules de noyau chargés, aux connexions réseau ouvertes, aux événements matériels, aux hachages de fichiers, etc.
Fonctionnalités OSQuery
Parmi les différentes fonctionnalités d'OSQuery on retrouve :
- Il dispose d'un démon de surveillance d'hôte distribué hautes performances, mais à faible encombrement, appelé osqueryd, grâce auquel il sera possible de planifier des requêtes à exécuter sur l'ensemble de l'infrastructure montée dans l'organisation.
- Le registre généré par osqueryd peut être intégré dans les registres internes grâce à une architecture de plugin afin d'avoir toujours de meilleures options de sécurité disponibles.
- Il dispose d'une console de requête interactive, appelée osqueryi, qui est une interface SQL développée pour tester de nouvelles requêtes et explorer en profondeur le système d'exploitation, cette console a tous les avantages du langage SQL complet et possède des centaines de tables intégrées qui seront vitales pour l'incident réponse, diagnostics des problèmes au niveau des opérations du système, etc.
- OSQuery est une plate-forme multiplateforme, que cette application utilise ou non les API de bas niveau du système d'exploitation, nous sommes en mesure de créer et d'utiliser OSQuery sur les systèmes Windows, macOS, Ubuntu, CentOS et d'autres distributions Linux au niveau de l'entreprise. .
- OSQuery a des packages natifs pour tous les systèmes d'exploitation compatibles, il existe également des outils et beaucoup de documentation sur la création de packages avec lesquels nous avons des ressources pour leur administration.
- La base de code OSQuery est composée de composants modulaires hautes performances utilisant des API publiques pour étendre leurs avantages.
Nous allons maintenant voir comment installer OSQuery sur Linux.
1. Installer OSQuery sur Linux
Étape 1
OSQuery peut être installé depuis le dépôt officiel en utilisant les outils de gestion de paquet apt, yum ou dnf selon la distribution utilisée comme ceci :
Dans les environnements 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] deb https://pkg/main.debio] /debquery 'sudo apt update sudo apt install osquery
Dans les environnements 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
Dans les environnements CentOS 7Pour les environnements CentOS 7, que nous utiliserons dans ce tutoriel, nous allons exécuter chacune des lignes suivantes :
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
Étape 2
Mais pour CentOS 7 nous avons la possibilité d'installer le RPM "auto-repo-add" ou d'ajouter la destination du référentiel. Ces RPM fonctionnent sur n'importe quel Linux x86-64 avec une installation de base à partir de l'année 2011 et nous exécutons d'abord ce qui suit :
sudo rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
Étape 3
Ensuite, nous exécutons l'installation OSQuery comme ceci.
sudo yum installer osquery
Étape 4
Nous entrons la lettre y pour confirmer le téléchargement et l'installation d'OSQuery dans CentOS 7. À un moment donné de l'installation, nous devons autoriser l'installation de la clé GPG :
Étape 5
Nous entrons la lettre s pour le confirmer et nous verrons qu'OSQuery est correctement installé dans CentOS 7.
2. Utiliser OSQuery pour analyser Linux
Étape 1
Une fois OSQuery correctement installé dans CentOS 7, nous allons lancer le shell osqueryi pour lancer les requêtes sur l'état du système d'exploitation, pour cela nous exécutons :
osqueryi
Étape 2
Pour obtenir un récapitulatif des informations de notre système d'exploitation Linux, nous allons exécuter la commande suivante :
SELECT * FROM info_système;Étape 3
Dans les résultats, nous verrons des détails tels que:
- Nom d'hôte
- adresse IP
- Type de processeur utilisé
- UUID et plus
Étape 4
Si nous voulons obtenir une liste de tous les utilisateurs du système Linux, nous allons exécuter la requête OSQuery suivante :
SELECT * FROM utilisateurs;
Étape 5
Pour obtenir une liste de tous les modules du noyau Linux et de leur statut respectif, exécutons ce qui suit.
SELECT * FROM kernel_modules;
Étape 6
S'il est nécessaire d'accéder à la liste de tous les packages RPM installés dans CentOS, RHEL et Fedora, nous allons exécuter la requête suivante :
.all rpm_packages;
Étape 7
Pour accéder aux informations sur l'exécution des processus sous Linux, la requête suivante sera utile :
SELECT DISTINCT processus.nom, ports_écoute.port, processus.pid FROM ports_écoute JOIN processus USING (pid) WHERE port_écoute.adresse = '0.0.0.0';Étape 8
Pour lister toutes les tables implémentées que nous exécutons :
.les tables
Étape 9
Pour lister le schéma (colonnes, types) d'une table spécifique, nous exécutons l'une des lignes suivantes :
.schema table_name pragma table_info (table_name);
Étape 10
Pour afficher l'aide générale, nous allons exécuter les opérations suivantes :
.aider
Étape 11
Pour quitter OSQuery, nous exécutons :
.sortirAvec OSQuery, il sera possible d'accéder à des informations détaillées sur de nombreux paramètres du système afin d'améliorer les tâches d'administration et d'avoir toujours de grandes fonctionnalités.