SSH Keys Forensics
forensicsDéfinition
Les clés SSH (Secure Shell keys) sont un mécanisme d'authentification asymétrique omniprésent sur les systèmes Linux/Unix. Forensiquement, elles constituent des preuves d'accès, de persistance, et de mouvement latéral. L'analyse des clés SSH autorisées sur un système compromis révèle souvent comment l'attaquant a maintenu un accès après l'intrusion initiale. Le fichier ~/.ssh/authorized_keys est la source forensique principale pour les investigations SSH. Il contient les clés publiques des utilisateurs autorisés à se connecter sans mot de passe via ce compte. L'ajout d'une clé publique malveillante dans ce fichier est l'une des méthodes de persistance les plus simples et efficaces sur Linux. Forensiquement, les timestamps de modification de ce fichier (ls -la ~/.ssh/authorized_keys) et des entrées dans les journaux SSH correspondant à des connexions avec cette clé permettent de dater et d'attribuer l'accès. Les clés privées SSH stockées sur un système compromi (~/.ssh/id_rsa, ~/.ssh/id_ed25519, etc.) sont des preuves de pivot potentiel : si l'attaquant a accès au système, il peut utiliser ces clés pour se connecter à d'autres systèmes. Identifier toutes les clés privées sur un système (find / -name 'id_rsa' -o -name 'id_ed25519' 2>/dev/null) et leur fingerprint permet de tracer les possibilités de mouvement latéral. Le fichier ~/.ssh/known_hosts enregistre les fingerprints des serveurs auxquels l'utilisateur s'est connecté. Il peut révéler des connexions vers des serveurs inconnus ou des rebonds SSH. Corréler les entrées known_hosts avec les logs auth.log (initiateur de connexion) fournit une carte complète du mouvement latéral SSH. Les configurations avancées de backdoor SSH incluent : ajout d'options dans authorized_keys pour restreindre mais aussi pour permettre des configurations malveillantes (no-pty, command= pour des restricted shells, or from= pour un faux contrôle d'accès), modification de /etc/ssh/sshd_config pour ajouter un port supplémentaire ou désactiver les restrictions, et installation de faux binaires ssh.
Fonctionnement
L'authentification SSH par clé repose sur la cryptographie asymétrique (RSA, Ed25519, ECDSA). Le client prouve sa possession de la clé privée via un défi signé. Le serveur vérifie la signature avec la clé publique dans authorized_keys. Chaque connexion génère des entrées dans auth.log avec le fingerprint de la clé utilisée.
Application DFIR
Sur chaque utilisateur du système compromis : analyser authorized_keys (entrées suspectes), known_hosts (connexions vers des inconnus), et les clés privées présentes. Les fingerprints des clés dans auth.log permettent d'identifier les clés autorisées utilisées pour l'intrusion. Corréler avec les timestamps d'ajout de clé et les événements d'incident.
Outils
ssh-keygen -lf (fingerprint d'une clé), find (localiser toutes les clés SSH), grep dans authorized_keys, auth.log parsing, Velociraptor (artefact SSH.AuthorizedKeys), OSQuery (ssh_configs table), SIEM avec règles Sigma SSH backdoor. GitHub/GitLab APIs pour identifier les propriétaires de clés publiques via leurs dépôts publics.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h