Nmap : audit de sécurité
2025 - Stéphane Fosse - Copyleft : cette œuvre est libre, vous pouvez la copier, la diffuser et la modifier selon les termes de la Licence Art Libre 1.3
[PDF]
Nmap (Network Mapper) s'impose depuis 1997 comme l'outil de référence pour la reconnaissance réseau et l'audit de sécurité. Cette analyse technique examine l'architecture interne de Nmap, ses algorithmes de scan, les méthodes de fingerprinting TCP/IP et l'évolution de son moteur de scripts NSE. L'approche se concentre sur les aspects techniques permettant aux professionnels de la sécurité de maîtriser les mécanismes sous-jacents pour un usage optimal en audit d'infrastructure.
Introduction
L'audit de sécurité réseau nécessite des outils capables d'identifier avec précision les services exposés, les systèmes d'exploitation déployés et les vulnérabilités présentes sur l'infrastructure cible. Nmap répond à ces exigences par une approche multicouche combinant analyse des piles TCP/IP, détection de services et exécution de scripts spécialisés.
Développé initialement par Gordon Lyon (Fyodor) en 1997, Nmap exploite les ambiguïtés des RFC TCP/IP pour caractériser de manière unique les implémentations réseau. Son architecture modulaire permet une extensibilité via le Nmap Scripting Engine (NSE), transformant un simple scanner de ports en plateforme d'analyse de sécurité.
Architecture technique et algorithmes de scan
Scan TCP SYN : fondements de la reconnaissance furtive
Le scan TCP SYN constitue la méthode par défaut de Nmap pour sa rapidité et sa discrétion relative. Le principe repose sur l'envoi de paquets TCP avec le flag SYN positionné, sans compléter la handshake TCP complète.
L'algorithme suit cette séquence :
- Envoi d'un paquet TCP SYN vers le port cible ;
- Analyse de la réponse du système distant ;
- Classification de l'état du port selon la réponse reçue.
La classification des ports s'effectue selon ces critères :
- Ouvert : réception d'un SYN/ACK ;
- Fermé : réception d'un RST (Reset the connection) ;
- Filtré : absence de réponse ou message ICMP d'erreur.
Cette méthode présente l'avantage de ne jamais établir de connexion complète, réduisant les traces dans les logs système tout en maintenant une vitesse d'exécution élevée.
Techniques de scan avancées
Nmap implémente plusieurs techniques spécialisées pour contourner les dispositifs de filtrage :
Scan TCP FIN, NULL et Xmas : Ces méthodes exploitent le comportement spécifié dans la RFC 793 « Transmission Control Protocol » datant de septembre 1981. Un port ouvert ne doit théoriquement pas répondre à ces paquets, tandis qu'un port fermé doit envoyer un RST. L'efficacité varie selon l'implémentation de la pile TCP/IP, et donc le système qui se trouve derrière le port interrogé.
Scan TCP ACK : Utilisé principalement pour cartographier les règles de pare-feu. Ce scan permet de distinguer les ports filtrés des ports non filtrés sans révéler leur état d'ouverture.
Scan UDP : Plus complexe que TCP en raison de la nature sans connexion d'UDP. Nmap envoie des paquets UDP et analyse les réponses ICMP « Port Unreachable » pour déterminer l'état des ports.
Optimisation des performances
L'architecture de Nmap intègre plusieurs mécanismes d'optimisation :
Parallélisation adaptative : Nmap ajuste dynamiquement le nombre de sondes simultanées selon les conditions réseau. Les paramètres --min-parallelism et --max-parallelism contrôlent cette parallélisation.
Templates de timing : Six profils prédéfinis (T0 à T5) équilibrent vitesse et discrétion. Le template T4 (agressif) optimise pour les réseaux fiables, tandis que T0 (paranoïaque) minimise la détection.
Gestion intelligente des retransmissions : L'algorithme adapte le nombre de nouvelles tentatives selon la fiabilité observée du réseau, évitant les délais inutiles tout en maintenant la précision.
Fingerprinting TCP/IP et détection d'OS
Méthodologie
La détection d'OS de Nmap repose sur l'analyse des particularités d'implémentation TCP/IP propres à chaque système. Le processus utilise jusqu'à 16 sondes TCP, UDP et ICMP ciblant des ports ouverts et fermés connus.
Les tests analysent plusieurs caractéristiques :
- Séquences ISN TCP : Algorithmes de génération des numéros de séquence initiaux ;
- Options TCP : Support, ordre et valeurs des options TCP ;
- Taille de fenêtre TCP : Valeurs annoncées selon différents contextes ;
- Comportement IP : TTL initial, fragmentation, gestion du champ ID ;
- Réponses ICMP : Types et contenu des messages d'erreur.
Analyse des algorithmes de séquençage
L'analyse des numéros de séquence TCP révèle des patterns caractéristiques. Nmap évalue :
- Plus Grand Diviseur Commun : Calcul du PGDC entre séquences successives pour identifier les algorithmes basés sur des compteurs ;
- Indice de prédictibilité (SP) : Mesure de la difficulté à prédire les séquences futures, crucial pour évaluer la vulnérabilité aux attaques de spoofing ;
- Taux de compteur (ISR) : Vitesse d'incrémentation du générateur de séquences.
Classification et précision
La base de données d'empreintes de Nmap contient plus de 6 000 signatures couvrant systèmes d'exploitation, équipements réseau et dispositifs embarqués. L'algorithme de classification compare l'empreinte collectée aux signatures référence selon un système de pondération.
La précision dépend de plusieurs facteurs :
- Disponibilité de ports ouverts et fermés ;
- Interférence des pare-feux intermédiaires ;
- Mise à jour de la base de signatures.
Nmap Scripting Engine : extensibilité et automatisation
Architecture du moteur de scripts
Le NSE transforme Nmap en plateforme extensible pour l'audit de sécurité. Basé sur Lua 5.4, il exécute des scripts en parallèle selon quatre phases :
- Prerule : Exécution avant tout scan ;
- Hostrule : Exécution par hôte ;
- Portrule : Exécution par port ouvert ;
- Postrule : Exécution après scan complet.
Catégorisation et sélection des scripts
Les scripts NSE se répartissent en catégories fonctionnelles :
- Safe : Scripts sans risque d'interruption de service
- Intrusive : Scripts pouvant affecter le système cible
- Vuln : Détection de vulnérabilités spécifiques
- Auth : Tests d'authentification et de force brute
- Discovery : Énumération de services et ressources
La sélection s'effectue via expressions booléennes permettant des combinaisons complexes :
nmap --script "vuln and not intrusive" target
nmap --script "http-* and safe" target
Développement et contribution
L'écosystème NSE compte plus de 600 scripts couvrant protocoles modernes, vulnérabilités récentes et systèmes industriels. Le processus de développement suit des standards stricts :
- Documentation complète des fonctionnalités ;
- Tests de non-régression automatisés ;
- Révision par la communauté pour les scripts critiques.
Applications en audit de sécurité
Reconnaissance d'infrastructure
L'audit débutent typiquement par une reconnaissance d'infrastructure utilisant les capacités de découverte de Nmap :
# Decouverte d'hotes actifs
nmap -sn 192.168.1.0/24
# Scan complet avec detection d'OS et services
nmap -sS -sV -O -A target_range
# Enumeration de services web
nmap --script http-enum,http-headers target
Détection de vulnérabilités
Le NSE automatise la détection de vulnérabilités connues :
# Scan de vulnerabilites SSL/TLS
nmap --script ssl-cert,ssl-enum-ciphers target
# Detection de vulnerabilites SMB
nmap --script smb-vuln-* target
# Audit de configurations faibles
nmap --script auth target
Intégration dans les processus DevSecOps
Nmap s'intègre dans les pipelines CI/CD pour la validation continue de sécurité :
- Vérification automatique des configurations ;
- Détection de services non autorisés ;
- Validation des règles de pare-feu.
Contournement et évasion
Techniques d'évasion des IDS/IPS
Nmap propose plusieurs méthodes pour contourner les systèmes de détection :
Fragmentation IP : Division des paquets en fragments plus petits :
nmap -f target # Fragmentation 8 octets
nmap --mtu 16 target # MTU personnalise
Utilisation de leurres : Masquage de l'origine réelle du scan :
nmap -D decoy1,decoy2,ME,decoy3 target
Modification du port source : Exploitation des règles de pare-feu permissives :
nmap --source-port 53 target # Port DNS
nmap -g 80 target # Port HTTP
Scan zombie (Idle scan)
La technique de scan zombie représente la méthode la plus furtive, utilisant un hôte intermédiaire pour masquer l'origine du scan. Cette technique exploite la prévisibilité des identifiants IP pour déduire l'état des ports sans émettre de paquets directement vers la cible.
Performance et optimisation
Stratégies d'optimisation réseau
L'optimisation des scans Nmap nécessite l'adaptation aux contraintes réseau :
- Scan par lots : Division des cibles en groupes pour parallélisation efficace ;
- Limitation de portée : Restriction aux ports critiques via
--top-ports; - Exclusion conditionnelle : Utilisation de
--host-timeoutpour éviter les hôtes lents.
Métriques et monitoring
Le suivi des performances s'effectue via plusieurs indicateurs :
- Débit de paquets par seconde (contrôlé par
--min-rate/--max-rate) ; - Temps de réponse moyen (RTT) ;
- Taux de perte de paquets.
Évolutions et perspectives
Adaptation aux environnements cloud
Les versions récentes de Nmap intègrent des capacités spécifiques aux infrastructures cloud :
- Détection des services AWS, Azure, GCP ;
- Support des protocoles cloud-native (HTTP/2, gRPC) ;
- Intégration avec les API de métadonnées cloud.
Support des protocoles émergents
L'évolution continue de Nmap couvre les protocoles modernes :
- HTTP/3 et QUIC ;
- Protocoles IoT et industriels ;
- Technologies de conteneurisation.
Conclusion
Nmap demeure l'outil de référence pour l'audit de sécurité réseau grâce à son architecture modulaire, ses algorithmes sophistiqués et son écosystème de scripts extensible. Sa capacité d'adaptation aux évolutions technologiques, combinée à une précision de fingerprinting inégalée, en fait un composant indispensable des méthodologies d'audit modernes.
Comme tout logiciel de sécurité, il peut être utilisé dans le cadre d'attaques informatiques. Ce sont les fameuses technologies à double usage. Connaître son fonctionnement peut donc vous aider à mieux vous protéger aussi, en sachant comment un attaquant s'y prendra pour venir sniffer à vos ports...
Références
- Nmap: the Network Mapper - Free Security Scanner - Site officiel du projet Nmap
- The History and Future of Nmap - Documentation officielle Nmap
- TCP SYN (Stealth) Scan (-sS) - Documentation technique Nmap Network Scanning
- Port Scanning Techniques - Guide des techniques de scan Nmap
- Timing and Performance - Documentation optimisation Nmap
- Remote OS detection via TCP/IP Stack FingerPrinting - Article technique fondateur sur l'empreintage TCP/IP (1998)
- TCP/IP Fingerprinting Methods Supported by Nmap - Méthodes d'empreintage TCP/IP
- OS Detection - Documentation détection d'OS Nmap
- Chapter 9. Nmap Scripting Engine - Documentation complète du moteur de scripts NSE
- Nmap Scripting Engine (NSE) - Guide d'utilisation NSE
- NSEDoc Reference Portal: NSE Scripts - Portail de documentation des scripts NSE
- How to Detect CVEs Using Nmap Vulnerability Scan Scripts - Guide détection de vulnérabilités avec NSE
- Nmap in Cybersecurity - Guide usage Nmap en cybersécurité
- Enable Security into CI/CD pipeline with DevSecOps - Intégration Nmap dans DevSecOps (2020)
- Firewall/IDS Evasion and Spoofing - Techniques d'évasion Nmap
- The Art of Stealth Scanning: Master these 3 Nmap Techniques - Techniques de scan furtif (2024)
- Timing Templates (-T) - Templates de timing pour optimisation
- Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning - Gordon Lyon, Insecure.com, 2009 (ISBN: 978-0979958717)
- Writing Nmap NSE scripts for vulnerability scanning - Développement de scripts NSE avancés (2018)
- Nmap Introduction - Phrack 51, Article 11 - Publication originale de Nmap dans Phrack Magazine (1997)