MDstable
NoteSnippetChecklistPlaybook

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.

note 2026-05-28 15 min read
auditgrcanssipassiiso27001réseaudnsdhcpblue-teamconformité

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 possibles
Audit planifi cycle annuel SMSI
Suite un incident de scurit
Changement majeur du SI migration fusion
Exigence rglementaire NIS2 client assureur
Demande de la direction

1.2 Définition du périmètre

Document de cadrage produire
Primtre technique IP domaines applications APIs
Primtre organisationnel entits filiales prestataires
Exclusions explicites systmes hors primtre
Fentres dintervention horaires autoriss
Contacts durgence RSSI DSI astreinte
Critres de suspension conditions darrt immdiat

1.3 Lettre de mission / Autorisation écrite

⚠ Attention —

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 commanditaire
Schma darchitecture rseau
Inventaire des assets CMDB
PSSI en vigueur
Rsultats audits prcdents
Liste des applications critiques
Contrats prestataires si primtre tiers
Politique de gestion des patches

Phase 2 — Reconnaissance

2.1 Reconnaissance passive (OSINT)

bash
# Informations DNS
whois <domaine>
dig <domaine> ANY
dnsrecon -d <domaine>
# Sous-domaines
amass enum -d <domaine>
subfinder -d <domaine>
curl "https://crt.sh/?q=%.<domaine>&output=json"
# Emails exposés
theHarvester -d <domaine> -b googlelinkedinbing
# Technologies web
whatweb <url>

2.2 Découverte réseau

bash
# Hôtes actifs
nmap -sn <plage_IP>
# Scan de ports (top 1000)
nmap -sV -sC -O <cible>
# Scan complet tous ports
nmap -p- -T4 <cible>
# Scan UDP (services souvent oubliés)
nmap -sU --top-ports 200 <cible>
# Export résultats
nmap -oA scan_results <cible>

2.3 Énumération des services

bash
# SMB
enum4linux -a <cible>
crackmapexec smb <cible> --shares --users
# SNMP (souvent mal configuré)
snmpwalk -v2c -c public <cible>
# LDAP / Active Directory
ldapsearch -x -H ldap//<cible> -b "dc=<domaine>,dc=com"

Phase 3 — Audit organisationnel

3.1 Grille d'entretiens

Direction RSSI
La PSSI est-elle formalise approuve et diffuse
Quand a-t-elle t mise jour pour la dernire fois
Existe-t-il un processus de gestion des risques EBIOS RM
Y a-t-il un budget scurit ddi
Des KPIs scurit sont-ils suivis par la direction
DSI quipes techniques
Existe-t-il un inventaire jour des assets
Les patches critiques sont-ils appliqus sous
Les sauvegardes sont-elles testes rgulirement
Un SIEM/SOC est-il en place
Les comptes administrateurs sont-ils nominatifs
Le MFA est-il dploy sur les accs sensibles
RH Utilisateurs
Une sensibilisation scurit est-elle ralise larrive
Une charte informatique est-elle signe
Les accs sont-ils rvoqus rapidement au dpart
Des tests de phishing simuls sont-ils raliss

Phase 4 — Audit technique

4.1 Audit des configurations système

bash
# Linux — audit de durcissement
apt install lynis
lynis audit system
# Vérifications manuelles Linux
ss -tlnp # services en écoute
cat /etc/passwd | awk -F: '$3==0' # comptes root
find -perm -4000 2>/dev/null # binaires SUID
last | head -20 # dernières connexions
# Windows — politique de mots de passe
net accounts
# Comptes locaux actifs
net user
# Services en écoute
netstat -ano
# Tâches planifiées suspectes
schtasks /query /fo LIST /v
# Clés de démarrage auto
reg query HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun
reg query HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun

4.2 Audit Active Directory

powershell
# Comptes avec mot de passe qui n'expire jamais
Get-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 Admins
Get-ADGroupMember -Identity "Domain Admins"
# Comptes avec SPN définis (Kerberoasting)
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName
# Politique de mots de passe du domaine
Get-ADDefaultDomainPasswordPolicy
# GPO appliquées
gpresult /h rapport_gpo.html

4.3 Audit des applications web (OWASP Top 10)

bash
# Scan automatisé
nikto -h <url> -output nikto_reporttxt
sqlmap -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 privilges
A02 Cryptographic Failures HTTP sans HTTPS certs expirs donnes en clair
A03 Injection SQLi XSS Command injection
A05 Misconfiguration Headers manquants erreurs verboses rpertoires listables
A06 Vulnerable Components npm audit pip audit OWASP Dependency Check
A07 Auth Failures Pas de rate limiting JWT faibles session post-logout
A09 Logging Failures vnements critiques non loggs logs non centraliss
A10 SSRF Paramtres URL/IP contrlables par lutilisateur

