Aller au contenu

Analyse d'Artefact : Artefacts SSH Linux

1. Persistance via authorized_keys (Accès entrant)

Section intitulée « 1. Persistance via authorized_keys (Accès entrant) »

Le fichier authorized_keys contient les clés publiques autorisées à s’authentifier sur un compte utilisateur spécifique sans nécessiter de mot de passe.

  • Emplacement de l’artefact : /home/<user>/.ssh/authorized_keys et /root/.ssh/authorized_keys

Les acteurs de la menace ajoutent fréquemment leurs propres clés publiques à ce fichier. Il s’agit du mécanisme de persistance le plus courant, robuste et natif sur les systèmes Linux. Même si les administrateurs procèdent à la rotation du mot de passe de l’utilisateur, l’attaquant conserve un accès transparent.

Les analystes doivent analyser ces fichiers à travers tous les profils utilisateurs, en recherchant des anomalies spécifiques :

  1. Clés inconnues ou suspectes : clés qui ne correspondent pas à l’infrastructure de gestion informatique de l’entreprise.
  2. Champs de commentaire : les clés SSH se terminent souvent par un commentaire généré par l’utilisateur ou le système (ex: user@hostname). Trouver des commentaires tels que root@kali, kali@kali, ou des noms d’hôtes externes non reconnus est un indicateur de compromission de haute fidélité. Les attaquants peuvent tenter de se fondre dans la masse en utilisant des commentaires trompeurs comme backup-admin.
  3. Commandes forcées (backdoor furtive) : les attaquants peuvent précéder une clé d’options d’exécution. Si une clé commence par command="/usr/bin/perl /tmp/backdoor.pl", la commande spécifiée s’exécute automatiquement dès que l’attaquant s’authentifie avec cette clé, fournissant un shell interactif hautement furtif sans générer de TTY standard.
  4. Anomalies d’horodatage : comparer l’heure de modification (mtime) du fichier authorized_keys avec la fenêtre temporelle de l’intrusion suspectée.

2. Traçage des mouvements latéraux via known_hosts (Accès sortant)

Section intitulée « 2. Traçage des mouvements latéraux via known_hosts (Accès sortant) »

Le fichier known_hosts agit comme un carnet d’adresses automatisé. Il stocke les empreintes cryptographiques des serveurs distants auxquels l’utilisateur s’est connecté depuis la machine actuelle.

  • Emplacement de l’artefact : /home/<user>/.ssh/known_hosts

Cet artefact est vital pour cartographier le mouvement latéral de l’attaquant. Si un analyste trie le “Patient Zéro” et découvre les adresses IP de serveurs de bases de données internes ou de contrôleurs de domaine dans le fichier known_hosts de l’utilisateur root, cela confirme que l’attaquant a réussi à pivoter vers ces actifs critiques.

3. Vol d’identifiants : clés privées (id_rsa / id_ed25519)

Section intitulée « 3. Vol d’identifiants : clés privées (id_rsa / id_ed25519) »

Ces fichiers représentent l’identité numérique de l’utilisateur compromis.

  • Emplacement de l’artefact : /home/<user>/.ssh/id_rsa, id_ed25519, id_ecdsa

Si un attaquant obtient un accès en lecture à ce répertoire, il exfiltrera invariablement ces clés privées. Par conséquent, l’attaquant hérite de l’identité numérique de l’utilisateur et peut s’authentifier de manière transparente sur tout serveur interne faisant confiance à ces clés (souvent les serveurs exacts listés dans le fichier known_hosts). Si les preuves suggèrent que le répertoire .ssh a été accédé (à corréler avec l’Historique Shell Linux), toutes les clés associées doivent être révoquées immédiatement sur l’ensemble de l’infrastructure.

4. Falsification de la configuration du serveur (sshd_config)

Section intitulée « 4. Falsification de la configuration du serveur (sshd_config) »

Les adversaires modifient occasionnellement la configuration du démon SSH pour abaisser le niveau de sécurité ou établir des portes dérobées cachées.

  • Emplacement de l’artefact : /etc/ssh/sshd_config

Les analystes doivent vérifier l’intégrité de ce fichier par rapport à une ligne de base saine connue, en recherchant :

  • PermitRootLogin yes : autorisation des connexions root directes, généralement désactivées par défaut.
  • PasswordAuthentication yes : réactivation pour faciliter les attaques par force brute ou les mouvements latéraux utilisant des identifiants en clair volés.
  • AuthorizedKeysFile : les attaquants peuvent modifier cette directive pour pointer vers un fichier caché (ex: /tmp/.hidden_keys), contournant ainsi les audits standards du répertoire ~/.ssh/.

Afin d’accélérer l’investigation sur une image forensique montée, les équipes DFIR doivent utiliser des scripts automatisés pour auditer simultanément tous les artefacts SSH.

audit_linux_ssh.sh
#!/bin/bash
TARGET_DIR="/mnt/analyse"
echo "[+] Extraction de tous les authorized_keys..."
find $TARGET_DIR/home $TARGET_DIR/root -type f -name "authorized_keys" -exec echo -e "\n=== {} ===" \; -exec cat {} \;
echo "[+] Vérification des commandes forcées dans authorized_keys..."
find $TARGET_DIR/home $TARGET_DIR/root -type f -name "authorized_keys" -exec grep "command=" {} +
echo "[+] Audit des anomalies de sshd_config..."
grep -E "^PermitRootLogin|^PasswordAuthentication|^AuthorizedKeysFile" $TARGET_DIR/etc/ssh/sshd_config