Agent OsQuery
Fonction | Interroger les hôtes en utilisant osquery. Ce plugin nécessite l'installation de l'exécutable osqueryi sur l'hôte surveillé. osqueryi est exécuté via l'Agent SKOOR qui doit également être installé et fonctionner 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. Il s'agit notamment d'informations telles que
les processus en cours d'exécution
Modules du noyau chargés
les comptes d'utilisateurs actifs
les connexions réseau actives
et bien plus encore. osquery expose un système d'exploitation en tant que 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'opérateurs suivants :
Linux
Windows
OS X
FreeBSD
Il peut être installé en suivant les instructions de la page de téléchargement d'osquery : https://osquery.io/downloads/. Il est également possible de copier le binaire osqueryi dans le répertoire /usr/bin.
Il est facile d'exécuter des requêtes manuellement sur l'hôte où osqueryi est installé. Il suffit d'exécuter la commande osqueryi qui permet d'accéder à 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, voir : https://osquery.readthedocs.io/en/stable/.
Détails de l'agent OsQuery
Paramètres de l'agent OsQuery
Paramètre | Description |
---|---|
Requête | La requête à exécuter contre la base de données osquery sur l'hôte local (collecteur SKOOR) 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 des exemples ci-dessous énumère quelques-unes des requêtes qui peuvent être utilisées. Les résultats renvoyés par la requête doivent être mis en correspondance avec les valeurs Return et les valeurs String dans l'ordre correct.
Il est également possible d'influencer l'ordre des valeurs et des chaînes renvoyées en adaptant la requête afin de fournir les noms de valeurs et de chaînes attendus. Par exemple, la requête suivante associera 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 type "String" 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 encore être configurées dans la section Paramètres du travail pour apparaître dans la section Valeurs du travail.
Valeurs et limites d'alarme de l'agent OsQuery
Valeur / Limite d'alarme | Description |
---|---|
<Générique | Dépend des valeurs de retour configurées dans les paramètres de la tâche. |
Code d'erreur | Code d'erreur générique de la tâche (voir la section Codes d'erreur de la tâche). |
Exemples d'agents OsQuery
Exemple 1 - Interroger le modèle de l'unité centrale
Requête | select value as string_value1 from cpuid where feature="product_name" |
---|
Cette requête nécessite la configuration de la valeur de chaîne suivante :
Sortie 1
Exemple 2 - Interroger la mémoire totale et la mémoire libre
Requête | select memory_total, memory_free from memory_info |
---|
Il faut configurer les deux valeurs de retour suivantes :
L'unité contient le nom de la valeur de retour, une unité et un diviseur, puisque osquery renvoie les valeurs en octets :
Sortie 2
Autres exemples de requêtes
Requête | Description de la requête | Exemple de sortie |
---|---|---|
select username,description,directory from users where username like '%eranger' | Lecture des informations relatives à l'utilisateur | |
select weekday, day, month, year, unix_time from time | Lecture de l'heure du système | |
select count(pid) as total, name from processes group by name order by total desc limit 10 | Renvoie le nombre de processus et le nom des 10 processus les plus actifs. | |
select * from uptime | Retourne le temps de fonctionnement du système |