Aller au contenu

Wazuh - Détection de malwares

Un malware, ou logiciel malveillant, est un type de logiciel conçu pour infiltrer ou endommager un système informatique sans le consentement de son utilisateur.

Il englobe divers types de logiciels hostiles, intrusifs ou nuisibles tels que :

  • les virus,
  • les vers,
  • les chevaux de troie,
  • les ransomwares,
  • et d''autres programmes malicieux.

Les malwares peuvent effectuer une variété d'actions malveillantes, comme voler, chiffrer ou supprimer des données sensibles, altérer ou prendre le contrôle des fonctions centrales d'un système, et espionner l'activité de l'utilisateur sans son consentement.

Comment les détecter ?

Il combine l'utilisation du FIM, des règles de détection des menaces et des sources intelligentes de menaces.

Source de vérité pour la détection : la liste CDB

La liste CDB contient de nombreuses informations (utilisateurs, ip, hash de fichier...), elle est utilisée par wazuh pour détecter des fichiers malveillants.

Lors de l'étape de décodage, Wazuh utilise les informations extraites et vérifie si elles sont présentes dans la liste CDB.

  1. Le FIM scanne les répertoires et fichiers indiqués dans sa configuration, puis il stocke les checksum et les attributs,
  2. Lors d'une alerte par le FIM, wazuh compare le checksum et les attributs du fichiers avec la liste CDB,
  3. Une alerte est remontée si le test est positif.

Exemple : détection de rootkits

Trojan

grep "usr/bin/adore" /var/ossec/etc/shared/rootkit_files.txt
usr/bin/adore           ! Adore Worm ::/rootkits/adorew.php

touch /usr/bin/adore

# logs :
"Rootkit 'Adore' detected by the presence of file '/usr/bin/adore

Interface réseau

Détection d'une interface en mode promiscuous :

# ip link set enp0s8 promisc on

# logs:
"full_log": "Jan  8 10:14:41 ubuntu-jammy kernel: [ 1920.075909] device enp0s8 entered promiscuous mode"

Binaire suspect

cp -p /usr/bin/w /usr/bin/w.copy

tee /usr/bin/w << EOF
!/bin/bash
echo "`date` this is evil" > /tmp/trojan_created_file
echo 'test for /usr/bin/w trojaned file' >> /tmp/trojan_created_file
Now running original binary
/usr/bin/w.copy
EOF
# logs:
Trojaned version of file '/usr/bin/w' detected. Signature used: 'uname -a|proc\.h|bash' (Generic).

Processus en cours de fonctionnement

Un processus malveillant peut être en mesure de se cacher d'une commande type "ps":

apt install make gcc -y
git clone https://github.com/m0nad/Diamorphine
cd Diamorphine ; make ; insmod diamorphine.ko

Puis on cache un processus :

# ps auxw | grep sshd | grep -v grep
root        8005  0.0  0.2  15428  8300 ?        Ss   09:44   0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
# kill -31 8005
# ps auxw | grep sshd | grep -v grep

Le processus sshd est désormais caché ! Un alerte arrive :

"Process '8005' hidden from /proc. Possible kernel level rootkit."
  • Détection d'un fichier caché
touch /usr/bin/.t0rn

# logs :
Rootkit 't0rn' detected by the presence of file '/usr/bin/.t0rn'.
  • Détection d'un port caché par un rootkit.