Agent OsQuery
Fonction | Interroger les hôtes à l'aide d'osquery. Ce plugin nécessite l'installation de l'exécutable osqueryi sur l'hôte surveillé. osqueryi est exécuté via le SKOOR Agent, qui doit également être installé et exécuté sur la machine interrogée. Le démon osqueryd n'est pas nécessaire pour que ces requêtes fonctionnent. |
|---|---|
Alarme | Dépend des valeurs de retour configurées dans les paramètres de la tâche. |
osquery est un outil open source créé par Facebook pour interroger diverses informations sur l'état des machines. Cela inclut des informations telles que :
Processus en cours d'exécution
Modules du noyau chargés
Comptes d'utilisateurs actifs
Connexions réseau actives
et bien plus encore. osquery expose un système d'exploitation sous la forme d'une base de données relationnelle haute performance et permet de l'interroger à l'aide d'instructions SQL.
osquery est actuellement disponible pour les systèmes d'exploitation suivants :
Linux
Windows
OS X
FreeBSD
Il peut être installé en suivant les instructions fournies sur la page de téléchargement d'osquery : https://osquery.io/downloads/. Il est également possible de copier simplement le fichier binaire osqueryi dans /usr/bin.
Il est facile d'exécuter manuellement des requêtes sur l'hôte où osqueryi est installé. Il suffit d'exécuter la commande osqueryi qui ouvre l'outil de requête interactif, puis de saisir la requête, suivie d'un point-virgule :
$ osqueryi Using a virtual database. Need help, type '.help' osquery> select value as string_value1 from cpuid where feature="product_name"; +------------------------------------------+ | string_value1 | +------------------------------------------+ | Dual-Core AMD Opteron(tm) Processor 1218 | +------------------------------------------+ osquery> .quit
Pour plus d'informations sur osquery, rendez-vous ici : https://osquery.readthedocs.io/en/stable/.
Détails de l'agent OsQuery
Paramètres de l'agent OsQuery
Paramètre | Description |
|---|---|
Requête | Requête à exécuter sur la base de données osquery sur l'hôte local (SKOOR Collector) ou distant. |
La liste déroulante Tags permet de saisir des variables prédéfinies dans les champs ci-dessus, par exemple $NAME$ pour le nom du travail.
La section « Exemples » ci-dessous répertorie certaines des requêtes pouvant être utilisées. Le résultat renvoyé par la requête doit être mappé aux valeurs de retour et aux valeurs de chaîne dans le bon ordre.
Il est également possible d'influencer l'ordre des valeurs et des chaînes renvoyées en adaptant la requête afin qu'elle fournisse les noms de valeurs et de chaînes attendus. Par exemple, la requête suivante mappera la valeur memory_free à la première valeur de retour et memory_total à la deuxième valeur de retour :
select memory_total as return_value2, memory_free as return_value1 from memory_info
La requête suivante renvoie deux valeurs de chaîne dans un ordre spécifique :
select feature as string_value1, value as string_value2 from cpuid limit 1
Cependant, les valeurs de retour et les valeurs de chaîne doivent toujours être configurées dans la section Paramètres du travail pour apparaître dans la section Valeurs du travail.
Valeurs OsQuery de l'agent et limites d'alarme
Valeur / Limite d'alarme | Description |
|---|---|
<Générique> | Dépend des valeurs de retour configurées dans les paramètres du travail. |
Code d'erreur | Code d'erreur générique du job (voir la section Codes d'erreur des jobs) |
Exemples d'agent OsQuery
Exemple 1 - Interroger le modèle du processeur
Requête | select value as string_value1 from cpuid where feature="product_name" |
|---|
Cela nécessite la configuration de la valeur de chaîne suivante :
Résultat 1
Exemple 2 - Requête sur la mémoire totale et libre
Requête | sélectionner memory_total, memory_free à partir de memory_info |
|---|
Cela nécessite la configuration des 2 valeurs de retour suivantes :
L'unité contient le nom de la valeur de retour, une unité et un diviseur, car osquery renvoie les valeurs en octets :
Sortie 2
Exemples de requêtes supplémentaires
Requête | Description | Exemple de résultat |
|---|---|---|
sélectionner nom d'utilisateur, description, répertoire à partir des utilisateurs où le nom d'utilisateur est similaire à « %eranger » | Lire les informations utilisateur | |
sélectionner jour de la semaine, jour, mois, année, unix_time à partir de time | Lire l'heure système | |
sélectionner count(pid) comme total, nom à partir de processus regrouper par nom trier par total descendant limiter à 10 | Renvoyer le nombre de processus et le nom des 10 processus les plus actifs | |
sélectionner * à partir de uptime | Renvoyer la durée de fonctionnement du système |









