Procédure d'Audit de Sécurité
Méthodologie complète — planification, reconnaissance, audit technique, restitution et suivi. Commandes détaillées réseau, DNS, DHCP, web.
Définition et types d'audits
Un audit de sécurité est une évaluation formelle et méthodique de la posture de sécurité d'un SI, destinée à identifier les écarts entre la situation réelle et un référentiel cible.
Types d'audits
| Type | Objet | Profil auditeur | |---|---|---| | Audit organisationnel | Gouvernance, politiques, procédures | Consultant GRC | | Audit technique | Infrastructure, configurations, vulnérabilités | Expert technique | | Audit de code | Sécurité applicative, revue de code source | Développeur sécurité | | Test d'intrusion (pentest) | Simulation d'attaque réelle | Pentesteur (PASSI) | | Audit de conformité | Écart vs référentiel (ISO 27001, NIS2, RGPD) | Auditeur certifié | | Audit physique | Accès locaux, datacenter, postes | Auditeur terrain |
Modes d'audit (pentest)
| Mode | Connaissance | Usage | |---|---|---| | Boîte noire | Aucune info préalable | Simule attaquant externe | | Boîte grise | Infos partielles (utilisateur standard) | Simule insider ou post-phishing | | Boîte blanche | Accès complet (docs, code, archi) | Audit approfondi, revue de code |
Cadre réglementaire français
| Référentiel | Obligatoire pour | Contenu | |---|---|---| | PASSI (ANSSI) | Prestataires d'audit qualifiés | Qualification des auditeurs SI | | RGS | Administrations françaises | Audit obligatoire des SI sensibles | | NIS2 | OES/OIV | Audit de sécurité régulier obligatoire | | ISO 27001 | Organisations certifiées | Audit interne annuel + audit de certification | | RGPD | Tous traitements données perso | Audit de conformité protection des données |
Phase 1 — Préparation et cadrage
1.1 Déclenchement de l'audit
Dclencheurs possiblesAudit planifi cycle annuel SMSISuite un incident de scuritChangement majeur du SI migration fusionExigence rglementaire NIS2 client assureurDemande de la direction
1.2 Définition du périmètre
Document de cadrage produirePrimtre technique IP domaines applications APIsPrimtre organisationnel entits filiales prestatairesExclusions explicites systmes hors primtreFentres dintervention horaires autorissContacts durgence RSSI DSI astreinteCritres de suspension conditions darrt immdiat
1.3 Lettre de mission / Autorisation écrite
Sans autorisation écrite signée, tout test est illégal (Art. 323-1 Code pénal). Le document doit identifier le commanditaire, le périmètre exact, les dates, les auditeurs, la nature des tests autorisés, et inclure clauses de confidentialité et de responsabilité.
1.4 Collecte d'informations préalables
Documents demander au commanditaireSchma darchitecture rseauInventaire des assets CMDBPSSI en vigueurRsultats audits prcdentsListe des applications critiquesContrats prestataires si primtre tiersPolitique de gestion des patches
Phase 2 — Reconnaissance
2.1 Reconnaissance passive (OSINT)
# Informations DNSwhois <domaine>dig <domaine> ANYdnsrecon -d <domaine># Sous-domainesamass enum -d <domaine>subfinder -d <domaine>curl "https://crt.sh/?q=%.<domaine>&output=json"# Emails exposéstheHarvester -d <domaine> -b googlelinkedinbing# Technologies webwhatweb <url>
2.2 Découverte réseau
# Hôtes actifsnmap -sn <plage_IP># Scan de ports (top 1000)nmap -sV -sC -O <cible># Scan complet tous portsnmap -p- -T4 <cible># Scan UDP (services souvent oubliés)nmap -sU --top-ports 200 <cible># Export résultatsnmap -oA scan_results <cible>
2.3 Énumération des services
# SMBenum4linux -a <cible>crackmapexec smb <cible> --shares --users# SNMP (souvent mal configuré)snmpwalk -v2c -c public <cible># LDAP / Active Directoryldapsearch -x -H ldap//<cible> -b "dc=<domaine>,dc=com"
Phase 3 — Audit organisationnel
3.1 Grille d'entretiens
Direction RSSILa PSSI est-elle formalise approuve et diffuseQuand a-t-elle t mise jour pour la dernire foisExiste-t-il un processus de gestion des risques EBIOS RMY a-t-il un budget scurit ddiDes KPIs scurit sont-ils suivis par la directionDSI quipes techniquesExiste-t-il un inventaire jour des assetsLes patches critiques sont-ils appliqus sousLes sauvegardes sont-elles testes rgulirementUn SIEM/SOC est-il en placeLes comptes administrateurs sont-ils nominatifsLe MFA est-il dploy sur les accs sensiblesRH UtilisateursUne sensibilisation scurit est-elle ralise larriveUne charte informatique est-elle signeLes accs sont-ils rvoqus rapidement au dpartDes tests de phishing simuls sont-ils raliss
Phase 4 — Audit technique
4.1 Audit des configurations système
# Linux — audit de durcissementapt install lynislynis audit system# Vérifications manuelles Linuxss -tlnp # services en écoutecat /etc/passwd | awk -F: '$3==0' # comptes rootfind -perm -4000 2>/dev/null # binaires SUIDlast | head -20 # dernières connexions# Windows — politique de mots de passenet accounts# Comptes locaux actifsnet user# Services en écoutenetstat -ano# Tâches planifiées suspectesschtasks /query /fo LIST /v# Clés de démarrage autoreg query HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunreg query HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun
4.2 Audit Active Directory
# Comptes avec mot de passe qui n'expire jamaisGet-ADUser -Filter {PasswordNeverExpires -eq $true} -Properties PasswordNeverExpires# Comptes inactifs depuis 90 jours$date = (Get-Date).AddDays(-90)Get-ADUser -Filter {LastLogonDate -lt $date -and Enabled -eq $true} -Properties LastLogonDate# Membres du groupe Domain AdminsGet-ADGroupMember -Identity "Domain Admins"# Comptes avec SPN définis (Kerberoasting)Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName# Politique de mots de passe du domaineGet-ADDefaultDomainPasswordPolicy# GPO appliquéesgpresult /h rapport_gpo.html
4.3 Audit des applications web (OWASP Top 10)
# Scan automatisénikto -h <url> -output nikto_reporttxtsqlmap -u "<url>?id=1" --dbs --batch# Tests manuels clés# A01 — IDOR : changer l'ID dans l'URL/body# A03 — SQLi : ' OR '1'='1 dans les champs# A03 — XSS : <script>alert(1)</script># A07 — Auth : absence de rate limiting sur /login
A01 Broken Access Control IDOR accs sans auth lvation privilgesA02 Cryptographic Failures HTTP sans HTTPS certs expirs donnes en clairA03 Injection SQLi XSS Command injectionA05 Misconfiguration Headers manquants erreurs verboses rpertoires listablesA06 Vulnerable Components npm audit pip audit OWASP Dependency CheckA07 Auth Failures Pas de rate limiting JWT faibles session post-logoutA09 Logging Failures vnements critiques non loggs logs non centralissA10 SSRF Paramtres URL/IP contrlables par lutilisateur
Phase 4.4 — Audit réseau
Scan et cartographie
# Cartographie des flux actifsnmap -sV --open <plage_IP># Détection des services non chiffrés (Telnet, FTP, HTTP)nmap -p 2123808080 --open <plage_IP># Vérification des règles firewallnmap --script firewall-bypass <cible># Scan de vulnérabilités réseau (OpenVAS)gvm-start# Interface : https://127.0.0.1:9392
4.4.1 Audit DNS
Vérification des enregistrements exposés
# Enregistrements complets du domainedig <domaine> ANY noall answerdig <domaine> NS shortdig <domaine> MX shortdig <domaine> TXT short # SPF, DKIM, DMARC# Résolution inverse (PTR)dig -x <IP_serveur># Vérifier l'existence d'un enregistrement SPFdig TXT <domaine> | grep "v=spf"# Vérifier DMARCdig TXT _dmarc<domaine># Vérifier DKIM (remplacer selector par le sélecteur réel)dig TXT <selector>_domainkey<domaine>
Test de transfert de zone (zone transfer)
# Récupérer les serveurs DNS autoritairesdig NS <domaine> short# Tenter un transfert de zone sur chaque NSdig AXFR <nameserver1> <domaine>dig AXFR <nameserver2> <domaine># Résultat attendu : "Transfer failed" ou "REFUSED"# Si le transfert réussit → vulnérabilité critique : enumération complète du DNS
Vérification DNSSEC
# Vérifier si DNSSEC est activédig dnssec <domaine> A# Chercher le flag "ad" (Authenticated Data) dans les flags# Vérifier la présence d'enregistrements RRSIG# Vérifier la chaîne de confiancedig DS <domaine> 8888dig DNSKEY <domaine># Test complet DNSSECdnssec-verify -z <domaine> # si bind-utils installé
Détection de sous-domaines / takeover
# Énumération passiveamass enum -passive -d <domaine>subfinder -d <domaine> -silent# Bruteforce DNSdnsrecon -d <domaine> -D /usr/share/wordlists/dnsmap.txt -t brt# Vérifier les sous-domaines pointant vers des services inexistants# (risque de subdomain takeover — CNAME vers service décommissionné)for sub in cat subdomainstxt; doresultdig CNAME $sub<domaine> shortif -n "$result" ; thenecho "$sub -> $result"fidone
Vérification du DNS interne (split-horizon)
# Comparer résolution interne vs externe# Depuis l'intérieur du réseaudig <domaine> <DNS_interne># Depuis l'extérieur (ou via un résolveur public)dig <domaine> 8888# Les IP retournées ne doivent pas exposer des adresses RFC1918# depuis le DNS externe
4.4.2 Audit DHCP
Détection de serveurs DHCP non autorisés (rogue DHCP)
# Découvrir les serveurs DHCP qui répondent sur le réseaunmap --script broadcast-dhcp-discover -e <interface># Résultat attendu : un seul serveur DHCP connu# Si plusieurs serveurs répondent → rogue DHCP potentiel# Alternative avec nmap UDPnmap -sU -p 67 --script dhcp-discover <plage_IP># Avec dhcpdump (sniffing passif)dhcpdump -i <interface># Avec Metasploit (audit autorisé uniquement)# use auxiliary/scanner/discovery/udp_sweep
Audit de la configuration du serveur DHCP
# Linux (ISC DHCP / Kea) — vérifier la configurationcat /etc/dhcp/dhcpd.conf# Points à vérifier :# - authoritative; présent → le serveur rejette les rogue DHCP# - default-lease-time et max-lease-time définis# - deny unknown-clients; si MAC filtering souhaité# - log-facility défini pour la journalisation# Vérifier les baux actifs (qui a quelle IP)cat /var/lib/dhcpd/dhcpd.leases# Windows Server DHCP — via PowerShellGet-DhcpServerv4Scope # scopes configurésGet-DhcpServerv4Lease -ScopeId <IP_scope> # baux actifsGet-DhcpServerSetting # paramètres globauxGet-DhcpServerv4FailoverScope # haute disponibilité
Vérification du DHCP snooping (switches)
# Cisco IOS — vérifier si DHCP snooping est activéshow ip dhcp snoopingshow ip dhcp snooping binding# Ports "trusted" doivent être uniquement les uplinks / distribution# Cisco — vérifier Dynamic ARP Inspection (DAI) associéshow ip arp inspectionshow ip arp inspection vlan <vlan_id># Vérifier IP Source Guardshow ip verify source
Audit des réservations et de la plage
# Vérifier les équipements sans réservation (IP dynamique vs statique)# Les serveurs, équipements réseau, imprimantes doivent avoir des réservations fixes# Linux — lister les réservations statiques dans dhcpd.confgrep -A4 "host " /etc/dhcp/dhcpd.conf# Comparer avec l'inventaire CMDB — toute IP non répertoriée est suspecte
4.4.3 Audit serveurs web
Vérification des headers HTTP de sécurité
# Headers complets en une requêtecurl -sI https//<domaine> | grep -iE "strict|content-security|x-frame|x-content|referrer|permissions"# Vérification détaillée header par headercurl -sI https//<domaine> | grep -i "Strict-Transport-Security"# Attendu : max-age >= 31536000 ; includeSubDomains ; preloadcurl -sI https//<domaine> | grep -i "Content-Security-Policy"# Attendu : présent, pas de 'unsafe-inline' ni 'unsafe-eval' sans noncecurl -sI https//<domaine> | grep -i "X-Frame-Options"# Attendu : DENY ou SAMEORIGINcurl -sI https//<domaine> | grep -i "X-Content-Type-Options"# Attendu : nosniffcurl -sI https//<domaine> | grep -i "Referrer-Policy"# Attendu : strict-origin-when-cross-origin ou no-referrer# Vérifier si le banner serveur est exposécurl -sI https//<domaine> | grep -i "Server:"curl -sI https//<domaine> | grep -i "X-Powered-By:"# Attendu : absent ou générique (pas de version)
Audit TLS / HTTPS
# Audit TLS complet (versions, ciphers, certificat)testsslsh https//<domaine># Points clés à vérifier :# - TLS 1.0 et 1.1 désactivés# - SSLv2 / SSLv3 désactivés# - Forward Secrecy activé (ECDHE)# - Certificat valide et non expiré# - HSTS présent avec max-age élevé# Scan rapide des ciphersnmap --script ssl-enum-ciphers -p 443 <cible># Chercher : SSLv2, SSLv3, TLS 1.0, TLS 1.1, RC4, DES, NULL ciphers → à signaler# Vérifier le certificatopenssl s_client -connect <domaine>443 -servername <domaine> 2>/dev/null| openssl x509 -noout -dates -subject -issuer# Détecter Heartbleed (CVE-2014-0160)nmap --script ssl-heartbleed -p 443 <cible>
Vérification des méthodes HTTP
# Lister les méthodes HTTP autoriséescurl -sI -X OPTIONS https//<domaine> | grep -i "Allow:"# Attendu : GET, POST, HEAD uniquement# À signaler si présent : TRACE, PUT, DELETE, CONNECT# Tester TRACE (risque XST — Cross-Site Tracing)curl -sI -X TRACE https//<domaine># Attendu : 405 Method Not Allowed# Tester PUT (écriture de fichier)curl -sI -X PUT https//<domaine>/test.txt -d "test"# Attendu : 405 Method Not Allowed
Vérification de la configuration Apache / Nginx
# Apache — configuration de sécuritégrep -r "ServerTokens" /etc/apache2/# Attendu : ServerTokens Prod (cache la version)grep -r "ServerSignature" /etc/apache2/# Attendu : ServerSignature Offgrep -r "Options" /etc/apache2/# Vérifier : Options -Indexes (interdit le listing de répertoires)grep -r "Header" /etc/apache2/# Vérifier que les headers de sécurité sont définis# Nginx — configuration de sécuritégrep -r "server_tokens" /etc/nginx/# Attendu : server_tokens off;grep -r "add_header" /etc/nginx/# Vérifier HSTS, CSP, X-Frame-Options, X-Content-Type-Options# Tester le listing de répertoirescurl -s https//<domaine>/images/ | grep -i "Index of"# Résultat attendu : 403 ou redirection, pas de listing
Vérification du WAF
# Détecter la présence d'un WAFwafw00f https//<domaine># Tester si le WAF bloque les injections basiquescurl "https://<domaine>/page?id=1' OR '1'='1"curl "https://<domaine>/page?q=<script>alert(1)</script>"# Attendu : 403 ou redirection vers page d'erreur WAF
Phase 5 — Scoring des vulnérabilités (CVSS v3.1)
Score CVSS fAV AC PR UI S C I AAV Attack Vector Network > Adjacent > Local > PhysicalAC Attack Complexity Low > HighPR Privileges Required None > Low > HighUI User Interaction None > RequiredScores90 100 Critique correction immdiate 2470 89 lev correction sous 7 jours40 69 Moyen correction sous 30 jours01 39 Faible correction sous 90 jours
Facteurs aggravants : données personnelles exposées, système critique/OIV, exposition internet directe, exploit public disponible.
Facteurs atténuants : système isolé (air-gap), contrôle compensatoire existant, faible probabilité d'exploitation.
Phase 6 — Restitution et rapport
Structure du rapport
rapport-audit-securite/1 Rsum excutif 12 pagesPrimtre et datesSynthse des constats tableauTop 5 recommandations prioritaires2 Contexte et mthodologie3 Constats dtaillsVUL-001 description preuve CVSS impact recommandation4 Plan de remdiation PACSTableau prioris criticit dlai5 Annexes outputs outils CVE CWE OWASP
Template fiche de vulnérabilité
## VUL-001 — [Titre court]**Criticité** : Critique / Élevée / Moyenne / Faible**Score CVSS** : X.X (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)**Système affecté** : 10.x.x.x — Nom du service**CVE associée** : CVE-XXXX-XXXXX### Description[Explication claire de la vulnérabilité]### Preuve (Proof of Concept)[Output de l'outil / commande / screenshot]### Impact potentiel[Ce qu'un attaquant peut faire]### Recommandation[Action concrète à réaliser]### Délai de correction recommandé[Immédiat / 7 jours / 30 jours / 90 jours]
Phase 7 — Suivi et remédiation
Tableau de suivi PACS| ID | Vulnrabilit | Criticit | Responsable | Dlai | Statut ||--------|----------------------|-----------|-------------|----------|----------|| VUL-001| SMBv1 actif | Critique | DSI | | En cours || VUL-002| MFA non dploy | leve | RSSI | 7 jours | Planifi || VUL-003| Certificat expir | Moyenne | DSI | 30 jours | Ouvert |
# Re-test après correction — exemplesnmap --script smb-protocols -p 445 <cible> # SMBv1 désactivé ?nmap --script smb-vuln-ms17-010 -p 445 <cible> # EternalBlue patché ?testsslsh <domaine> # TLS corrigé ?dig AXFR <ns> <domaine> # Zone transfer bloqué ?
Outils de référence
| Outil | Usage | Licence | |---|---|---| | Nmap | Scan réseau, découverte | Gratuit | | testssl.sh | Audit TLS/SSL complet | Gratuit | | dnsrecon | Énumération DNS | Gratuit | | Lynis | Audit configuration Linux | Gratuit | | Nikto | Audit serveurs web | Gratuit | | wafw00f | Détection WAF | Gratuit | | OWASP ZAP | Audit applications web | Gratuit | | BloodHound | Audit Active Directory | Gratuit | | OpenVAS/GVM | Scanner de vulnérabilités | Gratuit | | Nessus Essentials | Scanner de vulnérabilités | Gratuit (16 IPs) | | Burp Suite Community | Proxy web, tests manuels | Gratuit | | CIS-CAT Lite | Conformité CIS Benchmarks | Gratuit |
Utiliser le template interactif d'audit pour tracker les 60 contrôles ISO 27002:2022 + RGPD en temps réel, documenter les preuves et générer le rapport Markdown automatiquement.