TP 1 - Audit de Conformité & Hardening
Auteur : Thibaut Fontaine — Kodetis Institution : Université de La Réunion Durée estimée : 2h30
Table des matières
Section intitulée « Table des matières »- Objectifs et Contexte
- Audit avec Lynis
- CIS Benchmarks avec OpenSCAP
- Référentiel ANSSI — durcissement GNU/Linux
- SBOM et scan de vulnérabilités des images Docker
- Pipeline CI/CD de sécurité
- Remédiation et Hardening
- Questions de validation
1. Objectifs et Contexte
Section intitulée « 1. Objectifs et Contexte »📡 Poste SOC · La Réunion — Acte 3, Prouver : vous instruisez l’incident du jour J. Poste avancé : Dumont d’Urville (Terre Adélie), ~6 000 km, SATCOM dégradée.
🎯 Objectif métier — mesurer l’écart d’une infra TAAF aux référentiels (CIS, CVE) et le réduire — le préalable à toute homologation.
Contexte
Section intitulée « Contexte »Une infra qui marche n’est pas une infra conforme. Avant d’homologuer la base de Terre Adélie, mesurez l’écart entre ce qu’elle fait et ce que l’ANSSI exige.
Suite à l’alerte de l’ANSSI concernant des menaces ciblant les infrastructures de recherche polaire, le RSSI des TAAF vous demande de réaliser un audit de conformité de l’infrastructure. L’objectif est d’évaluer le niveau de sécurité actuel et de remédier aux vulnérabilités identifiées.
🔴 Au fil de l’enquête
Section intitulée « 🔴 Au fil de l’enquête »Une infra non durcie est ce qui a rendu l’intrusion possible : services exposés, durcissement absent (#9 du threat model). L’audit de conformité, c’est fermer les portes que l’attaquant a trouvées ouvertes — et prouver, baseline en main, qu’elles sont désormais closes.
Objectifs pédagogiques
Section intitulée « Objectifs pédagogiques »À l’issue de ce TP, vous serez capable de :
- Réaliser un audit de conformité Linux avec Lynis
- Appliquer les CIS Benchmarks avec OpenSCAP
- Cartographier les écarts sur le référentiel ANSSI de durcissement GNU/Linux (et découvrir l’approche secure by design avec Sécurix)
- Générer un SBOM (Syft) et scanner les images Docker avec Grype pour détecter les CVE
- Mettre en place un pipeline CI/CD de scan automatique
- Appliquer des mesures de hardening sur un serveur Linux
Architecture
Section intitulée « Architecture »Vous travaillez depuis la VM TAAF-AUDIT-001 (IP_AUDIT) et auditez les VMs :
graph LR AUDIT["TAAF-AUDIT-001
IP_AUDIT
Lynis, OpenSCAP, Syft, Grype"] MONITOR["TAAF-MONITORING-001
IP_VM2
SI observé + observabilité"] SOC["TAAF-SOC-01
IP_SOC
SOC Grafana-natif"] AUDIT -->|"Audit SSH"|MONITOR AUDIT -->|"Audit SSH"|SOC
2. Audit avec Lynis
Section intitulée « 2. Audit avec Lynis »Lynis est un outil d’audit de sécurité pour les systèmes Unix/Linux. Il effectue des centaines de tests individuels pour évaluer la posture de sécurité d’un système.
2.1 Audit local de la VM Audit
Section intitulée « 2.1 Audit local de la VM Audit »Connectez-vous à la VM d’audit et lancez un scan complet :
vagrant ssh taaf-audit-001# Lancer un audit completsudo lynis audit system
# Lancer un audit et sauvegarder le rapportsudo lynis audit system --no-colors | tee ~/lynis-audit-001.txt2.2 Audit distant des VMs TAAF
Section intitulée « 2.2 Audit distant des VMs TAAF »Lancez un audit distant sur les VMs de production :
# Audit de TAAF-MONITORING-001 (SI observé + observabilité)ssh vagrant@IP_VM2 "sudo lynis audit system --no-colors" > ~/lynis-monitoring-001.txt
# Audit de TAAF-SOC-01ssh vagrant@IP_SOC "sudo lynis audit system --no-colors" > ~/lynis-soc-01.txt2.3 Analyse comparative
Section intitulée « 2.3 Analyse comparative »Comparez les scores de hardening des différentes VMs :
# Extraire les scoresgrep "Hardening index" ~/lynis-*.txtLivrable : Tableau comparatif des scores de hardening des 3 VMs avec les 5 warnings les plus critiques pour chacune.
3. CIS Benchmarks avec OpenSCAP
Section intitulée « 3. CIS Benchmarks avec OpenSCAP »Les CIS Benchmarks sont des référentiels de bonnes pratiques de sécurité reconnus internationalement.
3.1 Scan de conformité CIS
Section intitulée « 3.1 Scan de conformité CIS »# Télécharger le profil CIS pour Debian 12# (le profil est pré-installé sur TAAF-AUDIT-001)
# Lancer le scansudo oscap xccdf eval \ --profile xccdf_org.ssgproject.content_profile_cis_level1_server \ --results ~/openscap-results.xml \ --report ~/openscap-report.html \ /usr/share/xml/scap/ssg/content/ssg-debian12-ds.xml3.2 Consultation du rapport
Section intitulée « 3.2 Consultation du rapport »Le rapport HTML est généré dans ~/openscap-report.html. Récupérez-le sur votre machine hôte :
# Depuis votre machine hôtevagrant scp taaf-audit-001:~/openscap-report.html ./openscap-report.htmlLivrable : Capture d’écran du rapport OpenSCAP avec le pourcentage de conformité CIS Level 1.
4. Référentiel ANSSI — durcissement GNU/Linux
Section intitulée « 4. Référentiel ANSSI — durcissement GNU/Linux »Les CIS Benchmarks sont des référentiels internationaux. Pour une infrastructure étatique française comme les TAAF, le référentiel de durcissement de premier rang est celui de l’ANSSI, cohérent avec la feuille de route de sécurité numérique de l’État (cf. Cadre réglementaire).
4.1 Cartographier vos findings sur les recommandations ANSSI
Section intitulée « 4.1 Cartographier vos findings sur les recommandations ANSSI »Reprenez les warnings Lynis (§2) et les fails OpenSCAP (§3), puis associez chacun à la recommandation ANSSI correspondante.
| Finding (Lynis / OpenSCAP) | Recommandation ANSSI | Niveau | Statut |
|---|---|---|---|
PermitRootLogin autorisé en SSH | R… (durcissement SSH) | intermédiaire | ❌ à corriger |
Paramètres noyau sysctl non durcis | R… (configuration noyau) | renforcé | ❌ à corriger |
Partition /tmp non isolée | R… (partitionnement) | intermédiaire | ⚠️ partiel |
Astuce : ouvrez le PDF ANSSI et utilisez la recherche pour retrouver la règle (
sysctl,ssh,umask,partition…). Citez le numéroRxxexact dans votre rapport.
4.2 Définir le niveau de durcissement cible
Section intitulée « 4.2 Définir le niveau de durcissement cible »Choisissez un niveau cible réaliste pour les TAAF (recommandé : intermédiaire, voire renforcé sur les VMs exposées) et justifiez au regard des contraintes opérationnelles (connectivité satellite, équipes réduites, maintenance à distance).
4.3 Aller plus loin — un OS durci par conception (Sécurix)
Section intitulée « 4.3 Aller plus loin — un OS durci par conception (Sécurix) »Dans ce TP vous durcissez a posteriori un système installé. L’approche inverse, secure by design, consiste à partir d’un OS dont le durcissement ANSSI est intégré dès la construction de l’image.
Livrable : le tableau de cartographie finding → règle ANSSI Rxx → niveau + le niveau de durcissement cible retenu et sa justification TAAF.
5. SBOM et scan de vulnérabilités des images Docker
Section intitulée « 5. SBOM et scan de vulnérabilités des images Docker »Vous auditez ici vos propres images Docker — celles que vous avez déployées aux Actes 1 & 2 (Nextcloud, PostgreSQL, la stack de monitoring…). Deux outils complémentaires, standards du marché :
- Syft génère le SBOM (Software Bill of Materials), l’inventaire exhaustif des composants d’une image. C’est l’exigence supply-chain de l’axe 3 du cadre réglementaire.
- Grype scanne ce SBOM (ou l’image directement) pour détecter les vulnérabilités connues (CVE).
5.1 Générer le SBOM de vos images
Section intitulée « 5.1 Générer le SBOM de vos images »# Inventaire des composants de vos imagessyft nextcloud:latest -o tablesyft postgres:16 -o table
# Export du SBOM au format standard CycloneDX (réutilisé par Grype et au TP4)syft nextcloud:latest -o cyclonedx-json=~/sbom-nextcloud.jsonsyft postgres:16 -o cyclonedx-json=~/sbom-postgres.json5.2 Scanner les vulnérabilités avec Grype
Section intitulée « 5.2 Scanner les vulnérabilités avec Grype »# Scan direct de l'imagegrype nextcloud:latestgrype postgres:16
# Scan à partir du SBOM déjà généré (plus rapide, exploitable hors-ligne)grype sbom:~/sbom-nextcloud.json
# Se concentrer sur les CVE corrigeables et sévèresgrype postgres:16 --only-fixed -o table | grep -E "High|Critical"5.3 Export au format JSON
Section intitulée « 5.3 Export au format JSON »# Export pour traitement automatisé (consommé au TP4 - Rapport & IA)grype nextcloud:latest -o json > ~/grype-nextcloud.jsongrype postgres:16 -o json > ~/grype-postgres.jsonLivrable : pour chaque image, le SBOM (Syft) + un tableau des CVE HIGH/CRITICAL (Grype) avec le lien NVD correspondant.
6. Pipeline CI/CD de sécurité
Section intitulée « 6. Pipeline CI/CD de sécurité »6.1 Concept DevSecOps
Section intitulée « 6.1 Concept DevSecOps »L’idée est d’automatiser les scans de sécurité dans votre pipeline CI/CD GitLab pour que chaque modification soit vérifiée automatiquement.
6.2 Création du pipeline
Section intitulée « 6.2 Création du pipeline »Créez un fichier .gitlab-ci.yml dans votre repo de formation :
stages: - security-scan - compliance-report
# 1. Génération du SBOM avec Syft (artefact de traçabilité supply-chain)sbom: stage: security-scan image: name: anchore/syft:latest entrypoint: [""] script: - syft nextcloud:latest -o cyclonedx-json=sbom-nextcloud.json - syft postgres:16 -o cyclonedx-json=sbom-postgres.json artifacts: paths: - sbom-*.json expire_in: 30 days
# 2. Scan des CVE avec Grype (échoue si une CVE critique est présente)vuln-scan: stage: security-scan image: name: anchore/grype:latest entrypoint: [""] script: - grype nextcloud:latest --fail-on critical - grype postgres:16 --fail-on critical allow_failure: true
# Rapport de conformité Lynislynis-audit: stage: compliance-report image: debian:12 before_script: - apt-get update && apt-get install -y lynis script: - lynis audit system --no-colors --quiet > lynis-report.txt || true - grep "Hardening index" lynis-report.txt artifacts: paths: - lynis-report.txt expire_in: 30 days6.3 Analyse du pipeline
Section intitulée « 6.3 Analyse du pipeline »Livrable : Capture d’écran du pipeline GitLab CI exécuté avec les résultats des scans.
7. Remédiation et Hardening
Section intitulée « 7. Remédiation et Hardening »À partir des résultats de Lynis, OpenSCAP et des recommandations ANSSI (§4), appliquez les mesures de hardening suivantes sur TAAF-MONITORING-001. Citez la règle Rxx ANSSI correspondante pour chaque mesure dans votre rapport :
7.1 Mesures de base
Section intitulée « 7.1 Mesures de base »# Désactiver les services inutilessudo systemctl disable --now avahi-daemon 2>/dev/nullsudo systemctl disable --now cups 2>/dev/null
# Configurer les permissions des fichiers sensiblessudo chmod 600 /etc/shadowsudo chmod 644 /etc/passwdsudo chmod 600 /etc/gshadow
# Configurer la politique de mots de passesudo apt install libpam-pwquality7.2 Configuration SSH
Section intitulée « 7.2 Configuration SSH »# Éditer /etc/ssh/sshd_configsudo tee -a /etc/ssh/sshd_config.d/hardening.conf << 'EOF'PermitRootLogin noMaxAuthTries 3PasswordAuthentication noX11Forwarding noAllowTcpForwarding noEOF
sudo systemctl restart sshd7.3 Vérification post-hardening
Section intitulée « 7.3 Vérification post-hardening »# Relancer Lynis pour mesurer l'améliorationsudo lynis audit system --no-colors | tee ~/lynis-post-hardening.txt
# Comparer les scoresecho "=== Avant ===" && grep "Hardening index" ~/lynis-monitoring-001.txtecho "=== Après ===" && grep "Hardening index" ~/lynis-post-hardening.txtLivrable : Comparaison avant/après des scores Lynis avec les mesures appliquées.
7.4 Posture de sécurité de l’architecture : avant / après
Section intitulée « 7.4 Posture de sécurité de l’architecture : avant / après »C’est le livrable central de l’Acte 3 : une photographie chiffrée de la posture de votre propre architecture — celle que vous avez construite aux Actes 1 & 2 — avant et après mise en conformité. Consolidez les mesures de tous vos hôtes et images.
| Composant | Indicateur | Avant | Après | Delta |
|---|---|---|---|---|
| TAAF-MONITORING-001 | Indice de hardening Lynis | ex. 58 | ex. 81 | +23 |
| TAAF-SOC-01 | Indice de hardening Lynis | |||
| Conformité CIS (OpenSCAP) | % de règles conformes | |||
Image nextcloud:latest | CVE HIGH/CRITICAL (Grype) | |||
Image postgres:16 | CVE HIGH/CRITICAL (Grype) |
Livrable : ce tableau complété + un paragraphe d’interprétation — qu’est-ce qui a le plus progressé, quelles vulnérabilités résiduelles subsistent, et pourquoi (contraintes TAAF : connectivité, ressources). Ce tableau est repris dans le rapport final du TP4.
8. Questions de validation
Section intitulée « 8. Questions de validation »- [Facile] Quel est le score de hardening Lynis de TAAF-MONITORING-001 avant remédiation ?
- [Facile] Combien de CVE CRITICAL Grype a-t-il trouvé dans l’image Nextcloud ?
- [Moyen] Quelle est la différence entre un audit Lynis et un scan CIS OpenSCAP ?
- [Moyen] À quoi sert l’option
--fail-on criticalde Grype dans le pipeline CI/CD ? Et à quoi sert un SBOM généré par Syft ? - [Moyen] Citez 3 mesures de hardening SSH recommandées par Lynis.
- [Moyen] Qu’est-ce qu’un CIS Benchmark Level 1 vs Level 2 ?
- [Avancé] Votre pipeline CI/CD détecte une CVE CRITICAL dans postgres. Quelle est votre stratégie de remédiation ?
- [Avancé] Comment intégreriez-vous les résultats Grype dans un dashboard Grafana ?
- [Expert] Proposez une politique de scan automatique adaptée aux contraintes TAAF (connectivité satellite limitée).
- [Expert] Comment automatiseriez-vous la remédiation des findings Lynis avec Ansible ?
- [Moyen] Quelle différence faites-vous entre un CIS Benchmark et le guide ANSSI « Recommandations de configuration d’un système GNU/Linux » ? Pourquoi le second est-il plus pertinent pour les TAAF ?
- [Avancé] Citez 3 recommandations ANSSI (
Rxx) issues du guide et expliquez, pour chacune, comment vérifier sa mise en œuvre sur une VM Debian 12. - [Expert] Qu’apporte une approche secure by design (type Sécurix : NixOS durci, FIDO2, Secure Boot PK/KEK, TPM2) par rapport au hardening a posteriori réalisé dans ce TP ? Quelles limites pour une infrastructure aux ressources contraintes ?