Phase 4.4 — Audit réseau

Scan et cartographie

bash
# Cartographie des flux actifs
nmap -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 firewall
nmap --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

bash
# Enregistrements complets du domaine
dig <domaine> ANY noall answer
dig <domaine> NS short
dig <domaine> MX short
dig <domaine> TXT short # SPF, DKIM, DMARC
# Résolution inverse (PTR)
dig -x <IP_serveur>
# Vérifier l'existence d'un enregistrement SPF
dig TXT <domaine> | grep "v=spf"
# Vérifier DMARC
dig 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)

bash
# Récupérer les serveurs DNS autoritaires
dig NS <domaine> short
# Tenter un transfert de zone sur chaque NS
dig 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

bash
# 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 confiance
dig DS <domaine> 8888
dig DNSKEY <domaine>
# Test complet DNSSEC
dnssec-verify -z <domaine> # si bind-utils installé

Détection de sous-domaines / takeover

bash
# Énumération passive
amass enum -passive -d <domaine>
subfinder -d <domaine> -silent
# Bruteforce DNS
dnsrecon -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; do
resultdig CNAME $sub<domaine> short
if -n "$result" ; then
echo "$sub -> $result"
fi
done

Vérification du DNS interne (split-horizon)

bash
# Comparer résolution interne vs externe
# Depuis l'intérieur du réseau
dig <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)

bash
# Découvrir les serveurs DHCP qui répondent sur le réseau
nmap --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 UDP
nmap -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

bash
# Linux (ISC DHCP / Kea) — vérifier la configuration
cat /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 PowerShell
Get-DhcpServerv4Scope # scopes configurés
Get-DhcpServerv4Lease -ScopeId <IP_scope> # baux actifs
Get-DhcpServerSetting # paramètres globaux
Get-DhcpServerv4FailoverScope # haute disponibilité

Vérification du DHCP snooping (switches)

bash
# Cisco IOS — vérifier si DHCP snooping est activé
show ip dhcp snooping
show ip dhcp snooping binding
# Ports "trusted" doivent être uniquement les uplinks / distribution
# Cisco — vérifier Dynamic ARP Inspection (DAI) associé
show ip arp inspection
show ip arp inspection vlan <vlan_id>
# Vérifier IP Source Guard
show ip verify source

Audit des réservations et de la plage

bash
# 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.conf
grep -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é

bash
# Headers complets en une requête
curl -sI https//<domaine> | grep -iE "strict|content-security|x-frame|x-content|referrer|permissions"
# Vérification détaillée header par header
curl -sI https//<domaine> | grep -i "Strict-Transport-Security"
# Attendu : max-age >= 31536000 ; includeSubDomains ; preload
curl -sI https//<domaine> | grep -i "Content-Security-Policy"
# Attendu : présent, pas de 'unsafe-inline' ni 'unsafe-eval' sans nonce
curl -sI https//<domaine> | grep -i "X-Frame-Options"
# Attendu : DENY ou SAMEORIGIN
curl -sI https//<domaine> | grep -i "X-Content-Type-Options"
# Attendu : nosniff
curl -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

bash
# 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 ciphers
nmap --script ssl-enum-ciphers -p 443 <cible>
# Chercher : SSLv2, SSLv3, TLS 1.0, TLS 1.1, RC4, DES, NULL ciphers → à signaler
# Vérifier le certificat
openssl 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

bash
# Lister les méthodes HTTP autorisées
curl -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

bash
# Apache — configuration de sécurité
grep -r "ServerTokens" /etc/apache2/
# Attendu : ServerTokens Prod (cache la version)
grep -r "ServerSignature" /etc/apache2/
# Attendu : ServerSignature Off
grep -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épertoires
curl -s https//<domaine>/images/ | grep -i "Index of"
# Résultat attendu : 403 ou redirection, pas de listing

Vérification du WAF

bash
# Détecter la présence d'un WAF
wafw00f https//<domaine>
# Tester si le WAF bloque les injections basiques
curl "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 A
AV Attack Vector Network > Adjacent > Local > Physical
AC Attack Complexity Low > High
PR Privileges Required None > Low > High
UI User Interaction None > Required
Scores
90 100 Critique correction immdiate 24
70 89 lev correction sous 7 jours
40 69 Moyen correction sous 30 jours
01 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 pages
Primtre et dates
Synthse des constats tableau
Top 5 recommandations prioritaires
2 Contexte et mthodologie
3 Constats dtaills
VUL-001 description preuve CVSS impact recommandation
4 Plan de remdiation PACS
Tableau prioris criticit dlai
5 Annexes outputs outils CVE CWE OWASP

Template fiche de vulnérabilité

markdown
## 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 |
bash
# Re-test après correction — exemples
nmap --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 |

💡 Tip —

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.

OPS·BRAIN v1.075 notes · Securitylocal