Expert Cybersécurité & IAv9.0
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident

Techniques de Hacking

31 articles
ETW Tampering : Évasion et Détection sur Windows en 2026 TPM et BitLocker : Cold Boot et Bypass Chiffrement Covert Channels Réseau : Stéganographie et Exfiltration Avancée Type Confusion V8 : Exploitation Avancée Navigateurs eBPF Offensif : Rootkits, Évasion et Détection Kernel-Level DMA Attacks : Exploitation Thunderbolt, PCIe et FireWire 2026 Type Confusion V8 : Exploitation Avancée Navigateurs Vol de Mots de Passe Chrome : DPAPI, Exploits et Outils Extraction Credentials Firefox : NSS, Key4.db et Exploits Hacking Password Managers Navigateurs : Attaques Expert EvilGinx : Phishing AiTM, Bypass MFA et Défense 2026 Persistance Windows Server 2025 : Techniques Complètes Escalade de Privilèges Windows 2025 : Scénarios Réels Buffer Overflow et Corruption Mémoire : Stack, Heap et Escalade de Privilèges Linux : Techniques Offensives et Escalade de Privilèges Windows : Du User au SYSTEM Hacking WordPress Expert : Red Team, Supply Chain et Hacking WordPress : Fondamentaux, Vulnérabilités : Guide Hacking WordPress Intermédiaire : Exploitation Avancée Infostealers : La Menace Silencieuse qui Alimente le Injection SQL Avancée : De la Détection à l'Exploitation MITRE ATT&CK : Les 10 Techniques les Plus Utilisées en OSINT et Reconnaissance Offensive : Du Renseignement Password Attacks : Cracking, Spraying et Credential Stuffing Ransomware : Anatomie d'une Attaque, Kill Chain et Reverse Engineering et Analyse de Malware : Guide Pratique Red Team vs Pentest vs Bug Bounty : Comparatif Complet Bug Bounty : Créer et Gérer un Programme de Sécurité Zero Trust Architecture : Implémentation Complète et Mouvement Latéral : Techniques d'Attaque, Détection et Attack Surface Management (ASM) : Gestion Continue de la

Attaques Active Directory

43 articles
Mouvement Latéral Windows AD 2026 : Techniques Expert Impacket : Guide complet exploitation Active Directory 2026 Pentest Active Directory : Guide Méthodologique Complet 2026 BloodHound : Cartographie des Chemins d'Attaque Active NTDS.dit : Extraction, Analyse et Protection des Secrets LAPS : Gestion Sécurisée des Mots de Passe : Guide Complet Tiering Model Active Directory : Segmentation des : Guide GPO Sécurisation Active Directory : Hardening par : Guide Forum InCyber 2026 : Securite AD en Vedette : Guide Complet Conditional Access Entra ID : Nouveautes Mars 2026 ADCS 2026 : Bilan ESC1 a ESC15 et Remediation en 2026 BloodHound 5 : Nouveaux Chemins d'Attaque Detectes Audit AD Automatise PowerShell : Scripts 2026 en 2026 NTLM Relay 2026 : Techniques et Defenses Actuelles Tiering Model AD 2026 : Adapter Face aux Menaces en 2026 Passwordless AD : Bilan des Risques et Opportunites Entra ID : Fin des Service Principals Legacy : Guide Complet BadSuccessor DMSA : Compromettre Active Directory en 2026 AD FS et SAML : Methodologie et Recommandations de Securite RBCD Abuse Active Directory | Active Directory 2026 Computer Account Takeover Active : Analyse Technique Active Directory Certificate Services : Guide Complet Forest Trust Abuse Active | Defence Active Directory ACL Abuse Active Directory | Active Directory 2026 AS-REP Roasting : Exploitation : Analyse Technique Kerberoasting : Guide Complet | Active Directory 2026 Password Filter DLL : Guide Pratique Cybersecurite Pass-the-Hash (PtH) : Comprendre, : Analyse Technique AdminSDHolder : Persistance via : Analyse Technique Pass-the-Ticket Active Directory : : Guide Complet NTFS Tampering et Anti-Forensics : Analyse Technique GPO Abuse Active Directory | Active Directory 2026 SIDHistory Injection Active Directory : Guide Complet Skeleton Key Malware Active | Active Directory 2026 Silver Ticket Active Directory : Analyse Technique DCSync Attack : Exfiltration | Active Directory 2026 DCShadow : Attaque Furtive | Active Directory 2026 Golden Ticket Attack : Guide Pratique Cybersecurite Migration MFA Entra : Revoquer les Sessions Legacy Attaques AD 2025 : Bilan et Tendances Emergentes en 2026 Entra Connect SyncJacking : Bloquer l'Attaque en 2026 CVE-2025-21293 : Escalade de Privileges AD DS en 2026 Durcissement AD : Guide des Recommandations Microsoft

Intelligence Artificielle

166 articles
Qdrant vs Milvus vs Weaviate : Bases Vectorielles pour RAG Sécurisé Jailbreak LLM : Taxonomie et Détection Automatisée Sécuriser un Pipeline RAG : Du Vector Store à l'API Exfiltration de Données via RAG : Attaques Contextuelles AI Red Team : Auditer un Modèle IA en Production 2026 Prompt Injection Avancée : Attaques et Défenses 2026 La Puce Analogique que les États-Unis ne Peuvent Arrêter Contenu IA : Outils de Detection Proactive Multimodale Prompt Injection et Attaques Multimodales : Défenses en 2026 Stocker et Interroger des Embeddings à Grande Échelle Benchmark LLM Mars 2026 : Etat des Lieux Complet en 2026 Claude Opus 4.6 : Applications en Cybersecurite en 2026 AI Worms et Propagation Autonome : Menaces Émergentes 2026 Confidential Computing et IA : Entraîner et Inférer dans IA Générative pour le Pentest Automatisé : Méthodes et IA et Gestion des Vulnérabilités : Priorisation EPSS Long Context vs RAG : Quand Utiliser 10M Tokens au Lieu Mixture of Experts (MoE) : Architecture, Sécurité et AI Model Supply Chain : Attaques sur Hugging Face et les IA et SCADA/ICS : Détection d'Anomalies sur les Protocoles Sparse Autoencoders et Interprétabilité Mécanistique IA et Zero Trust : Micro-Segmentation Dynamique Pilotée par Red Teaming IA 2026 : Tester les LLM en Entreprise MCP Model Context Protocol : Securiser les Agents en 2026 AI Act 2026 : Implications pour les Systèmes Agentiques et Context Engineering pour Agents Multimodaux : Guide Complet Défense contre les Attaques IA Générées : Stratégies Détection Proactive de Contenu Généré par IA Multimodal Embodied AI : Agents Physiques, Robotique et Sécurité en Forensic Post-Hacking : Reconstruction et IA : Guide Complet Gouvernance Globale de l'IA 2026 : Alignement International Gouvernance du Hacking IA Offensive : Cadre et Bonnes Pra... Green Computing IA 2026 : Eco-Responsabilite et Sobriete Hacking Assisté par IA : Génération de Payloads et Human-AI Collaboration 2026 : Travailler avec des Agents Intégration d'Agents IA avec les API Externes en 2026 LLMOps pour Agents Autonomes : Monitoring et CI/CD Mémoire Augmentée Agents : Vector + Graph 2026 en 2026 Détection Multimodale d’Anomalies Réseau par IA en Multimodal RAG 2026 : Texte, Image, Audio : Guide Complet PLAM : Agents IA Personnalisés Edge et Déploiement Prompt Hacking Avancé 2026 : Techniques et Défenses Prompt Injection et Attaques Multimodales : Défenses en Red Teaming Cyber-Défense Agentique : Méthodologie Responsible Agentic AI : Contrôles, Garde-Fous et 2026 Agents RAG avec Actions : Récupération et Exécution Sécurité des Agents IA en Production : Sandboxing et Shadow Agents IA : Identification et Gouvernance 2026 Traçabilité des Décisions d'Agents Autonomes : Guide Agentic AI 2026 : Autonomie en Entreprise : Guide Complet Agents IA et Raisonnement Causal pour la Décision 2026 Agents IA Edge 2026 : Privacy, Latence et Architecture PLAM Architectures Multi-Agents et Orchestration LLM en Produc... Collaboration Multi-Agents IA 2026 : Orchestration et RAG Agentique : Pipelines IA Autonomes en Entreprise IA et Analyse Juridique des Contrats Cybersécurité Apprentissage Fédéré et Privacy-Preserving ML en 2026 IA pour la Défense et le Renseignement : Cadre Éthique Données Synthétiques : Génération, Validation et 2026 DSPy et la Programmation Déclarative de LLM : Guide IA dans la Finance : Détection de Fraude Temps Réel et Gouvernance LLM et Conformite : RGPD et AI Act 2026 Playbooks de Réponse aux Incidents IA : Modèles et IA Neuromorphique : Architecture et Securite en 2026 Pydantic AI et les Frameworks d'Agents Type-Safe en 2026 Quantum Machine Learning : Risques et Opportunités pour la RAG en Production : Architecture, Scaling et Bonnes Reinforcement Learning Appliqué à la Cybersécurité AI Safety et Alignement : Du RLHF au Constitutional AI en IA dans la Santé : Sécuriser les Modèles Diagnostiques et Sécurité LLM Adversarial : Attaques, Défenses et Bonnes Speculative Decoding et Inférence Accélérée : Techniques Voice Cloning et Audio Deepfakes : Detection en 2026 IA Agentique 2026 : Risques et Gouvernance : Guide Complet Agents IA Autonomes : Architecture, Frameworks et Cas Automatiser le DevOps avec des Agents IA : Guide Complet Agents IA pour le SOC : Triage Automatisé des Alertes AI Act et LLM : Classifier vos Systèmes IA : Guide Complet AI TRiSM : Framework Gartner Appliqué : Guide Complet IA pour l’Analyse de Logs et Détection d’Anomalies en IA et Automatisation RH : Screening CV et Compliance Chatbot Entreprise avec RAG et LangChain : Guide Pas à Pas Llama 4, Mistral Large, Gemma 3 : Comparatif LLM Open Source Computer Vision en Cybersécurité : Détection et 2026 Confidentialité des Données dans les LLM : PII et DLP IA et Conformité RGPD : Données Personnelles dans les Context Window : Gérer 1 Million de Tokens en Production Coût d'Inférence des LLM : Optimiser sa Facture Cloud CrewAI, AutoGen, LangGraph : Comparatif Frameworks Data Platform IA-Ready : Architecture de Référence 2026 Data Poisoning et Model Backdoors : Supply Chain IA Deepfakes et Social Engineering IA : Détection et 2026 Deployer des LLM en Production : GPU et Optimisation Détection de Menaces par IA : SIEM Augmenté : Guide IA pour le DFIR : Accélérer les Investigations Forensiques Évaluation de LLM : Métriques, Benchmarks et Frameworks Fine-Tuning de LLM Open Source : Guide Complet LoRA et QLoRA Function Calling et Tool Use : Intégrer les API aux LLM Fuzzing Assisté par IA : Découverte de Vulnérabilités IA pour la Génération de Code : Copilot, Cursor, Claude Gouvernance IA en Entreprise : Politiques et Audit GraphRAG et Knowledge Graphs : Architecture RAG Avancée Knowledge Management avec l’IA en Entreprise : Stratégies Kubernetes pour l’IA : GPU Scheduling, Serving et 2026 LLM en Local : Ollama, LM Studio et vLLM - Comparatif 2026 LLM On-Premise vs Cloud : Souveraineté et Performance MCP (Model Context Protocol) : Connecter les LLM à vos MLOps Open Source : MLflow, Kubeflow, ZenML : Guide Complet IA Multimodale : Texte, Image et Audio : Guide Complet IA Offensive : Comment les Attaquants Utilisent les LLM Orchestration d'Agents IA : Patterns et Anti-Patterns OWASP Top 10 pour les LLM : Guide Remédiation 2026 Phishing Généré par IA : Nouvelles Menaces : Guide Prompt Engineering Avancé : Chain-of-Thought et Techniques Quantization : GPTQ, GGUF, AWQ - Quel Format Choisir RAG vs Fine-Tuning vs Prompt Engineering : Quelle Stratégie Reconnaissance Vocale et LLM : Assistant Vocal Sécurisé Red Teaming de Modèles IA : Jailbreak et Prompt Injection ROI de l'IA Générative : Mesurer l'Impact Réel en 2026 Sécuriser un Pipeline MLOps : Bonnes Pratiques et 2026 Shadow AI : Détecter et Encadrer l'Usage Non Autorisé Small Language Models : Phi-4, Gemma et IA Embarquée Threat Intelligence Augmentée par IA : Guide Complet Vector Database en Production : Scaling et HA en 2026 CNIL Autorite AI Act : Premiers Pas Reglementaires KVortex : Offloader VRAM→RAM pour LLMs vLLM et Inférence Securiser un Pipeline RAG en Production (2026) en 2026 Codex GPT-5.2 : Generation de Code Autonome Securisee Mixture of Experts : Architecture LLM de 2026 en 2026 GPT-5.2 et Agents IA : Revolution en Cybersecurite Windows Recall : Analyse Technique Complete - Fonctionnem... L'IA dans Windows 11 : Copilot, NPU et Recall - Guide Com... Deepfake-as-a-Service : La Fraude IA Industrialisee Small Language Models : Securite a la Peripherie en 2026 RAG Poisoning : Manipuler l'IA via ses Documents en 2026 Phishing IA : Quand les Defenses Traditionnelles Echouent Superintelligence : De l'ANI à l'ASI : Guide Complet La Fin des Moteurs de Recherche : Analyse Expert 2026 Embeddings et Recherche Documentaire : Guide Complet Stratégies de Découpage de | Guide IA Complet 2026 Sécurité et Confidentialité des : Analyse Technique Vecteurs en Intelligence Artificielle : Guide Complet Embeddings vs Tokens : Guide Pratique Cybersecurite Qu'est-ce qu'un Embedding en | Guide IA Complet 2026 Cas d'Usage des Bases - Guide Pratique Cybersecurite Bases Vectorielles : Définition, : Analyse Technique La Vectorisation de Données | Guide IA Complet 2026 Tendances Futures des Embeddings : Analyse Technique Optimiser le Chunking de - Guide Pratique Cybersecurite Milvus, Qdrant, Weaviate : | Guide IA Complet 2026 Glossaire IA et Cybersécurité : 100 Termes Essentiels 2026 10 Erreurs Courantes dans - Guide Pratique Cybersecurite Benchmarks de Performance : | Guide IA Complet 2026 RAG Architecture | Guide - Guide Pratique Cybersecurite Comment Choisir sa Base - Guide Pratique Cybersecurite Indexation Vectorielle : Techniques : Guide Complet Comprendre la Similarité Cosinus : Analyse Technique Comet Browser : Architecture | Guide IA Complet 2026 Développement Intelligence Artificielle | : Guide Complet Stocker et Interroger des - Guide Pratique Cybersecurite Shadow AI en Entreprise : Detecter et Encadrer en 2026 GPT-5.1 vs Claude 4.5 vs Gemini 3 : Comparatif en 2026 OpenClaw : Crise de l'Agent IA Open Source : Guide Complet Prompt Injection : 73% des Deploiements Vulnerables AI Act Aout 2025 : Premieres Sanctions Activees en 2026 OWASP Top 10 LLM 2025 : Risques et Remediations en 2026

Forensics

31 articles
Forensique Mémoire : Guide Pratique Volatility 3 en 2026 Timeline Forensique : Reconstituer Pas à Pas une : Guide Forensique Cloud : Analyser les Logs CloudTrail, Azure Forensique Microsoft 365 : Analyse du Unified Audit Log Chaîne de Preuve Numérique : Bonnes Pratiques Juridiques Exercice de Crise Cyber : Organiser un Tabletop Efficace Forensique Disque : Acquisition d'Image et Analyse avec Mobile Forensics : Extraction et Analyse iOS/Android Ransomware Forensics : Identifier la Souche : Guide Complet Forensics Linux : Artifacts et Investigation : Guide Complet MacOS Forensics : Artifacts et Persistence : Guide Complet Malware Reverse : Analyse de Cobalt Strike 5 : Guide Complet Email Forensics : Tracer les Campagnes Phishing en 2026 Timeline Analysis : Reconstruction d'Incidents en 2026 Registry Advanced : Guide Expert Analyse Technique NTFS Forensics : Methodologie et Recommandations de Securite LNK & Jump Lists : Strategies de Detection et de Remediation Windows Forensics : Guide Expert en Analyse Securite Registry Forensics : Guide Expert Analyse Securite Windows Server 2025 - Guide Pratique Cybersecurite Memory Forensics : Strategies de Detection et de Remediation ETW & WPR : Guide Complet et Bonnes Pratiques pour Experts Modèles de Rapports - Guide Pratique Cybersecurite Comparatif Outils DFIR - Guide Pratique Cybersecurite AmCache & ShimCache - Guide Pratique Cybersecurite Telemetry Forensics - Guide Pratique Cybersecurite Anti-Forensics : Methodologie et Recommandations de Securite NTFS Advanced : Methodologie et Recommandations de Securite Network Forensics : Analyse PCAP Avancee : Guide Complet DFIR Cloud : Investigation Logs AWS CloudTrail en 2026 Memory Forensics 2026 : Volatility 3 Avance : Guide Complet

Microsoft 365

24 articles
Chronologie des Attaques Active Directory : 2014-2026 Audit Avancé Microsoft 365 : Corréler Journaux et Logs Azure Automatiser l'Audit Sécurité Microsoft 365 : Guide Expert API Microsoft Graph : Audit et Monitoring M365 en 2026 Meilleures Pratiques Sécurité Microsoft 365 en 2026 PIM Entra ID : Gestion des Accès Privilégiés Just-in-Time Sécuriser Microsoft Teams : Gouvernance, DLP et Contrôle SharePoint et OneDrive : Maîtriser le Partage Externe et Microsoft Defender for Office 365 : Configuration : Guide Microsoft Secure Score : Guide d'Optimisation de votre Sécuriser Microsoft Entra ID : Conditional Access, MFA Durcissement Exchange Online : Bloquer Basic Auth et Microsoft Intune : Politiques de Conformité et : Guide Zero Trust M365 : Strategies de Detection et de Remediation API Microsoft Graph M365 - Guide Pratique Cybersecurite Microsoft 365 et Conformité - Guide Pratique Cybersecurite Audit Sécurité Microsoft 365 | Guide Microsoft 365 Audit Avancé Microsoft 365 - Guide Pratique Cybersecurite Pratiques Sécurité M365 2025 | Guide Microsoft 365 Microsoft 365 et Azure - Guide Pratique Cybersecurite Threat Hunting Microsoft 365 | Guide Microsoft 365 Top 10 Outils Analyse Securite Microsoft 365 — Guide Automatiser l'Audit de Sécurité : Analyse Technique Sécuriser les Accès Microsoft | Guide Microsoft 365

Virtualisation

25 articles
SDN Proxmox VE 9 : Zones, VNets, IPAM et Firewalls Architecture Proxmox VE 9.1 : Cluster 3 Nœuds + HA Réplication Proxmox VE : ZFS, Snapshots et Checklist Administration CLI Proxmox VE : Diagnostic Cluster Déploiement Automatisé Proxmox : Terraform et Ansible Proxmox VE 9.1 : Paramètres Avancés VM et Nested Virt Outils Proxmox VE : Monitoring, IaC et Écosystème 2026 Optimisation Proxmox VE 9 : CPU, RAM, ZFS, Ceph et HA Dimensionnement Proxmox VE 9 : CPU, RAM, Stockage, HA Proxmox VE : Cluster HA, Live Migration et Ceph 2026 Proxmox vs VMware vs Hyper-V : Comparatif Sécurité et Durcissement VMware ESXi : Guide Complet de Sécurisation ESXi Hardening : Guide Complet de Sécurisation Avancée Migration VMware vers Proxmox VE : Guide Complet : Guide Hyper-V Shielded VMs : Sécurisation Avancée du : Guide Proxmox Backup Server : Stratégie de Sauvegarde et Optimisation Proxmox - Guide Pratique Cybersecurite Évolutions Proxmox : Guide Expert Bonnes Pratiques Calculateur Sizing : Guide Expert Bonnes Pratiques NTP Proxmox : Guide Complet et Bonnes Pratiques pour Experts Dimensionnement : Strategies de Detection et de Remediation Guide Complet Proxmox - Guide Pratique Cybersecurite Migration VMware : Strategies de Detection et de Remediation Securite Proxmox VE : Guide Complet Hardening 2026 Hyper-V 2025 : Analyse Technique Approfondie et Securisation

Cybersécurité Générale

44 articles
Débuter en Pentest : Parcours et Ressources 2026 Carte des Menaces Cyber 2025-2026 : Threat Landscape 20 Erreurs Fatales en Cybersécurité : AD, Cloud et IA Certifications Cybersécurité 2026 : Guide Complet OSCP à CISSP 15 Mythes en Cybersécurité Démystifiés par un Pentester CrowdStrike vs Defender vs SentinelOne : Quel EDR en 2026 ? L'ingénierie sociale a gagné : vos firewalls ne servent plus à rien Quatre zero-days Chrome en 2026 : le navigateur est devenu la cible Zero-days exploités avant le patch : la nouvelle norme en 2026 Le délai d'exploitation se réduit à néant : ce que ça Deepfakes et Social Engineering : Menaces IA en 2026 Culture Sécurité en Entreprise : Changer les Comportements Programme Sensibilisation Cyber : Méthode et KPI 2026 Exercices Phishing Interne : Outils et Bonnes Pratiques Quand les défenseurs passent à l'attaque : leçons de Patch Tuesday ne suffit plus : repenser la gestion des Data brokers : les coffres-forts que tout le monde veut Vos outils d automatisation sont devenus des cibles Équipements en fin de vie : maillon faible sécurité quand vos défenseurs travaillent pour l adversaire Pipelines IA en production : vos agents LLM sont des cibles Time-to-exploit : quand les 0-day brûlent en quelques heures OWASP Top 10 : Guide Complet Vulnérabilités Web 2026 Nessus et Greenbone : Guide Scanners Vulnérabilités ANSSI ReCyF : NIS2 en pratique, ce qui change pour vous Pipelines IA : vos clés API sont les nouvelles clés du SI Ransomwares : Pourquoi Vos Sauvegardes Ne Sauvent Plus CI/CD : L'Angle Mort de la Sécurité DevOps en 2026 Vos Outils IA : la Nouvelle Surface d'Attaque Ignorée Ransomware Trends Q1 2026 : Analyse des Groupes en 2026 IOC Management : Automatiser la Threat Intel : Guide Complet Cyber Threat Landscape France 2026 : Bilan ANSSI en 2026 Darkweb Monitoring : Outils et Techniques 2026 en 2026 InfoStealers 2026 : Lumma, Raccoon et RedLine en 2026 Supply Chain APT : Comprendre les Attaques Etatiques Top 10 des Attaques - Guide Pratique Cybersecurite Top 10 Outils Securite Kubernetes 2025 — Guide Pratique Livre Blanc : Sécurisation | Threat Intelligence 2026 Guide Complet Sécurité Active | Guide Cyberdefense Top 5 des Outils : Strategies de Detection et de Remediation Top 10 Solutions EDR/XDR | Threat Intelligence 2026 Top 10 Outils Audit - Guide Pratique Cybersecurite Threat Hunting : Detection Proactive avec MITRE en 2026 APT29 2026 : Nouvelles TTP et Campagnes Cloud en 2026

Articles Techniques

105 articles
Retours d’Expérience Pentest : 5 Missions Terrain Anonymisées BloodHound vs SharpHound vs BloodyAD : Guide Comparatif 2026 Burp Suite vs OWASP ZAP : Quel Scanner Web Choisir en 2026 ? Nuclei vs Nessus vs Qualys : Scanners de Vulnérabilités Comparés Format String Exploitation Moderne : Du Crash au RCE en 2026 Race Conditions Kernel : Double-Fetch, TOCTOU et Exploitation BGP Hijacking et OSPF Exploitation : Attaques Routage Internet GPU Side-Channels : Attaques sur CUDA, OpenCL et WebGPU Intel ME et AMD PSP : Exploitation des Coprocesseurs Cryptanalyse Pratique : Attaques sur AES, RSA et ECC SGX, TDX et TEE : Attaques sur les Enclaves Sécurisées 2026 Hypervisor Escape : Techniques d'Évasion VMware, KVM et QEMU Linux Kernel Exploitation : Escalade de Privilèges Side-Channel Attacks : Spectre, Meltdown et Rowhammer ROP/JOP Chains : Exploitation Moderne des Binaires Protégés Heap Exploitation : Use-After-Free et Tcache Poisoning SGX, TDX et TEE : Attaques sur les Enclaves Sécurisées Hack The Box : Méthodologie pour Progresser en 2026 DVWA vs Juice Shop vs WebGoat : Comparatif Labs Web Lab Pentest Proxmox : Guide Complet d'Installation 2026 Top 5 Plateformes CTF et Entraînement Cyber en 2026 Architecture de Sécurité Matérielle Windows 11 & Server 2025 Windows Scheduler Internals : Architecture, Performance Architecture Windows Server 2025 : Noyau NT Expert Architecture Vertical Slice + Clean Lite : Guide 2026 Cryptographie Post-Quantique : Migration Pratique en 2026 Zero Trust Network : Implementation Pratique 2026 en 2026 C2 Frameworks Modernes : Mythic, Havoc, Sliver et Détection DNS Attacks : Tunneling, Hijacking et Cache Poisoning Exploitation de l’Infrastructure as Code Terraform et Exploitation des Protocoles Email : SMTP Smuggling et Att... GCP Offensive Security : Exploitation des Services Google Purple Team : Méthodologie et Exercices Collaboratifs Race Conditions et TOCTOU : Exploitation des Bugs de Windows Kernel Exploitation : Drivers, Tokens et KASLR Threat Intelligence : Automatiser la Veille Cyber en 2026 Attaques sur les Identity Providers Okta, Entra et Keycloak Attaques sur les Pipelines ML/AI et Empoisonnement de Mod... SSRF Avance : Bypass des Protections Cloud 2026 en 2026 Windows Kernel : Exploitation de Drivers Vulnerables Agents IA pour la Cyber-Défense et le Threat Hunting Cyber-Défense Agentique contre les APTs : Guide Complet Red Teaming des Agents Autonomes : Méthodologie et Shadow Hacking et Outils IA Non-Autorisés en Entreprise Container Escape : Techniques d'Évasion Docker et 2026 Exploitation Active Directory Certificate Services (ADCS) Hardware Hacking : JTAG, SWD, UART et Extraction de Firmware Post-Exploitation : Pillage, Pivoting et Persistance Sécurité Mobile Offensive : Android et iOS en 2026 Service Mesh Exploitation : Attaques sur Istio, Linkerd et SIM Swapping et Attaques Telecom : SS7, Diameter et 5G UEFI Bootkits et Attaques sur le Firmware : Persistance A... Attaques sur les Bases de Données SQL, NoSQL et GraphQL Attaques CI/CD Avancées : GitOps, ArgoCD et Flux en Attaques Serverless : Exploitation de Lambda, Azure Attaques sur les Smart Contracts et la Sécurité Web3 Attaques Wireless Avancées : Wi-Fi 7, BLE 5.4 et Zigbee Browser Exploitation Moderne : V8, Blink et les Sandbox Bypass FIDO2 et Passkeys : Attaques sur l'Authentification ICS/SCADA : Pentest d'Environnements Industriels en 2026 Supply Chain : Detecter les Dependances Malveillantes Incident Response : Playbook Ransomware 2026 : Guide Complet Reverse Engineering : Analyse de Firmware IoT en 2026 GraphQL Injection : Techniques d'Exploitation 2026 API Security : Fuzzing Avance avec Burp et Nuclei en 2026 Cloud Forensics : Investigation AWS et Azure : Guide Complet OAuth 2.1 : Nouvelles Protections et Migration en 2026 Pentest Wi-Fi 7 : Nouvelles Surfaces d'Attaque en 2026 C2 Frameworks 2026 : Mythic vs Havoc vs Sliver en 2026 DNS Tunneling Detection : Guide SOC Analyst : Guide Complet Phishing 2026 : Techniques Avancees de Spear-Phishing Web3 Security : Audit de Smart Contracts Solidity en 2026 Attaques sur CI/CD (GitHub - Guide Pratique Cybersecurite Azure AD : attaques - Guide Pratique Cybersecurite Supply-chain applicative (typosquatting, dependency Secrets sprawl : collecte - Guide Pratique Cybersecurite SSRF moderne (IMDSv2, gopher/file, : Guide Complet NTLM Relay moderne (SMB/HTTP, | Guide Technique 2026 Evasion d’EDR/XDR : techniques : Analyse Technique Phishing sans pièce jointe - Guide Pratique Cybersecurite Persistence sur macOS & - Guide Pratique Cybersecurite WebCache Deception & cache - Guide Pratique Cybersecurite Abus OAuth/OIDC : Consent - Guide Pratique Cybersecurite Sécurité des LLM et - Guide Pratique Cybersecurite Chaîne d'exploitation Kerberos en : Analyse Technique Living-off-the-Land (LOL-Bins/LOLBAS) à l’échelle en Exfiltration furtive (DNS, DoH, : Analyse Technique Kubernetes offensif (RBAC abuse, : Analyse Technique Désérialisation et gadgets en | Guide Technique 2026 Attaques sur API GraphQL - Guide Pratique Cybersecurite Escalades de privilèges AWS | Guide Technique 2026 OT/ICS : passerelles, protocoles : Analyse Technique Cloud IAM : Escalade de Privileges Multi-Cloud en 2026 AWS Lambda Security : Attaques et Defenses : Guide Complet Terraform Security : Audit et Durcissement IaC en 2026 SIEM : Correlations Avancees pour Threat Hunting en 2026 Mobile Pentest : Bypass SSL Pinning Android 15 en 2026 Container Escape 2026 : Nouvelles Techniques Docker Bug Bounty 2026 : Strategies et Plateformes : Guide Complet EDR Bypass 2026 : Techniques et Contre-Mesures en 2026 ZED de PRIM’X : Conteneurs Chiffrés et Sécurité des Malware Analysis : Sandbox Evasion Techniques en 2026 Purple Team : Exercices Pratiques AD et Cloud en 2026 OSINT 2026 : Outils et Techniques de Reconnaissance Kubernetes RBAC : 10 Erreurs de Configuration Critiques

Conformité

54 articles
SOA ISO 27001 : Statement of Applicability Complet Feuille de Route ISO 27001 : Certification en 12 Étapes Checklist Audit ISO 27001 : 93 Contrôles Annexe A 2022 Charte Informatique Entreprise : Guide et Modèle Word Analyse de Risques ISO 27005 : Méthodologie Complète PSSI ISO 27001 : Guide Rédaction et Modèle Complet Aspects Juridiques et Éthiques de l’IA : Cadre Réglementaire Classification des données : méthodes et outils pratiques Analyse d'impact AIPD : méthodologie CNIL pas à pas NIS 2 et DORA : double conformité du secteur financier Maturité cybersécurité : modèles CMMC et NIST CSF 2.0 Cartographie des risques cyber avec EBIOS RM en 2026 SMSI ISO 27001 version 2022 : guide complet pas à pas Audit de conformité RGPD : checklist complète pour DPO NIS2, DORA et RGPD : Cartographie des Exigences Croisées IEC 62443 : Cybersécurité Industrielle OT - Guide : Guide Audit de Sécurité du SI : Méthodologie Complète et PRA/PCA Cyber : Plan de Reprise et Continuité d'Activité Qualification PASSI ANSSI : Devenir Prestataire d'Audit Audit de Securite Cloud : Checklist Conformite 2026 PCI DSS 4.0.1 : Nouvelles Exigences Mars 2026 en 2026 Conformite Multi-Referentiels : Approche Unifiee 2026 NIS 2 Phase Operationnelle : Bilan 6 Mois Apres en 2026 Aspects Juridiques et Ethiques de l'IA en Entreprise ISO/IEC 42001 Foundation : Système de Management IA ISO 42001 Lead Auditor : Auditer un Systeme de Management ISO 42001 Lead Implementer : Management de l’IA et RGPD et AI Act : Guide Complet pour les Organisations en ... Développement Sécurisé ISO 27001 : Cycle S-SDLC en 6 Cyber Assurance 2026 : Exigences et Marche Durci en 2026 SOC 2 Type II : Retour d'Experience Implementation DORA 2026 : Impact sur le Secteur Financier Francais Cyber-assurance 2026 : Nouvelles Exigences et Guide Complet AI Act 2026 : Guide Conformité Systèmes IA à Haut Risque Cyber Resilience Act 2026 : Guide Anticipation Produits C... DORA 2026 : Premier Bilan et Contrôles ACPR - Guide Complet NIS 2 Phase Opérationnelle 2026 : Guide Complet de Mise RGPD 2026 : Securite des Donnees et Enforcement CNIL - Gu... HDS 2026 : Certification Hébergeur de Données de Santé - PCI DSS 4.0.1 en 2026 : Retour d'Expérience et Guide SBOM 2026 : Obligation de Sécurité et Guide Complet SecNumCloud 2026 et EUCS : Guide Complet Qualification Cryptographie Post-Quantique : Guide Complet pour les SI ... ISO 27001:2022 Guide Complet Certification Expert 2026 NIS 2 : Guide Complet de la Directive Européenne sur la SOC 2 : Guide Complet Conformite pour Organisations RGPD 2026 : Durcissement des Sanctions par la CNIL HDS 2026 : Certification Hebergement de Donnees Sante Cyber Resilience Act : Guide de Conformite Produits RGPD et IA Generative : Guide de Conformite CNIL en 2026 SecNumCloud 2026 : Migration et Certification EUCS AI Act Classification : Systemes a Haut Risque en 2026 SBOM 2026 : Obligation de Transparence Logicielle en 2026 ISO 27001:2022 vs ISO 27001:2013 : Differences Cles

SOC et Detection

25 articles
Incident Triage : Classification et Priorisation SOC 2026 Threat Hunting Proactif : Techniques et Outils SOC 2026 Sigma Rules : Standard de Détection Universel Guide Complet SOC as a Service : Externaliser la Détection Guide 2026 XDR vs SIEM vs EDR : Comprendre les Différences en 2026 Purple Team : Collaboration entre SOC et Red Team Guide Détection du Mouvement Latéral : Guide Complet SOC 2026 Triage des Alertes SOC : Méthodologie Complète pour Analyste NDR : Détection Réseau et Réponse aux Menaces Guide 2026 SIEM Cloud-Native vs On-Premise : Comparatif Complet 2026 Log Management : Architecture et Rétention SOC : Guide Use Cases SIEM : 50 Règles Détection Essentielles : Gui SOC Metrics et KPIs : Mesurer la Performance : Guide Co SOAR : Automatisation Réponse Incident Guide : Guide Co Threat Intelligence Platforms : Comparatif 2026 : Guide Microsoft Sentinel : Déploiement et Règles KQL : Guide Splunk Enterprise Security : Configuration SOC : Guide Elastic SIEM : Stack Détection Open Source 2026 : Guide SOC Moderne : Architecture et Outils Guide 2026 : Guide Analyste SOC : Niveaux, Parcours et Compétences : Guide Threat Hunting : Méthodologie, Outils et Pratique pour Detection Engineering : Construire des Règles de : Guide Detection-as-Code : Pipeline CI/CD pour Règles SIEM et Sigma Rules : Guide Complet d'Écriture et Déploiement de Wazuh SIEM/XDR Open Source : Déploiement, Configuration

Cloud Security

45 articles
Cloud Forensics Avancée Post-Compromission sur AWS Cloud Pentest : Méthodologie Complète Audit AWS et Azure Cloud Logging : Guide Centralisation et Monitoring Sécurité Cloud Network Security : Guide Complet VPC, WAF et DDoS DevSecOps Cloud : Guide Pipeline CI/CD Sécurisé Complet Cloud Disaster Recovery : Guide PRA et Résilience Cloud Cloud Compliance : Guide RGPD, HDS et SecNumCloud 2026 Cloud Forensics : Guide Investigation Incident Cloud 2026 Infrastructure as Code Security : Guide Terraform Complet Cloud Encryption : Guide Chiffrement Données et Clés KMS CASB : Guide Comparatif Cloud Access Security Broker 2026 Container Security : Docker et Runtime Protection Avancée Serverless Security : Sécuriser Lambda et Functions Cloud Multi-Cloud Security : Guide Stratégie Sécurité Unifiée Cloud IAM : Guide Gestion Identités et Accès Cloud 2026 Kubernetes Security : Guide Durcissement Cluster K8s 2026 Sécurité AWS : Guide Complet Hardening Compte et Services Azure Security Center : Guide Configuration Complète 2026 GCP Security : Bonnes Pratiques et Guide Audit Cloud 2026 CSPM : Guide Cloud Security Posture Management Complet CNAPP : Guide Protection Cloud-Native Applications 2026 ZTNA Zero Trust Network Access Cloud : Guide Complet Disaster Recovery Cloud : PRA Multi-Région en 2026 Attaques sur Metadata Services Cloud : SSRF et IMDS FinOps Sécurité : Cryptomining Ressources Fantômes Secrets Management Cloud : Vault et Key Vault 2026 Cloud Compliance NIS 2 SecNumCloud ISO 27017 Guide Sécurité Multi-Cloud : Stratégie Unifiée AWS, Azure et GCP Cloud Misconfiguration : Top des Erreurs de Sécurité et Cloud IAM : Sécurisation des Identités et Accès AWS, CSPM : Cloud Security Posture Management - Guide Complet Souveraineté Cloud : Protéger les Données Sensibles en Container Registry : Guide Sécurité Images Docker 2026 Cloud Logging Monitoring : Visibilité Complète 2026 Service Mesh Security : Sécuriser Istio et Linkerd Cloud Pentest Azure : Exploitation Misconfiguration Terraform IaC Sécurisé : Checklist de Durcissement Cloud Pentest AWS avec Pacu et CloudFox : Le Guide Sécurité Serverless : Lambda Functions et Protection CNAPP Cloud-Native Application Protection Platform Kubernetes Security : RBAC et Network Policies 2026 GCP Security Command Center : Audit et Durcissement Azure Defender for Cloud : Guide Configuration 2026 AWS Security : Les 20 Services Sécurité Essentiels Sécuriser une Architecture Multi-Cloud AWS et Azure

Retro-Ingenierie

18 articles
Frida et DynamoRIO : Instrumentation Binaire Avancée 2026 Symbolic Execution : Angr, Triton et Découverte d'Exploits Analyse Mémoire Forensique : Volatility pour Malware Analyse de Shellcode : Techniques de Rétro-Ingénierie Rétro-Ingénierie de C2 : Cobalt Strike et Brute Ratel Anti-Analyse Malware : Techniques et Contournements Analyse de Stealers : RedLine, Raccoon, Lumma 2026 Unpacking Malware Avancé : Techniques et Outils 2026 Rétro-Ingénierie de Ransomware : Analyse Technique Analyse Dynamique de Malware Avancée : Sandbox Expert Anti-Rétro-Ingénierie APT - Techniques d'Évasion Avancées Disséquer l'Obscurité : Techniques Avancées de Déobfuscation IA Frameworks pour l'Analyse de Malwares - Deep Learning Malwares Mobiles & IA - Rétro-Ingénierie Cross-Platform Chasse aux Fantômes : Rétro-Ingénierie Ghidra : Guide de Reverse Engineering pour Débutants Fileless Malware : Analyse, Détection et Investigation Reverse Engineering .NET : Décompilation, Analyse et

News

202 articles
Microsoft force la mise à jour vers Windows 11 25H2 sur les PC non gérés Affinity : une fuite de données expose 175 000 utilisateurs du forum Axios npm piraté : la Corée du Nord derrière l attaque supply chain React2Shell : 766 serveurs Next.js compromis, credentials volés Drift Protocol : hack à 285 M$ attribué à la Corée du Nord Cisco IMC : faille critique CVSS 9.8 permet un accès admin NoVoice : un rootkit Android caché dans 50 apps du Play Store Apple étend iOS 18.7.7 pour contrer l'exploit DarkSword Fortinet : faille critique FortiClient EMS exploitée activement Slack déploie 30 fonctionnalités IA et devient un agent autonome Commission européenne hackée via Trivy : 30 entités UE exposées BrowserGate : LinkedIn scanne vos extensions de navigateur en secret CVE-2026-0625 : zero-day critique dans les routeurs D-Link EOL GlassWorm : 72 extensions Open VSX piégées ciblent les développeurs CVE-2026-5281 : zero-day Chrome WebGPU exploité activement Le CMA britannique lance une enquête sur les licences cloud Microsoft Google NotebookLM passe à Gemini 2.5 Flash pour le raisonnement OpenAI teste des Skills pour ChatGPT, inspirées de Claude Faille critique Fortinet CVE-2026-32756 : exploitation active Akira Ransomware cible les ESXi via une faille vCenter inédite Microsoft lance Copilot Security Agents pour automatiser le SOC Claude 4 Opus d Anthropic : benchmark et implications sécurité NIS 2 : Premières Sanctions ANSSI en France 2026 Rebellions lève 400 M$ pour défier Nvidia sur les puces IA Exchange Online : Microsoft peine à résoudre des pannes persistantes TridentLocker frappe Sedgwick, sous-traitant du gouvernement US Hims & Hers : ShinyHunters vole des millions de tickets Zendesk Qilin revendique le vol de données du parti allemand Die Linke Interlock exploite un zero-day Cisco FMC CVSS 10 depuis janvier SparkCat : un malware vole les cryptos depuis les stores mobiles Microsoft lance ses propres modèles IA pour défier OpenAI Fuite Claude Code : des dépôts GitHub piégés diffusent Vidar PTC Windchill : la police allemande réveille les admins GitHub Copilot entraîne ses IA sur vos données dès le 24 285 M$ volés en 12 minutes par des hackers nord-coréens 766 serveurs Next.js compromis par vol de credentials une faille CVSS 9.8 permet le reset des mots de passe admin Cisco corrige deux failles critiques CVSS 9.8 dans IMC et Le FBI alerte sur les risques des applications mobiles ShareFile : deux failles chaînées permettent une RCE sans NoVoice : un malware Android sur Google Play vole les un exploit kit iOS cible WebKit et le kernel Apple Microsoft alerte sur une campagne VBS avec bypass UAC TrueChaos : un APT chinois exploite TrueConf pour cibler Microsoft lance Copilot Wave 3 et Agent 365 pour l'ère UAC-0255 usurpe le CERT-UA et diffuse le RAT AGEWHEEZE Chrome : Google corrige un 4e zero-day exploité en 2026 L'Iran relance Pay2Key avec des pseudo-ransomwares TeamPCP compromet des environnements cloud via des Le CMA ouvre une enquête sur Microsoft pour ses licences VMware Aria Operations : RCE critique exploitée activement Cisco SD-WAN : un zero-day CVSS 10 exploité depuis trois ans Citrix NetScaler : faille critique CVSS 9.3 exploitée Databricks lance Lakewatch, un SIEM dopé à l'IA générative Microsoft enchaîne les correctifs d'urgence Windows en 2026 Axios piraté : un RAT distribué via npm à 100 millions CareCloud Breach : Dossiers Patients Exposés en 2026 le malware IA qui vole vos identifiants navigateur ChatGPT : une faille permettait l'exfiltration de données LexisNexis piraté : 400 000 profils cloud exposés via ShinyHunters vole 350 Go de données à la Commission Aflac notifie 22 millions de clients après une cyberattaque CTRL : toolkit RAT russe ciblant les entreprises via RDP macOS Tahoe 26.4 : Apple bloque les attaques ClickFix 10 561 failles détectées dans 1,2 million de commits GitHub : de fausses alertes VS Code propagent un malware Microsoft retire la mise à jour KB5079391 après des Le DoJ démantèle des botnets IoT derrière le DDoS record FortiGate : campagne active de vol de credentials ciblant CISA alerte sur une RCE exploitée, 24 700 instances exposées CVE-2026-20131 : Interlock exploite un zero-day Cisco FMC NIST renouvelle son guide de sécurité DNS après douze ans Handala pirate la messagerie du directeur du FBI Kash Patel Infinity Stealer : un nouveau malware cible macOS via Windows 11 : Microsoft publie un correctif d'urgence le fossé des compétences se creuse entre experts et novices Ubiquiti UniFi : faille CVSS 10 expose 29 000 équipements CVE-2026-21385 : Qualcomm corrige un zero-day Android CVE-2026-0625 : zero-day exploité sur routeurs D-Link Google corrige deux zero-days Skia et V8 exploités Mistral lance Voxtral TTS, modèle vocal open source à 4B GitHub lance la détection IA pour sécuriser le code source CVE-2026-3055 : Citrix NetScaler sous reconnaissance active Crunchyroll piraté : 6,8 millions de comptes compromis TeamPCP piège le SDK Telnyx sur PyPI via stéganographie WAV CVE-2025-53521 : F5 BIG-IP exploité, CISA exige un patch BlackCat : deux experts cybersécurité plaident coupable CVE-2026-32746 : RCE root non authentifié dans Telnetd APT28 exploite un 0-day MSHTML avant le Patch Tuesday Red Menshen : BPFDoor espionne les télécoms depuis 2021 Anthropic : la justice américaine bloque le ban de Trump Commission européenne : 350 Go volés via un cloud AWS Bearlyfy frappe 70 entreprises russes avec GenieLocker LangChain et LangGraph : trois failles critiques révélées PolyShell : 57 % des boutiques Magento vulnérables attaquées CVE-2026-33017 Langflow : RCE non authentifié exploité Qilin cible Malaysia Airlines : données passagers volées Conduent : brèche SafePay expose 25 millions d'Américains Mistral Small 4 : un seul modèle MoE remplace trois IA PolyShell : skimmer WebRTC vole 56 % des boutiques Magento CanisterWorm : TeamPCP infecte Trivy et 66 packages npm GlassWorm utilise Solana comme C2 pour son RAT furtif Medusa Ransomware : 9 jours hors-ligne pour un hôpital US Mandiant M-Trends 2026 : accès initial cédé en 22 secondes CVE-2026-20131 Cisco FMC : CVSS 10.0, hôpitaux visés CERTFR-2026-ALE-003 : ANSSI alerte sur les messageries Opération Checkmate : BlackSuit ransomware démantélé LiteLLM piraté : attaque supply chain PyPI TeamPCP EvilTokens PhaaS : 340 organisations M365 touchées Slopoly : Hive0163 déploie un malware généré par IA FCC interdit l'import de routeurs étrangers aux USA Silver Fox APT : espionnage et cybercrime ciblant l Asie Firefox 149 intègre un VPN gratuit et le Split View CVE-2026-32746 : RCE root non authentifié, GNU Telnetd CVE-2026-22557 Ubiquiti UniFi CVSS 10.0, 87 000 exposés TELUS Digital : ShinyHunters et le Vol de 1 PO de Data CVE-2025-32975 : Quest KACE SMA CVSS 10.0 exploité NVIDIA Agent Toolkit : IA autonome sécurisée en prod CVE-2026-3055 Citrix NetScaler : fuite de tokens SAML Crunchyroll confirme une fuite touchant 6,8 M d'utilisateurs Tycoon 2FA démantelé : Europol met fin au PhaaS MFA bypass TeamPCP étend son attaque supply chain à Checkmarx KICS CVE-2026-33017 Langflow : RCE exploité 20h après disclosure Stryker : le wiper iranien Handala détruit 80 000 terminaux Zero-Day CVSS 10.0 PTC Windchill : webshells en production Un hacker russe condamné à 81 mois pour ransomware La Corée du Nord piège les devs crypto via VS Code CMA UK : décision imminente contre AWS et Microsoft Moscou Usurpe Signal pour Cibler Officiels et Journalistes Microsoft Corrige en Urgence son Patch Tuesday Cassé GlassWorm Piège 72 Extensions VSCode pour Voler des Secrets PhantomRaven : Campagne npm Cible les Secrets CI/CD VMware Aria Operations CVE-2026-22719 : CISA KEV RCE Cisco FMC CVE-2026-20131 : Interlock RCE Root Actif DarkSword : exploit iOS zero-day ciblant les iPhones Le DoJ démantèle 4 botnets IoT au record de 31 Tbps n8n : 4 Failles RCE Critiques, 24 700 Serveurs Exposés Trivy : Attaque Supply Chain via GitHub Actions 2026 Meta : Agent IA Autonome Déclenche un Incident Critique Mistral Small 4 : Le Modèle Open Source 119B Tout-en-Un CVE-2026-21992 : Oracle Identity Manager RCE CVSS 9.8 Malaysia Airlines : le Groupe Quilin Exfiltre les Données Marquis Financial : 672 000 Victimes et Données Bancaires CVE-2025-68613 n8n : CISA KEV, 24 700 instances RCE exposées Navia Benefit Solutions : 2,7M dossiers santé exposés Opération Alice : 373 000 sites dark web démantelés CVE-2026-32746 : RCE Root dans GNU Telnetd CVSS 9.8 APT28 BadPaw et MeowMeow : Nouvelles Armes Contre l'Ukraine APT41 Silver Dragon : Espionnage via Google Drive C2 CVE-2026-20131 : Cisco FMC Zero-Day CVSS 10 Exploité CVE-2026-20963 SharePoint RCE Exploité : Alerte CISA KEV CVE-2026-33017 Langflow RCE : Exploité en Moins de 20h Iran-Handala : Wiper sur Stryker, FBI Saisit les Domaines CERT-FR : Messageries Instantanées Détournées Sans Malware TELUS Digital : ShinyHunters Vole 1 Pétaoctet de Données GLM-5 : Zhipu AI Lance un Modele 744B Parametres en 2026 Kali Linux 2025.4 : Passage a Wayland par Defaut en 2026 RSAC 2026 : Les Tendances Cybersecurite de l'Annee Patch Tuesday Fevrier 2026 : 4 Zero-Days Critiques Google Finalise l'Acquisition de Wiz pour 32 Milliards Gemini 3.1 Pro : 1 Million de Tokens en Contexte en 2026 Entra ID : Jailbreak de l'Authenticator Decouvert en 2026 FIRST Prevoit 50 000 CVE Publiees en 2026 : Guide Complet Entra ID : Migration Obligatoire vers DigiCert G2 en 2026 Anthropic Lance Cowork : Claude Sans Code pour Tous FCC Alerte : Ransomware Quadruple Depuis 2021 en 2026 Qilin Ransomware Domine le Paysage des Menaces Q1 2026 McDonald's India : Everest Ransomware Frappe Fort en 2026 CNIL France Travail : Sanction de 5 Millions EUR en 2026 CNIL : Free Mobile Sanctionne a 42 Millions EUR en 2026 Patch Tuesday Janvier 2026 : 112 CVE Corrigees en 2026 Microsoft Publie un Guide de Durcissement AD Complet Kali Linux 2025.3 : 15 Nouveaux Outils de Pentest en 2026 Cegedim Sante : 15 Millions de Patients Exposes en 2026 Kubernetes 1.35 : User Namespaces en Production en 2026 CNIL : Amende de 3,5M EUR pour Partage Illegal de Donnees SoundCloud et Inotiv : Double Fuite de Donnees en 2026 Leroy Merlin : Fuite de Donnees de 2 Millions de Clients GPT-5.2 : OpenAI Repousse les Limites a 400K Tokens React2Shell : RCE Critique CVSS 10 dans React Native BadSuccessor : Nouvelle Faille Critique Windows AD NIS 2 : l'Allemagne Adopte sa Loi de Transposition Shai-Hulud 2 : Supply Chain NPM Compromis a Grande Echelle Llama 4 Scout et Maverick : Meta Passe au Multimodal Microsoft Renforce la Protection CSP dans Entra ID Attaques Active Directory en Hausse de 42% en 2025 CVE-2025-20337 : RCE Critique dans Cisco ISE : Guide Complet Claude 4.5 : Anthropic Mise sur les Agents IA en 2026 Gemini 3 : Google Bat Tous les Benchmarks LLM en 2026 GPT-5.1 : OpenAI Lance son Modele le Plus Puissant ISO 27001:2022 : Fin de Transition en Octobre 2025 DoorDash : Fuite Massive via Social Engineering en 2026 OpenAI Renonce a l'Open Source pour ses Modeles IA SimonMed : Medusa Ransomware Expose 500K Patients en 2026 Ingénierie Sociale par IA : Menace Cyber n°1 en 2025 Failles de Sécurité Critiques Découvertes dans l'App Cisco Lance un Outil pour Sécuriser les Déploiements Faille Microsoft 365 Copilot Permet l'Exfiltration de Microsoft Déploie un Fix d'Urgence pour le Bug en 2026 Crimson Collective Exfiltre 12 To via F5 BIG-IP en 2026 Oracle EBS : Zero-Day RCE Exploite en Production en 2026 CVE-2025-64446 : Faille Critique FortiWeb CVSS 9.8

Livres Blancs

14 articles
Livres Blancs Gratuits
Voir tous →

Téléchargement gratuit · Aucune inscription requise

Tous les livres blancs
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Checklist Sécurité ANC

💻 Checklist Sécurité Hyper-V

Durcissement Hyper-V : isolation VM, réseau virtuel, Shielded VMs, intégration services, stockage, RBAC et sauvegarde.

34 sections 430 contrôles 49230 mots PDF + Excel

Checklist exhaustive de sécurisation Hyper-V avec 430 points de contrôle : installation Server Core, isolation des machines virtuelles, configuration réseau virtuel, Shielded VMs avec TPM virtuel, services d'intégration, RBAC, chiffrement du stockage et stratégie de sauvegarde/restauration.

📑 Table des matières

CHECKLIST SÉCURITÉ HYPER-V

AYI NEDJIMI CONSULTANTS (ANC)

Référentiel : CIS Windows Server 2025 v2.0.0 + Microsoft Hyper-V Security + ANSSI Virtualisation + NIST SP 800-125


Document : CHECKLIST-HYPERV-ANC Version : 1.0 Date : 2026-04-04 Classification : CONFIDENTIEL Auteur : AYI NEDJIMI CONSULTANTS


TABLE DES MATIÈRES

  1. Légende
  2. Mode Découverte Rapide — 15 Questions Clés
  3. Informations Client
  4. Section 1 — Sécurité de l’Hôte Hyper-V
  5. Section 2 — Gestion des Accès et RBAC
  6. Section 3 — Isolation des Machines Virtuelles
  7. Section 4 — Machines Virtuelles Blindées (Shielded VMs)
  8. Section 5 — Réseau Virtuel (Virtual Networking)
  9. Section 6 — Stockage Virtuel (Virtual Storage Security)
  10. Section 7 — Live Migration et Haute Disponibilité
  11. Section 8 — Sauvegarde et Reprise d’Activité
  12. Section 9 — Journalisation et Monitoring
  13. Section 10 — Sécurité des Conteneurs (Windows Containers sur Hyper-V)
  14. Section 11 — SCVMM et Gestion Centralisée
  15. Section 12 — Conformité des VMs Invitées
  16. Section 13 — Nested Virtualization et Scénarios Avancés
  17. Section 14 — Sécurité Azure Stack HCI
  18. Section 15 — Protection contre les Attaques de Virtualisation
  19. Section 16 — Réseau et Segmentation Avancée
  20. Section 17 — Réponse aux Incidents Virtualisation
  21. Section 18 — Gouvernance et Conformité
  22. Tableaux de Synthèse
  23. Résumé Exécutif
  24. Mapping Multi-Référentiel
  25. Plan de Remédiation

LÉGENDE

Statut de Conformité

Symbole Signification
Conforme — Le contrôle est correctement implémenté et vérifié
Non conforme — Le contrôle n’est pas implémenté ou est défaillant
⚠️ Partiellement conforme — Le contrôle est implémenté mais nécessite des améliorations
N/A Non applicable — Le contrôle ne s’applique pas dans ce contexte

Niveau de Criticité

Symbole Niveau Description
🔴 Critique Risque immédiat d’exploitation — Remédiation sous 24-48h requise
🟠 Élevé Risque significatif — Remédiation sous 7 jours requise
🟡 Moyen Risque modéré — Remédiation sous 30 jours recommandée
🟢 Faible Risque limité — Remédiation selon planning projet

Référentiels Utilisés

Abréviation Référentiel
CIS CIS Microsoft Windows Server 2025 Benchmark v2.0.0
MS-HV Microsoft Hyper-V Security Guide
ANSSI-VIRT ANSSI Recommandations de sécurité pour la virtualisation
NIST-125 NIST SP 800-125 Guide to Security for Full Virtualization
NIST-53 NIST SP 800-53 Rev5
ATT&CK MITRE ATT&CK Enterprise Framework
MS-BASELINE Microsoft Windows Server 2025 Security Baseline

MODE DÉCOUVERTE RAPIDE — 15 Questions Clés

Objectif : Ces 15 questions permettent d’évaluer rapidement le niveau de maturité sécuritaire de l’infrastructure Hyper-V. Répondez par Oui, Non, ou Partiel.

# Question Réponse Commentaire
Q1 L’hôte Hyper-V est-il installé en mode Server Core (installation minimale sans interface graphique) pour réduire la surface d’attaque ? ☐ Oui ☐ Non ☐ Partiel
Q2 Les machines virtuelles sensibles sont-elles déployées en tant que Shielded VMs avec attestation TPM via le Host Guardian Service (HGS) ? ☐ Oui ☐ Non ☐ Partiel
Q3 Les commutateurs virtuels (Virtual Switches) sont-ils configurés avec des protections réseau (DHCP Guard, Router Guard, MAC Spoofing Protection, Port ACLs) ? ☐ Oui ☐ Non ☐ Partiel
Q4 Les Integration Services sont-ils limités au strict nécessaire pour chaque VM (désactivation de Guest Service Interface, Data Exchange, etc. si non requis) ? ☐ Oui ☐ Non ☐ Partiel
Q5 Le Guarded Fabric est-il déployé avec une attestation TPM (et non Admin-trusted) pour garantir l’intégrité de l’hôte ? ☐ Oui ☐ Non ☐ Partiel
Q6 L’attestation de l’hôte est-elle vérifiée et fonctionnelle avant chaque déploiement de Shielded VM ? ☐ Oui ☐ Non ☐ Partiel
Q7 La Live Migration est-elle chiffrée (SMB 3.x avec chiffrement ou CredSSP/Kerberos) et restreinte à des réseaux dédiés isolés ? ☐ Oui ☐ Non ☐ Partiel
Q8 La réplication Hyper-V (Replica) utilise-t-elle des certificats X.509 et le chiffrement HTTPS pour le transfert de données ? ☐ Oui ☐ Non ☐ Partiel
Q9 Les fichiers VHD/VHDX sont-ils protégés par des ACL restrictives (uniquement le compte SYSTEM et les administrateurs Hyper-V) ? ☐ Oui ☐ Non ☐ Partiel
Q10 Un RBAC granulaire est-il en place via SCVMM ou JEA pour limiter les actions des administrateurs Hyper-V selon le principe du moindre privilège ? ☐ Oui ☐ Non ☐ Partiel
Q11 Les événements Hyper-V critiques (Event IDs 18500-18512, 12400-12500, etc.) sont-ils collectés et transmis à un SIEM pour analyse ? ☐ Oui ☐ Non ☐ Partiel
Q12 La segmentation réseau est-elle mise en oeuvre entre les différentes catégories de VMs (production, développement, DMZ) via des VLAN et des Virtual Switches séparés ? ☐ Oui ☐ Non ☐ Partiel
Q13 Les sauvegardes des VMs sont-elles chiffrées, testées régulièrement et stockées dans un emplacement sécurisé hors site ? ☐ Oui ☐ Non ☐ Partiel
Q14 Credential Guard est-il activé sur l’hôte Hyper-V pour protéger les identifiants en mémoire contre les attaques de type Pass-the-Hash ? ☐ Oui ☐ Non ☐ Partiel
Q15 Les correctifs de sécurité contre les attaques par canal auxiliaire (Spectre, Meltdown, L1TF, MDS) sont-ils appliqués sur l’hôte et exposés aux VMs invitées ? ☐ Oui ☐ Non ☐ Partiel

Évaluation Rapide

Score Niveau de Maturité Recommandation
13-15 Oui 🟢 Avancé Maintenir le niveau et vérifier les contrôles détaillés ci-dessous
10-12 Oui 🟡 Intermédiaire Renforcer les contrôles manquants identifiés dans les sections correspondantes
7-9 Oui 🟠 Basique Plan de remédiation prioritaire sur les questions critiques
0-6 Oui 🔴 Insuffisant Remédiation immédiate requise — Risque élevé d’incident de sécurité

INFORMATIONS CLIENT

Champ Valeur
Organisation
Nom de l’hôte Hyper-V
Version Windows Server Windows Server 2025
Édition Windows Server ☐ Standard ☐ Datacenter ☐ Datacenter: Azure Edition
Numéro de build
Nombre de VMs hébergées
Cluster Hyper-V ☐ Oui ☐ Non
Nombre de noeuds du cluster
Guarded Fabric déployé ☐ Oui ☐ Non
Host Guardian Service (HGS) ☐ Oui ☐ Non
Type d’attestation ☐ TPM ☐ Admin-trusted ☐ Non configuré
SCVMM déployé ☐ Oui ☐ Non
Version SCVMM
Windows Admin Center ☐ Oui ☐ Non
Azure Stack HCI ☐ Oui ☐ Non
Conteneurs Hyper-V ☐ Oui ☐ Non
SIEM en place ☐ Oui ☐ Non
Solution SIEM
Antivirus hôte
Solution de sauvegarde
Date d’audit
Auditeur principal
Auditeur secondaire
Périmètre de l’audit

═══════════════════════════════════════════════════════════════════════════════

SECTION 1 — SÉCURITÉ DE L’HÔTE HYPER-V

═══════════════════════════════════════════════════════════════════════════════

SECTION 1 — SÉCURITÉ DE L’HÔTE HYPER-V

Objectif : S’assurer que le système d’exploitation hôte hébergeant le rôle Hyper-V est durci conformément aux meilleures pratiques de sécurité. L’hôte Hyper-V constitue la couche fondamentale de confiance de toute l’infrastructure de virtualisation. Une compromission de l’hôte entraîne la compromission de toutes les machines virtuelles hébergées.

Références principales : CIS Windows Server 2025 Benchmark v2.0.0 — Sections 1-18, ANSSI-VIRT R1-R15, NIST SP 800-125 Section 4, Microsoft Hyper-V Security Best Practices.


1.1.1 — Installation en mode Server Core (installation minimale)

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 4.8 — Réduction de la surface d’attaque
MITRE ATT&CK T1190 (Exploit Public-Facing Application), T1210 (Exploitation of Remote Services)
ANSSI ANSSI-VIRT R1 — Minimiser la surface d’attaque de l’hyperviseur
NIST NIST-125 §4.1, NIST-53 CM-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’hôte Hyper-V doit être installé en mode Server Core (sans interface graphique Desktop Experience) pour minimiser la surface d’attaque. Le mode Server Core élimine l’interface graphique complète, Internet Explorer, Windows Explorer et de nombreux composants non essentiels. Cela réduit considérablement le nombre de vulnérabilités potentielles, diminue la fréquence des mises à jour nécessaires et limite les vecteurs d’attaque disponibles pour un attaquant ayant compromis l’hôte.

Vérification :

# Vérifier le type d'installation
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object InstallationType

# Vérifier si le shell graphique est installé
Get-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra

# Vérifier la présence de l'interface Desktop Experience
Get-WindowsFeature Desktop-Experience
  • GUI : Non applicable en Server Core
  • Valeur attendue : InstallationType = “Server Core”

Remédiation :

  1. Réinstallation : Réinstaller Windows Server 2025 en sélectionnant l’option “Server Core” lors de l’installation
  2. Conversion (si possible) :
# Supprimer l'interface graphique (redémarrage requis)
Remove-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra -Restart
  1. Administration à distance : Utiliser Windows Admin Center, RSAT, PowerShell Remoting ou SCVMM pour l’administration

Valeur par défaut : Desktop Experience (si sélectionné lors de l’installation)

Impact : Aucun impact fonctionnel sur Hyper-V — toutes les fonctionnalités de virtualisation sont disponibles en Server Core.

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.1.2 — Rôle Hyper-V comme rôle unique sur l’hôte

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 4.8 — Principe de fonction unique
MITRE ATT&CK T1210 (Exploitation of Remote Services)
ANSSI ANSSI-VIRT R2 — Dédier l’hyperviseur à la virtualisation
NIST NIST-125 §4.1.1, NIST-53 CM-7, SC-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’hôte Hyper-V ne doit exécuter que le rôle Hyper-V et les fonctionnalités strictement nécessaires à son fonctionnement. L’installation de rôles supplémentaires (serveur web, contrôleur de domaine, serveur de fichiers, etc.) augmente significativement la surface d’attaque et peut compromettre l’isolation entre l’hyperviseur et les services hébergés. Le principe de fonction unique est une exigence fondamentale pour la sécurité de la virtualisation.

Vérification :

# Lister tous les rôles installés
Get-WindowsFeature | Where-Object { $_.Installed -eq $true } | Select-Object Name, DisplayName

# Vérifier que seul Hyper-V est installé comme rôle serveur
Get-WindowsFeature | Where-Object { $_.Installed -eq $true -and $_.FeatureType -eq "Role" } | Select-Object Name, DisplayName

# Rôles attendus : Hyper-V, File-Services (requis), Failover-Clustering (si cluster)
  • Valeur attendue : Uniquement Hyper-V + Failover-Clustering (si applicable) + fonctionnalités de base

Remédiation :

  1. PowerShell :
# Supprimer les rôles non nécessaires
Remove-WindowsFeature -Name Web-Server, DNS, DHCP, AD-Domain-Services -Restart
  1. Documentation : Documenter et justifier chaque rôle/fonctionnalité installé

Valeur par défaut : Aucun rôle installé par défaut après installation initiale

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.1.3 — Services Windows non essentiels désactivés

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 4.8, 9.2 — Gestion des services
MITRE ATT&CK T1543.003 (Create or Modify System Process: Windows Service)
ANSSI ANSSI-VIRT R3 — Désactiver les services inutiles
NIST NIST-53 CM-7(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Tous les services Windows non essentiels au fonctionnement de l’hôte Hyper-V doivent être désactivés. Chaque service actif représente un vecteur d’attaque potentiel et consomme des ressources système. Les services tels que Print Spooler, Windows Search, SNMP (si non utilisé), Remote Registry (si non requis), Xbox services doivent être désactivés sur un hôte de virtualisation dédié.

Vérification :

# Lister les services en cours d'exécution
Get-Service | Where-Object { $_.Status -eq 'Running' } | Select-Object Name, DisplayName, StartType | Sort-Object Name

# Services à vérifier spécifiquement (doivent être désactivés)
$servicesToCheck = @('Spooler', 'WSearch', 'SNMP', 'RemoteRegistry', 'XblAuthManager', 'XblGameSave', 'XboxNetApiSvc', 'DiagTrack', 'dmwappushservice', 'MapsBroker', 'lfsvc', 'SharedAccess')
foreach ($svc in $servicesToCheck) {
    Get-Service -Name $svc -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType
}

# Vérifier les services démarrage automatique non Microsoft
Get-WmiObject Win32_Service | Where-Object { $_.StartMode -eq 'Auto' -and $_.PathName -notlike '*Windows*' } | Select-Object Name, DisplayName, PathName
  • Valeur attendue : Services non essentiels à l’état “Disabled” ou “Stopped”

Remédiation :

  1. PowerShell :
# Désactiver les services non essentiels
$servicesToDisable = @('Spooler', 'WSearch', 'RemoteRegistry', 'DiagTrack', 'MapsBroker', 'lfsvc')
foreach ($svc in $servicesToDisable) {
    Set-Service -Name $svc -StartupType Disabled -ErrorAction SilentlyContinue
    Stop-Service -Name $svc -Force -ErrorAction SilentlyContinue
}
  1. GPO : Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Services système

Valeur par défaut : La plupart des services sont activés par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.1.4 — Fonctionnalités Windows non essentielles supprimées

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 4.8
MITRE ATT&CK T1203 (Exploitation for Client Execution)
ANSSI ANSSI-VIRT R3
NIST NIST-53 CM-7(2)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les fonctionnalités Windows (Features) non requises pour le fonctionnement d’Hyper-V doivent être désinstallées. La suppression des fonctionnalités non utilisées réduit la surface d’attaque et les besoins en mises à jour correctives. Sur un hôte Hyper-V, les fonctionnalités comme PowerShell v2, SMB 1.0, Telnet Client, TFTP Client doivent être retirées.

Vérification :

# Lister les fonctionnalités installées
Get-WindowsFeature | Where-Object Installed | Select-Object Name, DisplayName

# Vérifier les fonctionnalités dangereuses
Get-WindowsFeature PowerShell-V2, SMB1Protocol, Telnet-Client, TFTP-Client

# Fonctionnalités optionnelles (appx)
Get-WindowsOptionalFeature -Online | Where-Object State -eq "Enabled" | Select-Object FeatureName

Remédiation :

  1. PowerShell :
# Supprimer les fonctionnalités non nécessaires
Remove-WindowsFeature PowerShell-V2
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart
Remove-WindowsFeature Telnet-Client

Valeur par défaut : Plusieurs fonctionnalités installées par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.2.1 — Version du système d’exploitation hôte à jour

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 7.1 — Gestion des correctifs
MITRE ATT&CK T1190 (Exploit Public-Facing Application), T1068 (Exploitation for Privilege Escalation)
ANSSI ANSSI-VIRT R4 — Maintenir l’hyperviseur à jour
NIST NIST-125 §4.2, NIST-53 SI-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le système d’exploitation hôte Hyper-V doit être maintenu à la dernière version de Windows Server 2025 avec tous les correctifs de sécurité cumulatifs appliqués. Les vulnérabilités non corrigées dans l’hyperviseur ou le noyau Windows peuvent permettre l’évasion de VM (VM Escape), l’escalade de privilèges ou le déni de service affectant toutes les machines virtuelles hébergées. Les correctifs Hyper-V sont critiques car ils protègent la couche d’isolation.

Vérification :

# Version et build actuels
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object ProductName, DisplayVersion, CurrentBuildNumber, UBR

# Dernière mise à jour installée
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10 HotFixID, Description, InstalledOn

# Vérifier les mises à jour en attente
$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$SearchResult = $UpdateSearcher.Search("IsInstalled=0 and Type='Software'")
$SearchResult.Updates | Select-Object Title, MsrcSeverity

Remédiation :

  1. PowerShell :
# Installer les mises à jour via Windows Update
Install-Module PSWindowsUpdate -Force
Get-WindowsUpdate -Install -AcceptAll -AutoReboot

# Ou via WSUS/SCCM selon la politique de l'organisation
  1. Planification : Définir une fenêtre de maintenance mensuelle pour les mises à jour Hyper-V

Valeur par défaut : Mises à jour automatiques activées (configuration WSUS recommandée)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.2.2 — Correctifs spécifiques Hyper-V appliqués

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 7.1
MITRE ATT&CK T1068 (Exploitation for Privilege Escalation), T1611 (Escape to Host)
ANSSI ANSSI-VIRT R4
NIST NIST-125 §4.2, NIST-53 SI-2(2)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les correctifs spécifiques au composant Hyper-V doivent être installés en priorité. Les vulnérabilités dans l’hyperviseur (comme les CVE liés à vmswitch.sys, vmwp.exe, ou au moteur d’émulation) sont particulièrement critiques car elles peuvent permettre à un attaquant depuis une VM invitée d’exécuter du code sur l’hôte (VM Escape). Les CVE récentes pour Hyper-V doivent être suivies et corrigées dans les 72 heures.

Vérification :

# Vérifier la version des composants Hyper-V critiques
Get-Item C:\Windows\System32\vmms.exe | Select-Object VersionInfo
Get-Item C:\Windows\System32\vmwp.exe | Select-Object VersionInfo
Get-Item C:\Windows\System32\drivers\vmswitch.sys | Select-Object VersionInfo

# Vérifier les KB spécifiques Hyper-V récentes
Get-HotFix | Where-Object { $_.Description -like "*Security*" } | Sort-Object InstalledOn -Descending | Select-Object -First 20

Remédiation :

  1. Appliquer immédiatement les correctifs Hyper-V critiques via WSUS/SCCM
  2. Surveiller les bulletins de sécurité Microsoft pour les CVE Hyper-V
  3. Planifier des redémarrages rapides pour les correctifs critiques

Valeur par défaut : Dépend de la politique de mise à jour

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.3.1 — Pare-feu Windows activé sur tous les profils

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 9.1.1, 9.2.1, 9.3.1
MITRE ATT&CK T1562.004 (Impair Defenses: Disable or Modify System Firewall)
ANSSI ANSSI-VIRT R5 — Filtrage réseau sur l’hôte
NIST NIST-53 SC-7, AC-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le pare-feu Windows Defender Firewall doit être activé sur les trois profils réseau (Domaine, Privé, Public) de l’hôte Hyper-V. Le pare-feu constitue la première ligne de défense contre les connexions réseau non autorisées vers l’hôte. Les règles doivent être configurées pour n’autoriser que les ports strictement nécessaires à la gestion Hyper-V et au trafic de cluster.

Vérification :

# Vérifier l'état du pare-feu sur tous les profils
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction

# Vérifier les règles actives
Get-NetFirewallRule | Where-Object { $_.Enabled -eq 'True' -and $_.Direction -eq 'Inbound' } | Select-Object Name, DisplayName, Action | Sort-Object DisplayName

# Vérifier les règles Hyper-V spécifiques
Get-NetFirewallRule | Where-Object { $_.DisplayName -like "*Hyper-V*" } | Select-Object DisplayName, Enabled, Action, Direction
  • Valeur attendue : Tous les profils activés, action par défaut “Block” pour le trafic entrant

Remédiation :

  1. PowerShell :
# Activer le pare-feu sur tous les profils
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultInboundAction Block -DefaultOutboundAction Allow
  1. GPO : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Pare-feu Windows Defender avec sécurité avancée

Valeur par défaut : Activé sur tous les profils

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.3.2 — Règles de pare-feu restrictives pour la gestion Hyper-V

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 9.2.4
MITRE ATT&CK T1021 (Remote Services)
ANSSI ANSSI-VIRT R5
NIST NIST-53 SC-7(5), AC-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les règles de pare-feu de l’hôte Hyper-V doivent être configurées de manière restrictive. Seuls les ports nécessaires à l’administration (WinRM 5985/5986, RDP 3389 si requis), à la Live Migration (6600, 3343), au clustering (3343, 445, 135, 139) et à la réplication (80/443) doivent être autorisés. Chaque règle doit être limitée aux adresses IP sources des postes d’administration autorisés.

Vérification :

# Lister les règles entrantes actives avec les ports
Get-NetFirewallRule -Direction Inbound -Enabled True | ForEach-Object {
    $portFilter = $_ | Get-NetFirewallPortFilter
    [PSCustomObject]@{
        Name = $_.DisplayName
        Action = $_.Action
        Protocol = $portFilter.Protocol
        LocalPort = $portFilter.LocalPort
        RemoteAddress = ($_ | Get-NetFirewallAddressFilter).RemoteAddress
    }
} | Sort-Object LocalPort

# Vérifier les règles autorisant "Any" en source
Get-NetFirewallRule -Direction Inbound -Enabled True | ForEach-Object {
    $addrFilter = $_ | Get-NetFirewallAddressFilter
    if ($addrFilter.RemoteAddress -contains 'Any') {
        [PSCustomObject]@{
            Name = $_.DisplayName
            RemoteAddress = $addrFilter.RemoteAddress
        }
    }
}

Remédiation :

  1. PowerShell :
# Restreindre les règles à des IP spécifiques
$adminSubnet = "10.0.1.0/24"
Get-NetFirewallRule -DisplayName "Windows Remote Management*" | Set-NetFirewallRule -RemoteAddress $adminSubnet
Get-NetFirewallRule -DisplayName "Remote Desktop*" | Set-NetFirewallRule -RemoteAddress $adminSubnet

Valeur par défaut : Règles ouvertes à toutes les adresses

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.3.3 — Journalisation du pare-feu activée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 9.1.7, 9.1.8
MITRE ATT&CK T1562.004 (Impair Defenses)
ANSSI ANSSI-VIRT R5
NIST NIST-53 AU-3, AU-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La journalisation du pare-feu Windows doit être activée sur l’hôte Hyper-V pour enregistrer les connexions autorisées et refusées. Ces journaux sont essentiels pour la détection d’intrusion, l’analyse forensique et la vérification de la conformité des flux réseau vers l’hôte de virtualisation.

Vérification :

# Vérifier la configuration de journalisation du pare-feu
Get-NetFirewallProfile | Select-Object Name, LogFileName, LogMaxSizeKilobytes, LogAllowed, LogBlocked

# Vérifier l'existence des fichiers de log
Test-Path "C:\Windows\System32\LogFiles\Firewall\pfirewall.log"
  • Valeur attendue : LogAllowed = True, LogBlocked = True, LogMaxSizeKilobytes >= 16384

Remédiation :

  1. PowerShell :
Set-NetFirewallProfile -Profile Domain,Public,Private -LogBlocked True -LogAllowed True -LogMaxSizeKilobytes 32768 -LogFileName "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log"
  1. GPO : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Pare-feu Windows > Propriétés > Journalisation

Valeur par défaut : LogBlocked = False, LogAllowed = False

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.4.1 — Windows Defender Antivirus activé avec exclusions Hyper-V

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 10.1 — Protection anti-malware
MITRE ATT&CK T1562.001 (Impair Defenses: Disable or Modify Tools)
ANSSI ANSSI-VIRT R6
NIST NIST-53 SI-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Windows Defender Antivirus (ou toute solution antivirus d’entreprise) doit être activé sur l’hôte Hyper-V. Cependant, des exclusions spécifiques doivent être configurées pour éviter les impacts de performance et les problèmes de stabilité. Les processus Hyper-V (vmms.exe, vmwp.exe, vmcompute.exe), les répertoires de VMs et les extensions de fichiers VM (.vhd, .vhdx, .avhd, .avhdx, .vsv, .iso) doivent être exclus de l’analyse en temps réel.

Vérification :

# Vérifier l'état de Windows Defender
Get-MpComputerStatus | Select-Object AntivirusEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated

# Vérifier les exclusions configurées
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath
Get-MpPreference | Select-Object -ExpandProperty ExclusionProcess
Get-MpPreference | Select-Object -ExpandProperty ExclusionExtension

# Exclusions attendues pour Hyper-V
# Processus : vmms.exe, vmwp.exe, vmcompute.exe, vmsp.exe
# Extensions : .vhd, .vhdx, .avhd, .avhdx, .vsv, .iso, .rct, .vmcx, .vmrs
# Répertoires : C:\ProgramData\Microsoft\Windows\Hyper-V, répertoires des VMs

Remédiation :

  1. PowerShell :
# Ajouter les exclusions Hyper-V recommandées par Microsoft
Add-MpPreference -ExclusionProcess "vmms.exe", "vmwp.exe", "vmcompute.exe", "vmsp.exe"
Add-MpPreference -ExclusionExtension ".vhd", ".vhdx", ".avhd", ".avhdx", ".vsv", ".iso", ".rct", ".vmcx", ".vmrs"
Add-MpPreference -ExclusionPath "C:\ProgramData\Microsoft\Windows\Hyper-V"
Add-MpPreference -ExclusionPath "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks"
# Ajouter le chemin des VMs personnalisé si différent

Valeur par défaut : Windows Defender activé sans exclusions Hyper-V

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.4.2 — Mises à jour des signatures antivirus

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 10.2
MITRE ATT&CK T1562.001 (Impair Defenses)
ANSSI ANSSI-VIRT R6
NIST NIST-53 SI-3(2)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les signatures antivirus de l’hôte Hyper-V doivent être mises à jour quotidiennement. Des signatures obsolètes laissent l’hôte vulnérable aux malwares récents. La mise à jour doit être automatisée via WSUS, SCCM ou Microsoft Update directement.

Vérification :

# Vérifier l'ancienneté des signatures
Get-MpComputerStatus | Select-Object AntivirusSignatureLastUpdated, AntivirusSignatureVersion, AntivirusSignatureAge

# Vérifier la source de mise à jour
Get-MpPreference | Select-Object SignatureDefinitionUpdateSourceOrder, SignatureFallbackOrder
  • Valeur attendue : AntivirusSignatureAge <= 1 jour

Remédiation :

  1. PowerShell :
# Forcer la mise à jour des signatures
Update-MpSignature

# Configurer la mise à jour automatique
Set-MpPreference -SignatureUpdateInterval 4

Valeur par défaut : Mise à jour automatique activée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.5.1 — BitLocker activé sur le volume système de l’hôte

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 3.6 — Chiffrement des données au repos
MITRE ATT&CK T1005 (Data from Local System), T1485 (Data Destruction)
ANSSI ANSSI-VIRT R7 — Chiffrement des données de l’hyperviseur
NIST NIST-125 §4.5, NIST-53 SC-28(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : BitLocker Drive Encryption doit être activé sur le volume système (C:) de l’hôte Hyper-V pour protéger les données au repos, y compris la configuration de l’hyperviseur, les fichiers de configuration des VMs et les éventuels fichiers temporaires contenant des données sensibles. Le chiffrement empêche l’accès aux données en cas de vol physique du serveur ou des disques.

Vérification :

# Vérifier l'état de BitLocker sur tous les volumes
Get-BitLockerVolume | Select-Object MountPoint, VolumeStatus, EncryptionPercentage, ProtectionStatus, KeyProtector

# Vérifier le protecteur TPM
(Get-BitLockerVolume -MountPoint C:).KeyProtector | Select-Object KeyProtectorType
  • Valeur attendue : VolumeStatus = “FullyEncrypted”, ProtectionStatus = “On”

Remédiation :

  1. PowerShell :
# Activer BitLocker avec TPM
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -TpmProtector
Add-BitLockerKeyProtector -MountPoint "C:" -RecoveryPasswordProtector

# Stocker la clé de récupération dans Active Directory
Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId (Get-BitLockerVolume -MountPoint C:).KeyProtector[1].KeyProtectorId

Valeur par défaut : BitLocker désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.5.2 — BitLocker activé sur les volumes de stockage VM

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 3.6
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R7
NIST NIST-125 §4.5, NIST-53 SC-28(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les volumes de stockage contenant les fichiers des machines virtuelles (VHDX, fichiers de configuration, checkpoints) doivent être chiffrés avec BitLocker. Les données des VMs au repos sur les disques physiques de l’hôte sont particulièrement sensibles car elles contiennent l’intégralité des systèmes invités, y compris les données et les identifiants en mémoire sauvegardés dans les fichiers .vmrs.

Vérification :

# Identifier les volumes de stockage VM
Get-VMHost | Select-Object VirtualHardDiskPath, VirtualMachinePath
Get-VM | Select-Object Name, Path, @{N='VHDPaths';E={($_ | Get-VMHardDiskDrive).Path}}

# Vérifier BitLocker sur ces volumes
Get-BitLockerVolume | Select-Object MountPoint, VolumeStatus, ProtectionStatus

Remédiation :

  1. PowerShell :
# Activer BitLocker sur le volume de stockage VM
Enable-BitLocker -MountPoint "D:" -EncryptionMethod XtsAes256 -TpmProtector
Enable-BitLocker -MountPoint "E:" -EncryptionMethod XtsAes256 -TpmProtector
  1. Note : Si les VMs sont sur un CSV (Cluster Shared Volume), utiliser BitLocker sur les volumes CSV

Valeur par défaut : BitLocker désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.6.1 — Secure Boot activé sur l’hôte physique

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 1.4 — Sécurité du firmware
MITRE ATT&CK T1542 (Pre-OS Boot), T1542.001 (System Firmware)
ANSSI ANSSI-VIRT R8 — Sécuriser le démarrage de l’hyperviseur
NIST NIST-125 §4.3, NIST-53 SI-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Secure Boot UEFI doit être activé sur le serveur physique hébergeant Hyper-V. Le Secure Boot garantit que seuls les logiciels signés et de confiance sont chargés lors du démarrage du système, empêchant les bootkits et rootkits de se charger avant l’hyperviseur. Cette protection est fondamentale pour l’intégrité de la chaîne de démarrage de l’hyperviseur.

Vérification :

# Vérifier l'état du Secure Boot
Confirm-SecureBootUEFI

# Informations détaillées sur le firmware
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled

# Mode de démarrage
bcdedit /enum | Select-String "path|device|description"
  • Valeur attendue : Confirm-SecureBootUEFI = True

Remédiation :

  1. BIOS/UEFI : Accéder au firmware UEFI du serveur et activer Secure Boot
  2. Prérequis : Le système doit être installé en mode UEFI (non Legacy/BIOS)
  3. Vérification post-activation : Redémarrer et vérifier que le système démarre correctement

Valeur par défaut : Dépend du fabricant du serveur (généralement activé)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.6.2 — TPM 2.0 présent et fonctionnel

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 1.4
MITRE ATT&CK T1542 (Pre-OS Boot)
ANSSI ANSSI-VIRT R8
NIST NIST-125 §4.3, NIST-53 SC-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un module TPM (Trusted Platform Module) version 2.0 doit être présent, activé et fonctionnel sur l’hôte Hyper-V. Le TPM est requis pour BitLocker, l’attestation TPM du Host Guardian Service (Guarded Fabric), Credential Guard et la mesure d’intégrité du démarrage (Measured Boot). Sans TPM, de nombreuses fonctionnalités de sécurité avancées de Hyper-V ne peuvent pas être déployées.

Vérification :

# Vérifier la présence et la version du TPM
Get-Tpm | Select-Object TpmPresent, TpmReady, TpmEnabled, TpmActivated, ManufacturerVersion
Get-WmiObject -Namespace "root\cimv2\Security\MicrosoftTpm" -Class Win32_Tpm | Select-Object SpecVersion

# Vérifier la version TPM (doit être 2.0)
(Get-WmiObject -Namespace "root\cimv2\Security\MicrosoftTpm" -Class Win32_Tpm).SpecVersion
  • Valeur attendue : TpmPresent = True, TpmReady = True, SpecVersion commence par “2.0”

Remédiation :

  1. BIOS/UEFI : Activer le TPM dans les paramètres du firmware
  2. Initialisation : Initialize-Tpm si le TPM n’est pas initialisé
  3. Remplacement matériel : Si TPM 1.2, planifier le remplacement ou la mise à jour du firmware TPM

Valeur par défaut : Dépend du matériel serveur

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.7.1 — Credential Guard activé sur l’hôte

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.5.1 — Credential Guard
MITRE ATT&CK T1003 (OS Credential Dumping), T1550.002 (Pass the Hash)
ANSSI ANSSI-VIRT R9 — Protéger les identifiants de l’hôte
NIST NIST-53 IA-5(2), SC-39
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Windows Defender Credential Guard doit être activé sur l’hôte Hyper-V pour protéger les identifiants NTLM et Kerberos TGT en mémoire. Credential Guard utilise la sécurité basée sur la virtualisation (VBS) pour isoler les secrets dans un conteneur sécurisé inaccessible même aux processus en mode noyau. Sur un hôte Hyper-V, la compromission des identifiants d’administration permettrait l’accès à toutes les VMs.

Vérification :

# Vérifier l'état de Credential Guard
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object *

# Vérification simplifiée
(Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard).SecurityServicesRunning
# Valeur 1 = Credential Guard en cours d'exécution

# Vérification via le registre
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard" -Name EnableVirtualizationBasedSecurity
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LsaCfgFlags
  • Valeur attendue : SecurityServicesRunning contient 1 (Credential Guard), LsaCfgFlags = 1 ou 2

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Modèles d’administration > Système > Device Guard > Activer la sécurité basée sur la virtualisation
  2. PowerShell :
# Activer via le registre
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard" -Name EnableVirtualizationBasedSecurity -Value 1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LsaCfgFlags -Value 1
  1. Redémarrage requis après activation

Valeur par défaut : Désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.7.2 — Hypervisor-Protected Code Integrity (HVCI) activé

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.5.2
MITRE ATT&CK T1014 (Rootkit), T1068 (Exploitation for Privilege Escalation)
ANSSI ANSSI-VIRT R9
NIST NIST-53 SI-7, SI-16
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : HVCI (Hypervisor-Protected Code Integrity), aussi appelé Memory Integrity, doit être activé sur l’hôte Hyper-V. HVCI utilise la virtualisation matérielle pour protéger le processus de validation de l’intégrité du code en mode noyau. Cela empêche l’injection de code malveillant non signé dans le noyau, réduisant considérablement le risque de rootkits et d’exploits kernel-level sur l’hôte hyperviseur.

Vérification :

# Vérifier HVCI
(Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard).SecurityServicesRunning
# Valeur 2 = HVCI en cours d'exécution

# Registre
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name Enabled
  • Valeur attendue : SecurityServicesRunning contient 2, Enabled = 1

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Modèles d’administration > Système > Device Guard > Activer la sécurité basée sur la virtualisation > Code Integrity = Activé avec verrouillage UEFI
  2. PowerShell :
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name Enabled -Value 1

Valeur par défaut : Désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.7.3 — Virtualization Based Security (VBS) activée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.5
MITRE ATT&CK T1003 (OS Credential Dumping)
ANSSI ANSSI-VIRT R9
NIST NIST-53 SC-39
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La sécurité basée sur la virtualisation (VBS) doit être activée sur l’hôte Hyper-V. VBS crée une région mémoire isolée du système d’exploitation normal en utilisant l’hyperviseur Windows. Cette isolation est le fondement de Credential Guard, HVCI et d’autres mécanismes de sécurité avancés. Sur un hôte Hyper-V, VBS fonctionne conjointement avec l’hyperviseur pour renforcer la sécurité de l’hôte.

Vérification :

# Vérifier l'état de VBS
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object VirtualizationBasedSecurityStatus, RequiredSecurityProperties, AvailableSecurityProperties

# VirtualizationBasedSecurityStatus : 0=Non activé, 1=Activé mais non en cours, 2=En cours d'exécution
  • Valeur attendue : VirtualizationBasedSecurityStatus = 2

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Modèles d’administration > Système > Device Guard
  2. Prérequis matériels : CPU avec virtualisation (Intel VT-x/AMD-V), SLAT, TPM 2.0, Secure Boot

Valeur par défaut : Varie selon l’édition et le matériel

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.8.1 — Politique de mot de passe renforcée sur l’hôte

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 1.1.1-1.1.6
MITRE ATT&CK T1110 (Brute Force), T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R10
NIST NIST-53 IA-5
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La politique de mot de passe de l’hôte Hyper-V doit respecter les exigences de complexité, de longueur minimale (14 caractères minimum) et de renouvellement. Les mots de passe des comptes locaux et de domaine utilisés pour administrer l’hôte Hyper-V doivent être particulièrement robustes car ils donnent accès à l’ensemble de l’infrastructure virtualisée.

Vérification :

# Vérifier la politique de mot de passe locale
net accounts

# Ou via PowerShell (politique de domaine si joint au domaine)
Get-ADDefaultDomainPasswordPolicy

# Vérifier la politique locale
secedit /export /cfg C:\secpol.cfg
Select-String -Path C:\secpol.cfg -Pattern "MinimumPasswordLength|PasswordComplexity|MaximumPasswordAge|MinimumPasswordAge|PasswordHistorySize"
Remove-Item C:\secpol.cfg
  • Valeur attendue : MinimumPasswordLength >= 14, PasswordComplexity = 1, MaximumPasswordAge <= 60

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies de comptes > Stratégie de mot de passe
  2. Longueur minimale : 14 caractères
  3. Complexité : Activée
  4. Historique : 24 mots de passe

Valeur par défaut : Longueur minimale = 0, Complexité = Désactivée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.8.2 — Politique de verrouillage de compte configurée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 1.2.1-1.2.3
MITRE ATT&CK T1110 (Brute Force)
ANSSI ANSSI-VIRT R10
NIST NIST-53 AC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Une politique de verrouillage de compte doit être configurée sur l’hôte Hyper-V pour se protéger contre les attaques par force brute. Le seuil de verrouillage, la durée de verrouillage et la fenêtre de réinitialisation doivent être définis pour bloquer les tentatives d’authentification répétées sans impacter l’administration légitime.

Vérification :

# Vérifier la politique de verrouillage
net accounts

# Via GPO
secedit /export /cfg C:\secpol.cfg
Select-String -Path C:\secpol.cfg -Pattern "LockoutBadCount|ResetLockoutCount|LockoutDuration"
Remove-Item C:\secpol.cfg
  • Valeur attendue : LockoutBadCount <= 5, LockoutDuration >= 30, ResetLockoutCount >= 30

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies de comptes > Stratégie de verrouillage du compte
  2. Seuil de verrouillage : 5 tentatives
  3. Durée de verrouillage : 30 minutes
  4. Réinitialiser le compteur : 30 minutes

Valeur par défaut : Verrouillage désactivé (0 tentatives)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.8.3 — Compte Administrateur local renommé et désactivé

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 2.3.1.1-2.3.1.2
MITRE ATT&CK T1078.003 (Valid Accounts: Local Accounts)
ANSSI ANSSI-VIRT R10
NIST NIST-53 IA-2, AC-6(5)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le compte Administrateur local intégré (SID S-1-5-21-*-500) doit être renommé et idéalement désactivé sur l’hôte Hyper-V. Ce compte est une cible privilégiée pour les attaquants car il est présent par défaut sur tous les systèmes Windows. Le renommage complique l’énumération, et la désactivation empêche son utilisation comme vecteur d’attaque.

Vérification :

# Vérifier le nom du compte Administrateur (SID -500)
Get-LocalUser | Where-Object { $_.SID -like "*-500" } | Select-Object Name, Enabled, SID

# Vérifier si le compte invité est désactivé
Get-LocalUser | Where-Object { $_.SID -like "*-501" } | Select-Object Name, Enabled, SID
  • Valeur attendue : Compte -500 renommé (pas “Administrateur” ou “Administrator”), Enabled = False

Remédiation :

  1. PowerShell :
# Renommer le compte Administrateur
Rename-LocalUser -Name "Administrateur" -NewName "AdminHV_Custom"
# Désactiver le compte
Disable-LocalUser -Name "AdminHV_Custom"
  1. GPO : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Options de sécurité > Comptes : Renommer le compte administrateur

Valeur par défaut : “Administrateur” (FR) ou “Administrator” (EN), Activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.8.4 — LAPS (Local Administrator Password Solution) déployé

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.2.1
MITRE ATT&CK T1078.003 (Valid Accounts: Local Accounts), T1110 (Brute Force)
ANSSI ANSSI-VIRT R10
NIST NIST-53 IA-5(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Microsoft LAPS (Local Administrator Password Solution) doit être déployé sur l’hôte Hyper-V pour gérer automatiquement les mots de passe des comptes administrateurs locaux. LAPS génère des mots de passe aléatoires uniques, les stocke de manière sécurisée dans Active Directory et les renouvelle automatiquement. Cela élimine le risque de mots de passe partagés entre les hôtes Hyper-V.

Vérification :

# Vérifier si LAPS est installé (Windows LAPS intégré à Server 2025)
Get-WindowsFeature LAPS -ErrorAction SilentlyContinue

# Vérifier la politique LAPS
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft Services\AdmPwd" -ErrorAction SilentlyContinue
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\Config" -ErrorAction SilentlyContinue

# Windows LAPS (natif Server 2025)
Get-LapsAADPassword -DeviceIds (Get-ADComputer $env:COMPUTERNAME).ObjectGUID -ErrorAction SilentlyContinue

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Modèles d’administration > LAPS
  2. Configurer la longueur, complexité et durée de vie du mot de passe LAPS

Valeur par défaut : LAPS non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.9.1 — Politique d’audit avancée configurée sur l’hôte

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 17.1-17.9
MITRE ATT&CK T1562.002 (Impair Defenses: Disable Windows Event Logging)
ANSSI ANSSI-VIRT R11 — Journalisation de l’hyperviseur
NIST NIST-53 AU-2, AU-3, AU-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La politique d’audit avancée (Advanced Audit Policy Configuration) doit être configurée sur l’hôte Hyper-V pour enregistrer les événements de sécurité critiques. Les catégories d’audit suivantes doivent être activées : ouverture/fermeture de session, gestion des comptes, accès aux objets, changement de stratégie, utilisation de privilèges et événements système.

Vérification :

# Vérifier la configuration d'audit avancée
auditpol /get /category:*

# Catégories critiques à vérifier
auditpol /get /subcategory:"Logon"
auditpol /get /subcategory:"Special Logon"
auditpol /get /subcategory:"Logoff"
auditpol /get /subcategory:"Account Lockout"
auditpol /get /subcategory:"Security Group Management"
auditpol /get /subcategory:"User Account Management"
auditpol /get /subcategory:"Process Creation"
auditpol /get /subcategory:"Audit Policy Change"
  • Valeur attendue : Success and Failure pour les catégories critiques

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Configuration avancée de la stratégie d’audit
  2. PowerShell :
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable
auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable
auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
auditpol /set /subcategory:"Process Creation" /success:enable /failure:enable

Valeur par défaut : Audit minimal activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.9.2 — Taille des journaux d’événements configurée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.27.1-18.9.27.4
MITRE ATT&CK T1070.001 (Indicator Removal: Clear Windows Event Logs)
ANSSI ANSSI-VIRT R11
NIST NIST-53 AU-4, AU-11
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La taille maximale des journaux d’événements Windows doit être augmentée sur l’hôte Hyper-V pour garantir la rétention d’un historique suffisant. Les journaux Security, System, Application et Microsoft-Windows-Hyper-V doivent être dimensionnés pour conserver au minimum 90 jours d’événements.

Vérification :

# Vérifier la taille des journaux principaux
Get-WinEvent -ListLog Security, System, Application, "Microsoft-Windows-Hyper-V-VMMS-Admin", "Microsoft-Windows-Hyper-V-Worker-Admin" | Select-Object LogName, MaximumSizeInBytes, @{N='MaxSizeMB';E={$_.MaximumSizeInBytes/1MB}}, RecordCount, IsLogFull
  • Valeur attendue : Security >= 1 Go, System >= 256 Mo, Hyper-V logs >= 256 Mo

Remédiation :

  1. PowerShell :
wevtutil sl Security /ms:1073741824
wevtutil sl System /ms:268435456
wevtutil sl Application /ms:268435456
wevtutil sl "Microsoft-Windows-Hyper-V-VMMS-Admin" /ms:268435456
wevtutil sl "Microsoft-Windows-Hyper-V-Worker-Admin" /ms:268435456
  1. GPO : Configuration ordinateur > Stratégies > Modèles d’administration > Composants Windows > Service Journal des événements

Valeur par défaut : 20 Mo pour la plupart des journaux

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.9.3 — Journalisation PowerShell activée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.100.1-18.9.100.2
MITRE ATT&CK T1059.001 (Command and Scripting Interpreter: PowerShell)
ANSSI ANSSI-VIRT R11
NIST NIST-53 AU-3, AU-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La journalisation avancée de PowerShell doit être activée sur l’hôte Hyper-V, incluant Module Logging, Script Block Logging et Transcription. PowerShell est l’outil principal d’administration d’Hyper-V et un vecteur d’attaque courant. L’enregistrement de toutes les commandes exécutées permet la détection d’activités malveillantes et l’analyse forensique post-incident.

Vérification :

# Vérifier Module Logging
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging" -ErrorAction SilentlyContinue

# Vérifier Script Block Logging
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -ErrorAction SilentlyContinue

# Vérifier Transcription
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription" -ErrorAction SilentlyContinue
  • Valeur attendue : EnableModuleLogging = 1, EnableScriptBlockLogging = 1, EnableTranscripting = 1

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Modèles d’administration > Composants Windows > Windows PowerShell
  2. Activer “Activer la journalisation des modules”
  3. Activer “Activer la journalisation des blocs de script PowerShell”
  4. Activer “Activer la transcription PowerShell”

Valeur par défaut : Désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.9.4 — Sysmon déployé sur l’hôte Hyper-V

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.5
MITRE ATT&CK T1562.001 (Impair Defenses: Disable or Modify Tools)
ANSSI ANSSI-VIRT R11
NIST NIST-53 AU-2, SI-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Microsoft Sysmon (System Monitor) devrait être déployé sur l’hôte Hyper-V pour une surveillance avancée des processus, connexions réseau, modifications de fichiers et chargement de pilotes. Sysmon fournit une visibilité détaillée qui complète la journalisation Windows standard et est essentiel pour la détection de menaces avancées ciblant l’hyperviseur.

Vérification :

# Vérifier si Sysmon est installé et en cours d'exécution
Get-Service Sysmon64 -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType

# Vérifier la configuration Sysmon
sysmon64 -c 2>$null

# Vérifier les événements Sysmon
Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" -MaxEvents 5 -ErrorAction SilentlyContinue

Remédiation :

  1. Télécharger Sysmon depuis Sysinternals
  2. Déployer avec une configuration adaptée à Hyper-V
sysmon64 -accepteula -i sysmonconfig-hyperv.xml

Valeur par défaut : Non installé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.9.5 — Transfert des journaux vers un SIEM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 8.9
MITRE ATT&CK T1070 (Indicator Removal)
ANSSI ANSSI-VIRT R11
NIST NIST-53 AU-4(1), SI-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les journaux d’événements de l’hôte Hyper-V doivent être transférés en temps réel vers un SIEM centralisé (Microsoft Sentinel, Splunk, ELK, QRadar, etc.). La centralisation des logs permet la corrélation d’événements entre les hôtes Hyper-V, la détection de patterns malveillants et la protection contre la suppression de traces par un attaquant ayant compromis l’hôte.

Vérification :

# Vérifier la configuration Windows Event Forwarding (WEF)
wecutil gs 2>$null

# Vérifier l'agent SIEM installé
Get-Service *splunk*, *elastic*, *winlogbeat*, *nxlog*, *omsagent* -ErrorAction SilentlyContinue | Select-Object Name, Status

# Vérifier la subscription WEF
wecutil es 2>$null

Remédiation :

  1. Configurer Windows Event Forwarding (WEF) ou installer l’agent SIEM approprié
  2. S’assurer que les journaux Hyper-V spécifiques sont inclus dans la collecte

Valeur par défaut : Non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

1.9.6 — NTP synchronisé et sécurisé

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.4
MITRE ATT&CK T1070.006 (Indicator Removal: Timestomp)
ANSSI ANSSI-VIRT R12
NIST NIST-53 AU-8
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le service de temps Windows (W32Time) de l’hôte Hyper-V doit être synchronisé avec une source de temps fiable et authentifiée. La précision de l’horodatage est critique pour la corrélation des journaux entre les hôtes Hyper-V, les VMs et les équipements réseau. Hyper-V fournit également le service de synchronisation temporelle aux VMs invitées.

Vérification :

# Vérifier la configuration NTP
w32tm /query /configuration
w32tm /query /status
w32tm /query /peers

# Vérifier la source de temps
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Parameters" | Select-Object NtpServer, Type
  • Valeur attendue : Source de temps fiable (DC ou NTP externe), Type = “NTP” ou “NT5DS”

Remédiation :

  1. PowerShell :
# Configurer le serveur NTP
w32tm /config /manualpeerlist:"ntp.organization.local" /syncfromflags:manual /reliable:yes /update
Restart-Service W32Time
w32tm /resync

Valeur par défaut : Synchronisation avec le contrôleur de domaine (si joint au domaine)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 2 — GESTION DES ACCÈS ET RBAC

═══════════════════════════════════════════════════════════════════════════════

SECTION 2 — GESTION DES ACCÈS ET RBAC

Objectif : Garantir que l’accès à l’infrastructure Hyper-V est contrôlé selon le principe du moindre privilège avec une traçabilité complète des actions administratives. La gestion des identités et des accès est fondamentale pour prévenir les compromissions de l’hyperviseur et des machines virtuelles.

Références principales : CIS Windows Server 2025 — Sections 2, 18, ANSSI-VIRT R14-R18, NIST SP 800-125 §4.4, NIST-53 AC-2, AC-3, AC-6.


2.1.1 — Membres du groupe Hyper-V Administrators audités

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 5.1 — Gestion des comptes privilégiés
MITRE ATT&CK T1078 (Valid Accounts), T1098 (Account Manipulation)
ANSSI ANSSI-VIRT R14 — Restreindre les accès à l’hyperviseur
NIST NIST-125 §4.4, NIST-53 AC-2(7), AC-6(5)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le groupe local « Hyper-V Administrators » donne un accès complet à toutes les fonctionnalités Hyper-V sur l’hôte, y compris la création, modification et suppression de VMs, la gestion des réseaux virtuels et l’accès aux fichiers de configuration. Les membres de ce groupe doivent être strictement limités, documentés et revus régulièrement. Tout ajout non autorisé doit déclencher une alerte.

Vérification :

# Lister les membres du groupe Hyper-V Administrators
Get-LocalGroupMember -Group "Hyper-V Administrators" | Select-Object Name, ObjectClass, PrincipalSource

# Si le serveur est membre d'un domaine, vérifier les groupes imbriqués
Get-ADGroupMember -Identity "Hyper-V Administrators" -Recursive -ErrorAction SilentlyContinue | Select-Object Name, SamAccountName, ObjectClass

# Vérifier le groupe Administrateurs local (qui a aussi accès Hyper-V)
Get-LocalGroupMember -Group "Administrateurs" | Select-Object Name, ObjectClass, PrincipalSource
  • Valeur attendue : Liste minimale et documentée de comptes administratifs dédiés

Remédiation :

  1. PowerShell :
# Supprimer les membres non autorisés
Remove-LocalGroupMember -Group "Hyper-V Administrators" -Member "DOMAIN\UserNonAutorise"

# Documenter les membres autorisés
Get-LocalGroupMember -Group "Hyper-V Administrators" | Export-Csv "C:\Audit\HyperV-Admins-$(Get-Date -Format 'yyyyMMdd').csv"
  1. Mettre en place une revue trimestrielle des membres du groupe

Valeur par défaut : Groupe vide par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.1.2 — Séparation des comptes d’administration

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 5.4
MITRE ATT&CK T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R14
NIST NIST-53 AC-5, AC-6(2)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les administrateurs Hyper-V doivent disposer de comptes dédiés et séparés pour l’administration de l’hyperviseur, distincts de leurs comptes utilisateur quotidiens et de leurs comptes d’administration de domaine. Cette séparation limite l’impact d’une compromission de compte et respecte le principe de moindre privilège tiering (Tier 0 pour les contrôleurs de domaine, Tier 1 pour les serveurs dont Hyper-V).

Vérification :

# Vérifier la convention de nommage des comptes admin Hyper-V
Get-LocalGroupMember -Group "Hyper-V Administrators" | Select-Object Name

# Vérifier que les comptes admin HV ne sont pas des comptes de domaine admin
Get-ADGroupMember "Domain Admins" | ForEach-Object {
    $member = $_.SamAccountName
    if (Get-LocalGroupMember -Group "Hyper-V Administrators" | Where-Object { $_.Name -like "*$member*" }) {
        Write-Warning "Le compte Domain Admin '$member' est aussi dans Hyper-V Administrators"
    }
}
  • Valeur attendue : Comptes dédiés type “adm-hv-prenom.nom”, pas de comptes Domain Admins

Remédiation :

  1. Créer des comptes dédiés pour l’administration Hyper-V (ex: adm-hv-dupont)
  2. Retirer les comptes Domain Admins du groupe Hyper-V Administrators (sauf si strictement nécessaire)
  3. Documenter la matrice des accès

Valeur par défaut : Aucune séparation par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.1.3 — Comptes de service Hyper-V avec mots de passe gérés (gMSA)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 5.3
MITRE ATT&CK T1078.002 (Valid Accounts: Domain Accounts), T1003 (OS Credential Dumping)
ANSSI ANSSI-VIRT R15
NIST NIST-53 IA-5(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les comptes de service utilisés par Hyper-V et les services associés (SCVMM, agents de monitoring, solutions de sauvegarde) doivent utiliser des comptes de service gérés de groupe (gMSA — Group Managed Service Accounts). Les gMSA éliminent la gestion manuelle des mots de passe, les changent automatiquement et réduisent le risque de compromission de comptes de service avec des mots de passe statiques.

Vérification :

# Lister les services Hyper-V et leurs comptes d'exécution
Get-WmiObject Win32_Service | Where-Object { $_.DisplayName -like "*Hyper-V*" -or $_.DisplayName -like "*Virtual*" } | Select-Object Name, DisplayName, StartName

# Vérifier les gMSA existants
Get-ADServiceAccount -Filter * | Select-Object Name, SamAccountName, Enabled

# Vérifier si les services utilisent des gMSA
Get-WmiObject Win32_Service | Where-Object { $_.StartName -like "*$*" } | Select-Object Name, StartName
  • Valeur attendue : Comptes de service gMSA (terminant par $) ou comptes système (LocalSystem, NetworkService)

Remédiation :

  1. PowerShell :
# Créer un gMSA pour les services Hyper-V
New-ADServiceAccount -Name "gMSA-HyperV-Svc" -DNSHostName "gmsa-hyperv.domain.local" -PrincipalsAllowedToRetrieveManagedPassword "HyperV-Hosts$"
Install-ADServiceAccount -Identity "gMSA-HyperV-Svc"

Valeur par défaut : Services Hyper-V sous LocalSystem

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.2.1 — Délégation d’administration via SCVMM (rôles utilisateur)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 5.4
MITRE ATT&CK T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R16 — Délégation granulaire de l’administration
NIST NIST-53 AC-3(7), AC-6(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si System Center Virtual Machine Manager (SCVMM) est déployé, les rôles utilisateur doivent être configurés pour fournir une délégation d’administration granulaire. SCVMM propose des rôles prédéfinis (Administrator, Delegated Administrator, Read-Only Administrator, Tenant Administrator, Self-Service User) qui permettent de limiter précisément les actions de chaque administrateur selon son périmètre de responsabilité.

Vérification :

# Lister les rôles utilisateur SCVMM
Get-SCUserRole | Select-Object Name, UserRoleProfile, Description

# Détail des permissions par rôle
Get-SCUserRole | ForEach-Object {
    [PSCustomObject]@{
        Name = $_.Name
        Profile = $_.UserRoleProfile
        Members = ($_.Members -join ', ')
        AllowedActions = ($_.Permission -join ', ')
    }
}

# Vérifier les membres de chaque rôle
Get-SCUserRole | Select-Object Name, @{N='Members';E={$_.Members -join '; '}}

Remédiation :

  1. SCVMM Console : Settings > Security > User Roles
  2. Créer des rôles personnalisés correspondant aux responsabilités de chaque équipe
  3. Appliquer le principe du moindre privilège

Valeur par défaut : Rôle Administrator unique

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.2.2 — Self-Service Portal — limites et quotas

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 5.4
MITRE ATT&CK T1496 (Resource Hijacking)
ANSSI ANSSI-VIRT R16
NIST NIST-53 AC-3, SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si un portail Self-Service est configuré (via SCVMM ou Windows Admin Center), les quotas et limites doivent être définis pour chaque utilisateur ou groupe. Les quotas couvrent le nombre maximum de VMs, la mémoire totale, le nombre de CPU virtuels, le stockage et les points de quota. Sans quotas, un utilisateur pourrait consommer toutes les ressources de l’hôte, affectant les autres VMs.

Vérification :

# Vérifier les rôles Self-Service et leurs quotas (SCVMM)
Get-SCUserRole | Where-Object { $_.UserRoleProfile -eq "SelfServiceUser" } | Select-Object Name, @{N='Quota';E={$_.Quota}}

# Vérifier les quotas spécifiques
Get-SCUserRoleQuota -UserRole (Get-SCUserRole -Name "SelfService-Equipe1")

Remédiation :

  1. SCVMM : Configurer des quotas par rôle Self-Service
  2. Limiter le nombre de VMs, la mémoire et le stockage par utilisateur/groupe

Valeur par défaut : Aucun quota (SCVMM), Self-Service désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.3.1 — JEA (Just Enough Administration) configuré pour Hyper-V

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 5.4 — Moindre privilège
MITRE ATT&CK T1059.001 (PowerShell), T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R17 — Administration avec privilèges minimaux
NIST NIST-53 AC-6(1), AC-6(2)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Just Enough Administration (JEA) doit être configuré pour permettre l’administration Hyper-V avec des privilèges minimaux via des endpoints PowerShell contraints. JEA permet de définir précisément quelles commandes PowerShell un administrateur peut exécuter, sur quels paramètres, et sous quel contexte de sécurité. Cela réduit drastiquement le risque de mouvements latéraux et d’abus de privilèges.

Vérification :

# Vérifier les endpoints JEA configurés
Get-PSSessionConfiguration | Where-Object { $_.Name -like "*JEA*" -or $_.Name -like "*HyperV*" } | Select-Object Name, Permission, RunAsUser

# Vérifier les fichiers de capacité de rôle
Get-ChildItem "C:\Program Files\WindowsPowerShell\Modules\*\RoleCapabilities\*.psrc" -Recurse -ErrorAction SilentlyContinue

# Vérifier la configuration de session JEA
Get-PSSessionConfiguration | Select-Object Name, Permission
  • Valeur attendue : Au moins un endpoint JEA pour Hyper-V avec des capacités de rôle restreintes

Remédiation :

  1. Créer un fichier de capacité de rôle :
New-PSRoleCapabilityFile -Path "C:\Program Files\WindowsPowerShell\Modules\HyperVJEA\RoleCapabilities\HVOperator.psrc" -VisibleCmdlets @('Get-VM', 'Start-VM', 'Stop-VM', 'Get-VMSwitch', 'Get-VMNetworkAdapter') -VisibleFunctions @() -VisibleProviders @()
  1. Créer la configuration de session :
New-PSSessionConfigurationFile -Path "C:\JEA\HyperVJEA.pssc" -SessionType RestrictedRemoteServer -RoleDefinitions @{ 'DOMAIN\HV-Operators' = @{ RoleCapabilities = 'HVOperator' } } -RunAsVirtualAccount
Register-PSSessionConfiguration -Name "HyperVJEA" -Path "C:\JEA\HyperVJEA.pssc"

Valeur par défaut : JEA non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.3.2 — PAW (Privileged Access Workstation) pour l’administration Hyper-V

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.8
MITRE ATT&CK T1021 (Remote Services), T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R18 — Administration depuis des postes sécurisés
NIST NIST-53 AC-17, SC-13
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’administration de l’hôte Hyper-V doit être effectuée exclusivement depuis des postes d’administration sécurisés (PAW — Privileged Access Workstations). Les PAW sont des postes dédiés, durcis et isolés utilisés uniquement pour les tâches d’administration. Cette approche protège les identifiants d’administration contre les keyloggers, malwares et attaques man-in-the-middle présents sur les postes de travail standard.

Vérification :

# Vérifier les restrictions de connexion RDP/WinRM par adresse IP source
Get-NetFirewallRule -DisplayName "*Remote Desktop*" | Get-NetFirewallAddressFilter | Select-Object RemoteAddress
Get-NetFirewallRule -DisplayName "*Windows Remote Management*" | Get-NetFirewallAddressFilter | Select-Object RemoteAddress

# Vérifier les GPO de restriction de connexion
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication

# Vérifier les dernières connexions d'administration
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-7)} | Where-Object { $_.Properties[8].Value -in @(2,10) } | Select-Object TimeCreated, @{N='User';E={$_.Properties[5].Value}}, @{N='Source';E={$_.Properties[18].Value}}

Remédiation :

  1. Déployer des PAW dédiées pour l’administration Hyper-V
  2. Restreindre les connexions WinRM/RDP aux seules adresses IP des PAW
  3. GPO : Stratégie > Droits d’utilisateur > Autoriser l’ouverture de session via les services Bureau à distance

Valeur par défaut : Aucune restriction de source de connexion

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.4.1 — WinRM configuré avec HTTPS et certificat

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.102
MITRE ATT&CK T1021.006 (Remote Services: Windows Remote Management)
ANSSI ANSSI-VIRT R19 — Sécuriser les protocoles d’administration
NIST NIST-53 SC-8, SC-23, IA-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Windows Remote Management (WinRM), utilisé pour l’administration à distance d’Hyper-V via PowerShell Remoting, doit être configuré pour utiliser HTTPS (port 5986) avec un certificat TLS valide au lieu du HTTP non chiffré (port 5985). Le trafic WinRM en clair expose les identifiants d’administration et les commandes PowerShell sensibles à l’interception réseau.

Vérification :

# Vérifier les listeners WinRM
winrm enumerate winrm/config/Listener

# Vérifier si HTTPS est configuré
Get-WSManInstance -ResourceURI winrm/config/Listener -Enumerate | Select-Object Transport, Port, CertificateThumbprint

# Vérifier que HTTP est désactivé
Get-Item WSMan:\localhost\Listener\* | Select-Object Name, @{N='Transport';E={$_.Transport}}

# Vérifier le certificat utilisé
$listener = Get-WSManInstance -ResourceURI winrm/config/Listener -Enumerate | Where-Object { $_.Transport -eq "HTTPS" }
if ($listener.CertificateThumbprint) {
    Get-ChildItem Cert:\LocalMachine\My | Where-Object Thumbprint -eq $listener.CertificateThumbprint | Select-Object Subject, NotAfter, Issuer
}
  • Valeur attendue : Listener HTTPS actif avec certificat valide, Listener HTTP désactivé ou restreint

Remédiation :

  1. PowerShell :
# Créer un listener HTTPS WinRM
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*$env:COMPUTERNAME*" -and $_.EnhancedKeyUsageList.ObjectId -contains "1.3.6.1.5.5.7.3.1" }
New-WSManInstance -ResourceURI winrm/config/Listener -SelectorSet @{Address="*";Transport="HTTPS"} -ValueSet @{CertificateThumbprint=$cert.Thumbprint}

# Supprimer le listener HTTP
Remove-WSManInstance -ResourceURI winrm/config/Listener -SelectorSet @{Address="*";Transport="HTTP"}

Valeur par défaut : WinRM HTTP (port 5985) activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.4.2 — RDP sécurisé avec NLA et chiffrement élevé

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.65.3.3.1-18.9.65.3.11.2
MITRE ATT&CK T1021.001 (Remote Services: Remote Desktop Protocol)
ANSSI ANSSI-VIRT R19
NIST NIST-53 SC-8(1), IA-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si RDP est activé sur l’hôte Hyper-V (idéalement uniquement en mode Server Core avec accès restreint), il doit être sécurisé avec NLA (Network Level Authentication), un niveau de chiffrement élevé (High), et TLS 1.2 comme couche de sécurité. RDP sans NLA est vulnérable aux attaques BlueKeep et autres exploits ciblant le protocole.

Vérification :

# Vérifier NLA
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication, SecurityLayer, MinEncryptionLevel

# Vérifier la version TLS
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name SecurityLayer

# Vérifier si RDP est activé
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections
  • Valeur attendue : UserAuthentication = 1 (NLA), SecurityLayer = 2 (TLS), MinEncryptionLevel = 3 (High)

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Modèles d’administration > Composants Windows > Services Bureau à distance > Hôte de session > Sécurité
  2. PowerShell :
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -Value 1
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name SecurityLayer -Value 2
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name MinEncryptionLevel -Value 3

Valeur par défaut : NLA activé, SecurityLayer = 1 (Negotiate)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.4.3 — SSH désactivé ou sécurisé si utilisé

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 4.8
MITRE ATT&CK T1021.004 (Remote Services: SSH)
ANSSI ANSSI-VIRT R19
NIST NIST-53 AC-17, SC-8
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : OpenSSH Server, s’il est installé sur l’hôte Hyper-V, doit être soit désactivé s’il n’est pas nécessaire, soit sécurisé avec une authentification par clé, des algorithmes de chiffrement forts et des restrictions d’accès. SSH n’est généralement pas nécessaire sur un hôte Hyper-V où WinRM/PowerShell Remoting est le protocole d’administration privilégié.

Vérification :

# Vérifier si OpenSSH Server est installé
Get-WindowsCapability -Online | Where-Object Name -like "*OpenSSH.Server*" | Select-Object Name, State

# Vérifier le service
Get-Service sshd -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType

# Si SSH est actif, vérifier la configuration
Get-Content "C:\ProgramData\ssh\sshd_config" -ErrorAction SilentlyContinue | Select-String -Pattern "PasswordAuthentication|PermitRootLogin|PubkeyAuthentication|Protocol|Ciphers|KexAlgorithms"

Remédiation :

  1. Si non requis :
Stop-Service sshd -Force
Set-Service sshd -StartupType Disabled
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
  1. Si requis : Configurer l’authentification par clé et désactiver l’authentification par mot de passe

Valeur par défaut : OpenSSH Server non installé par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.5.1 — Audit des connexions réussies et échouées

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 17.5.1-17.5.6
MITRE ATT&CK T1078 (Valid Accounts), T1110 (Brute Force)
ANSSI ANSSI-VIRT R20
NIST NIST-53 AU-2, AU-3, AU-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’audit des tentatives de connexion réussies et échouées doit être activé sur l’hôte Hyper-V. Les événements de connexion (Event ID 4624, 4625, 4634, 4647, 4648) fournissent une traçabilité complète des accès à l’infrastructure de virtualisation et permettent la détection de tentatives d’intrusion, de mouvements latéraux et d’abus de privilèges.

Vérification :

# Vérifier la politique d'audit de connexion
auditpol /get /subcategory:"Logon" /subcategory:"Logoff" /subcategory:"Special Logon" /subcategory:"Account Lockout"

# Vérifier les événements récents
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=@(4624,4625); StartTime=(Get-Date).AddHours(-24)} | Group-Object Id | Select-Object Name, Count
  • Valeur attendue : Success and Failure pour Logon, Special Logon, Account Lockout

Remédiation :

  1. PowerShell :
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Special Logon" /success:enable
auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable

Valeur par défaut : Success uniquement pour Logon

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.5.2 — Audit de l’utilisation des privilèges élevés

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 17.8.1
MITRE ATT&CK T1134 (Access Token Manipulation), T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R20
NIST NIST-53 AU-2, AC-6(9)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’utilisation des privilèges sensibles sur l’hôte Hyper-V doit être auditée. Les événements 4672 (Special Privileges Assigned) et 4673 (Sensitive Privilege Use) permettent de détecter l’utilisation de privilèges élevés tels que SeDebugPrivilege, SeTakeOwnershipPrivilege ou SeBackupPrivilege, qui pourraient être utilisés pour compromettre l’hyperviseur ou accéder aux données des VMs.

Vérification :

# Vérifier l'audit des privilèges
auditpol /get /subcategory:"Sensitive Privilege Use" /subcategory:"Non Sensitive Privilege Use"

# Vérifier les événements récents de privilèges spéciaux
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4672; StartTime=(Get-Date).AddDays(-1)} | Select-Object -First 10 TimeCreated, @{N='User';E={$_.Properties[1].Value}}, @{N='Privileges';E={$_.Properties[4].Value}}

Remédiation :

  1. PowerShell :
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable

Valeur par défaut : Non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.5.3 — Droits d’utilisateur restrictifs (User Rights Assignment)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 2.2.1-2.2.40
MITRE ATT&CK T1134 (Access Token Manipulation)
ANSSI ANSSI-VIRT R14
NIST NIST-53 AC-6(5)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les droits d’utilisateur Windows (User Rights Assignment) doivent être configurés de manière restrictive sur l’hôte Hyper-V. Les droits critiques comme “Act as part of the operating system” (SeTcbPrivilege), “Debug programs” (SeDebugPrivilege), “Take ownership” (SeTakeOwnershipPrivilege) doivent être limités aux seuls comptes strictement nécessaires.

Vérification :

# Exporter les droits d'utilisateur
secedit /export /cfg C:\secpol.cfg
Select-String -Path C:\secpol.cfg -Pattern "SeTcbPrivilege|SeDebugPrivilege|SeTakeOwnershipPrivilege|SeBackupPrivilege|SeRestorePrivilege|SeCreateTokenPrivilege|SeAssignPrimaryTokenPrivilege"
Remove-Item C:\secpol.cfg

# Vérifier qui peut se connecter à distance
secedit /export /cfg C:\secpol.cfg
Select-String -Path C:\secpol.cfg -Pattern "SeRemoteInteractiveLogonRight|SeNetworkLogonRight|SeDenyNetworkLogonRight"
Remove-Item C:\secpol.cfg

Remédiation :

  1. GPO : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Attribution des droits utilisateur
  2. Appliquer les valeurs recommandées par le CIS Benchmark

Valeur par défaut : Valeurs Windows par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.5.4 — Revue périodique des accès administratifs

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 5.1.2
MITRE ATT&CK T1098 (Account Manipulation)
ANSSI ANSSI-VIRT R14
NIST NIST-53 AC-2(3), AC-2(12)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Une revue périodique (au minimum trimestrielle) des accès administratifs à l’infrastructure Hyper-V doit être effectuée. Cette revue couvre les membres des groupes Hyper-V Administrators, Administrators locaux, les rôles SCVMM, les endpoints JEA et les comptes de service. Toute permission non justifiée doit être révoquée immédiatement.

Vérification :

# Script de revue des accès
$report = @()
$report += "=== Hyper-V Administrators ==="
$report += Get-LocalGroupMember -Group "Hyper-V Administrators" | Format-Table | Out-String
$report += "=== Local Administrators ==="
$report += Get-LocalGroupMember -Group "Administrateurs" | Format-Table | Out-String
$report += "=== Dernière revue ==="
# Vérifier si un processus de revue est documenté

$report | Out-File "C:\Audit\AccessReview-$(Get-Date -Format 'yyyyMMdd').txt"
  • Valeur attendue : Revue documentée datant de moins de 90 jours

Remédiation :

  1. Mettre en place un processus de revue trimestrielle
  2. Documenter chaque revue avec les actions correctives
  3. Automatiser la génération de rapports d’accès

Valeur par défaut : Aucune revue automatisée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

2.6.1 — MFA pour l’administration Hyper-V

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 6.5
MITRE ATT&CK T1078 (Valid Accounts), T1110 (Brute Force)
ANSSI ANSSI-VIRT R18
NIST NIST-53 IA-2(1), IA-2(2)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’authentification multi-facteurs (MFA) doit être requise pour toute connexion administrative à l’hôte Hyper-V. Le MFA protège contre la compromission des identifiants par phishing, keylogging, pass-the-hash ou fuite de mots de passe. Les solutions incluent les smart cards, Windows Hello for Business, Azure MFA avec NPS Extension, ou des solutions tierces (Duo, RSA SecurID).

Vérification :

# Vérifier si les smart cards sont requises
Get-ADUser -Filter { SmartcardLogonRequired -eq $true } | Where-Object { $_.MemberOf -like "*Hyper-V*" } -ErrorAction SilentlyContinue

# Vérifier Windows Hello for Business
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -ErrorAction SilentlyContinue

# Vérifier NPS/RADIUS pour MFA
Get-Service IAS -ErrorAction SilentlyContinue | Select-Object Name, Status

Remédiation :

  1. Déployer Windows Hello for Business ou smart cards pour les administrateurs Hyper-V
  2. Configurer Azure MFA avec NPS Extension pour RDP/WinRM
  3. Exiger les smart cards via GPO pour les comptes administratifs

Valeur par défaut : MFA non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 3 — ISOLATION DES MACHINES VIRTUELLES

═══════════════════════════════════════════════════════════════════════════════

SECTION 3 — ISOLATION DES MACHINES VIRTUELLES

Objectif : Garantir une isolation stricte entre les machines virtuelles hébergées sur le même hôte Hyper-V. L’isolation est le principe fondamental de la virtualisation sécurisée : chaque VM doit être confinée dans son propre environnement sans possibilité d’accéder aux ressources d’autres VMs ou de l’hôte.

Références principales : ANSSI-VIRT R20-R35, NIST SP 800-125 §5, Microsoft Hyper-V Isolation Best Practices, CIS Windows Server 2025 §18.9.


3.1.1 — Isolation mémoire entre machines virtuelles

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1611 (Escape to Host), T1003 (OS Credential Dumping)
ANSSI ANSSI-VIRT R20 — Isolation mémoire des VMs
NIST NIST-125 §5.1, NIST-53 SC-39
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’hyperviseur Hyper-V doit garantir une isolation mémoire stricte entre les machines virtuelles. Chaque VM doit disposer d’un espace mémoire dédié et inaccessible aux autres VMs. L’isolation mémoire est assurée par le SLAT (Second Level Address Translation) via Intel EPT ou AMD RVI. Les attaques par canal auxiliaire (side-channel) comme Spectre, Meltdown et L1TF ciblent spécifiquement cette isolation.

Vérification :

# Vérifier la configuration mémoire de chaque VM
Get-VM | Select-Object Name, MemoryAssigned, MemoryStartup, MemoryMinimum, MemoryMaximum, DynamicMemoryEnabled

# Vérifier SLAT (Second Level Address Translation)
Get-WmiObject -Class Win32_Processor | Select-Object Name, SecondLevelAddressTranslationExtensions

# Vérifier les protections contre les canaux auxiliaires
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverride, FeatureSettingsOverrideMask -ErrorAction SilentlyContinue

# Vérifier l'état des mitigations
Get-SpeculationControlSettings 2>$null
  • Valeur attendue : SLAT = True, mitigations contre Spectre/Meltdown activées

Remédiation :

  1. Vérifier que le CPU supporte SLAT (Intel EPT / AMD RVI)
  2. Appliquer les correctifs contre les attaques par canal auxiliaire
  3. PowerShell :
# Activer les mitigations spectre/meltdown pour l'hôte
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverride -Value 72
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverrideMask -Value 3

Valeur par défaut : Isolation mémoire native de l’hyperviseur activée, mitigations side-channel dépendent des correctifs

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.1.2 — Mémoire dynamique — configuration sécurisée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R21 — Contrôle des ressources
NIST NIST-125 §5.1, NIST-53 SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si la mémoire dynamique (Dynamic Memory) est activée sur les VMs Hyper-V, les paramètres de mémoire minimale, maximale et de tampon doivent être configurés de manière à éviter qu’une VM ne puisse consommer toute la mémoire disponible de l’hôte, provoquant un déni de service pour les autres VMs. La mémoire minimale doit être suffisante pour le fonctionnement de base de la VM, et la mémoire maximale doit être plafonnée.

Vérification :

# Vérifier la configuration mémoire dynamique de toutes les VMs
Get-VM | Where-Object { $_.DynamicMemoryEnabled -eq $true } | Select-Object Name, MemoryMinimum, MemoryMaximum, MemoryStartup, @{N='MemoryBuffer%';E={$_.MemoryBufferPercentage}}

# Calculer la mémoire totale maximale possible vs mémoire physique disponible
$totalMaxMemory = (Get-VM | Where-Object DynamicMemoryEnabled | Measure-Object -Property MemoryMaximum -Sum).Sum
$physicalMemory = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum
Write-Output "Ratio max allocable/physique: $([math]::Round($totalMaxMemory/$physicalMemory*100,2))%"
  • Valeur attendue : Ratio max/physique < 150%, mémoire minimale adéquate pour chaque VM

Remédiation :

  1. PowerShell :
# Configurer les limites de mémoire dynamique
Set-VM -Name "VMName" -DynamicMemory -MemoryMinimumBytes 512MB -MemoryMaximumBytes 4GB -MemoryStartupBytes 1GB
  1. Hyper-V Manager : Paramètres de la VM > Mémoire > Configurer les valeurs min/max

Valeur par défaut : Mémoire statique (Dynamic Memory désactivée)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.2.1 — Limites de ressources CPU par VM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1496 (Resource Hijacking), T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R21
NIST NIST-125 §5.2, NIST-53 SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des limites de ressources CPU doivent être configurées pour chaque VM afin d’empêcher une VM compromise ou défaillante de monopoliser les ressources CPU de l’hôte. Hyper-V permet de configurer des poids relatifs (Relative Weight), des réservations minimales (Reserve) et des limites maximales (Limit) pour chaque processeur virtuel.

Vérification :

# Vérifier la configuration CPU de chaque VM
Get-VM | Get-VMProcessor | Select-Object VMName, Count, Maximum, Reserve, RelativeWeight, CompatibilityForMigrationEnabled, CompatibilityForOlderOperatingSystemsEnabled

# Vérifier le ratio vCPU/pCPU
$totalVCPU = (Get-VM | Get-VMProcessor | Measure-Object -Property Count -Sum).Sum
$physicalCPU = (Get-CimInstance Win32_Processor | Measure-Object -Property NumberOfLogicalProcessors -Sum).Sum
Write-Output "Ratio vCPU/pCPU: $totalVCPU`:$physicalCPU ($([math]::Round($totalVCPU/$physicalCPU,2)):1)"
  • Valeur attendue : Maximum < 100 pour les VMs non critiques, ratio vCPU/pCPU < 8:1

Remédiation :

  1. PowerShell :
# Configurer les limites CPU
Set-VMProcessor -VMName "VMName" -Maximum 80 -Reserve 10 -RelativeWeight 100
  1. Hyper-V Manager : Paramètres VM > Processeur > Contrôle des ressources

Valeur par défaut : Maximum = 100 (pas de limite), Reserve = 0, Weight = 100

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.2.2 — Limites de bande passante réseau par VM

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1498 (Network Denial of Service)
ANSSI ANSSI-VIRT R21
NIST NIST-125 §5.2, NIST-53 SC-6, SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des limites de bande passante réseau doivent être configurées sur les adaptateurs réseau virtuels de chaque VM pour empêcher une VM de saturer la bande passante réseau de l’hôte. Hyper-V permet de configurer des limites minimales et maximales de bande passante via le QoS (Quality of Service) réseau.

Vérification :

# Vérifier la configuration QoS réseau de chaque VM
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, BandwidthSetting, @{N='MinBandwidth';E={$_.BandwidthSetting.MinimumBandwidthAbsolute}}, @{N='MaxBandwidth';E={$_.BandwidthSetting.MaximumBandwidth}}

# Vérifier le mode de bande passante du switch virtuel
Get-VMSwitch | Select-Object Name, BandwidthReservationMode

Remédiation :

  1. PowerShell :
# Configurer le QoS réseau sur un switch
Set-VMSwitch -Name "vSwitch1" -DefaultFlowMinimumBandwidthAbsolute 100000000 -DefaultFlowMinimumBandwidthWeight 50

# Configurer par adaptateur VM
Set-VMNetworkAdapter -VMName "VMName" -MaximumBandwidth 1000000000 -MinimumBandwidthAbsolute 100000000

Valeur par défaut : Aucune limite de bande passante

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.2.3 — Limites d’IOPS de stockage par VM

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R21
NIST NIST-125 §5.2, NIST-53 SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des limites d’IOPS (Input/Output Operations Per Second) de stockage doivent être configurées pour les disques virtuels de chaque VM via Storage QoS. Cela empêche une VM de saturer le sous-système de stockage de l’hôte, ce qui affecterait les performances de toutes les autres VMs. Storage QoS est particulièrement important dans les environnements multi-locataires.

Vérification :

# Vérifier les politiques Storage QoS
Get-StorageQosPolicy -ErrorAction SilentlyContinue | Select-Object Name, PolicyType, MinimumIops, MaximumIops, Status

# Vérifier les flux Storage QoS
Get-StorageQosFlow -ErrorAction SilentlyContinue | Select-Object InitiatorName, PolicyId, MinimumIOPS, MaximumIOPS, StorageNodeIOPS

# Vérifier si Storage QoS est activé sur le cluster
Get-ClusterResource -ErrorAction SilentlyContinue | Where-Object ResourceType -eq "Storage QoS Policy Manager"

Remédiation :

  1. PowerShell :
# Créer une politique Storage QoS
New-StorageQosPolicy -Name "Standard-VM-Policy" -PolicyType Dedicated -MinimumIops 100 -MaximumIops 1000

# Appliquer la politique à un disque VM
Get-VM "VMName" | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID (Get-StorageQosPolicy -Name "Standard-VM-Policy").PolicyId

Valeur par défaut : Storage QoS non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.3.1 — Integration Services — inventaire et contrôle

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.1 — Integration Services
MITRE ATT&CK T1611 (Escape to Host), T1055 (Process Injection)
ANSSI ANSSI-VIRT R22 — Contrôle des canaux de communication hôte-VM
NIST NIST-125 §5.3, NIST-53 SC-7, CM-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Integration Services (services d’intégration) Hyper-V constituent des canaux de communication entre l’hôte et la VM invitée. Chaque service d’intégration activé augmente la surface d’attaque en créant un canal potentiel d’évasion de VM. Seuls les services d’intégration strictement nécessaires au fonctionnement de chaque VM doivent être activés. Les services non requis (Guest Service Interface, Data Exchange, etc.) doivent être désactivés.

Vérification :

# Lister tous les Integration Services pour chaque VM
Get-VM | ForEach-Object {
    $vm = $_
    Get-VMIntegrationService -VMName $vm.Name | Select-Object @{N='VM';E={$vm.Name}}, Name, Enabled, PrimaryStatusDescription
}

# Résumé par service
Get-VM | ForEach-Object {
    $vm = $_
    Get-VMIntegrationService -VMName $vm.Name | Where-Object Enabled | Select-Object @{N='VM';E={$vm.Name}}, Name
} | Group-Object Name | Select-Object Name, Count
  • Valeur attendue : Seuls les services nécessaires sont activés (Heartbeat, Time Synchronization minimum)

Remédiation :

  1. PowerShell :
# Désactiver les services d'intégration non nécessaires
Disable-VMIntegrationService -VMName "VMName" -Name "Guest Service Interface"
Disable-VMIntegrationService -VMName "VMName" -Name "Data Exchange"
Disable-VMIntegrationService -VMName "VMName" -Name "Shutdown"
  1. Hyper-V Manager : Paramètres VM > Integration Services > Décocher les services non nécessaires

Valeur par défaut : Tous les services d’intégration activés

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.3.2 — Time Synchronization Service — configuration sécurisée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76.1
MITRE ATT&CK T1070.006 (Indicator Removal: Timestomp)
ANSSI ANSSI-VIRT R22
NIST NIST-125 §5.3, NIST-53 AU-8
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le service de synchronisation temporelle Hyper-V (Time Synchronization Service) permet à l’hôte de fournir l’heure aux VMs invitées. Pour les VMs jointes à un domaine Active Directory, ce service peut entrer en conflit avec le service W32Time du domaine. Il est recommandé de désactiver ce service d’intégration sur les VMs jointes à un domaine et de laisser la synchronisation NTP du domaine gérer l’heure.

Vérification :

# Vérifier le service Time Synchronization pour chaque VM
Get-VM | ForEach-Object {
    Get-VMIntegrationService -VMName $_.Name -Name "Time Synchronization" | Select-Object @{N='VM';E={$_.VMName}}, Enabled
}
  • Valeur attendue : Désactivé pour les VMs jointes au domaine, Activé pour les VMs standalone

Remédiation :

  1. PowerShell :
# Désactiver pour les VMs de domaine
Disable-VMIntegrationService -VMName "DC01" -Name "Time Synchronization"
Disable-VMIntegrationService -VMName "SRV-APP01" -Name "Time Synchronization"

Valeur par défaut : Activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.3.3 — Data Exchange (KVP) — désactivation si non requis

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.1
MITRE ATT&CK T1005 (Data from Local System), T1611 (Escape to Host)
ANSSI ANSSI-VIRT R22
NIST NIST-125 §5.3, NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le service Data Exchange (Key-Value Pair Exchange) permet l’échange de données entre l’hôte et la VM via des paires clé-valeur dans le registre. Ce canal peut être utilisé pour l’exfiltration de données ou comme canal de commande et contrôle (C2). Il doit être désactivé sur les VMs qui n’en ont pas besoin, en particulier les VMs exposées à Internet ou les VMs hébergeant des données sensibles.

Vérification :

# Vérifier le service Data Exchange
Get-VM | ForEach-Object {
    Get-VMIntegrationService -VMName $_.Name -Name "Key-Value Pair Exchange" | Select-Object @{N='VM';E={$_.VMName}}, Enabled
}

# Vérifier les données KVP existantes
Get-VM | ForEach-Object {
    $vm = $_
    $kvp = Get-WmiObject -Namespace "root\virtualization\v2" -Query "SELECT * FROM Msvm_KvpExchangeComponent WHERE SystemName='$($vm.Id)'" -ErrorAction SilentlyContinue
    if ($kvp) { Write-Output "VM: $($vm.Name), KVP Items: $($kvp.GuestExchangeItems.Count)" }
}

Remédiation :

  1. PowerShell :
Disable-VMIntegrationService -VMName "VMName" -Name "Key-Value Pair Exchange"

Valeur par défaut : Activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.3.4 — Heartbeat Service — surveillance de l’état des VMs

Attribut Valeur
Niveau 🟢 Faible
Référence CIS CIS Control 18.9.76.1
MITRE ATT&CK T1497 (Virtualization/Sandbox Evasion)
ANSSI ANSSI-VIRT R22
NIST NIST-125 §5.3, NIST-53 SI-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le service Heartbeat permet à l’hôte de détecter si la VM est en cours d’exécution et responsive. Ce service est généralement requis pour le monitoring et la haute disponibilité. Il est recommandé de le maintenir activé sur toutes les VMs pour la surveillance de santé, mais les alertes de perte de heartbeat doivent être configurées.

Vérification :

# Vérifier le service Heartbeat
Get-VM | ForEach-Object {
    Get-VMIntegrationService -VMName $_.Name -Name "Heartbeat" | Select-Object @{N='VM';E={$_.VMName}}, Enabled, PrimaryStatusDescription
}
  • Valeur attendue : Activé sur toutes les VMs, PrimaryStatusDescription = “OK”

Remédiation :

  1. PowerShell :
Enable-VMIntegrationService -VMName "VMName" -Name "Heartbeat"

Valeur par défaut : Activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.3.5 — Guest Service Interface — désactivation recommandée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.1
MITRE ATT&CK T1570 (Lateral Tool Transfer), T1611 (Escape to Host)
ANSSI ANSSI-VIRT R22
NIST NIST-125 §5.3, NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le service Guest Service Interface permet la copie de fichiers entre l’hôte et la VM invitée sans réseau (via la commande Copy-VMFile). Ce canal constitue un risque de sécurité important car il peut être utilisé pour l’exfiltration de données ou le déploiement d’outils malveillants dans la VM. Ce service doit être désactivé par défaut et activé temporairement uniquement en cas de besoin opérationnel documenté.

Vérification :

# Vérifier le service Guest Service Interface
Get-VM | ForEach-Object {
    Get-VMIntegrationService -VMName $_.Name -Name "Guest Service Interface" | Select-Object @{N='VM';E={$_.VMName}}, Enabled
}
  • Valeur attendue : Désactivé sur toutes les VMs

Remédiation :

  1. PowerShell :
Get-VM | ForEach-Object {
    Disable-VMIntegrationService -VMName $_.Name -Name "Guest Service Interface"
}

Valeur par défaut : Désactivé (depuis Windows Server 2016+)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.3.6 — VSS (Volume Shadow Copy) Integration Service

Attribut Valeur
Niveau 🟢 Faible
Référence CIS CIS Control 18.9.76.1
MITRE ATT&CK T1490 (Inhibit System Recovery)
ANSSI ANSSI-VIRT R22
NIST NIST-125 §5.3, NIST-53 CP-9
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le service d’intégration VSS (Volume Shadow Copy Service) permet la sauvegarde cohérente des VMs en quiescent le système de fichiers invité avant la prise de snapshot. Ce service est essentiel pour les sauvegardes cohérentes et doit rester activé sur les VMs nécessitant une sauvegarde applicativement cohérente.

Vérification :

# Vérifier le service VSS
Get-VM | ForEach-Object {
    Get-VMIntegrationService -VMName $_.Name -Name "VSS" | Select-Object @{N='VM';E={$_.VMName}}, Enabled
}
  • Valeur attendue : Activé sur les VMs avec sauvegarde requise

Remédiation :

  1. PowerShell :
Enable-VMIntegrationService -VMName "VMName" -Name "VSS"

Valeur par défaut : Activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.4.1 — Enhanced Session Mode — restriction d’utilisation

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.2
MITRE ATT&CK T1021 (Remote Services), T1115 (Clipboard Data)
ANSSI ANSSI-VIRT R23 — Contrôle des sessions de gestion VM
NIST NIST-125 §5.3, NIST-53 AC-3, SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le mode de session améliorée (Enhanced Session Mode) permet des fonctionnalités avancées lors de la connexion à une VM via VMConnect, notamment le partage du presse-papiers, la redirection des imprimantes, la redirection USB et le transfert de fichiers par glisser-déposer. Ces fonctionnalités créent des canaux de communication entre l’hôte et la VM qui peuvent être utilisés pour l’exfiltration de données. L’Enhanced Session Mode doit être désactivé sur les hôtes en production.

Vérification :

# Vérifier si Enhanced Session Mode est activé au niveau de l'hôte
Get-VMHost | Select-Object EnableEnhancedSessionMode

# Vérifier la politique Enhanced Session Mode
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" -Name AllowEnhancedSessionMode -ErrorAction SilentlyContinue
  • Valeur attendue : EnableEnhancedSessionMode = False (en production)

Remédiation :

  1. PowerShell :
Set-VMHost -EnableEnhancedSessionMode $false
  1. Hyper-V Manager : Hyper-V Settings > Enhanced Session Mode Policy > Décocher “Allow enhanced session mode”

Valeur par défaut : Activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.4.2 — Redirection du presse-papiers désactivée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76.2
MITRE ATT&CK T1115 (Clipboard Data)
ANSSI ANSSI-VIRT R23
NIST NIST-53 AC-4, SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La redirection du presse-papiers entre l’hôte et les VMs doit être désactivée pour empêcher la fuite de données sensibles (mots de passe, données confidentielles) via le copier-coller entre environnements de sécurité différents. Cette mesure est liée à la désactivation de l’Enhanced Session Mode.

Vérification :

# Vérifier Enhanced Session Mode (contrôle le presse-papiers)
Get-VMHost | Select-Object EnableEnhancedSessionMode

# Vérifier la GPO de redirection du presse-papiers RDP
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name fDisableClip -ErrorAction SilentlyContinue
  • Valeur attendue : Enhanced Session Mode désactivé ou fDisableClip = 1

Remédiation :

  1. Désactiver Enhanced Session Mode (voir contrôle 3.4.1)
  2. GPO : Configuration ordinateur > Modèles d’administration > Composants Windows > Services Bureau à distance > Redirection périphériques > Ne pas autoriser la redirection du Presse-papiers

Valeur par défaut : Presse-papiers activé avec Enhanced Session Mode

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.5.1 — Discrete Device Assignment (DDA) — contrôle strict

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.3
MITRE ATT&CK T1611 (Escape to Host), T1200 (Hardware Additions)
ANSSI ANSSI-VIRT R24 — Contrôle de l’assignation directe de périphériques
NIST NIST-125 §5.4, NIST-53 SC-41
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Discrete Device Assignment (DDA) permet l’assignation directe de périphériques PCIe (GPU, NVMe, cartes réseau) à une VM, contournant l’hyperviseur pour l’accès au périphérique. DDA affaiblit considérablement l’isolation car la VM obtient un accès DMA direct au matériel, ce qui peut potentiellement permettre une évasion de VM via des vulnérabilités dans le firmware du périphérique. DDA ne doit être utilisé que pour des cas d’usage spécifiques et documentés.

Vérification :

# Vérifier les périphériques assignés en DDA
Get-VM | ForEach-Object {
    $vm = $_
    Get-VMAssignableDevice -VMName $vm.Name -ErrorAction SilentlyContinue | Select-Object @{N='VM';E={$vm.Name}}, InstanceID, LocationPath
}

# Lister les périphériques démontés de l'hôte (potentiellement assignés)
Get-PnpDevice | Where-Object { $_.Status -eq 'Error' -or $_.Status -eq 'Unknown' } | Select-Object Class, FriendlyName, InstanceId, Status
  • Valeur attendue : Aucun périphérique DDA assigné (ou liste documentée et justifiée)

Remédiation :

  1. PowerShell :
# Retirer l'assignation DDA d'une VM
Remove-VMAssignableDevice -VMName "VMName" -InstanceID "PCIe-Device-ID"
  1. Documenter et justifier chaque utilisation de DDA
  2. S’assurer que l’IOMMU est activé si DDA est utilisé

Valeur par défaut : Aucun périphérique DDA assigné

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.5.2 — RemoteFX vGPU — désactivation (déprécié et vulnérable)

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.3
MITRE ATT&CK T1611 (Escape to Host)
ANSSI ANSSI-VIRT R24
NIST NIST-125 §5.4, NIST-53 CM-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : RemoteFX vGPU est une technologie dépréciée qui permettait le partage de GPU entre VMs. Microsoft a désactivé cette fonctionnalité en raison de vulnérabilités critiques de sécurité (CVE-2020-1036, CVE-2020-1032, CVE-2020-1040, CVE-2020-1041, CVE-2020-1043) permettant l’évasion de VM et l’exécution de code à distance. RemoteFX vGPU ne doit jamais être activé.

Vérification :

# Vérifier si RemoteFX vGPU est configuré sur des VMs
Get-VM | Get-VMRemoteFx3dVideoAdapter -ErrorAction SilentlyContinue

# Vérifier si le rôle RemoteFX est installé
Get-WindowsFeature RDS-Virtualization -ErrorAction SilentlyContinue | Select-Object Name, Installed

# Vérifier les GPOs liées
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name fEnableRemoteFXAdvancedRemoteApp -ErrorAction SilentlyContinue
  • Valeur attendue : Aucun adaptateur RemoteFX vGPU, fonctionnalité non installée

Remédiation :

  1. PowerShell :
# Supprimer RemoteFX vGPU de toutes les VMs
Get-VM | Get-VMRemoteFx3dVideoAdapter -ErrorAction SilentlyContinue | Remove-VMRemoteFx3dVideoAdapter

# Désinstaller la fonctionnalité si installée
Remove-WindowsFeature RDS-Virtualization

Valeur par défaut : Déprécié et désactivé dans Windows Server 2025

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.6.1 — Fichiers de configuration VM protégés (ACL)

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 3.3
MITRE ATT&CK T1222.001 (File and Directory Permissions Modification: Windows)
ANSSI ANSSI-VIRT R25 — Protection des fichiers de l’hyperviseur
NIST NIST-125 §5.5, NIST-53 AC-3, AC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les fichiers de configuration des machines virtuelles (.vmcx, .vmrs, .vmgs) doivent être protégés par des ACL restrictives. Seuls le compte SYSTEM, les administrateurs Hyper-V et le service VMMS doivent avoir accès à ces fichiers. Des permissions trop ouvertes permettraient à un attaquant de modifier la configuration des VMs, d’extraire des données de mémoire (fichiers .vmrs) ou de compromettre les VMs blindées.

Vérification :

# Vérifier les ACL sur les répertoires de VMs
Get-VM | ForEach-Object {
    $vmPath = $_.Path
    if (Test-Path $vmPath) {
        Write-Output "=== VM: $($_.Name) - Path: $vmPath ==="
        Get-Acl $vmPath | Select-Object -ExpandProperty Access | Select-Object IdentityReference, FileSystemRights, AccessControlType
    }
}

# Vérifier les ACL sur le répertoire par défaut des VMs
$defaultPath = (Get-VMHost).VirtualMachinePath
Get-Acl $defaultPath | Select-Object -ExpandProperty Access | Format-Table IdentityReference, FileSystemRights, AccessControlType
  • Valeur attendue : Accès limité à SYSTEM, BUILTIN\Administrators, NT VIRTUAL MACHINE\Virtual Machines

Remédiation :

  1. PowerShell :
$vmPath = "D:\VMs"
$acl = Get-Acl $vmPath
$acl.SetAccessRuleProtection($true, $false) # Désactiver l'héritage
$acl.Access | ForEach-Object { $acl.RemoveAccessRule($_) }
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl","ContainerInherit,ObjectInherit","None","Allow")))
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Administrators","FullControl","ContainerInherit,ObjectInherit","None","Allow")))
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("NT VIRTUAL MACHINE\Virtual Machines","FullControl","ContainerInherit,ObjectInherit","None","Allow")))
Set-Acl $vmPath $acl

Valeur par défaut : Permissions héritées du volume parent

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.6.2 — Génération de VM (Generation 2) requise

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.4
MITRE ATT&CK T1542 (Pre-OS Boot), T1611 (Escape to Host)
ANSSI ANSSI-VIRT R26
NIST NIST-125 §5.6, NIST-53 SI-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Toutes les nouvelles VMs doivent être créées en Génération 2 (Generation 2) qui supporte Secure Boot UEFI, vTPM, et est requise pour les Shielded VMs. Les VMs de Génération 1 utilisent un BIOS émulé Legacy qui ne supporte pas les fonctionnalités de sécurité modernes comme le démarrage sécurisé. Les VMs de Génération 1 existantes doivent être migrées vers la Génération 2 lorsque possible.

Vérification :

# Vérifier la génération de chaque VM
Get-VM | Select-Object Name, Generation, State, Status | Sort-Object Generation

# Compter les VMs par génération
Get-VM | Group-Object Generation | Select-Object Name, Count

# Identifier les VMs Gen1 qui pourraient être migrées
Get-VM | Where-Object Generation -eq 1 | Select-Object Name, State, OperatingSystemShutdownEnabled
  • Valeur attendue : 100% des VMs en Génération 2

Remédiation :

  1. Créer les nouvelles VMs en Génération 2
  2. Pour les VMs Gen1 existantes : recréer en Gen2 et migrer les données
  3. Note : La conversion Gen1 vers Gen2 n’est pas supportée nativement — nécessite une recréation

Valeur par défaut : Choix lors de la création (Gen2 recommandé depuis Server 2016)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

3.6.3 — Secure Boot activé sur les VMs

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.4
MITRE ATT&CK T1542 (Pre-OS Boot), T1014 (Rootkit)
ANSSI ANSSI-VIRT R26
NIST NIST-125 §5.6, NIST-53 SI-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Secure Boot UEFI doit être activé sur toutes les VMs de Génération 2. Le Secure Boot dans les VMs empêche le chargement de code non signé lors du démarrage, protégeant contre les bootkits et rootkits au niveau de la VM. Le template de Secure Boot doit correspondre à l’OS invité (MicrosoftWindows pour Windows, MicrosoftUEFICertificateAuthority pour Linux).

Vérification :

# Vérifier Secure Boot sur toutes les VMs Gen2
Get-VM | Where-Object Generation -eq 2 | Get-VMFirmware | Select-Object VMName, SecureBoot, SecureBootTemplate

# VMs Gen2 sans Secure Boot
Get-VM | Where-Object Generation -eq 2 | Get-VMFirmware | Where-Object SecureBoot -ne "On" | Select-Object VMName
  • Valeur attendue : SecureBoot = On, SecureBootTemplate adapté à l’OS

Remédiation :

  1. PowerShell :
# Activer Secure Boot (VM doit être arrêtée)
Set-VMFirmware -VMName "VMName" -EnableSecureBoot On -SecureBootTemplate MicrosoftWindows

# Pour les VMs Linux
Set-VMFirmware -VMName "LinuxVM" -EnableSecureBoot On -SecureBootTemplate MicrosoftUEFICertificateAuthority
  1. Hyper-V Manager : Paramètres VM > Sécurité > Secure Boot

Valeur par défaut : Activé sur les VMs Gen2 Windows, désactivé par défaut sur les VMs Linux

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 4 — MACHINES VIRTUELLES BLINDÉES (SHIELDED VMs)

═══════════════════════════════════════════════════════════════════════════════

SECTION 4 — MACHINES VIRTUELLES BLINDÉES (SHIELDED VMs)

Objectif : Vérifier le déploiement et la configuration des Shielded VMs pour protéger les machines virtuelles sensibles contre les administrateurs malveillants de l’hôte, les accès non autorisés au stockage et les attaques par inspection mémoire. Les Shielded VMs constituent le niveau de protection le plus élevé offert par Hyper-V.

Références principales : Microsoft Guarded Fabric and Shielded VMs, ANSSI-VIRT R30-R38, NIST SP 800-125 §6, CIS Windows Server 2025 §18.9.76.


4.1.1 — Host Guardian Service (HGS) déployé et fonctionnel

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.5 — Guarded Fabric
MITRE ATT&CK T1611 (Escape to Host), T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R30 — Attestation de l’hyperviseur
NIST NIST-125 §6.1, NIST-53 SI-7, SC-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Host Guardian Service (HGS) est le composant central du Guarded Fabric qui fournit les services d’attestation et de protection de clé pour les hôtes Hyper-V. HGS vérifie l’intégrité et la configuration de chaque hôte avant de lui fournir les clés nécessaires au démarrage des Shielded VMs. HGS doit être déployé sur un cluster dédié, isolé du réseau de production, avec une haute disponibilité.

Vérification :

# Vérifier si HGS est configuré sur l'hôte
Get-HgsClientConfiguration | Select-Object IsHostGuarded, Mode, AttestationServerUrl, KeyProtectionServerUrl, AttestationStatus

# Vérifier l'état d'attestation
Get-HgsClientConfiguration | Select-Object AttestationStatus
# Valeurs : Passed, UnauthorizedHost, InsecureHostConfiguration, NotConfigured

# Sur le serveur HGS : vérifier le service
Get-HgsServer -ErrorAction SilentlyContinue | Select-Object AttestationUrl, KeyProtectionUrl
Get-HgsAttestationPolicy -ErrorAction SilentlyContinue
  • Valeur attendue : IsHostGuarded = True, AttestationStatus = Passed

Remédiation :

  1. Déployer HGS sur un cluster dédié (minimum 3 noeuds)
  2. PowerShell sur le serveur HGS :
Install-WindowsFeature HostGuardianServiceRole -IncludeManagementTools
Initialize-HgsServer -HgsServiceName "HGS" -SigningCertificateThumbprint $signingCert -EncryptionCertificateThumbprint $encCert
  1. Sur l’hôte Hyper-V :
Set-HgsClientConfiguration -AttestationServerUrl "https://hgs.domain.local/Attestation" -KeyProtectionServerUrl "https://hgs.domain.local/KeyProtection"

Valeur par défaut : HGS non déployé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.1.2 — Mode d’attestation TPM (et non Admin-trusted)

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1542 (Pre-OS Boot), T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R31 — Attestation matérielle de l’hyperviseur
NIST NIST-125 §6.1, NIST-53 IA-3, SI-7(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le mode d’attestation du Guarded Fabric doit être TPM (Trusted Platform Module) et non Admin-trusted (basé sur Active Directory). L’attestation TPM vérifie cryptographiquement l’identité du matériel, l’intégrité du firmware, la configuration du démarrage sécurisé et les politiques d’intégrité du code de l’hôte. L’attestation Admin-trusted repose uniquement sur l’appartenance à un groupe AD, ce qui est insuffisant car un administrateur compromis peut ajouter un hôte non sécurisé.

Vérification :

# Vérifier le mode d'attestation
Get-HgsClientConfiguration | Select-Object Mode
# Mode doit être "Tpm" et non "AD"

# Sur le serveur HGS
Get-HgsServer | Select-Object AttestationOperationMode
  • Valeur attendue : Mode = “Tpm”

Remédiation :

  1. Migrer de Admin-trusted vers TPM :
# Sur le serveur HGS
Set-HgsServer -TrustTpm
# Ajouter les endorsement keys TPM des hôtes
Add-HgsAttestationTpmHost -Path "C:\Attestation\host1-ek.xml"
Add-HgsAttestationTpmPolicy -Name "SecureBootPolicy" -Path "C:\Attestation\secureboot-policy.xml"

Valeur par défaut : Non configuré (choix lors du déploiement)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.1.3 — Haute disponibilité du cluster HGS

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R32
NIST NIST-125 §6.1, NIST-53 CP-2, CP-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le cluster HGS doit être hautement disponible (minimum 3 noeuds) car il est le point central de confiance du Guarded Fabric. Si HGS est indisponible, aucune Shielded VM ne peut démarrer et les VMs en cours d’exécution ne peuvent pas être migrées. Un déni de service sur HGS paralyse l’ensemble de l’infrastructure de virtualisation sécurisée.

Vérification :

# Vérifier le cluster HGS (depuis le serveur HGS)
Get-ClusterNode -ErrorAction SilentlyContinue | Select-Object Name, State
Get-ClusterResource -ErrorAction SilentlyContinue | Select-Object Name, State, ResourceType

# Vérifier les URLs HGS et leur disponibilité
$hgsConfig = Get-HgsClientConfiguration
Invoke-WebRequest -Uri "$($hgsConfig.AttestationServerUrl)/metadata" -UseBasicParsing -ErrorAction SilentlyContinue | Select-Object StatusCode
  • Valeur attendue : Cluster HGS avec 3+ noeuds, tous en état “Up”

Remédiation :

  1. Déployer HGS sur un cluster à 3 noeuds minimum
  2. Configurer la surveillance de la disponibilité du cluster HGS
  3. Documenter le plan de reprise en cas de défaillance HGS

Valeur par défaut : Noeud unique (non recommandé en production)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.2.1 — Shielded VMs déployées pour les charges sensibles

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1005 (Data from Local System), T1611 (Escape to Host)
ANSSI ANSSI-VIRT R33 — Chiffrement des VMs sensibles
NIST NIST-125 §6.2, NIST-53 SC-28, SC-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les machines virtuelles hébergeant des données sensibles (bases de données, contrôleurs de domaine, serveurs d’applications critiques) doivent être déployées en tant que Shielded VMs. Les Shielded VMs protègent contre l’inspection mémoire par l’administrateur de l’hôte, le vol de fichiers VHD, les modifications non autorisées de la configuration, et empêchent le démarrage sur des hôtes non attestés.

Vérification :

# Vérifier le statut de blindage de chaque VM
Get-VM | Get-VMSecurity | Select-Object VMName, Shielded, TpmEnabled, KsdEnabled, EncryptStateAndVmMigrationTraffic, VirtualizationBasedSecurityOptOut

# Identifier les VMs non blindées
Get-VM | Get-VMSecurity | Where-Object { $_.Shielded -ne $true } | Select-Object VMName

# Vérifier les Key Protectors
Get-VM | Get-VMKeyProtector -ErrorAction SilentlyContinue
  • Valeur attendue : Shielded = True pour les VMs sensibles

Remédiation :

  1. Créer une Shielded VM :
# Créer le Key Protector avec le certificat HGS
$kp = New-HgsKeyProtector -Owner $owner -Guardian $guardian -AllowExpired
Set-VMKeyProtector -VMName "SensitiveVM" -KeyProtector $kp.RawData
Enable-VMTPM -VMName "SensitiveVM"
Set-VMSecurityPolicy -VMName "SensitiveVM" -Shielded $true
  1. Utiliser les Shielding Data Files (.pdk) pour automatiser le déploiement

Valeur par défaut : VMs non blindées

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.2.2 — vTPM (Virtual TPM) activé sur les VMs

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1552 (Unsecured Credentials), T1003 (OS Credential Dumping)
ANSSI ANSSI-VIRT R34
NIST NIST-125 §6.2, NIST-53 SC-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le vTPM (Virtual Trusted Platform Module) doit être activé sur les VMs de Génération 2 pour permettre BitLocker dans la VM, le Measured Boot, la protection des clés Credential Guard et d’autres fonctionnalités de sécurité dépendant du TPM. Le vTPM est un prérequis pour les Shielded VMs et offre une protection cryptographique pour les secrets de la VM.

Vérification :

# Vérifier vTPM sur toutes les VMs Gen2
Get-VM | Where-Object Generation -eq 2 | Get-VMSecurity | Select-Object VMName, TpmEnabled

# VMs Gen2 sans vTPM
Get-VM | Where-Object Generation -eq 2 | Get-VMSecurity | Where-Object { $_.TpmEnabled -ne $true } | Select-Object VMName
  • Valeur attendue : TpmEnabled = True pour toutes les VMs Gen2

Remédiation :

  1. PowerShell :
# Activer vTPM (VM doit être arrêtée)
Enable-VMTPM -VMName "VMName"

# Configurer le Key Protector (prérequis pour vTPM)
$owner = New-HgsGuardian -Name "Owner" -GenerateCertificates
Set-VMKeyProtector -VMName "VMName" -NewLocalKeyProtector
Enable-VMTPM -VMName "VMName"

Valeur par défaut : vTPM désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.2.3 — Chiffrement de l’état et du trafic de migration

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1040 (Network Sniffing), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R35
NIST NIST-125 §6.3, NIST-53 SC-8(1), SC-28
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le chiffrement de l’état de la VM (EncryptStateAndVmMigrationTraffic) doit être activé pour protéger le contenu mémoire de la VM lors des opérations de sauvegarde, checkpoint et Live Migration. Sans ce chiffrement, les données en mémoire (y compris les mots de passe, clés de chiffrement et données sensibles) transitent en clair sur le réseau lors de la migration ou sont stockées en clair dans les fichiers de checkpoint.

Vérification :

# Vérifier le chiffrement de l'état et du trafic de migration
Get-VM | Get-VMSecurity | Select-Object VMName, EncryptStateAndVmMigrationTraffic, Shielded

# VMs sans chiffrement de l'état
Get-VM | Get-VMSecurity | Where-Object { $_.EncryptStateAndVmMigrationTraffic -ne $true } | Select-Object VMName
  • Valeur attendue : EncryptStateAndVmMigrationTraffic = True

Remédiation :

  1. PowerShell :
Set-VMSecurityPolicy -VMName "VMName" -EncryptStateAndVmMigrationTraffic $true

Valeur par défaut : Désactivé (sauf pour les Shielded VMs)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.3.1 — Key Protectors et Shielding Data Files (.pdk) sécurisés

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1552 (Unsecured Credentials), T1552.004 (Private Keys)
ANSSI ANSSI-VIRT R36 — Protection des clés de chiffrement VM
NIST NIST-125 §6.2, NIST-53 SC-12, SC-17
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Key Protectors et les Shielding Data Files (.pdk) contiennent les clés de chiffrement et les métadonnées nécessaires au démarrage des Shielded VMs. Ces fichiers doivent être stockés de manière sécurisée avec des ACL restrictives. Les certificats Guardian Owner doivent être protégés et sauvegardés de manière sécurisée. La compromission de ces clés permettrait le démarrage de Shielded VMs sur des hôtes non autorisés.

Vérification :

# Vérifier les Guardians (propriétaires de clés)
Get-HgsGuardian | Select-Object Name, HasCertificates, SigningCertificate, EncryptionCertificate

# Vérifier les Key Protectors des VMs
Get-VM | ForEach-Object {
    $kp = Get-VMKeyProtector -VMName $_.Name -ErrorAction SilentlyContinue
    if ($kp) {
        [PSCustomObject]@{VM=$_.Name; HasKeyProtector=$true}
    }
}

# Vérifier les certificats Guardian dans le magasin
Get-ChildItem Cert:\LocalMachine\Shielded* -ErrorAction SilentlyContinue
  • Valeur attendue : Guardians configurés avec certificats valides, Key Protectors appliqués

Remédiation :

  1. Sauvegarder les clés Guardian :
Export-HgsGuardian -Name "Owner" -Path "C:\Secure\GuardianBackup.xml"
  1. Protéger les fichiers .pdk et les clés Guardian par des ACL restrictives
  2. Stocker les sauvegardes des clés dans un coffre-fort sécurisé

Valeur par défaut : Non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.3.2 — Politiques d’attestation Code Integrity

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1014 (Rootkit), T1553 (Subvert Trust Controls)
ANSSI ANSSI-VIRT R31
NIST NIST-125 §6.1, NIST-53 SI-7(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les politiques d’intégrité du code (Code Integrity Policies) doivent être configurées sur les hôtes Hyper-V du Guarded Fabric et enregistrées auprès du HGS. Ces politiques définissent quels pilotes et logiciels sont autorisés à s’exécuter sur l’hôte, empêchant l’exécution de code malveillant qui pourrait compromettre la sécurité des Shielded VMs.

Vérification :

# Vérifier les politiques CI sur l'hôte
Get-CIPolicy -FilePath "C:\Windows\System32\CodeIntegrity\SIPolicy.p7b" -ErrorAction SilentlyContinue

# Vérifier les politiques enregistrées au HGS
Get-HgsAttestationPolicy -Name "CI-Policy*" -ErrorAction SilentlyContinue

# Vérifier l'état HVCI/CI
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object CodeIntegrityPolicyEnforcementStatus

Remédiation :

  1. Créer une politique CI :
New-CIPolicy -FilePath "C:\CI\HVHostPolicy.xml" -Level Publisher -Fallback Hash
ConvertFrom-CIPolicy "C:\CI\HVHostPolicy.xml" "C:\CI\HVHostPolicy.p7b"
  1. Enregistrer au HGS :
Add-HgsAttestationCIPolicy -Name "HV-Host-CI-Policy" -Path "C:\CI\HVHostPolicy.p7b"

Valeur par défaut : Aucune politique CI (mode audit)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.3.3 — Certificates HGS — validité et renouvellement

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1552.004 (Private Keys), T1556 (Modify Authentication Process)
ANSSI ANSSI-VIRT R36
NIST NIST-53 SC-17, IA-5(2)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les certificats utilisés par le Host Guardian Service (certificats de signature et de chiffrement) doivent être surveillés pour leur date d’expiration et renouvelés avant leur expiration. L’expiration d’un certificat HGS empêche l’attestation des hôtes et le démarrage des Shielded VMs, provoquant un déni de service critique sur l’ensemble du Guarded Fabric.

Vérification :

# Vérifier les certificats HGS (depuis le serveur HGS)
Get-HgsServer | Select-Object SigningCertificate, EncryptionCertificate
$sigCert = Get-HgsServer | Select-Object -ExpandProperty SigningCertificate
$encCert = Get-HgsServer | Select-Object -ExpandProperty EncryptionCertificate

# Vérifier la date d'expiration
Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Thumbprint -in @($sigCert, $encCert) } | Select-Object Subject, NotAfter, @{N='DaysRemaining';E={($_.NotAfter - (Get-Date)).Days}}
  • Valeur attendue : Certificats valides avec > 90 jours avant expiration

Remédiation :

  1. Renouveler les certificats HGS avant expiration
  2. Configurer des alertes pour les certificats expirant dans < 60 jours
  3. Documenter la procédure de renouvellement des certificats HGS

Valeur par défaut : Certificats auto-signés si non configurés avec une PKI

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

4.3.4 — Encryption-Supported vs Shielded — classification des VMs

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76.5
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R33
NIST NIST-125 §6.2, NIST-53 SC-28
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Hyper-V offre deux niveaux de protection pour les VMs : Encryption-Supported (chiffrement sans restriction complète de la console) et Shielded (chiffrement complet avec restrictions d’accès à la console, pas de connexion VMConnect en mode amélioré). Les VMs sensibles doivent être classifiées et le niveau de protection approprié doit être appliqué. Les VMs Shielded offrent une protection maximale mais limitent les options de dépannage.

Vérification :

# Classifier les VMs par niveau de protection
Get-VM | Get-VMSecurity | Select-Object VMName, Shielded, TpmEnabled, EncryptStateAndVmMigrationTraffic | Sort-Object Shielded -Descending

Remédiation :

  1. Définir une politique de classification des VMs (Standard, Encryption-Supported, Shielded)
  2. Appliquer le niveau Shielded aux VMs les plus sensibles
  3. Documenter les exceptions

Valeur par défaut : VMs Standard (non protégées)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 5 — RÉSEAU VIRTUEL (Virtual Networking)

═══════════════════════════════════════════════════════════════════════════════

SECTION 5 — RÉSEAU VIRTUEL (Virtual Networking)

Objectif : Vérifier la sécurité de l’infrastructure réseau virtuelle Hyper-V, y compris les commutateurs virtuels, le VLAN tagging, l’isolation réseau, les protections de couche 2 et la micro-segmentation. Le réseau virtuel est le vecteur d’attaque principal entre les VMs et vers le réseau physique.

Références principales : Microsoft Hyper-V Virtual Switch Security, ANSSI-VIRT R40-R55, NIST SP 800-125 §7, CIS Windows Server 2025 §18.9.76.


5.1.1 — Types de Virtual Switch — utilisation appropriée

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 12.1 — Segmentation réseau
MITRE ATT&CK T1599 (Network Boundary Bridging), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R40 — Architecture réseau virtuel sécurisée
NIST NIST-125 §7.1, NIST-53 SC-7, AC-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Hyper-V propose trois types de commutateurs virtuels : External (connecté au réseau physique), Internal (communication hôte-VMs uniquement) et Private (communication inter-VMs uniquement). Le type de switch doit être choisi en fonction du besoin de connectivité de chaque groupe de VMs. Les VMs qui n’ont pas besoin d’accéder au réseau externe doivent utiliser des switches Internal ou Private pour limiter la surface d’attaque réseau.

Vérification :

# Lister tous les commutateurs virtuels avec leurs types
Get-VMSwitch | Select-Object Name, SwitchType, NetAdapterInterfaceDescription, AllowManagementOS, IovEnabled, BandwidthReservationMode

# Vérifier quelles VMs sont connectées à chaque switch
Get-VMSwitch | ForEach-Object {
    $sw = $_
    $vms = Get-VMNetworkAdapter -All | Where-Object SwitchName -eq $sw.Name
    [PSCustomObject]@{Switch=$sw.Name; Type=$sw.SwitchType; VMs=($vms.VMName -join ', ')}
}

# Vérifier les adaptateurs réseau des VMs
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, SwitchName, MacAddress, Status
  • Valeur attendue : Utilisation de switches Private/Internal pour les VMs sans besoin d’accès externe

Remédiation :

  1. PowerShell :
# Créer des switches adaptés à chaque zone
New-VMSwitch -Name "vSwitch-Production" -SwitchType External -NetAdapterName "NIC1" -AllowManagementOS $false
New-VMSwitch -Name "vSwitch-Management" -SwitchType Internal
New-VMSwitch -Name "vSwitch-Isolated" -SwitchType Private

Valeur par défaut : Aucun switch virtuel (à créer)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.1.2 — Management OS séparé du réseau VM

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 12.1
MITRE ATT&CK T1557 (Adversary-in-the-Middle), T1021 (Remote Services)
ANSSI ANSSI-VIRT R41 — Séparation du réseau de gestion
NIST NIST-125 §7.1, NIST-53 SC-7(13)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le réseau de gestion de l’hôte Hyper-V (Management OS) ne doit pas partager le même adaptateur réseau physique et le même VLAN que les VMs de production. Si l’option “Allow management operating system to share this network adapter” est activée sur un switch External, le trafic de gestion de l’hôte transite sur le même réseau que les VMs, permettant potentiellement à une VM compromise d’intercepter ou d’attaquer le trafic de gestion.

Vérification :

# Vérifier si AllowManagementOS est activé sur les switches External
Get-VMSwitch | Where-Object SwitchType -eq "External" | Select-Object Name, AllowManagementOS, NetAdapterInterfaceDescription

# Vérifier les adaptateurs réseau de gestion
Get-VMNetworkAdapter -ManagementOS | Select-Object Name, SwitchName, MacAddress, IPAddresses
  • Valeur attendue : AllowManagementOS = False sur les switches de production, ou VLAN de gestion dédié

Remédiation :

  1. Option 1 — NIC dédié pour la gestion :
# Créer le switch production sans gestion OS
Set-VMSwitch -Name "vSwitch-Production" -AllowManagementOS $false

# Utiliser un NIC séparé pour la gestion
New-VMSwitch -Name "vSwitch-Mgmt" -SwitchType External -NetAdapterName "NIC-Mgmt" -AllowManagementOS $true
  1. Option 2 — VLAN dédié :
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "Management" -Access -VlanId 100

Valeur par défaut : AllowManagementOS = True

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.2.1 — VLAN Tagging configuré pour l’isolation réseau

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 12.2
MITRE ATT&CK T1599 (Network Boundary Bridging), T1046 (Network Service Discovery)
ANSSI ANSSI-VIRT R42 — Isolation par VLAN
NIST NIST-125 §7.2, NIST-53 SC-7, SC-32
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le VLAN tagging doit être configuré sur les adaptateurs réseau virtuels des VMs pour assurer l’isolation réseau de couche 2 entre les différentes zones de sécurité (production, développement, DMZ, gestion). Chaque zone doit avoir son propre VLAN ID, empêchant le trafic inter-zones non autorisé. Le VLAN tagging Hyper-V doit être cohérent avec la configuration des switches physiques.

Vérification :

# Vérifier la configuration VLAN de chaque VM
Get-VM | Get-VMNetworkAdapter | Get-VMNetworkAdapterVlan | Select-Object VMName, VMNetworkAdapterName, OperationMode, AccessVlanId, NativeVlanId

# VMs sans VLAN configuré
Get-VM | Get-VMNetworkAdapter | Get-VMNetworkAdapterVlan | Where-Object { $_.OperationMode -eq 'Untagged' -or $_.AccessVlanId -eq 0 } | Select-Object VMName

# Vérifier la cohérence des VLANs par zone
Get-VM | Get-VMNetworkAdapter | Get-VMNetworkAdapterVlan | Group-Object AccessVlanId | Select-Object Name, Count, @{N='VMs';E={$_.Group.VMName -join ', '}}
  • Valeur attendue : Toutes les VMs avec un VLAN ID approprié à leur zone

Remédiation :

  1. PowerShell :
# Configurer le VLAN sur un adaptateur VM
Set-VMNetworkAdapterVlan -VMName "VMName" -Access -VlanId 100

# Configuration Trunk pour les VMs multi-VLAN (routeurs virtuels)
Set-VMNetworkAdapterVlan -VMName "RouterVM" -Trunk -AllowedVlanIdList "100-200" -NativeVlanId 1
  1. Hyper-V Manager : Paramètres VM > Carte réseau > VLAN

Valeur par défaut : Pas de VLAN (mode Untagged)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.3.1 — DHCP Guard activé sur les adaptateurs VM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.2
MITRE ATT&CK T1557.002 (ARP Cache Poisoning), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R43 — Protection contre les serveurs DHCP malveillants
NIST NIST-125 §7.3, NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le DHCP Guard doit être activé sur les adaptateurs réseau virtuels des VMs qui ne sont pas des serveurs DHCP autorisés. Le DHCP Guard empêche une VM compromise de se comporter comme un serveur DHCP rogue, distribuant des configurations réseau malveillantes (DNS, passerelle) aux autres VMs et postes du réseau. Une VM avec un DHCP rogue peut rediriger tout le trafic réseau vers elle-même pour l’interception.

Vérification :

# Vérifier DHCP Guard sur toutes les VMs
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, DhcpGuard

# VMs sans DHCP Guard
Get-VM | Get-VMNetworkAdapter | Where-Object { $_.DhcpGuard -ne 'On' } | Select-Object VMName, Name
  • Valeur attendue : DhcpGuard = On pour toutes les VMs sauf les serveurs DHCP légitimes

Remédiation :

  1. PowerShell :
# Activer DHCP Guard sur toutes les VMs
Get-VM | Get-VMNetworkAdapter | Set-VMNetworkAdapter -DhcpGuard On

# Désactiver pour les serveurs DHCP légitimes
Set-VMNetworkAdapter -VMName "DHCP-Server" -DhcpGuard Off
  1. Hyper-V Manager : Paramètres VM > Carte réseau > Fonctionnalités avancées > DHCP Guard

Valeur par défaut : DhcpGuard = Off

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.3.2 — Router Guard activé sur les adaptateurs VM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.2
MITRE ATT&CK T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R44 — Protection contre le routage malveillant
NIST NIST-125 §7.3, NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Router Guard empêche une VM de se comporter comme un routeur en envoyant des messages Router Advertisement (RA) et DHCP redirect non autorisés. Une VM compromise pourrait utiliser ces messages pour rediriger le trafic réseau IPv6 à travers elle-même, permettant l’interception et la modification du trafic. Le Router Guard doit être activé sur toutes les VMs sauf les routeurs virtuels légitimes.

Vérification :

# Vérifier Router Guard sur toutes les VMs
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, RouterGuard

# VMs sans Router Guard
Get-VM | Get-VMNetworkAdapter | Where-Object { $_.RouterGuard -ne 'On' } | Select-Object VMName, Name
  • Valeur attendue : RouterGuard = On pour toutes les VMs sauf les routeurs

Remédiation :

  1. PowerShell :
Get-VM | Get-VMNetworkAdapter | Set-VMNetworkAdapter -RouterGuard On
  1. Hyper-V Manager : Paramètres VM > Carte réseau > Fonctionnalités avancées > Router Guard

Valeur par défaut : RouterGuard = Off

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.3.3 — MAC Address Spoofing Protection

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.2
MITRE ATT&CK T1557.002 (ARP Cache Poisoning), T1036 (Masquerading)
ANSSI ANSSI-VIRT R45 — Protection contre l’usurpation MAC
NIST NIST-125 §7.3, NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La protection contre l’usurpation d’adresses MAC (MAC Address Spoofing) doit être désactivée (= protection active) sur les adaptateurs réseau virtuels des VMs. Quand le MAC spoofing est autorisé, une VM peut modifier son adresse MAC pour usurper l’identité d’une autre machine sur le réseau, contourner les ACL basées sur MAC, ou mener des attaques ARP poisoning. Le MAC spoofing ne doit être autorisé que pour des cas spécifiques (NIC teaming dans la VM, NLB).

Vérification :

# Vérifier MAC Address Spoofing sur toutes les VMs
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, MacAddressSpoofing

# VMs avec MAC spoofing autorisé
Get-VM | Get-VMNetworkAdapter | Where-Object { $_.MacAddressSpoofing -eq 'On' } | Select-Object VMName, Name
  • Valeur attendue : MacAddressSpoofing = Off (protection active)

Remédiation :

  1. PowerShell :
Get-VM | Get-VMNetworkAdapter | Set-VMNetworkAdapter -MacAddressSpoofing Off
  1. Hyper-V Manager : Paramètres VM > Carte réseau > Fonctionnalités avancées > MAC Address Spoofing = Désactivé

Valeur par défaut : MacAddressSpoofing = Off

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.3.4 — Port ACLs et Extended Port ACLs

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.3
MITRE ATT&CK T1046 (Network Service Discovery), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R46 — Filtrage au niveau du port virtuel
NIST NIST-125 §7.3, NIST-53 SC-7(5)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Extended Port ACLs doivent être configurées sur les adaptateurs réseau virtuels pour filtrer le trafic réseau au niveau du port du switch virtuel. Les Port ACLs permettent de définir des règles de filtrage basées sur les adresses IP source/destination, les ports TCP/UDP et les protocoles, créant un pare-feu de micro-segmentation au niveau de l’hyperviseur. Cela complète les pare-feux dans les VMs invitées.

Vérification :

# Vérifier les Extended Port ACLs
Get-VM | Get-VMNetworkAdapter | Get-VMNetworkAdapterExtendedAcl | Select-Object VMName, Direction, Action, LocalIPAddress, RemoteIPAddress, LocalPort, RemotePort, Protocol

# Vérifier les Port ACLs (legacy)
Get-VM | Get-VMNetworkAdapter | Get-VMNetworkAdapterAcl | Select-Object VMName, Direction, Action, LocalAddress, RemoteAddress

Remédiation :

  1. PowerShell :
# Ajouter une Extended Port ACL (autoriser HTTPS sortant)
Add-VMNetworkAdapterExtendedAcl -VMName "WebServer" -Direction Outbound -Action Allow -RemotePort "443" -Protocol TCP -Weight 10

# Bloquer tout autre trafic sortant
Add-VMNetworkAdapterExtendedAcl -VMName "WebServer" -Direction Outbound -Action Deny -Weight 1

Valeur par défaut : Aucune ACL (tout le trafic est autorisé)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.4.1 — NIC Teaming — configuration sécurisée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 12.1
MITRE ATT&CK T1498 (Network Denial of Service)
ANSSI ANSSI-VIRT R47
NIST NIST-125 §7.4, NIST-53 CP-8
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si le NIC Teaming (association de cartes réseau) est utilisé pour la haute disponibilité réseau des VMs, il doit être configuré en mode Switch-Independent avec Hyper-V Port comme algorithme de répartition de charge pour les switches virtuels Hyper-V. Le teaming au niveau de l’hôte (SET — Switch Embedded Teaming) est recommandé plutôt que le teaming traditionnel pour les environnements Hyper-V.

Vérification :

# Vérifier le NIC Teaming traditionnel
Get-NetLbfoTeam | Select-Object Name, TeamingMode, LoadBalancingAlgorithm, Status

# Vérifier le Switch Embedded Teaming (SET)
Get-VMSwitch | Select-Object Name, EmbeddedTeamingEnabled, @{N='TeamMembers';E={$_.NetAdapterInterfaceDescription -join ', '}}

# Vérifier les adaptateurs SR-IOV
Get-VMSwitch | Select-Object Name, IovEnabled, IovSupport

Remédiation :

  1. PowerShell (SET recommandé) :
New-VMSwitch -Name "SET-vSwitch" -NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $true -AllowManagementOS $true

Valeur par défaut : Aucun teaming

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.4.2 — SR-IOV — contrôle de l’utilisation

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.1
MITRE ATT&CK T1611 (Escape to Host)
ANSSI ANSSI-VIRT R48 — Contrôle de l’accès matériel direct
NIST NIST-125 §7.4, NIST-53 SC-41
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : SR-IOV (Single Root I/O Virtualization) permet aux VMs d’accéder directement au matériel réseau physique, contournant le switch virtuel Hyper-V. Si cela améliore les performances réseau, SR-IOV réduit l’isolation car les VMs interagissent directement avec le firmware du NIC physique. SR-IOV désactive également certaines fonctionnalités de sécurité du switch virtuel (Port ACLs, DHCP Guard, etc.). Son utilisation doit être limitée et documentée.

Vérification :

# Vérifier SR-IOV sur les switches
Get-VMSwitch | Select-Object Name, IovEnabled, IovSupport, IovVirtualFunctionCount

# Vérifier les VMs utilisant SR-IOV
Get-VM | Get-VMNetworkAdapter | Where-Object { $_.IovWeight -gt 0 } | Select-Object VMName, Name, IovWeight

# Vérifier les Virtual Functions SR-IOV en usage
Get-NetAdapterSriov | Select-Object Name, NumVFs, CurrentVFs
  • Valeur attendue : SR-IOV désactivé sauf besoin documenté de performance

Remédiation :

  1. Désactiver SR-IOV si non requis :
Set-VMNetworkAdapter -VMName "VMName" -IovWeight 0

Valeur par défaut : SR-IOV désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.5.1 — Network QoS (Quality of Service) configuré

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 12.1
MITRE ATT&CK T1498 (Network Denial of Service)
ANSSI ANSSI-VIRT R49
NIST NIST-125 §7.2, NIST-53 SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le QoS réseau (Quality of Service) doit être configuré sur les adaptateurs réseau virtuels pour garantir une bande passante minimale aux VMs critiques et empêcher les VMs non prioritaires de consommer toute la bande passante disponible. Le QoS réseau Hyper-V supporte les modes Absolute (en Mbps) et Weight (poids relatif).

Vérification :

# Vérifier la configuration QoS du switch
Get-VMSwitch | Select-Object Name, BandwidthReservationMode, DefaultFlowMinimumBandwidthAbsolute, DefaultFlowMinimumBandwidthWeight

# Vérifier le QoS par adaptateur
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, BandwidthSetting, @{N='MinBandwidthAbsolute';E={$_.BandwidthSetting.MinimumBandwidthAbsolute}}, @{N='MaxBandwidth';E={$_.BandwidthSetting.MaximumBandwidth}}

Remédiation :

  1. PowerShell :
# Configurer le mode de bande passante du switch
Set-VMSwitch -Name "vSwitch1" -DefaultFlowMinimumBandwidthWeight 10

# Configurer le QoS par VM
Set-VMNetworkAdapter -VMName "CriticalVM" -MinimumBandwidthWeight 50 -MaximumBandwidth 5000000000

Valeur par défaut : QoS non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.5.2 — Protected Network — isolation de sous-réseau VM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.2
MITRE ATT&CK T1046 (Network Service Discovery)
ANSSI ANSSI-VIRT R50 — Micro-segmentation
NIST NIST-125 §7.2, NIST-53 SC-7(21)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La fonctionnalité Protected Network (réseau protégé) doit être activée sur les adaptateurs réseau des VMs critiques dans un cluster Hyper-V. Si la connectivité réseau est perdue, la VM est automatiquement migrée vers un autre noeud du cluster ayant une connectivité réseau fonctionnelle. Cela assure la continuité réseau des VMs critiques en cas de défaillance réseau sur un hôte.

Vérification :

# Vérifier Protected Network
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, IsFailoverNetworkAdapterEnabled

# Vérifier la configuration du cluster pour la migration automatique réseau
Get-ClusterResource | Where-Object ResourceType -eq "Virtual Machine" | Get-ClusterParameter -Name ProtectedNetwork -ErrorAction SilentlyContinue

Remédiation :

  1. PowerShell :
Set-VMNetworkAdapter -VMName "CriticalVM" -ProtectedNetwork $true

Valeur par défaut : Non activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.6.1 — Virtual Switch Extensions — audit et contrôle

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.1
MITRE ATT&CK T1557 (Adversary-in-the-Middle), T1205 (Traffic Signaling)
ANSSI ANSSI-VIRT R51
NIST NIST-125 §7.1, NIST-53 CM-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les extensions du switch virtuel (Virtual Switch Extensions) — telles que les solutions de monitoring réseau, de filtrage ou de capture de paquets — doivent être inventoriées, approuvées et contrôlées. Les extensions malveillantes ou non autorisées pourraient intercepter, modifier ou rediriger le trafic réseau de toutes les VMs connectées au switch.

Vérification :

# Lister toutes les extensions de switch virtuel
Get-VMSwitch | Get-VMSwitchExtension | Select-Object SwitchName, Name, Vendor, Enabled, Running, ExtensionType

# Extensions actives
Get-VMSwitch | Get-VMSwitchExtension | Where-Object Enabled | Select-Object SwitchName, Name, Vendor
  • Valeur attendue : Seules les extensions approuvées et documentées sont activées

Remédiation :

  1. PowerShell :
# Désactiver une extension non autorisée
Disable-VMSwitchExtension -VMSwitchName "vSwitch1" -Name "Suspicious Extension"
  1. Documenter et approuver chaque extension déployée

Valeur par défaut : Extension Microsoft NDIS Capture (activée par défaut)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

5.6.2 — SDN (Software Defined Networking) — sécurité du Network Controller

Attribut Valeur
Niveau �� Élevé
Référence CIS CIS Control 12.1
MITRE ATT&CK T1599 (Network Boundary Bridging)
ANSSI ANSSI-VIRT R52 — Sécurité du SDN
NIST NIST-125 §7.5, NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si le SDN (Software Defined Networking) est déployé avec Hyper-V, le Network Controller doit être sécurisé avec des certificats TLS, une authentification Kerberos et des ACL restrictives. Le Network Controller est le cerveau du SDN et sa compromission permettrait la modification de toutes les règles réseau, le contournement de la segmentation et l’interception du trafic.

Vérification :

# Vérifier le Network Controller (si déployé)
Get-NetworkController -ErrorAction SilentlyContinue | Select-Object Node, ClusterAuthentication, ServerCertificate

# Vérifier les règles de sécurité SDN
Get-NetworkControllerAccessControlList -ErrorAction SilentlyContinue | Select-Object ResourceId, Properties

Remédiation :

  1. Déployer le Network Controller en cluster haute disponibilité
  2. Utiliser des certificats TLS pour toutes les communications
  3. Configurer l’authentification Kerberos pour le cluster SDN

Valeur par défaut : SDN non déployé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 6 — STOCKAGE VIRTUEL (Virtual Storage Security)

═══════════════════════════════════════════════════════════════════════════════

SECTION 6 — STOCKAGE VIRTUEL (Virtual Storage Security)

Objectif : Sécuriser les composants de stockage virtuel d’Hyper-V, y compris les fichiers de disques virtuels (VHD/VHDX), les permissions d’accès aux fichiers VM, le chiffrement du stockage et les protocoles de stockage réseau. Le stockage virtuel contient l’intégralité des données des machines virtuelles.

Références principales : Microsoft Hyper-V Storage Best Practices, ANSSI-VIRT R55-R65, NIST SP 800-125 §8, CIS Windows Server 2025.


6.1.1 — Format VHDX utilisé (pas VHD legacy)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.6
MITRE ATT&CK T1486 (Data Encrypted for Impact), T1005 (Data from Local System)
ANSSI ANSSI-VIRT R55 — Format de disque virtuel sécurisé
NIST NIST-125 §8.1, NIST-53 SC-28
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le format VHDX doit être utilisé pour tous les disques virtuels au lieu du format VHD legacy. Le VHDX supporte une taille maximale de 64 To (contre 2 To pour VHD), offre une meilleure résilience contre la corruption de données grâce à un journal de métadonnées, et est requis pour les fonctionnalités avancées comme les Shared VHDX, les checkpoints de production et le redimensionnement en ligne.

Vérification :

# Identifier les disques VHD legacy
Get-VM | Get-VMHardDiskDrive | Where-Object { $_.Path -like "*.vhd" -and $_.Path -notlike "*.vhdx" } | Select-Object VMName, ControllerType, ControllerNumber, ControllerLocation, Path

# Compter les formats
Get-VM | Get-VMHardDiskDrive | Group-Object @{E={if ($_.Path -like "*.vhdx") {"VHDX"} else {"VHD"}}} | Select-Object Name, Count
  • Valeur attendue : 100% des disques en format VHDX

Remédiation :

  1. Convertir VHD en VHDX :
Convert-VHD -Path "C:\VMs\disk.vhd" -DestinationPath "C:\VMs\disk.vhdx" -VHDType Dynamic
  1. Mettre à jour la configuration VM pour pointer vers le nouveau VHDX

Valeur par défaut : VHDX pour les nouvelles VMs (depuis Server 2012 R2)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.1.2 — Permissions ACL restrictives sur les fichiers VHD/VHDX

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 3.3
MITRE ATT&CK T1005 (Data from Local System), T1222.001 (File Permissions Modification)
ANSSI ANSSI-VIRT R56 — Protection des fichiers de disques virtuels
NIST NIST-125 §8.2, NIST-53 AC-3, AC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les fichiers VHD/VHDX contiennent l’intégralité du système de fichiers de la VM invitée. Des permissions trop ouvertes permettraient à un utilisateur non autorisé de monter le fichier VHDX, d’accéder aux données de la VM, de modifier le système de fichiers ou d’y injecter du code malveillant. Les ACL doivent limiter l’accès à SYSTEM, NT VIRTUAL MACHINE\Virtual Machines et les administrateurs Hyper-V.

Vérification :

# Vérifier les ACL sur chaque fichier VHDX
Get-VM | Get-VMHardDiskDrive | ForEach-Object {
    if (Test-Path $_.Path) {
        $acl = Get-Acl $_.Path
        [PSCustomObject]@{
            VM = $_.VMName
            Path = $_.Path
            Access = ($acl.Access | ForEach-Object { "$($_.IdentityReference):$($_.FileSystemRights)" }) -join '; '
        }
    }
}

# Vérifier les permissions sur le répertoire de stockage VM
Get-VMHost | Select-Object VirtualHardDiskPath | ForEach-Object {
    Get-Acl $_.VirtualHardDiskPath | Select-Object -ExpandProperty Access | Select-Object IdentityReference, FileSystemRights, AccessControlType
}
  • Valeur attendue : Accès restreint à SYSTEM, NT VIRTUAL MACHINE\Virtual Machines, Hyper-V Administrators

Remédiation :

  1. PowerShell :
$vhdPath = "D:\VMs\VM01\disk.vhdx"
$acl = Get-Acl $vhdPath
$acl.SetAccessRuleProtection($true, $false)
$acl.Access | ForEach-Object { $acl.RemoveAccessRule($_) } | Out-Null
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl","Allow")))
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("NT VIRTUAL MACHINE\Virtual Machines","FullControl","Allow")))
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Hyper-V Administrators","FullControl","Allow")))
Set-Acl $vhdPath $acl

Valeur par défaut : Permissions héritées du répertoire parent

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.2.1 — BitLocker dans les VMs invitées (chiffrement interne)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.6
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R57 — Chiffrement des données dans la VM
NIST NIST-125 §8.3, NIST-53 SC-28(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : BitLocker doit être activé à l’intérieur des VMs invitées contenant des données sensibles, en utilisant le vTPM comme protecteur de clé. Le chiffrement BitLocker dans la VM protège les données même si le fichier VHDX est copié ou exfiltré depuis l’hôte, car les clés de chiffrement sont liées au vTPM qui est lui-même protégé par le Key Protector de la Shielded VM.

Vérification :

# Vérifier que vTPM est activé (prérequis pour BitLocker dans VM)
Get-VM | Get-VMSecurity | Where-Object TpmEnabled | Select-Object VMName, TpmEnabled

# Dans la VM invitée (via PowerShell Direct) :
Invoke-Command -VMName "VMName" -ScriptBlock {
    Get-BitLockerVolume | Select-Object MountPoint, VolumeStatus, ProtectionStatus, EncryptionMethod
} -Credential $cred

Remédiation :

  1. Activer vTPM sur la VM (voir contrôle 4.2.2)
  2. Dans la VM invitée :
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -TpmProtector

Valeur par défaut : BitLocker désactivé dans la VM

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.2.2 — Storage QoS — politiques appliquées

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R58
NIST NIST-53 SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les politiques Storage QoS (Quality of Service de stockage) doivent être appliquées aux disques virtuels des VMs pour garantir des performances minimales aux VMs critiques et empêcher les « voisins bruyants » (noisy neighbors) de dégrader les performances du sous-système de stockage partagé.

Vérification :

# Vérifier les politiques Storage QoS
Get-StorageQosPolicy -ErrorAction SilentlyContinue | Select-Object Name, PolicyType, MinimumIops, MaximumIops

# Vérifier les flux et leur conformité
Get-StorageQosFlow -ErrorAction SilentlyContinue | Select-Object InitiatorName, Status, MinimumIOPS, MaximumIOPS, StorageNodeIOPS

Remédiation :

  1. PowerShell :
New-StorageQosPolicy -Name "Critical-VMs" -PolicyType Dedicated -MinimumIops 500 -MaximumIops 5000
New-StorageQosPolicy -Name "Standard-VMs" -PolicyType Aggregated -MinimumIops 200 -MaximumIops 2000

Valeur par défaut : Aucune politique QoS

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.3.1 — Shared VHDX / VHD Sets — sécurité du partage

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.3
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R59
NIST NIST-125 §8.4, NIST-53 AC-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Shared VHDX et VHD Sets (.vhds) permettent à plusieurs VMs de partager un même disque virtuel (scénarios de clustering invité). Ce partage crée des dépendances et des risques de sécurité : une VM compromise avec accès au disque partagé pourrait compromettre les données des autres VMs. Les permissions et l’isolation doivent être strictement contrôlées.

Vérification :

# Identifier les Shared VHDX et VHD Sets
Get-VM | Get-VMHardDiskDrive | Where-Object { $_.SupportPersistentReservations -eq $true -or $_.Path -like "*.vhds" } | Select-Object VMName, Path, SupportPersistentReservations

# Vérifier les permissions
Get-VM | Get-VMHardDiskDrive | Where-Object { $_.Path -like "*.vhds" } | ForEach-Object {
    Get-Acl $_.Path | Select-Object Path, @{N='Access';E={$_.Access.IdentityReference -join '; '}}
}

Remédiation :

  1. Limiter l’utilisation de Shared VHDX aux scénarios de clustering invité documentés
  2. Appliquer des ACL restrictives sur les fichiers partagés
  3. Privilégier VHD Sets (.vhds) au lieu de Shared VHDX pour les backups

Valeur par défaut : Aucun disque partagé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.3.2 — Storage Spaces Direct (S2D) — sécurité du cluster de stockage

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.6
MITRE ATT&CK T1485 (Data Destruction), T1490 (Inhibit System Recovery)
ANSSI ANSSI-VIRT R60
NIST NIST-125 §8.4, NIST-53 SC-28, CP-9
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si Storage Spaces Direct (S2D) est utilisé pour le stockage des VMs dans un cluster hyperconvergé, la sécurité du pool de stockage doit être vérifiée. Cela inclut le chiffrement au repos (BitLocker sur les CSV), la résilience du pool (Mirror ou Parity), les permissions sur les CSV et la protection du cluster de stockage contre les accès non autorisés.

Vérification :

# Vérifier Storage Spaces Direct
Get-StoragePool -ErrorAction SilentlyContinue | Select-Object FriendlyName, OperationalStatus, HealthStatus, Size, AllocatedSize

# Vérifier les volumes CSV
Get-ClusterSharedVolume -ErrorAction SilentlyContinue | Select-Object Name, State, SharedVolumeInfo

# Vérifier la résilience
Get-VirtualDisk -ErrorAction SilentlyContinue | Select-Object FriendlyName, ResiliencySettingName, OperationalStatus, HealthStatus

Remédiation :

  1. Vérifier la santé du pool de stockage S2D
  2. Activer BitLocker sur les volumes CSV
  3. Configurer des alertes sur la dégradation du pool

Valeur par défaut : S2D non déployé par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.4.1 — ReFS vs NTFS — système de fichiers approprié

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 3.6
MITRE ATT&CK T1486 (Data Encrypted for Impact)
ANSSI ANSSI-VIRT R61
NIST NIST-53 SC-28, SI-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : ReFS (Resilient File System) est recommandé pour les volumes de stockage VM car il offre une meilleure résilience contre la corruption de données, des opérations de merge de checkpoints plus rapides (block clone) et une meilleure performance pour les opérations VHDX. ReFS est requis pour Storage Spaces Direct et les checkpoints de production haute performance.

Vérification :

# Vérifier le système de fichiers des volumes de stockage VM
$vmPaths = (Get-VMHost).VirtualHardDiskPath, (Get-VMHost).VirtualMachinePath
foreach ($path in $vmPaths) {
    $volume = Get-Volume -FilePath $path -ErrorAction SilentlyContinue
    Write-Output "Path: $path - FileSystem: $($volume.FileSystemType) - Size: $([math]::Round($volume.Size/1GB))GB"
}

# Lister tous les volumes
Get-Volume | Where-Object { $_.FileSystemType -in @('NTFS','ReFS') } | Select-Object DriveLetter, FileSystemType, Size, SizeRemaining, HealthStatus

Remédiation :

  1. Formater les nouveaux volumes de stockage VM en ReFS
  2. Note : La conversion NTFS vers ReFS nécessite un reformatage (sauvegarde requise)

Valeur par défaut : NTFS

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.4.2 — SMB 3.x avec chiffrement pour le stockage réseau

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 3.10
MITRE ATT&CK T1040 (Network Sniffing), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R62 — Chiffrement du stockage réseau
NIST NIST-125 §8.5, NIST-53 SC-8(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si les fichiers VM sont stockés sur un partage SMB, le chiffrement SMB 3.x doit être activé pour protéger les données en transit. Le trafic SMB non chiffré peut être intercepté sur le réseau, exposant l’intégralité du contenu des disques virtuels et des fichiers de configuration VM. SMB 3.x offre le chiffrement AES-128-GCM ou AES-256-GCM.

Vérification :

# Vérifier la configuration SMB du serveur
Get-SmbServerConfiguration | Select-Object EncryptData, RejectUnencryptedAccess, EnableSMB1Protocol, EnableSMB2Protocol

# Vérifier les partages avec chiffrement
Get-SmbShare | Where-Object { $_.Path -like "*VM*" -or $_.Path -like "*Hyper*" } | Select-Object Name, Path, EncryptData

# Vérifier les connexions SMB actives
Get-SmbConnection | Select-Object ServerName, ShareName, Dialect, Encrypted
  • Valeur attendue : EncryptData = True, SMB1 = False, Dialect >= 3.0

Remédiation :

  1. PowerShell :
# Activer le chiffrement SMB global
Set-SmbServerConfiguration -EncryptData $true -RejectUnencryptedAccess $true -Force

# Désactiver SMB1
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

# Chiffrement par partage
Set-SmbShare -Name "VMStorage" -EncryptData $true

Valeur par défaut : EncryptData = False, SMB1 souvent activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

6.4.3 — iSCSI et Fibre Channel — sécurité du stockage SAN

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.10
MITRE ATT&CK T1040 (Network Sniffing), T1005 (Data from Local System)
ANSSI ANSSI-VIRT R63
NIST NIST-125 §8.5, NIST-53 SC-8, AC-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si le stockage iSCSI ou Fibre Channel est utilisé pour les VMs, la sécurité du réseau de stockage (SAN) doit être vérifiée. L’iSCSI doit utiliser CHAP mutual pour l’authentification, les réseaux iSCSI doivent être isolés sur des VLANs dédiés, et le Fibre Channel doit utiliser le zoning pour restreindre l’accès aux LUNs. Le Virtual Fibre Channel d’Hyper-V doit être sécurisé avec des NPIV correctement configurés.

Vérification :

# Vérifier les initiateurs iSCSI
Get-IscsiTargetPortal -ErrorAction SilentlyContinue | Select-Object TargetPortalAddress, TargetPortalPortNumber
Get-IscsiSession -ErrorAction SilentlyContinue | Select-Object TargetNodeAddress, IsConnected, AuthenticationType

# Vérifier les adaptateurs Fibre Channel virtuels
Get-VM | Get-VMFibreChannelHba -ErrorAction SilentlyContinue | Select-Object VMName, WorldWideNodeNameSetA, WorldWidePortNameSetA

# Vérifier le MPIO (Multipath I/O)
Get-MSDSMGlobalDefaultLoadBalancePolicy -ErrorAction SilentlyContinue

Remédiation :

  1. Configurer l’authentification CHAP mutual pour iSCSI
  2. Isoler le trafic iSCSI sur des VLANs/sous-réseaux dédiés
  3. Configurer le zoning Fibre Channel pour restreindre l’accès

Valeur par défaut : Dépend de l’infrastructure de stockage

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 7 — LIVE MIGRATION ET HAUTE DISPONIBILITÉ

═══════════════════════════════════════════════════════════════════════════════

SECTION 7 — LIVE MIGRATION ET HAUTE DISPONIBILITÉ

Objectif : Sécuriser les mécanismes de mobilité des VMs (Live Migration, Quick Migration, Hyper-V Replica) et l’infrastructure de clustering (Failover Clustering). La migration de VMs non sécurisée expose les données en mémoire et les configurations VM au réseau.

Références principales : Microsoft Hyper-V Live Migration Security, ANSSI-VIRT R65-R75, NIST SP 800-125 §9.


7.1.1 — Live Migration — authentification Kerberos (CredSSP non recommandé)

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.6
MITRE ATT&CK T1557 (Adversary-in-the-Middle), T1558 (Steal or Forge Kerberos Tickets)
ANSSI ANSSI-VIRT R65 — Authentification de la migration
NIST NIST-125 §9.1, NIST-53 IA-2, SC-23
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La Live Migration doit utiliser l’authentification Kerberos avec la délégation contrainte (Constrained Delegation) plutôt que CredSSP. CredSSP transmet les identifiants de l’administrateur au serveur distant, ce qui permet les attaques de type credential relay. Kerberos avec délégation contrainte limite la délégation aux seuls services spécifiés (Microsoft Virtual System Migration Service) et ne transmet pas les identifiants en clair.

Vérification :

# Vérifier le protocole d'authentification Live Migration
Get-VMHost | Select-Object VirtualMachineMigrationAuthenticationType

# Vérifier la délégation contrainte dans AD
Get-ADComputer $env:COMPUTERNAME -Properties msDS-AllowedToDelegateTo | Select-Object -ExpandProperty msDS-AllowedToDelegateTo
  • Valeur attendue : VirtualMachineMigrationAuthenticationType = Kerberos

Remédiation :

  1. PowerShell :
Set-VMHost -VirtualMachineMigrationAuthenticationType Kerberos
  1. Active Directory : Configurer la délégation contrainte :
    • Propriétés du compte ordinateur > Délégation > “N’approuver cet ordinateur que pour la délégation aux services spécifiés”
    • Ajouter le service “Microsoft Virtual System Migration Service” et “cifs”

Valeur par défaut : CredSSP

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.1.2 — Live Migration — chiffrement du transfert

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.6
MITRE ATT&CK T1040 (Network Sniffing), T1003 (OS Credential Dumping)
ANSSI ANSSI-VIRT R66 — Chiffrement de la migration
NIST NIST-125 §9.1, NIST-53 SC-8(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le transfert de données lors de la Live Migration doit être chiffré. Pendant la migration, le contenu complet de la mémoire de la VM (y compris les mots de passe, clés de chiffrement et données sensibles en mémoire) est transféré sur le réseau. Sans chiffrement, ces données peuvent être interceptées. Hyper-V supporte le chiffrement SMB pour la migration.

Vérification :

# Vérifier les options de performance/chiffrement de la migration
Get-VMHost | Select-Object VirtualMachineMigrationPerformanceOption
# Options : TCPIP (pas de chiffrement), Compression, SMB (chiffré si SMB encryption activé)

# Vérifier le chiffrement SMB
Get-SmbServerConfiguration | Select-Object EncryptData
  • Valeur attendue : VirtualMachineMigrationPerformanceOption = SMB avec EncryptData = True

Remédiation :

  1. PowerShell :
Set-VMHost -VirtualMachineMigrationPerformanceOption SMB
Set-SmbServerConfiguration -EncryptData $true -Force

Valeur par défaut : TCPIP (pas de chiffrement)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.1.3 — Live Migration — réseau dédié et isolé

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.1
MITRE ATT&CK T1040 (Network Sniffing)
ANSSI ANSSI-VIRT R67 — Réseau de migration isolé
NIST NIST-125 §9.1, NIST-53 SC-7(13)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La Live Migration doit utiliser un réseau dédié et isolé, séparé du réseau de production des VMs et du réseau de gestion. Le réseau de migration transporte les données mémoire des VMs en transit, ce qui représente un risque élevé d’interception. Ce réseau doit être sur un VLAN dédié avec un sous-réseau IP distinct, idéalement sur des interfaces réseau physiques dédiées.

Vérification :

# Vérifier les réseaux autorisés pour la migration
Get-VMHost | Select-Object -ExpandProperty VirtualMachineMigrationEnabled
$networks = (Get-VMHostMigrationNetwork).Subnet
Write-Output "Réseaux de migration autorisés : $($networks -join ', ')"

# Vérifier l'isolation du réseau de migration
Get-VMHostMigrationNetwork | Select-Object Subnet, Priority
  • Valeur attendue : Sous-réseau de migration dédié (ex: 10.0.100.0/24), pas sur le réseau de production

Remédiation :

  1. PowerShell :
# Configurer un réseau dédié pour la migration
Add-VMMigrationNetwork -Subnet "10.0.100.0/24" -Priority 1
Remove-VMMigrationNetwork -Subnet "0.0.0.0/0" # Supprimer le réseau par défaut (tout réseau)

Valeur par défaut : Migration autorisée sur tous les réseaux

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.1.4 — Live Migration — nombre de migrations simultanées limité

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76.6
MITRE ATT&CK T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R68
NIST NIST-53 SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le nombre de migrations simultanées et de connexions de migration simultanées doit être limité pour éviter la surcharge de l’hôte et du réseau. Un nombre excessif de migrations simultanées peut dégrader les performances des VMs en cours d’exécution et saturer la bande passante réseau, créant un risque de déni de service.

Vérification :

Get-VMHost | Select-Object MaximumVirtualMachineMigrations, MaximumStorageMigrations
  • Valeur attendue : MaximumVirtualMachineMigrations <= 4, MaximumStorageMigrations <= 2

Remédiation :

  1. PowerShell :
Set-VMHost -MaximumVirtualMachineMigrations 2 -MaximumStorageMigrations 2

Valeur par défaut : MaximumVirtualMachineMigrations = 2

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.2.1 — Hyper-V Replica — chiffrement HTTPS avec certificats

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.7
MITRE ATT&CK T1040 (Network Sniffing), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R70 — Sécurité de la réplication
NIST NIST-125 §9.2, NIST-53 SC-8(1), IA-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La réplication Hyper-V (Hyper-V Replica) doit utiliser HTTPS avec des certificats X.509 pour le chiffrement et l’authentification mutuelle. La réplication transfère l’intégralité des données des disques virtuels et les modifications en cours sur le réseau. L’utilisation de HTTP (port 80) sans chiffrement expose toutes ces données à l’interception. La réplication via certificats garantit également que seuls les serveurs autorisés peuvent recevoir les réplicas.

Vérification :

# Vérifier la configuration de la réplication sur l'hôte
Get-VMReplicationServer | Select-Object ReplicationEnabled, AuthenticationType, AllowedAuthenticationType, CertificateThumbprint, DefaultStorageLocation

# Vérifier les VMs répliquées
Get-VM | Get-VMReplication -ErrorAction SilentlyContinue | Select-Object VMName, State, Health, Mode, ReplicaServerName, AuthenticationType, PrimaryServerName
  • Valeur attendue : AuthenticationType = Certificate (HTTPS, port 443)

Remédiation :

  1. PowerShell :
# Configurer la réplication avec certificats
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.EnhancedKeyUsageList.ObjectId -contains "1.3.6.1.5.5.7.3.1" }
Set-VMReplicationServer -ReplicationEnabled $true -AllowedAuthenticationType Certificate -CertificateThumbprint $cert.Thumbprint -DefaultStorageLocation "D:\Replica"

Valeur par défaut : Réplication désactivée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.2.2 — Hyper-V Replica — autorisation par serveur

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.7
MITRE ATT&CK T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R70
NIST NIST-53 AC-3, IA-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La réplication Hyper-V doit être configurée avec une liste explicite de serveurs autorisés plutôt que d’accepter les réplications de n’importe quel serveur authentifié. Cette restriction empêche un serveur compromis ou non autorisé de recevoir les données de réplication des VMs sensibles.

Vérification :

# Vérifier les serveurs autorisés pour la réplication
Get-VMReplicationServer | Select-Object -ExpandProperty ReplicationAllowedFromAnyServer

# Si la liste est restreinte
Get-VMReplicationAuthorizationEntry | Select-Object AllowedPrimaryServer, ReplicaStorageLocation, TrustGroup
  • Valeur attendue : ReplicationAllowedFromAnyServer = False, liste explicite de serveurs

Remédiation :

  1. PowerShell :
# Ajouter un serveur autorisé spécifique
New-VMReplicationAuthorizationEntry -AllowedPrimaryServer "HV-PRIMARY.domain.local" -ReplicaStorageLocation "D:\Replica\HV-PRIMARY" -TrustGroup "ProductionReplica"

Valeur par défaut : Accepter tout serveur authentifié

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.3.1 — Failover Clustering — sécurité du cluster

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 18.9.76.8
MITRE ATT&CK T1078 (Valid Accounts), T1210 (Exploitation of Remote Services)
ANSSI ANSSI-VIRT R72 — Sécurité du cluster de virtualisation
NIST NIST-125 §9.3, NIST-53 SC-7, AC-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Failover Cluster hébergeant les hôtes Hyper-V doit être sécurisé avec une authentification Kerberos, un chiffrement des communications inter-noeuds, et des permissions d’administration restrictives. L’objet Cluster Name Object (CNO) dans Active Directory doit avoir des permissions minimales. Le cluster doit utiliser un réseau dédié pour le heartbeat et les communications inter-noeuds.

Vérification :

# Vérifier la configuration du cluster
Get-Cluster | Select-Object Name, SharedVolumesRoot, QuorumResource, SecurityLevel

# Vérifier les noeuds et leur état
Get-ClusterNode | Select-Object Name, State, NodeWeight

# Vérifier les réseaux du cluster
Get-ClusterNetwork | Select-Object Name, State, Role, Address

# Vérifier le chiffrement du cluster (Server 2025)
(Get-Cluster).BlockCacheSize
(Get-Cluster).SecurityLevel
  • Valeur attendue : Tous les noeuds en état “Up”, SecurityLevel = “EncryptMessages”

Remédiation :

  1. PowerShell :
# Activer le chiffrement des communications cluster
(Get-Cluster).SecurityLevel = 2  # Chiffrer les messages
  1. Séparer les réseaux cluster (heartbeat, migration, CSV)

Valeur par défaut : SecurityLevel = Sign (signature sans chiffrement)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.3.2 — Cluster Shared Volumes (CSV) — sécurité

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.3
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R73
NIST NIST-125 §9.3, NIST-53 AC-3, SC-28
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Cluster Shared Volumes (CSV) utilisés pour stocker les fichiers VM dans un cluster Hyper-V doivent être sécurisés. Les permissions sur les CSV doivent être restrictives, le chiffrement BitLocker doit être activé sur les CSV contenant des données sensibles, et la redirection des I/O CSV doit être surveillée.

Vérification :

# Vérifier les CSV et leur état
Get-ClusterSharedVolume | Select-Object Name, State, @{N='FreeSpace';E={$_.SharedVolumeInfo.Partition.FreeSpace}}

# Vérifier BitLocker sur les CSV
Get-BitLockerVolume | Where-Object { $_.MountPoint -like "*ClusterStorage*" } | Select-Object MountPoint, VolumeStatus, ProtectionStatus

# Vérifier les permissions
Get-Acl "C:\ClusterStorage\Volume1" | Select-Object -ExpandProperty Access | Select-Object IdentityReference, FileSystemRights

Remédiation :

  1. Activer BitLocker sur les volumes CSV
  2. Restreindre les ACL des CSV
  3. Surveiller la redirection des I/O CSV

Valeur par défaut : Permissions héritées, BitLocker désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.3.3 — Quorum et témoin du cluster — résilience

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.8
MITRE ATT&CK T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R74
NIST NIST-53 CP-2, CP-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le quorum du cluster Hyper-V doit être correctement configuré avec un témoin (File Share Witness, Cloud Witness ou Disk Witness) pour assurer la résilience en cas de défaillance de noeuds. Le témoin du quorum ne doit pas être hébergé sur les mêmes systèmes de stockage que les VMs pour éviter un point de défaillance unique.

Vérification :

# Vérifier la configuration du quorum
Get-ClusterQuorum | Select-Object Cluster, QuorumResource, QuorumType

# Détails du témoin
Get-ClusterResource | Where-Object ResourceType -like "*Witness*" | Get-ClusterParameter | Select-Object Name, Value
  • Valeur attendue : QuorumType avec témoin configuré (Cloud Witness recommandé)

Remédiation :

  1. PowerShell :
# Configurer un Cloud Witness
Set-ClusterQuorum -CloudWitness -AccountName "storageaccount" -AccessKey "key" -Endpoint "core.windows.net"

# Ou File Share Witness
Set-ClusterQuorum -FileShareWitness "\\fileserver\witness"

Valeur par défaut : Quorum automatique (node majority)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

7.3.4 — Anti-affinity rules pour les VMs critiques

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76.8
MITRE ATT&CK T1499 (Endpoint Denial of Service)
ANSSI ANSSI-VIRT R75
NIST NIST-53 CP-2, SC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des règles d’anti-affinité doivent être configurées dans le cluster pour garantir que les VMs critiques interdépendantes (contrôleurs de domaine redondants, noeuds de base de données HA, etc.) ne s’exécutent jamais sur le même hôte physique. Cela assure qu’une défaillance d’un seul hôte ne provoque pas la perte de toutes les instances d’un service critique.

Vérification :

# Vérifier les groupes d'anti-affinité
Get-ClusterGroup | Get-ClusterParameter -Name AntiAffinityClassNames -ErrorAction SilentlyContinue | Select-Object ClusterObject, Value

# Vérifier la répartition des VMs critiques
Get-ClusterGroup | Where-Object GroupType -eq "VirtualMachine" | Select-Object Name, OwnerNode, State

Remédiation :

  1. PowerShell :
# Configurer l'anti-affinité entre deux VMs
$group1 = Get-ClusterGroup "VM-DC01"
$group2 = Get-ClusterGroup "VM-DC02"
$group1 | Set-ClusterParameter -Name AntiAffinityClassNames -Value "DomainControllers"
$group2 | Set-ClusterParameter -Name AntiAffinityClassNames -Value "DomainControllers"

Valeur par défaut : Aucune règle d’anti-affinité

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 8 — SAUVEGARDE ET REPRISE D’ACTIVITÉ

═══════════════════════════════════════════════════════════════════════════════

SECTION 8 — SAUVEGARDE ET REPRISE D’ACTIVITÉ

Objectif : Vérifier que les mécanismes de sauvegarde et de reprise d’activité des VMs Hyper-V sont correctement configurés, chiffrés et testés régulièrement.

Références principales : ANSSI-VIRT R80-R90, NIST SP 800-125 §10, NIST-53 CP-9, CP-10.


8.1.1 — Stratégie de sauvegarde des VMs documentée

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 11.1
MITRE ATT&CK T1490 (Inhibit System Recovery), T1486 (Data Encrypted for Impact)
ANSSI ANSSI-VIRT R80 — Sauvegarde des machines virtuelles
NIST NIST-53 CP-9, CP-9(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Une stratégie de sauvegarde documentée doit couvrir toutes les VMs hébergées sur l’infrastructure Hyper-V. La stratégie doit définir la fréquence de sauvegarde (RPO), le temps de restauration cible (RTO), les méthodes de sauvegarde (niveau hôte, niveau invité, snapshots), la rétention et les procédures de test. La règle 3-2-1 (3 copies, 2 supports, 1 hors site) doit être respectée.

Vérification :

# Vérifier Windows Server Backup
Get-WBPolicy -ErrorAction SilentlyContinue | Select-Object Schedule, BackupTargets, VolumesToBackup

# Vérifier les VMs incluses dans la sauvegarde
Get-WBPolicy -ErrorAction SilentlyContinue | Get-WBVirtualMachine

# Vérifier l'historique des sauvegardes
Get-WBBackupSet -ErrorAction SilentlyContinue | Select-Object BackupTime, BackupTarget | Sort-Object BackupTime -Descending | Select-Object -First 10
  • Valeur attendue : Politique de sauvegarde active, toutes les VMs critiques incluses

Remédiation :

  1. Documenter la stratégie de sauvegarde
  2. Configurer la sauvegarde automatique
  3. Tester la restauration régulièrement

Valeur par défaut : Aucune sauvegarde configurée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

8.1.2 — Sauvegardes chiffrées et stockées hors site

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 11.3
MITRE ATT&CK T1005 (Data from Local System), T1486 (Data Encrypted for Impact)
ANSSI ANSSI-VIRT R81
NIST NIST-53 CP-9(8), SC-28
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les sauvegardes des VMs doivent être chiffrées au repos et en transit, et stockées dans un emplacement sécurisé hors site (géographiquement distinct). Les sauvegardes non chiffrées contiennent l’intégralité des données des VMs et constituent une cible de choix pour l’exfiltration. Le stockage hors site protège contre les sinistres physiques (incendie, inondation) et les ransomwares qui ciblent les sauvegardes locales.

Vérification :

# Vérifier les cibles de sauvegarde
Get-WBPolicy -ErrorAction SilentlyContinue | Select-Object -ExpandProperty BackupTargets

# Vérifier si les sauvegardes sont sur un emplacement distant
# Dépend de la solution de sauvegarde (Veeam, DPM, Azure Backup, etc.)

Remédiation :

  1. Configurer le chiffrement des sauvegardes
  2. Configurer un site de sauvegarde secondaire
  3. Utiliser Azure Backup ou une solution tierce avec chiffrement AES-256

Valeur par défaut : Sauvegardes locales non chiffrées

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

8.2.1 — Checkpoints/Snapshots — politique d’utilisation restrictive

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.9
MITRE ATT&CK T1005 (Data from Local System), T1490 (Inhibit System Recovery)
ANSSI ANSSI-VIRT R82 — Gestion des snapshots
NIST NIST-125 §10.1, NIST-53 CM-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’utilisation des checkpoints (snapshots) Hyper-V doit être encadrée par une politique stricte. Les checkpoints ne doivent pas être utilisés comme mécanisme de sauvegarde. Les checkpoints standard capturent l’état mémoire de la VM (y compris les identifiants en mémoire) dans des fichiers .vsv/.vmrs accessibles depuis l’hôte. Les checkpoints de production (utilisant VSS) sont préférables car ils ne capturent pas l’état mémoire.

Vérification :

# Vérifier le type de checkpoint configuré
Get-VM | Select-Object Name, CheckpointType
# Standard, ProductionOnly, Production (Production avec fallback Standard)

# Vérifier les checkpoints existants
Get-VM | Get-VMCheckpoint | Select-Object VMName, Name, CreationTime, @{N='AgeDays';E={(New-TimeSpan -Start $_.CreationTime -End (Get-Date)).Days}}

# Vérifier les checkpoints anciens (> 7 jours)
Get-VM | Get-VMCheckpoint | Where-Object { (New-TimeSpan -Start $_.CreationTime -End (Get-Date)).Days -gt 7 } | Select-Object VMName, Name, CreationTime
  • Valeur attendue : CheckpointType = Production ou ProductionOnly, pas de checkpoints anciens

Remédiation :

  1. PowerShell :
# Configurer les checkpoints de production uniquement
Set-VM -Name "VMName" -CheckpointType ProductionOnly

# Supprimer les checkpoints anciens
Get-VM | Get-VMCheckpoint | Where-Object { (New-TimeSpan -Start $_.CreationTime -End (Get-Date)).Days -gt 7 } | Remove-VMCheckpoint

Valeur par défaut : CheckpointType = Production (avec fallback Standard)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

8.2.2 — Checkpoints désactivés sur les VMs de production critiques

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 18.9.76.9
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R82
NIST NIST-53 CM-3, CM-5
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Sur les VMs de production critiques (contrôleurs de domaine, serveurs de base de données), les checkpoints doivent être complètement désactivés pour éviter les problèmes de cohérence (notamment l’USN rollback sur les DC) et pour empêcher la capture non autorisée de l’état mémoire. La sauvegarde de ces VMs doit utiliser des solutions de sauvegarde dédiées (Windows Server Backup, DPM, Veeam, etc.).

Vérification :

# Vérifier si les checkpoints sont activés
Get-VM | Select-Object Name, CheckpointType, @{N='CheckpointsEnabled';E={$_.CheckpointType -ne 'Disabled'}}

# VMs critiques avec checkpoints activés
Get-VM | Where-Object { $_.CheckpointType -ne 'Disabled' -and $_.Name -match "DC|SQL|AD|ADDS" } | Select-Object Name, CheckpointType

Remédiation :

  1. PowerShell :
# Désactiver les checkpoints sur les VMs critiques
Set-VM -Name "DC01" -CheckpointType Disabled
Set-VM -Name "SQL-PROD" -CheckpointType Disabled

Valeur par défaut : Checkpoints activés (type Production)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

8.3.1 — Export/Import de VMs — procédure sécurisée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.3
MITRE ATT&CK T1005 (Data from Local System), T1537 (Transfer Data to Cloud Account)
ANSSI ANSSI-VIRT R83
NIST NIST-53 AC-3, MP-5
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’export et l’import de VMs doivent suivre une procédure documentée et contrôlée. L’export d’une VM crée une copie complète incluant les disques virtuels, la configuration et potentiellement l’état mémoire. Ces fichiers exportés contiennent toutes les données de la VM et doivent être protégés contre l’accès non autorisé, chiffrés lors du transport et supprimés de manière sécurisée après utilisation.

Vérification :

# Vérifier les exports récents (journaux d'événements)
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Hyper-V-VMMS-Admin'; Id=@(13002,13003)} -MaxEvents 20 -ErrorAction SilentlyContinue | Select-Object TimeCreated, Message

# Vérifier les répertoires d'export par défaut
Get-VMHost | Select-Object VirtualMachinePath, VirtualHardDiskPath

Remédiation :

  1. Documenter la procédure d’export/import avec approbation
  2. Chiffrer les fichiers exportés (BitLocker sur le volume de destination)
  3. Journaliser toutes les opérations d’export/import

Valeur par défaut : Export autorisé pour les administrateurs Hyper-V

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

8.3.2 — Tests de restauration réguliers

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 11.4
MITRE ATT&CK T1490 (Inhibit System Recovery)
ANSSI ANSSI-VIRT R84
NIST NIST-53 CP-4, CP-9(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des tests de restauration des sauvegardes VM doivent être effectués régulièrement (au minimum trimestriellement) pour vérifier l’intégrité des sauvegardes et la capacité à restaurer les VMs dans les délais RTO définis. Les tests doivent couvrir la restauration complète de VMs (y compris les Shielded VMs) et la vérification de la cohérence des données restaurées.

Vérification :

  • Vérifier la date du dernier test de restauration documenté
  • Vérifier les rapports de tests de restauration
  • Vérifier le RTO mesuré vs RTO cible

Remédiation :

  1. Planifier des tests de restauration trimestriels
  2. Documenter les résultats et les temps de restauration
  3. Corriger les problèmes identifiés lors des tests

Valeur par défaut : Aucun test de restauration planifié

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 9 — JOURNALISATION ET MONITORING

═══════════════════════════════════════════════════════════════════════════════

SECTION 9 — JOURNALISATION ET MONITORING

Objectif : Vérifier que les événements de sécurité liés à l’infrastructure Hyper-V sont correctement journalisés, surveillés et analysés pour la détection de menaces et l’investigation forensique.

Références principales : Microsoft Hyper-V Event Monitoring, ANSSI-VIRT R90-R100, NIST SP 800-125 §11, CIS Windows Server 2025.


9.1.1 — Journaux Hyper-V VMMS activés et surveillés

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 8.2
MITRE ATT&CK T1562.002 (Impair Defenses: Disable Windows Event Logging)
ANSSI ANSSI-VIRT R90 — Journalisation de l’hyperviseur
NIST NIST-125 §11.1, NIST-53 AU-2, AU-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les journaux d’événements Hyper-V VMMS (Virtual Machine Management Service) doivent être activés et surveillés. Ces journaux enregistrent les événements critiques de gestion des VMs : création, suppression, modification de configuration, démarrage, arrêt, migration. Les Event IDs clés incluent : 13000-13010 (opérations VM), 18500-18512 (migration), 20400-20500 (réplication), 12400-12500 (sécurité).

Vérification :

# Vérifier les journaux Hyper-V
$hvLogs = @(
    "Microsoft-Windows-Hyper-V-VMMS-Admin",
    "Microsoft-Windows-Hyper-V-VMMS-Operational",
    "Microsoft-Windows-Hyper-V-Worker-Admin",
    "Microsoft-Windows-Hyper-V-Worker-Operational",
    "Microsoft-Windows-Hyper-V-Hypervisor-Admin",
    "Microsoft-Windows-Hyper-V-Hypervisor-Operational"
)
foreach ($log in $hvLogs) {
    Get-WinEvent -ListLog $log -ErrorAction SilentlyContinue | Select-Object LogName, IsEnabled, MaximumSizeInBytes, RecordCount
}

# Événements critiques récents
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Hyper-V-VMMS-Admin'; StartTime=(Get-Date).AddDays(-7)} -MaxEvents 50 -ErrorAction SilentlyContinue | Select-Object TimeCreated, Id, LevelDisplayName, Message | Where-Object { $_.LevelDisplayName -in @('Error','Warning','Critical') }
  • Valeur attendue : Tous les journaux Hyper-V activés, taille appropriée

Remédiation :

  1. PowerShell :
# Activer et dimensionner les journaux Hyper-V
foreach ($log in $hvLogs) {
    wevtutil sl $log /e:true /ms:268435456
}

Valeur par défaut : Activés avec taille par défaut (1 Mo)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

9.1.2 — Event IDs critiques Hyper-V surveillés

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 8.5
MITRE ATT&CK T1562 (Impair Defenses)
ANSSI ANSSI-VIRT R91
NIST NIST-125 §11.1, NIST-53 SI-4, AU-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Event IDs suivants doivent être spécifiquement surveillés et transmis au SIEM pour analyse et alerting :

Event ID Source Description
13000 VMMS VM créée
13002 VMMS VM exportée
13003 VMMS VM importée
13010 VMMS VM supprimée
18500 VMMS Live Migration démarrée
18502 VMMS Live Migration terminée
18504 VMMS Live Migration échouée
18512 VMMS Quick Migration
20400 VMMS Réplication configurée
20500 VMMS Réplication échouée
12400-12500 Worker Sécurité VM (Shielded VM)
3040 Hypervisor Hyperviseur démarré
3080 Hypervisor Mémoire insuffisante

Vérification :

# Vérifier les événements critiques récents
$criticalIds = @(13000,13002,13003,13010,18500,18502,18504,18512,20400,20500)
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Hyper-V-VMMS-Admin'; Id=$criticalIds; StartTime=(Get-Date).AddDays(-30)} -ErrorAction SilentlyContinue | Select-Object TimeCreated, Id, Message | Sort-Object TimeCreated -Descending

Remédiation :

  1. Configurer des règles d’alerte dans le SIEM pour ces Event IDs
  2. Créer des tableaux de bord de suivi des événements Hyper-V

Valeur par défaut : Événements enregistrés localement sans alerting

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

9.2.1 — Performance monitoring — métriques clés

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.2
MITRE ATT&CK T1496 (Resource Hijacking)
ANSSI ANSSI-VIRT R92
NIST NIST-53 SI-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les métriques de performance de l’hôte Hyper-V et des VMs doivent être surveillées en continu pour détecter les anomalies de consommation de ressources (CPU, mémoire, disque, réseau) qui pourraient indiquer un crypto-mining, un déni de service, une exfiltration de données ou une compromission.

Vérification :

# Vérifier les compteurs de performance Hyper-V
Get-Counter -ListSet "Hyper-V*" | Select-Object CounterSetName

# Métriques clés
Get-Counter "\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time" -ErrorAction SilentlyContinue
Get-Counter "\Hyper-V Dynamic Memory Balancer(*)\Available Memory" -ErrorAction SilentlyContinue

# Métriques de ressources VM
Get-VM | Measure-VMResourcePool -ErrorAction SilentlyContinue
Get-VM | Select-Object Name, CPUUsage, MemoryAssigned, MemoryDemand, Uptime

Remédiation :

  1. Configurer la collecte de métriques de performance Hyper-V
  2. Définir des seuils d’alerte (CPU > 90%, Mémoire > 95%)
  3. Intégrer avec SCOM ou une solution de monitoring

Valeur par défaut : Monitoring de base via Hyper-V Manager

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

9.2.2 — SIEM integration — collecte des événements Hyper-V

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 8.9
MITRE ATT&CK T1070 (Indicator Removal)
ANSSI ANSSI-VIRT R93
NIST NIST-53 SI-4, AU-6(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Tous les journaux d’événements Hyper-V doivent être collectés et transmis au SIEM centralisé pour permettre la corrélation d’événements entre les hôtes Hyper-V, les VMs, les équipements réseau et les systèmes de stockage. La centralisation des logs protège contre la suppression de traces par un attaquant ayant compromis l’hôte.

Vérification :

# Vérifier l'agent SIEM
Get-Service *splunk*, *elastic*, *winlogbeat*, *nxlog*, *MMA*, *HealthService* -ErrorAction SilentlyContinue | Select-Object Name, DisplayName, Status

# Vérifier Windows Event Forwarding (WEF)
wecutil es 2>$null | Select-Object -First 10

# Vérifier les subscriptions WEF
wecutil gs HyperV-Events 2>$null

Remédiation :

  1. Déployer un agent SIEM ou configurer Windows Event Forwarding
  2. Inclure les journaux Hyper-V dans la collecte
  3. Créer des règles de corrélation et d’alerte spécifiques

Valeur par défaut : Aucune intégration SIEM

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

9.3.1 — Alertes critiques VM/Host configurées

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 8.11
MITRE ATT&CK T1562 (Impair Defenses)
ANSSI ANSSI-VIRT R94
NIST NIST-53 SI-4(5), IR-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des alertes automatiques doivent être configurées pour les événements critiques suivants : perte de heartbeat d’une VM, échec de Live Migration, échec de réplication, perte de quorum du cluster, dégradation du pool de stockage, ajout/suppression non autorisé de VM, échec d’attestation HGS, expiration de certificats HGS.

Vérification :

# Vérifier les actions programmées d'alerte
Get-ScheduledTask | Where-Object { $_.TaskName -like "*Hyper*" -or $_.TaskName -like "*VM*" -or $_.TaskName -like "*Alert*" } | Select-Object TaskName, State

# Vérifier les règles d'alerte SCOM (si déployé)
# Dépend de la solution de monitoring

Remédiation :

  1. Configurer des alertes dans le SIEM/SCOM pour les événements critiques
  2. Configurer des notifications par email/SMS pour les alertes critiques
  3. Documenter le processus d’escalade

Valeur par défaut : Aucune alerte configurée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 10 — SÉCURITÉ DES CONTENEURS (Windows Containers sur Hyper-V)

═══════════════════════════════════════════════════════════════════════════════

SECTION 10 — SÉCURITÉ DES CONTENEURS (Windows Containers sur Hyper-V)

Objectif : Vérifier la sécurité des conteneurs Windows exécutés avec l’isolation Hyper-V. Les conteneurs Hyper-V offrent une isolation plus forte que les conteneurs à isolation de processus en exécutant chaque conteneur dans une VM légère dédiée.

Références principales : Microsoft Container Security, ANSSI-VIRT R100-R110, NIST SP 800-190 Application Container Security.


10.1.1 — Isolation Hyper-V pour les conteneurs sensibles

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 4.8
MITRE ATT&CK T1611 (Escape to Host), T1610 (Deploy Container)
ANSSI ANSSI-VIRT R100 — Isolation des conteneurs
NIST NIST SP 800-190 §3.1, NIST-53 SC-39
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les conteneurs Windows exécutant des charges de travail sensibles ou multi-locataires doivent utiliser l’isolation Hyper-V plutôt que l’isolation de processus. L’isolation Hyper-V exécute chaque conteneur dans une VM utilitaire légère, fournissant une isolation au niveau de l’hyperviseur qui empêche les attaques d’évasion de conteneur d’affecter l’hôte ou les autres conteneurs.

Vérification :

# Vérifier les conteneurs en cours d'exécution et leur type d'isolation
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}" 2>$null
Get-ComputeProcess | Select-Object Id, Type, Owner

# Vérifier le type d'isolation d'un conteneur
docker inspect --format '{{.HostConfig.Isolation}}' <container_id> 2>$null
  • Valeur attendue : Isolation = “hyperv” pour les conteneurs sensibles

Remédiation :

  1. Docker :
# Exécuter un conteneur avec isolation Hyper-V
docker run --isolation=hyperv -d mcr.microsoft.com/windows/servercore:ltsc2025 cmd
  1. Configurer l’isolation par défaut dans le daemon Docker :
{
  "exec-opts": ["isolation=hyperv"]
}

Valeur par défaut : Isolation de processus

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

10.1.2 — Images de base conteneurs — sources approuvées

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 2.5
MITRE ATT&CK T1610 (Deploy Container), T1204.003 (Malicious Image)
ANSSI ANSSI-VIRT R101
NIST NIST SP 800-190 §3.2, NIST-53 CM-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Seules les images de conteneurs provenant de sources approuvées (Microsoft Container Registry — mcr.microsoft.com, registre privé d’entreprise) doivent être utilisées. Les images tierces non vérifiées peuvent contenir des malwares, des backdoors ou des vulnérabilités connues. Les images doivent être scannées pour les vulnérabilités avant utilisation.

Vérification :

# Lister les images disponibles
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" 2>$null

# Vérifier les registres configurés
docker info 2>$null | Select-String "Registry"

# Vérifier les politiques de pull d'images
Get-Content "C:\ProgramData\Docker\config\daemon.json" -ErrorAction SilentlyContinue
  • Valeur attendue : Images provenant de mcr.microsoft.com ou registre privé d’entreprise uniquement

Remédiation :

  1. Configurer un registre privé (Azure Container Registry, Harbor)
  2. Scanner les images avec des outils de vulnérabilité (Trivy, Qualys)
  3. Restreindre les registres autorisés dans la configuration Docker

Valeur par défaut : Accès à Docker Hub et MCR

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

10.2.1 — Réseau de conteneurs — isolation et segmentation

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.2
MITRE ATT&CK T1046 (Network Service Discovery), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R102
NIST NIST SP 800-190 §3.4, NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les réseaux de conteneurs doivent être segmentés pour isoler les conteneurs par zone de sécurité. Les réseaux Docker (NAT, Transparent, Overlay, L2Bridge) doivent être choisis en fonction des besoins d’isolation. Les conteneurs multi-locataires doivent utiliser des réseaux séparés avec des règles de pare-feu appropriées.

Vérification :

# Lister les réseaux Docker
docker network ls 2>$null
docker network inspect bridge 2>$null

# Vérifier les réseaux HNS (Host Networking Service)
Get-HNSNetwork | Select-Object Name, Type, Subnets

Remédiation :

  1. Créer des réseaux séparés par zone de sécurité
  2. Appliquer des politiques réseau pour restreindre la communication inter-conteneurs

Valeur par défaut : Réseau NAT par défaut

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

10.2.2 — Mises à jour des images de conteneurs

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 7.1
MITRE ATT&CK T1190 (Exploit Public-Facing Application)
ANSSI ANSSI-VIRT R103
NIST NIST SP 800-190 §3.2, NIST-53 SI-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les images de conteneurs doivent être régulièrement mises à jour pour intégrer les correctifs de sécurité. Les images Windows Server Core et Nano Server sont mises à jour mensuellement par Microsoft. Un processus de reconstruction et de redéploiement des images doit être en place pour appliquer les correctifs de manière continue.

Vérification :

# Vérifier l'ancienneté des images
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.CreatedAt}}" 2>$null

# Comparer avec la dernière version disponible
docker pull mcr.microsoft.com/windows/servercore:ltsc2025 --dry-run 2>$null

Remédiation :

  1. Automatiser la mise à jour des images de base
  2. Reconstruire les images applicatives après chaque mise à jour de l’image de base
  3. Intégrer la mise à jour dans le pipeline CI/CD

Valeur par défaut : Pas de mise à jour automatique des images

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

10.2.3 — Privilèges des conteneurs — moindre privilège

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 5.4
MITRE ATT&CK T1611 (Escape to Host), T1068 (Exploitation for Privilege Escalation)
ANSSI ANSSI-VIRT R104
NIST NIST SP 800-190 §3.3, NIST-53 AC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les conteneurs Windows ne doivent pas être exécutés avec des privilèges élevés sauf nécessité absolue. Les conteneurs privilégiés ont accès à des ressources système supplémentaires et un risque accru d’évasion vers l’hôte. Les conteneurs doivent s’exécuter avec un utilisateur non-root/non-administrateur lorsque possible.

Vérification :

# Vérifier les conteneurs privilégiés
docker inspect --format '{{.HostConfig.Privileged}} {{.Config.User}}' $(docker ps -q) 2>$null

Remédiation :

  1. Utiliser l’instruction USER dans le Dockerfile pour un utilisateur non-administrateur
  2. Ne pas utiliser –privileged
  3. Utiliser l’isolation Hyper-V pour les conteneurs nécessitant des privilèges élevés

Valeur par défaut : ContainerAdministrator (privilégié)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 11 — SCVMM ET GESTION CENTRALISÉE

═══════════════════════════════════════════════════════════════════════════════

SECTION 11 — SCVMM ET GESTION CENTRALISÉE

Objectif : Sécuriser les outils de gestion centralisée de l’infrastructure Hyper-V (SCVMM, Windows Admin Center, PowerShell Direct) qui constituent des points de contrôle critiques.

Références principales : Microsoft SCVMM Security, ANSSI-VIRT R110-R120.


11.1.1 — SCVMM — compte de service sécurisé

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 5.3
MITRE ATT&CK T1078 (Valid Accounts), T1003 (OS Credential Dumping)
ANSSI ANSSI-VIRT R110 — Sécurité de la console de gestion
NIST NIST-53 IA-5, AC-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le compte de service SCVMM doit être un gMSA (Group Managed Service Account) avec des permissions minimales. Ce compte a accès à tous les hôtes Hyper-V gérés et sa compromission donnerait un contrôle total sur l’ensemble de l’infrastructure de virtualisation.

Vérification :

# Vérifier le compte de service SCVMM
Get-WmiObject Win32_Service | Where-Object { $_.Name -like "*SCVMM*" -or $_.Name -like "*VMMService*" } | Select-Object Name, StartName

# Vérifier si c'est un gMSA
Get-ADServiceAccount -Filter { Name -like "*VMM*" } -ErrorAction SilentlyContinue

Remédiation :

  1. Migrer le service SCVMM vers un compte gMSA
  2. Appliquer le principe de moindre privilège au compte de service

Valeur par défaut : Compte de service local ou de domaine standard

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

11.1.2 — SCVMM — base de données chiffrée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.6
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R111
NIST NIST-53 SC-28
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La base de données SQL Server de SCVMM contient les configurations de toutes les VMs, les informations sur les hôtes Hyper-V, les modèles de VM et les bibliothèques. Cette base doit être chiffrée avec TDE (Transparent Data Encryption) et les communications avec SQL Server doivent utiliser TLS. L’accès à la base de données doit être restreint.

Vérification :

# Vérifier la connexion SQL SCVMM
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager Server\Setup" -ErrorAction SilentlyContinue | Select-Object SqlDatabaseName, SqlMachineName

# Sur le serveur SQL : vérifier TDE
# SELECT name, is_encrypted FROM sys.databases WHERE name = 'VirtualManagerDB'

Remédiation :

  1. Activer TDE sur la base de données SCVMM
  2. Configurer TLS pour les connexions SQL
  3. Restreindre l’accès à la base de données

Valeur par défaut : Base non chiffrée, TLS non configuré

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

11.1.3 — SCVMM — communications chiffrées avec les hôtes

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.10
MITRE ATT&CK T1040 (Network Sniffing)
ANSSI ANSSI-VIRT R112
NIST NIST-53 SC-8(1)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les communications entre le serveur SCVMM et les hôtes Hyper-V gérés doivent être chiffrées. SCVMM utilise WinRM pour communiquer avec les hôtes. Le chiffrement WinRM (HTTPS) et l’authentification Kerberos doivent être configurés pour protéger les commandes d’administration et les identifiants en transit.

Vérification :

# Vérifier la configuration SCVMM
Get-SCVMMServer | Select-Object Name, Port, FQDN

# Vérifier les paramètres de communication
Get-SCVMHost | Select-Object ComputerName, CommunicationState, OperatingSystemVersion

Remédiation :

  1. Configurer WinRM HTTPS sur tous les hôtes Hyper-V gérés
  2. Utiliser l’authentification Kerberos
  3. Vérifier les certificats utilisés pour WinRM

Valeur par défaut : Communication chiffrée via Kerberos

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

11.2.1 — Windows Admin Center — certificat HTTPS et accès restreint

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.10
MITRE ATT&CK T1021 (Remote Services), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R113
NIST NIST-53 SC-8, AC-17
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Windows Admin Center (WAC) doit utiliser un certificat TLS valide émis par une autorité de certification d’entreprise (pas un certificat auto-signé). L’accès à WAC doit être restreint aux administrateurs Hyper-V autorisés via des permissions RBAC intégrées. WAC doit être déployé sur un serveur dédié en mode passerelle (Gateway mode).

Vérification :

# Vérifier le certificat WAC
$wacCert = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.FriendlyName -like "*Windows Admin Center*" }
if ($wacCert) {
    $wacCert | Select-Object Subject, Issuer, NotAfter, @{N='DaysRemaining';E={($_.NotAfter - (Get-Date)).Days}}
}

# Vérifier le service WAC
Get-Service ServerManagementGateway -ErrorAction SilentlyContinue | Select-Object Name, Status

Remédiation :

  1. Configurer un certificat TLS d’entreprise pour WAC
  2. Restreindre l’accès via des groupes AD dédiés
  3. Déployer WAC en mode Gateway sur un serveur dédié

Valeur par défaut : Certificat auto-signé, accès local

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

11.3.1 — PowerShell Direct — contrôle d’utilisation

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 5.4
MITRE ATT&CK T1059.001 (PowerShell), T1021 (Remote Services)
ANSSI ANSSI-VIRT R114
NIST NIST-53 AC-17, AU-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : PowerShell Direct permet l’exécution de commandes PowerShell dans une VM depuis l’hôte Hyper-V via VMBus, sans nécessiter de connectivité réseau. Cette fonctionnalité contourne les pare-feux et la segmentation réseau. L’utilisation de PowerShell Direct doit être surveillée et restreinte aux opérations de maintenance documentées. Les commandes Invoke-Command -VMName et Enter-PSSession -VMName doivent être auditées.

Vérification :

# Vérifier les connexions PowerShell Direct récentes (journaux d'événements)
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Hyper-V-VmSwitch-Operational'; StartTime=(Get-Date).AddDays(-7)} -MaxEvents 20 -ErrorAction SilentlyContinue

# Vérifier la journalisation PowerShell pour les commandes Invoke-Command -VMName
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; Id=4104; StartTime=(Get-Date).AddDays(-7)} -ErrorAction SilentlyContinue | Where-Object { $_.Message -like "*VMName*" -or $_.Message -like "*VMId*" } | Select-Object TimeCreated, Message | Select-Object -First 10

Remédiation :

  1. Activer la journalisation PowerShell Script Block Logging
  2. Créer des alertes SIEM pour les commandes PowerShell Direct
  3. Restreindre l’accès aux seuls administrateurs nécessitant un accès direct aux VMs

Valeur par défaut : Disponible pour tous les administrateurs Hyper-V

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

11.3.2 — Automatisation et scripting — contrôle des scripts

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 2.7
MITRE ATT&CK T1059.001 (PowerShell), T1072 (Software Deployment Tools)
ANSSI ANSSI-VIRT R115
NIST NIST-53 CM-3, SI-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les scripts d’automatisation Hyper-V (PowerShell, DSC) doivent être signés numériquement, versionnés et stockés dans un dépôt de code sécurisé. La politique d’exécution de scripts PowerShell doit être configurée en AllSigned ou RemoteSigned pour empêcher l’exécution de scripts non autorisés. Les scripts modifiant la configuration des VMs ou de l’hôte doivent suivre un processus d’approbation.

Vérification :

# Vérifier la politique d'exécution PowerShell
Get-ExecutionPolicy -List

# Vérifier la politique de signature de scripts via GPO
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" -Name ExecutionPolicy -ErrorAction SilentlyContinue

# Vérifier les scripts déployés
Get-ChildItem -Path "C:\Scripts\Hyper-V\" -Recurse -Filter "*.ps1" -ErrorAction SilentlyContinue | ForEach-Object {
    $sig = Get-AuthenticodeSignature $_.FullName
    [PSCustomObject]@{Script=$_.Name; Status=$sig.Status; Signer=$sig.SignerCertificate.Subject}
}

Remédiation :

  1. PowerShell :
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope LocalMachine
  1. Signer tous les scripts avec un certificat de signature de code d’entreprise
  2. Versionner les scripts dans un dépôt Git

Valeur par défaut : ExecutionPolicy = RemoteSigned

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 12 — CONFORMITÉ DES VMs INVITÉES

═══════════════════════════════════════════════════════════════════════════════

SECTION 12 — CONFORMITÉ DES VMs INVITÉES

Objectif : Vérifier que les systèmes d’exploitation invités exécutés dans les VMs Hyper-V sont conformes aux bonnes pratiques de sécurité. La sécurité de l’hyperviseur ne suffit pas si les VMs elles-mêmes sont vulnérables.

Références principales : CIS Windows Server 2025 Benchmark, ANSSI-VIRT R120-R130, NIST SP 800-125 §12.


12.1.1 — Durcissement des systèmes d’exploitation invités

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Benchmark applicable à l’OS invité
MITRE ATT&CK T1190 (Exploit Public-Facing Application), T1068 (Privilege Escalation)
ANSSI ANSSI-VIRT R120 — Durcissement des OS invités
NIST NIST-125 §12.1, NIST-53 CM-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Chaque système d’exploitation invité doit être durci conformément au CIS Benchmark applicable (Windows Server 2025, Windows Server 2022, Linux distributions). Le durcissement couvre les services, les comptes, les pare-feux, les politiques de mots de passe, les droits d’utilisateur et les paramètres de sécurité spécifiques à l’OS. Les templates de VM pré-durcis doivent être utilisés pour les nouveaux déploiements.

Vérification :

# Via PowerShell Direct — Vérifier le durcissement basique
Invoke-Command -VMName "VMName" -ScriptBlock {
    $results = @()
    $results += "Firewall: " + (Get-NetFirewallProfile | Where-Object Enabled | Select-Object -ExpandProperty Name) -join ', '
    $results += "PasswordComplexity: " + (net accounts | Select-String "complexity")
    $results += "WindowsUpdate: " + (Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 1).InstalledOn
    $results
} -Credential $cred

Remédiation :

  1. Appliquer le CIS Benchmark via GPO ou DSC
  2. Utiliser des templates de VM pré-durcis
  3. Auditer régulièrement la conformité avec des outils automatisés

Valeur par défaut : Configuration par défaut de l’OS (non durci)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

12.1.2 — Antivirus dans les VMs invitées

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 10.1
MITRE ATT&CK T1562.001 (Disable or Modify Tools)
ANSSI ANSSI-VIRT R121
NIST NIST-53 SI-3
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Chaque VM invitée doit disposer d’une protection antivirus/EDR active avec des signatures à jour. L’antivirus de l’hôte Hyper-V ne protège pas les VMs invitées — chaque VM doit avoir sa propre protection. Les solutions EDR (Endpoint Detection and Response) sont recommandées pour une détection avancée des menaces.

Vérification :

# Via PowerShell Direct
Invoke-Command -VMName "VMName" -ScriptBlock {
    Get-MpComputerStatus | Select-Object AntivirusEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated, AntivirusSignatureAge
} -Credential $cred

Remédiation :

  1. Déployer Windows Defender ou une solution EDR d’entreprise dans chaque VM
  2. Configurer la mise à jour automatique des signatures
  3. Centraliser la gestion antivirus (SCCM, Intune, console EDR)

Valeur par défaut : Windows Defender activé (Windows Server 2025)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

12.1.3 — Mises à jour des VMs invitées

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 7.1
MITRE ATT&CK T1190 (Exploit Public-Facing Application), T1068 (Privilege Escalation)
ANSSI ANSSI-VIRT R122
NIST NIST-53 SI-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les systèmes d’exploitation et les applications dans les VMs invitées doivent être maintenus à jour avec les derniers correctifs de sécurité. Les VMs non corrigées sont vulnérables aux exploits connus et constituent un vecteur d’attaque pour les mouvements latéraux dans l’infrastructure virtualisée.

Vérification :

# Via PowerShell Direct — vérifier les mises à jour
Invoke-Command -VMName "VMName" -ScriptBlock {
    Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5 HotFixID, Description, InstalledOn
    Write-Output "Dernière mise à jour : $((Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 1).InstalledOn)"
} -Credential $cred

Remédiation :

  1. Configurer WSUS/SCCM pour les mises à jour automatiques des VMs
  2. Planifier des fenêtres de maintenance régulières
  3. Auditer la conformité des mises à jour

Valeur par défaut : Mises à jour automatiques (dépend de la configuration)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

12.2.1 — Integration Services à jour dans les VMs invitées

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 7.1
MITRE ATT&CK T1068 (Privilege Escalation)
ANSSI ANSSI-VIRT R123
NIST NIST-53 SI-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Integration Services (composants d’intégration Hyper-V) installés dans les VMs invitées doivent être à jour. Les versions obsolètes des Integration Services peuvent contenir des vulnérabilités et ne pas bénéficier des correctifs de sécurité les plus récents. Depuis Windows Server 2016/Windows 10, les Integration Services sont mis à jour via Windows Update.

Vérification :

# Vérifier la version des Integration Services de chaque VM
Get-VM | Select-Object Name, IntegrationServicesVersion, IntegrationServicesState

# VMs avec IS obsolètes
Get-VM | Where-Object { $_.IntegrationServicesState -ne 'UpToDate' } | Select-Object Name, IntegrationServicesVersion, IntegrationServicesState
  • Valeur attendue : IntegrationServicesState = “UpToDate”

Remédiation :

  1. Mettre à jour les Integration Services via Windows Update dans la VM invitée
  2. Pour les anciens OS invités : installer manuellement les Integration Services depuis le média Hyper-V

Valeur par défaut : Version installée lors de la création de la VM

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

12.2.2 — Agent de monitoring dans les VMs

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.5
MITRE ATT&CK T1562.001 (Disable or Modify Tools)
ANSSI ANSSI-VIRT R124
NIST NIST-53 SI-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un agent de monitoring (SCOM, Azure Monitor, Prometheus, etc.) doit être installé et fonctionnel dans chaque VM pour la surveillance des performances, la détection d’anomalies et l’alerte. Le monitoring au niveau de l’hôte Hyper-V ne fournit pas de visibilité sur les processus et services exécutés à l’intérieur des VMs.

Vérification :

# Via PowerShell Direct
Invoke-Command -VMName "VMName" -ScriptBlock {
    Get-Service *SCOM*, *Monitor*, *HealthService*, *MMA*, *AzureMonitor* -ErrorAction SilentlyContinue | Select-Object Name, DisplayName, Status
} -Credential $cred

Remédiation :

  1. Déployer l’agent de monitoring dans toutes les VMs
  2. Vérifier la connectivité de l’agent avec la console de monitoring centrale
  3. Configurer les alertes spécifiques aux charges de travail de chaque VM

Valeur par défaut : Aucun agent de monitoring

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 13 — NESTED VIRTUALIZATION ET SCÉNARIOS AVANCÉS

═══════════════════════════════════════════════════════════════════════════════

SECTION 13 — NESTED VIRTUALIZATION ET SCÉNARIOS AVANCÉS

Objectif : Contrôler les scénarios avancés de virtualisation imbriquée et évaluer les risques associés.

Références principales : Microsoft Nested Virtualization, ANSSI-VIRT R130-R135.


13.1.1 — Nested Virtualization — contrôle d’utilisation

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 4.8
MITRE ATT&CK T1611 (Escape to Host), T1564.006 (Run Virtual Instance)
ANSSI ANSSI-VIRT R130 — Contrôle de la virtualisation imbriquée
NIST NIST-125 §5.7, NIST-53 SC-39
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La virtualisation imbriquée (Nested Virtualization) permet d’exécuter Hyper-V à l’intérieur d’une VM Hyper-V. Cette fonctionnalité augmente significativement la surface d’attaque et la complexité de l’isolation. Les VMs imbriquées sont plus difficiles à sécuriser et à surveiller. L’utilisation de la virtualisation imbriquée doit être strictement limitée aux scénarios de test/développement et ne doit jamais être utilisée en production sans justification forte et mesures de sécurité supplémentaires.

Vérification :

# Vérifier les VMs avec Nested Virtualization activée
Get-VM | Get-VMProcessor | Where-Object { $_.ExposeVirtualizationExtensions -eq $true } | Select-Object VMName, ExposeVirtualizationExtensions

# Vérifier la mémoire dynamique (incompatible avec NV)
Get-VM | Where-Object { (Get-VMProcessor -VMName $_.Name).ExposeVirtualizationExtensions } | Select-Object Name, DynamicMemoryEnabled
  • Valeur attendue : ExposeVirtualizationExtensions = False (sauf environnements de test documentés)

Remédiation :

  1. PowerShell :
# Désactiver la virtualisation imbriquée
Set-VMProcessor -VMName "VMName" -ExposeVirtualizationExtensions $false
  1. Documenter et justifier chaque utilisation de virtualisation imbriquée

Valeur par défaut : Désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

13.1.2 — VMs masquant leur environnement de virtualisation

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 8.5
MITRE ATT&CK T1497 (Virtualization/Sandbox Evasion), T1564.006 (Run Virtual Instance)
ANSSI ANSSI-VIRT R131
NIST NIST-53 SI-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Certaines VMs peuvent être configurées pour masquer leur environnement de virtualisation (compatible mode pour les anciennes applications ou pour les VMs utilisant du licensing sensible à la virtualisation). Cette configuration peut être utilisée par des attaquants pour créer des VMs indétectables par les outils de sécurité et pour exécuter des malwares qui détectent et évitent les environnements virtualisés.

Vérification :

# Vérifier les VMs avec CompatibilityForOlderOperatingSystemsEnabled
Get-VM | Get-VMProcessor | Where-Object { $_.CompatibilityForOlderOperatingSystemsEnabled } | Select-Object VMName

# Vérifier les paramètres de compatibilité
Get-VM | Get-VMProcessor | Select-Object VMName, CompatibilityForMigrationEnabled, CompatibilityForOlderOperatingSystemsEnabled

Remédiation :

  1. Désactiver CompatibilityForOlderOperatingSystemsEnabled sauf nécessité documentée
  2. Surveiller les VMs avec des configurations de masquage

Valeur par défaut : Désactivé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

13.1.3 — Contrôle des VMs avec accès matériel direct (passthrough)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 4.8
MITRE ATT&CK T1200 (Hardware Additions), T1611 (Escape to Host)
ANSSI ANSSI-VIRT R132
NIST NIST-125 §5.4, NIST-53 SC-41
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les VMs avec accès matériel direct (passthrough disks, DDA, Virtual Fibre Channel) doivent être inventoriées et leur justification documentée. L’accès matériel direct contourne l’abstraction de l’hyperviseur et augmente la surface d’attaque. Chaque accès passthrough doit être justifié par un besoin de performance ou de fonctionnalité spécifique.

Vérification :

# Vérifier les disques passthrough
Get-VM | Get-VMHardDiskDrive | Where-Object { $_.DiskNumber -ne $null } | Select-Object VMName, DiskNumber, Path

# Vérifier les Fibre Channel HBAs virtuels
Get-VM | Get-VMFibreChannelHba -ErrorAction SilentlyContinue | Select-Object VMName, WorldWideNodeNameSetA

# Vérifier les DDA
Get-VM | ForEach-Object {
    Get-VMAssignableDevice -VMName $_.Name -ErrorAction SilentlyContinue | Select-Object @{N='VM';E={$_.VMName}}, InstanceID
}

Remédiation :

  1. Documenter et justifier chaque accès matériel direct
  2. Remplacer le passthrough par des VHDX lorsque possible
  3. S’assurer que l’IOMMU est activé pour DDA

Valeur par défaut : Aucun accès matériel direct

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 14 — SÉCURITÉ AZURE STACK HCI

═══════════════════════════════════════════════════════════════════════════════

SECTION 14 — SÉCURITÉ AZURE STACK HCI

Objectif : Vérifier la sécurité spécifique d’Azure Stack HCI qui étend Hyper-V avec des fonctionnalités cloud hybride.

Références principales : Microsoft Azure Stack HCI Security, Azure Arc Security.


14.1.1 — Azure Stack HCI — version et mises à jour

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 7.1
MITRE ATT&CK T1190 (Exploit Public-Facing Application)
ANSSI ANSSI-VIRT R140
NIST NIST-53 SI-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Azure Stack HCI doit être maintenu à la dernière version avec les mises à jour de sécurité appliquées. Azure Stack HCI suit un modèle de mise à jour différent de Windows Server standard, avec des mises à jour mensuelles (Quality Updates) et des mises à jour de fonctionnalité (Feature Updates). Les mises à jour peuvent être gérées via Windows Admin Center ou Azure Update Manager.

Vérification :

# Vérifier la version Azure Stack HCI
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object ProductName, DisplayVersion, CurrentBuildNumber

# Vérifier les mises à jour en attente via Azure
Get-AzStackHciUpdate -ErrorAction SilentlyContinue

# Vérifier l'état de la solution-update
Get-SolutionUpdate -ErrorAction SilentlyContinue | Select-Object Version, State, Description

Remédiation :

  1. Appliquer les mises à jour via Windows Admin Center ou Azure Update Manager
  2. Configurer la mise à jour automatique si applicable

Valeur par défaut : Mises à jour manuelles

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

14.1.2 — Azure Arc — enregistrement et conformité

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 1.1
MITRE ATT&CK T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R141
NIST NIST-53 CM-8, RA-5
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Azure Stack HCI doit être enregistré dans Azure Arc pour la gestion centralisée, la conformité des politiques Azure et la surveillance de sécurité. Azure Arc permet d’appliquer des politiques Azure (Azure Policy), d’auditer la conformité et de déployer des extensions de sécurité comme Microsoft Defender for Cloud.

Vérification :

# Vérifier l'enregistrement Azure Arc
Get-AzureStackHCI | Select-Object ClusterStatus, RegistrationStatus, ConnectionStatus

# Vérifier l'agent Azure Arc
Get-Service himds -ErrorAction SilentlyContinue | Select-Object Name, Status

# Vérifier les extensions Arc installées
azcmagent show 2>$null

Remédiation :

  1. Enregistrer le cluster Azure Stack HCI dans Azure Arc
  2. Configurer les politiques Azure de conformité
  3. Activer Microsoft Defender for Cloud

Valeur par défaut : Non enregistré dans Azure Arc

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

14.1.3 — Azure Policy — conformité de sécurité

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 4.1
MITRE ATT&CK T1562 (Impair Defenses)
ANSSI ANSSI-VIRT R142
NIST NIST-53 CA-7, CM-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des politiques Azure doivent être assignées au cluster Azure Stack HCI pour vérifier la conformité de sécurité en continu. Les politiques recommandées incluent : vérification du chiffrement BitLocker, validation de la configuration de sécurité, audit des accès administratifs et conformité aux benchmarks de sécurité.

Vérification :

  • Vérifier dans le portail Azure : Azure Stack HCI > Politiques > Conformité
  • Vérifier les politiques assignées et leur statut de conformité

Remédiation :

  1. Assigner les politiques Azure de sécurité recommandées
  2. Configurer la remédiation automatique lorsque possible
  3. Surveiller le tableau de bord de conformité Azure

Valeur par défaut : Aucune politique assignée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 15 — PROTECTION CONTRE LES ATTAQUES DE VIRTUALISATION

═══════════════════════════════════════════════════════════════════════════════

SECTION 15 — PROTECTION CONTRE LES ATTAQUES DE VIRTUALISATION

Objectif : Vérifier les protections contre les attaques spécifiques à la virtualisation, y compris l’évasion de VM, les attaques par canal auxiliaire, les attaques sur le firmware et les attaques sur la chaîne d’approvisionnement des images VM.

Références principales : MITRE ATT&CK Virtualization Techniques, ANSSI-VIRT R150-R165, NIST SP 800-125 §13.


15.1.1 — Mitigations VM Escape — correctifs et configuration

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 7.1
MITRE ATT&CK T1611 (Escape to Host)
ANSSI ANSSI-VIRT R150 — Protection contre l’évasion de VM
NIST NIST-125 §13.1, NIST-53 SI-2, SC-39
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’évasion de VM (VM Escape) est l’attaque la plus critique en virtualisation : un attaquant exploite une vulnérabilité de l’hyperviseur depuis une VM invitée pour exécuter du code sur l’hôte et accéder à toutes les VMs. Les mitigations incluent : application des correctifs Hyper-V, réduction de la surface d’attaque (désactivation des services d’intégration non nécessaires), utilisation de Shielded VMs, et isolation de la mémoire via SLAT et les mitigations side-channel.

Vérification :

# Vérifier les correctifs critiques Hyper-V récents
Get-HotFix | Where-Object { $_.Description -like "*Security*" } | Sort-Object InstalledOn -Descending | Select-Object -First 10

# Vérifier les mitigations de surface d'attaque
Get-VM | ForEach-Object {
    $vm = $_
    $services = Get-VMIntegrationService -VMName $vm.Name | Where-Object Enabled
    [PSCustomObject]@{
        VM = $vm.Name
        EnabledServices = ($services.Name -join ', ')
        ServiceCount = $services.Count
    }
}

# Vérifier les composants d'émulation (vecteur d'attaque principal)
Get-Item C:\Windows\System32\vmwp.exe | Select-Object -ExpandProperty VersionInfo
Get-Item C:\Windows\System32\drivers\vmswitch.sys | Select-Object -ExpandProperty VersionInfo

Remédiation :

  1. Appliquer immédiatement les correctifs de sécurité Hyper-V
  2. Minimiser les services d’intégration activés
  3. Utiliser des VMs de Génération 2 avec Secure Boot
  4. Déployer des Shielded VMs pour les charges sensibles

Valeur par défaut : Dépend du niveau de correctifs

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

15.1.2 — Attaques par canal auxiliaire (Spectre, Meltdown, L1TF, MDS, MMIO)

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 7.1
MITRE ATT&CK T1003 (OS Credential Dumping), T1611 (Escape to Host)
ANSSI ANSSI-VIRT R151 — Protection contre les canaux auxiliaires
NIST NIST-125 §13.2, NIST-53 SC-39
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les attaques par canal auxiliaire (side-channel attacks) exploitent les failles microarchitecturales des processeurs pour extraire des données entre les contextes d’isolation (entre VMs, entre VM et hôte). Les variantes connues incluent Spectre (CVE-2017-5753, CVE-2017-5715), Meltdown (CVE-2017-5754), L1 Terminal Fault/Foreshadow (CVE-2018-3615, CVE-2018-3646), MDS/Zombieload (CVE-2018-12126, CVE-2019-11091) et MMIO Stale Data (CVE-2022-21123). Les correctifs microcode et OS doivent être appliqués.

Vérification :

# Installer le module de vérification
Install-Module SpeculationControl -Force -ErrorAction SilentlyContinue
Get-SpeculationControlSettings

# Vérifier les mitigations activées dans le registre
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverride, FeatureSettingsOverrideMask -ErrorAction SilentlyContinue

# Vérifier le microcode CPU
Get-WmiObject Win32_Processor | Select-Object Name, Description, Revision

# Vérifier l'exposition des mitigations aux VMs invitées
Get-VM | Get-VMProcessor | Select-Object VMName, @{N='HwThreadCountPerCore';E={$_.HwThreadCountPerCore}}
  • Valeur attendue : Toutes les mitigations activées (BTIHardwarePresent, BTIKernelRetpolineEnabled, etc.)

Remédiation :

  1. Appliquer les mises à jour du microcode CPU (via BIOS/UEFI firmware update)
  2. Appliquer les correctifs Windows contre les side-channel attacks
  3. PowerShell :
# Activer les mitigations (valeurs pour Spectre + L1TF + MDS)
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverride -Value 72
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name FeatureSettingsOverrideMask -Value 3
  1. Considérer la désactivation de l’HyperThreading pour les charges ultra-sensibles

Valeur par défaut : Mitigations activées après application des correctifs

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

15.2.1 — Réduction de la surface d’attaque Hyper-V

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 4.8
MITRE ATT&CK T1210 (Exploitation of Remote Services)
ANSSI ANSSI-VIRT R152
NIST NIST-125 §13.3, NIST-53 CM-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La surface d’attaque de l’hyperviseur Hyper-V doit être réduite au minimum. Cela inclut la désactivation des interfaces d’émulation non nécessaires (COM ports, disquettes, IDE pour les VMs Gen2), la limitation des services d’intégration, la désactivation de l’Enhanced Session Mode, la suppression de RemoteFX vGPU, et la restriction des accès DDA/SR-IOV.

Vérification :

# Audit de surface d'attaque par VM
Get-VM | ForEach-Object {
    $vm = $_
    $is = Get-VMIntegrationService -VMName $vm.Name | Where-Object Enabled
    $sec = Get-VMSecurity -VMName $vm.Name
    $proc = Get-VMProcessor -VMName $vm.Name
    [PSCustomObject]@{
        VM = $vm.Name
        Generation = $vm.Generation
        IntServicesCount = $is.Count
        SecureBoot = if ($vm.Generation -eq 2) { (Get-VMFirmware -VMName $vm.Name).SecureBoot } else { "N/A" }
        vTPM = $sec.TpmEnabled
        Shielded = $sec.Shielded
        NestedVirt = $proc.ExposeVirtualizationExtensions
        EnhancedSession = (Get-VMHost).EnableEnhancedSessionMode
    }
}

Remédiation :

  1. Appliquer les recommandations des contrôles précédents (sections 1, 3, 4)
  2. Créer un baseline de sécurité VM et le vérifier régulièrement
  3. Automatiser la vérification de conformité

Valeur par défaut : Surface d’attaque par défaut (non optimisée)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

15.2.2 — Protection contre les attaques firmware

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 1.4
MITRE ATT&CK T1542.001 (System Firmware), T1195.003 (Supply Chain: Hardware)
ANSSI ANSSI-VIRT R153
NIST NIST-53 SI-7(9), SA-12
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le firmware du serveur physique (UEFI/BIOS, BMC/IPMI/iLO/iDRAC) doit être à jour et sécurisé. Les attaques de firmware sont persistantes (survivent aux réinstallations OS) et peuvent compromettre l’hyperviseur avant même son chargement. Le Secure Boot et le Measured Boot (via TPM) protègent la chaîne de démarrage mais le firmware lui-même doit être sécurisé.

Vérification :

# Vérifier le Secure Boot
Confirm-SecureBootUEFI

# Vérifier la version du firmware UEFI
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, Name, Version, SMBIOSBIOSVersion, ReleaseDate

# Vérifier l'accès BMC/IPMI
Get-WmiObject -Namespace root\WMI -Class MSAcpi_ThermalZoneTemperature -ErrorAction SilentlyContinue

Remédiation :

  1. Mettre à jour le firmware UEFI à la dernière version
  2. Configurer le mot de passe du BIOS/UEFI
  3. Sécuriser l’accès BMC/iLO/iDRAC (réseau de gestion dédié, HTTPS, mot de passe fort)
  4. Activer Secure Boot et le verrouillage UEFI

Valeur par défaut : Firmware installé en usine

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

15.3.1 — Contrôle de la chaîne d’approvisionnement des images VM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 2.5
MITRE ATT&CK T1195.002 (Supply Chain: Software Supply Chain)
ANSSI ANSSI-VIRT R154
NIST NIST-53 SA-12, SI-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les images de VM (templates VHDX, ISO, Shielding Data Files) doivent provenir de sources fiables et vérifiées. Les images doivent être signées numériquement ou vérifiées par hash avant utilisation. L’utilisation d’images non vérifiées peut introduire des malwares, des backdoors ou des configurations vulnérables dans l’infrastructure. Les bibliothèques de templates SCVMM doivent être protégées.

Vérification :

# Vérifier les templates dans la bibliothèque SCVMM
Get-SCVMTemplate | Select-Object Name, Owner, AddedTime -ErrorAction SilentlyContinue

# Vérifier les ISO disponibles
Get-ChildItem -Path (Get-VMHost).VirtualHardDiskPath -Filter "*.iso" -ErrorAction SilentlyContinue | Select-Object Name, LastWriteTime, @{N='HashSHA256';E={(Get-FileHash $_.FullName -Algorithm SHA256).Hash}}

# Vérifier les VHDX templates
Get-ChildItem -Path (Get-VMHost).VirtualHardDiskPath -Filter "*.vhdx" -ErrorAction SilentlyContinue | Where-Object { $_.Name -like "*template*" -or $_.Name -like "*golden*" } | Select-Object Name, LastWriteTime

Remédiation :

  1. Créer et maintenir des templates sécurisés (golden images)
  2. Signer les images avec des certificats d’entreprise
  3. Vérifier les hash des images avant utilisation
  4. Protéger les bibliothèques SCVMM avec des ACL restrictives

Valeur par défaut : Aucun contrôle de chaîne d’approvisionnement

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 16 — RÉSEAU ET SEGMENTATION AVANCÉE

═══════════════════════════════════════════════════════════════════════════════

SECTION 16 — RÉSEAU ET SEGMENTATION AVANCÉE

Objectif : Vérifier la mise en oeuvre de la segmentation réseau avancée dans l’infrastructure Hyper-V, incluant la micro-segmentation, le pare-feu distribué et l’isolation entre les zones de sécurité.

Références principales : ANSSI-VIRT R160-R170, NIST SP 800-125 §7.5, Zero Trust Architecture.


16.1.1 — Micro-segmentation — isolation inter-VM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.2
MITRE ATT&CK T1021 (Remote Services), T1046 (Network Service Discovery)
ANSSI ANSSI-VIRT R160 — Micro-segmentation du réseau virtuel
NIST NIST-125 §7.5, NIST-53 SC-7(21)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La micro-segmentation doit être implémentée pour contrôler le trafic réseau entre les VMs au sein d’un même segment réseau (East-West traffic). Contrairement à la segmentation traditionnelle (North-South), la micro-segmentation utilise des politiques réseau au niveau du port virtuel pour empêcher les mouvements latéraux entre VMs sur le même VLAN. Cela est réalisable via les Extended Port ACLs, le SDN Network Controller ou des solutions tierces (NSX-T, Cisco ACI).

Vérification :

# Vérifier les ACLs de port étendues
Get-VM | Get-VMNetworkAdapter | Get-VMNetworkAdapterExtendedAcl | Select-Object VMName, Direction, Action, LocalIPAddress, RemoteIPAddress, Protocol, LocalPort, RemotePort, Weight

# Vérifier les Network Security Groups SDN (si déployé)
Get-NetworkControllerAccessControlList -ErrorAction SilentlyContinue | ForEach-Object {
    [PSCustomObject]@{
        Name = $_.ResourceId
        Rules = ($_.Properties.AclRules | Measure-Object).Count
    }
}

# Vérifier l'isolation entre VMs du même VLAN
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, SwitchName, @{N='VLAN';E={(Get-VMNetworkAdapterVlan -VMNetworkAdapter $_).AccessVlanId}}, IsolationMode
  • Valeur attendue : ACLs ou politiques SDN en place pour le trafic East-West

Remédiation :

  1. Option 1 — Extended Port ACLs :
# Autoriser uniquement les flux nécessaires entre VMs
Add-VMNetworkAdapterExtendedAcl -VMName "WebServer" -Direction Outbound -Action Allow -RemoteIPAddress "10.0.1.20" -RemotePort "1433" -Protocol TCP -Weight 10
Add-VMNetworkAdapterExtendedAcl -VMName "WebServer" -Direction Outbound -Action Deny -Weight 1
  1. Option 2 — SDN Network Controller avec Network Security Groups
  2. Option 3 — Solutions tierces de micro-segmentation

Valeur par défaut : Aucune micro-segmentation

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

16.1.2 — Zones de sécurité réseau documentées et appliquées

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 12.1
MITRE ATT&CK T1599 (Network Boundary Bridging)
ANSSI ANSSI-VIRT R161
NIST NIST-53 SC-7(5), AC-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les zones de sécurité réseau (DMZ, Production, Développement, Gestion, Sauvegarde) doivent être clairement documentées et appliquées via des Virtual Switches séparés et/ou des VLANs distincts. Chaque zone doit avoir des règles de filtrage explicites pour le trafic inter-zones. Les VMs ne doivent pas être connectées simultanément à plusieurs zones de sécurité (sauf les pare-feux virtuels).

Vérification :

# Vérifier les switches par zone
Get-VMSwitch | Select-Object Name, SwitchType, Notes

# Vérifier les VMs multi-connectées (potentiel bridge entre zones)
Get-VM | ForEach-Object {
    $adapters = Get-VMNetworkAdapter -VMName $_.Name
    if ($adapters.Count -gt 1) {
        [PSCustomObject]@{
            VM = $_.Name
            Adapters = $adapters.Count
            Switches = ($adapters.SwitchName -join ', ')
            VLANs = (($adapters | Get-VMNetworkAdapterVlan).AccessVlanId -join ', ')
        }
    }
}
  • Valeur attendue : Documentation des zones, pas de VMs bridgeant des zones (sauf pare-feux)

Remédiation :

  1. Documenter l’architecture des zones de sécurité
  2. Créer des Virtual Switches dédiés par zone quand possible
  3. Appliquer le filtrage inter-zones via VLAN + pare-feu physique/virtuel

Valeur par défaut : Aucune segmentation en zones

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

16.1.3 — Port Mirroring — contrôle et audit

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 12.2
MITRE ATT&CK T1040 (Network Sniffing), T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R162
NIST NIST-53 SI-4, AC-4
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Port Mirroring sur les switches virtuels Hyper-V doit être contrôlé et audité. Le Port Mirroring permet de copier tout le trafic réseau d’un port vers un autre pour l’analyse ou le monitoring. Si mal configuré ou exploité par un attaquant, le port mirroring peut être utilisé pour l’interception de trafic réseau de toutes les VMs du switch.

Vérification :

# Vérifier les configurations de Port Mirroring
Get-VM | Get-VMNetworkAdapter | Where-Object { $_.PortMirroringMode -ne 'None' } | Select-Object VMName, Name, PortMirroringMode

# PortMirroringMode : None, Source, Destination
  • Valeur attendue : Aucun port mirroring non documenté et approuvé

Remédiation :

  1. Désactiver le port mirroring non autorisé :
Get-VM | Get-VMNetworkAdapter | Where-Object { $_.PortMirroringMode -ne 'None' } | Set-VMNetworkAdapter -PortMirroringMode None
  1. Documenter et approuver chaque configuration de port mirroring
  2. Surveiller les changements de configuration de port mirroring

Valeur par défaut : Port Mirroring désactivé (None)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

16.2.1 — IPv6 — configuration sécurisée ou désactivation

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 12.2
MITRE ATT&CK T1557 (Adversary-in-the-Middle)
ANSSI ANSSI-VIRT R163
NIST NIST-53 SC-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si IPv6 n’est pas utilisé dans l’infrastructure Hyper-V, il doit être désactivé sur les adaptateurs réseau virtuels pour empêcher les attaques IPv6 (RA spoofing, DHCPv6 rogue, etc.). Si IPv6 est utilisé, le Router Guard et le DHCP Guard doivent être configurés pour les deux protocoles.

Vérification :

# Vérifier IPv6 sur l'hôte
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Select-Object Name, Enabled

# Vérifier IPv6 sur les adaptateurs VM
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, @{N='IPv6Addresses';E={$_.IPAddresses | Where-Object { $_ -match ':' }}}

Remédiation :

  1. Désactiver IPv6 si non utilisé :
# Sur l'hôte
Disable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6
  1. Si IPv6 est utilisé : Activer Router Guard et DHCP Guard

Valeur par défaut : IPv6 activé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 17 — RÉPONSE AUX INCIDENTS VIRTUALISATION

═══════════════════════════════════════════════════════════════════════════════

SECTION 17 — RÉPONSE AUX INCIDENTS VIRTUALISATION

Objectif : Vérifier que des procédures de réponse aux incidents spécifiques à la virtualisation Hyper-V sont en place pour gérer efficacement les incidents de sécurité affectant l’hyperviseur ou les machines virtuelles.

Références principales : NIST SP 800-61 Computer Security Incident Handling, ANSSI-VIRT R170-R180.


17.1.1 — Plan de réponse aux incidents virtualisation documenté

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 17.1
MITRE ATT&CK T1611 (Escape to Host), T1486 (Data Encrypted for Impact)
ANSSI ANSSI-VIRT R170 — Plan de réponse aux incidents de virtualisation
NIST NIST SP 800-61 §3, NIST-53 IR-1, IR-4, IR-8
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un plan de réponse aux incidents spécifique à la virtualisation doit être documenté et testé. Ce plan doit couvrir les scénarios suivants : compromission de l’hôte Hyper-V, évasion de VM, ransomware dans une VM, compromission du cluster, perte du HGS, attaque sur la Live Migration, compromission d’un template VM. Le plan doit définir les procédures d’isolation, de collecte de preuves et de restauration.

Vérification :

  • Vérifier l’existence du plan de réponse aux incidents virtualisation
  • Vérifier la date de la dernière révision (< 12 mois)
  • Vérifier la date du dernier exercice/simulation

Remédiation :

  1. Rédiger un plan de réponse aux incidents virtualisation
  2. Former les équipes d’exploitation Hyper-V aux procédures
  3. Effectuer des exercices de simulation annuels

Valeur par défaut : Aucun plan spécifique

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

17.1.2 — Procédure d’isolation d’une VM compromise

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 17.3
MITRE ATT&CK T1021 (Remote Services), T1570 (Lateral Tool Transfer)
ANSSI ANSSI-VIRT R171
NIST NIST-53 IR-4(1), IR-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Une procédure documentée doit décrire les étapes d’isolation d’une VM compromise sans détruire les preuves forensiques. L’isolation doit pouvoir être effectuée rapidement tout en préservant l’état de la VM pour l’analyse. Les actions incluent : déconnexion des adaptateurs réseau, prise de checkpoint forensique, sauvegarde de l’état mémoire, préservation des journaux.

Vérification :

# Commandes d'isolation rapide d'une VM (à documenter dans la procédure)
# Étape 1 : Déconnecter du réseau (sans éteindre)
# Disconnect-VMNetworkAdapter -VMName "CompromisedVM"
# Étape 2 : Prendre un checkpoint pour préserver l'état
# Checkpoint-VM -VMName "CompromisedVM" -SnapshotName "Forensic-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
# Étape 3 : Exporter pour analyse forensique
# Export-VM -VMName "CompromisedVM" -Path "D:\Forensic\"

# Vérifier la documentation de la procédure
Test-Path "C:\Procedures\Incident-Response-VM-Isolation.pdf" -ErrorAction SilentlyContinue

Remédiation :

  1. Documenter la procédure d’isolation pas à pas
  2. Créer des scripts d’isolation automatisés
  3. Former les administrateurs à la procédure d’isolation
  4. Tester la procédure régulièrement

Valeur par défaut : Aucune procédure documentée

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

17.1.3 — Collecte de preuves forensiques virtualisées

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 17.5
MITRE ATT&CK T1070 (Indicator Removal)
ANSSI ANSSI-VIRT R172
NIST NIST-53 IR-4, AU-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les procédures de collecte de preuves forensiques doivent être adaptées à l’environnement virtualisé. La collecte doit inclure : l’état mémoire de la VM (fichiers .vmrs), les fichiers de disque virtuel (VHDX), les fichiers de configuration VM (.vmcx), les journaux Hyper-V de l’hôte, les journaux du switch virtuel, l’historique des checkpoints et les journaux de la VM invitée. L’intégrité des preuves doit être garantie par des hash cryptographiques.

Vérification :

# Outils et procédures de collecte forensique
# Vérifier la présence d'outils forensiques
Test-Path "C:\Tools\Forensic\" -ErrorAction SilentlyContinue

# Vérifier la capacité de stockage pour les exports forensiques
Get-Volume | Where-Object { $_.FileSystemLabel -like "*Forensic*" } -ErrorAction SilentlyContinue | Select-Object DriveLetter, Size, SizeRemaining

Remédiation :

  1. Préparer un kit forensique virtualisé (scripts, outils, espace de stockage)
  2. Documenter la procédure de collecte de preuves
  3. Former l’équipe de réponse aux incidents aux spécificités de la forensique virtualisée

Valeur par défaut : Aucun kit forensique préparé

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

17.2.1 — Procédure de réponse à une compromission de l’hôte Hyper-V

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 17.1
MITRE ATT&CK T1611 (Escape to Host)
ANSSI ANSSI-VIRT R173
NIST NIST-53 IR-4, IR-5, IR-6
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Une procédure spécifique doit couvrir le scénario de compromission de l’hôte Hyper-V lui-même (le pire scénario en virtualisation). Ce scénario implique que toutes les VMs hébergées doivent être considérées comme potentiellement compromises. Les actions incluent : isolation réseau de l’hôte, migration d’urgence des VMs critiques vers un hôte de confiance, collecte forensique de l’hôte, reconstruction de l’hôte et re-attestation HGS.

Vérification :

  • Vérifier l’existence de la procédure spécifique
  • Vérifier les critères de détection d’une compromission hôte
  • Vérifier le plan de migration d’urgence des VMs

Remédiation :

  1. Rédiger la procédure de réponse à la compromission de l’hôte
  2. Définir les critères d’escalade (quand considérer l’hôte comme compromis)
  3. Préparer un plan de migration d’urgence vers des hôtes de secours
  4. Tester la procédure lors d’exercices de sécurité

Valeur par défaut : Aucune procédure spécifique

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

17.2.2 — Communication et escalade en cas d’incident

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 17.2
MITRE ATT&CK T1486 (Data Encrypted for Impact)
ANSSI ANSSI-VIRT R174
NIST NIST-53 IR-6, IR-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un plan de communication et d’escalade doit définir les contacts d’urgence, les procédures de notification (interne, ANSSI si applicable, clients si données personnelles affectées), et les niveaux d’escalade selon la gravité de l’incident. La compromission d’un hôte Hyper-V peut affecter de nombreuses VMs et nécessite une communication rapide et efficace.

Vérification :

  • Vérifier l’existence du plan de communication
  • Vérifier la liste des contacts d’urgence
  • Vérifier la procédure de notification réglementaire (RGPD, NIS2)

Remédiation :

  1. Documenter le plan de communication et d’escalade
  2. Maintenir la liste des contacts d’urgence à jour
  3. Définir les obligations de notification (ANSSI, CNIL si données personnelles)

Valeur par défaut : Aucun plan de communication spécifique

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

SECTION 18 — GOUVERNANCE ET CONFORMITÉ

═══════════════════════════════════════════════════════════════════════════════

SECTION 18 — GOUVERNANCE ET CONFORMITÉ

Objectif : Vérifier que la gouvernance de la sécurité de l’infrastructure Hyper-V est en place avec des politiques documentées, des processus de gestion des changements et une conformité aux réglementations applicables.

Références principales : ISO 27001:2022, RGPD, Directive NIS2, ANSSI-VIRT R180-R190.


18.1.1 — Politique de sécurité de la virtualisation documentée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 1.1
MITRE ATT&CK N/A (Gouvernance)
ANSSI ANSSI-VIRT R180 — Politique de sécurité de la virtualisation
NIST NIST-53 PL-1, PL-2
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Une politique de sécurité spécifique à la virtualisation Hyper-V doit être documentée, approuvée par la direction et communiquée aux parties prenantes. Cette politique doit couvrir : les standards de configuration des hôtes et des VMs, la gestion des accès, la classification des VMs, les procédures de sauvegarde, la gestion des correctifs, la surveillance et la réponse aux incidents.

Vérification :

  • Vérifier l’existence de la politique de sécurité virtualisation
  • Date de la dernière révision (< 12 mois)
  • Approbation par la direction

Remédiation :

  1. Rédiger la politique de sécurité de la virtualisation
  2. Faire approuver par le RSSI et la direction
  3. Communiquer et former les équipes
  4. Planifier une révision annuelle

Valeur par défaut : Aucune politique spécifique

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

18.1.2 — Gestion des changements pour l’infrastructure Hyper-V

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 4.1
MITRE ATT&CK T1078 (Valid Accounts)
ANSSI ANSSI-VIRT R181
NIST NIST-53 CM-3, CM-5
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un processus de gestion des changements (Change Management) formel doit être appliqué pour toutes les modifications de l’infrastructure Hyper-V : ajout/suppression de VMs, modification de la configuration des hôtes, changements réseau virtuel, mises à jour, modifications du Guarded Fabric. Chaque changement doit être approuvé, documenté et réversible.

Vérification :

  • Vérifier l’existence du processus de gestion des changements
  • Vérifier les derniers changements documentés
  • Vérifier le processus d’approbation des changements

Remédiation :

  1. Mettre en place un processus ITIL de gestion des changements
  2. Utiliser un outil de ticketing pour les changements
  3. Exiger une approbation avant chaque changement critique

Valeur par défaut : Aucun processus formel

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

18.1.3 — Inventaire des machines virtuelles à jour

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 1.1 — Inventaire des actifs
MITRE ATT&CK T1564.006 (Run Virtual Instance)
ANSSI ANSSI-VIRT R182
NIST NIST-53 CM-8
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un inventaire complet et à jour de toutes les machines virtuelles hébergées sur l’infrastructure Hyper-V doit être maintenu. L’inventaire doit inclure : le nom de la VM, l’hôte, le propriétaire, la classification de sécurité, la criticité métier, les systèmes d’exploitation, les applications hébergées, les ressources allouées, la date de création et la date de dernière vérification. Les VMs orphelines ou non documentées doivent être identifiées et traitées.

Vérification :

# Générer l'inventaire des VMs
Get-VM | Select-Object Name, State, CPUUsage, @{N='MemoryGB';E={[math]::Round($_.MemoryAssigned/1GB,2)}}, Generation, Version, Path, CreationTime, Uptime, @{N='Host';E={$env:COMPUTERNAME}} | Export-Csv "C:\Audit\VM-Inventory-$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation

# Identifier les VMs arrêtées depuis longtemps
Get-VM | Where-Object { $_.State -eq 'Off' } | Select-Object Name, State, CreationTime, @{N='Notes';E={$_.Notes}}

Remédiation :

  1. Mettre en place un processus d’inventaire automatisé
  2. Assigner un propriétaire à chaque VM
  3. Supprimer ou archiver les VMs orphelines
  4. Vérifier l’inventaire trimestriellement

Valeur par défaut : Inventaire Hyper-V Manager (non formalisé)

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

18.2.1 — Conformité RGPD — données personnelles dans les VMs

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.1
MITRE ATT&CK T1005 (Data from Local System)
ANSSI ANSSI-VIRT R183
NIST NIST-53 PM-11
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les VMs contenant des données personnelles soumises au RGPD doivent être identifiées et des mesures de protection appropriées doivent être en place : chiffrement des données au repos (BitLocker, Shielded VMs), chiffrement en transit, contrôle d’accès strict, journalisation des accès, procédures de notification en cas de violation de données, et documentation de l’analyse d’impact (DPIA).

Vérification :

  • Vérifier l’inventaire des VMs contenant des données personnelles
  • Vérifier les mesures de protection en place
  • Vérifier la DPIA si traitements à risque
  • Vérifier la procédure de notification en cas de violation

Remédiation :

  1. Identifier et classifier les VMs avec données personnelles
  2. Appliquer les Shielded VMs pour les VMs les plus sensibles
  3. Documenter l’analyse d’impact (DPIA)
  4. Mettre en place la procédure de notification sous 72h

Valeur par défaut : Aucune classification des données

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

18.2.2 — Conformité NIS2 — infrastructure essentielle

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 1.1
MITRE ATT&CK N/A (Conformité)
ANSSI ANSSI-VIRT R184
NIST NIST-53 PM-1
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Si l’organisation est soumise à la directive NIS2 (Network and Information Security), les exigences spécifiques de sécurité doivent être appliquées à l’infrastructure Hyper-V : gestion des risques, gestion des incidents, continuité d’activité, sécurité de la chaîne d’approvisionnement, tests de sécurité et notification des incidents significatifs.

Vérification :

  • Vérifier si l’organisation est soumise à NIS2
  • Vérifier la conformité aux exigences NIS2 pour l’infrastructure de virtualisation
  • Vérifier les procédures de notification d’incidents

Remédiation :

  1. Évaluer l’applicabilité de NIS2 à l’organisation
  2. Réaliser une analyse de risques sur l’infrastructure Hyper-V
  3. Mettre en oeuvre les mesures de sécurité requises par NIS2
  4. Préparer les procédures de notification

Valeur par défaut : Non évalué

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

18.2.3 — Audit de sécurité périodique de l’infrastructure Hyper-V

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.1
MITRE ATT&CK N/A (Gouvernance)
ANSSI ANSSI-VIRT R185
NIST NIST-53 CA-2, CA-7
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un audit de sécurité de l’infrastructure Hyper-V doit être réalisé au minimum annuellement (et après chaque changement majeur). L’audit doit couvrir la configuration de l’hôte, les VMs, le réseau virtuel, le stockage, la gestion des accès, la journalisation et la conformité réglementaire. Les résultats de l’audit doivent être documentés et les actions correctives suivies.

Vérification :

  • Date du dernier audit de sécurité Hyper-V
  • Rapport d’audit disponible
  • Plan de remédiation des non-conformités identifiées
  • Suivi des actions correctives

Remédiation :

  1. Planifier un audit de sécurité annuel de l’infrastructure Hyper-V
  2. Utiliser cette checklist ANC comme référentiel d’audit
  3. Documenter les résultats et suivre les actions correctives

Valeur par défaut : Aucun audit planifié

Preuve d’audit :

| Résultat | _____________________________________________ |
| Capture  | ☐ Oui ☐ Non                                  |
| Note     | _____________________________________________ |

═══════════════════════════════════════════════════════════════════════════════

CONTRÔLES COMPLÉMENTAIRES — SECTIONS 1 À 18

═══════════════════════════════════════════════════════════════════════════════

CONTRÔLES COMPLÉMENTAIRES

Note : Les contrôles suivants complètent les sections précédentes avec des vérifications supplémentaires couvrant des aspects spécifiques de la sécurité Hyper-V.


1.10.1 — Protocole SMBv1 désactivé sur l’hôte

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 9.3
MITRE ATT&CK T1210 (Exploitation of Remote Services)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : SMBv1 est un protocole obsolète et vulnérable (WannaCry, EternalBlue) qui doit être complètement désactivé sur l’hôte Hyper-V. SMBv1 ne supporte pas le chiffrement et est sujet à de nombreuses vulnérabilités critiques.

Vérification :

Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

Remédiation :

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart

Valeur par défaut : Désactivé sur Server 2025


1.10.2 — TLS 1.2/1.3 uniquement — protocoles obsolètes désactivés

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 3.10
MITRE ATT&CK T1557 (Adversary-in-the-Middle)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les protocoles SSL 2.0, SSL 3.0, TLS 1.0 et TLS 1.1 doivent être désactivés sur l’hôte Hyper-V. Seuls TLS 1.2 et TLS 1.3 doivent être autorisés pour toutes les communications chiffrées.

Vérification :

$protocols = @("SSL 2.0", "SSL 3.0", "TLS 1.0", "TLS 1.1", "TLS 1.2", "TLS 1.3")
foreach ($p in $protocols) {
    $serverKey = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$p\Server"
    $val = Get-ItemProperty $serverKey -Name Enabled -ErrorAction SilentlyContinue
    Write-Output "$p Server: Enabled=$($val.Enabled)"
}

Remédiation :

# Désactiver TLS 1.0 et 1.1
foreach ($p in @("SSL 2.0","SSL 3.0","TLS 1.0","TLS 1.1")) {
    New-Item "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$p\Server" -Force
    Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$p\Server" -Name Enabled -Value 0 -Type DWord
}

Valeur par défaut : TLS 1.0 et 1.1 encore disponibles


1.10.3 — Suites de chiffrement renforcées (Cipher Suites)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.10
MITRE ATT&CK T1557 (Adversary-in-the-Middle)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les suites de chiffrement faibles (RC4, DES, 3DES, NULL, Export) doivent être désactivées. Seules les suites utilisant AES-128-GCM, AES-256-GCM ou ChaCha20-Poly1305 avec échange de clés ECDHE ou DHE doivent être autorisées.

Vérification :

Get-TlsCipherSuite | Select-Object Name, CipherBlockLength, HashLength | Format-Table

Remédiation :

# Désactiver les suites faibles
Disable-TlsCipherSuite -Name "TLS_RSA_WITH_3DES_EDE_CBC_SHA"
Disable-TlsCipherSuite -Name "TLS_RSA_WITH_RC4_128_SHA"

Valeur par défaut : Toutes les suites activées par défaut


1.10.4 — Windows Defender Application Control (WDAC)

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 2.7
MITRE ATT&CK T1204 (User Execution), T1059 (Command and Scripting Interpreter)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Windows Defender Application Control (WDAC) doit être configuré sur l’hôte Hyper-V pour n’autoriser que l’exécution des applications et scripts approuvés. WDAC utilise des politiques d’intégrité du code pour contrôler quels binaires peuvent s’exécuter.

Vérification :

Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object CodeIntegrityPolicyEnforcementStatus, UsermodeCodeIntegrityPolicyEnforcementStatus
citool --list-policies 2>$null

Remédiation :

# Créer et appliquer une politique WDAC
New-CIPolicy -FilePath "C:\CI\HVHostPolicy.xml" -Level Publisher -Fallback Hash -UserPEs

Valeur par défaut : WDAC non configuré


1.10.5 — Démarrage mesuré (Measured Boot) activé

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 1.4
MITRE ATT&CK T1542 (Pre-OS Boot)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Measured Boot doit être activé sur l’hôte Hyper-V pour enregistrer les mesures de chaque composant chargé lors du démarrage dans les PCR (Platform Configuration Registers) du TPM. Ces mesures sont utilisées par le HGS pour l’attestation TPM.

Vérification :

Get-Tpm | Select-Object TpmReady
bcdedit /enum | Select-String "measuredboot"
Get-WinEvent -LogName "Microsoft-Windows-Measured Boot" -MaxEvents 5 -ErrorAction SilentlyContinue

Remédiation :

bcdedit /set {default} measuredboot yes

Valeur par défaut : Activé si TPM présent


1.10.6 — Restriction des connexions sortantes de l’hôte

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 9.3
MITRE ATT&CK T1048 (Exfiltration Over Alternative Protocol)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les connexions réseau sortantes depuis l’hôte Hyper-V doivent être restreintes aux seules destinations nécessaires (WSUS, KMS, NTP, DNS, DC, SIEM, SCVMM). Un hôte Hyper-V n’a pas besoin d’accéder à Internet directement.

Vérification :

Get-NetFirewallProfile | Select-Object Name, DefaultOutboundAction
Get-NetFirewallRule -Direction Outbound -Enabled True | Where-Object Action -eq "Allow" | Select-Object DisplayName | Sort-Object DisplayName

Remédiation :

Set-NetFirewallProfile -Profile Domain,Private,Public -DefaultOutboundAction Block
# Créer des règles sortantes spécifiques pour les flux autorisés

Valeur par défaut : DefaultOutboundAction = Allow


2.7.1 — Restriction de connexion interactive sur l’hôte

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 2.2.26
MITRE ATT&CK T1078 (Valid Accounts)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La connexion interactive locale et à distance sur l’hôte Hyper-V doit être restreinte aux seuls comptes d’administration Hyper-V autorisés. Les comptes utilisateur standard ne doivent pas pouvoir se connecter à l’hôte.

Vérification :

secedit /export /cfg C:\secpol.cfg
Select-String -Path C:\secpol.cfg -Pattern "SeInteractiveLogonRight|SeDenyInteractiveLogonRight|SeRemoteInteractiveLogonRight"
Remove-Item C:\secpol.cfg

Remédiation : GPO : Stratégie > Droits d’utilisateur > Autoriser/Refuser l’ouverture de session locale

Valeur par défaut : Tous les utilisateurs autorisés


2.7.2 — Timeout de session d’administration

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 4.3
MITRE ATT&CK T1078 (Valid Accounts)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un timeout d’inactivité doit être configuré pour les sessions d’administration (RDP, WinRM, VMConnect) afin de fermer automatiquement les sessions inactives et réduire le risque de détournement de session.

Vérification :

Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name MaxIdleTime, MaxDisconnectionTime -ErrorAction SilentlyContinue

Remédiation :

Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name MaxIdleTime -Value 900000
Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name MaxDisconnectionTime -Value 60000

Valeur par défaut : Pas de timeout


2.7.3 — Bannière d’avertissement légal à la connexion

Attribut Valeur
Niveau 🟢 Faible
Référence CIS CIS Control 2.3.7.1-2.3.7.2
MITRE ATT&CK N/A
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un message d’avertissement légal doit être affiché avant la connexion à l’hôte Hyper-V pour informer les utilisateurs que le système est surveillé et que l’accès non autorisé est interdit.

Vérification :

Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name LegalNoticeCaption, LegalNoticeText

Remédiation :

Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name LegalNoticeCaption -Value "AVERTISSEMENT"
Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name LegalNoticeText -Value "Accès réservé aux utilisateurs autorisés. Toute activité est surveillée et enregistrée."

Valeur par défaut : Aucune bannière


3.7.1 — Automatic Start Action sécurisée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1489 (Service Stop), T1529 (System Shutdown/Reboot)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’action de démarrage automatique de chaque VM doit être configurée de manière appropriée. Les VMs critiques doivent être configurées pour démarrer automatiquement avec un délai approprié. Les VMs de test/développement ne doivent pas démarrer automatiquement.

Vérification :

Get-VM | Select-Object Name, AutomaticStartAction, AutomaticStartDelay, AutomaticStopAction

Remédiation :

Set-VM -Name "CriticalVM" -AutomaticStartAction Start -AutomaticStartDelay 30
Set-VM -Name "TestVM" -AutomaticStartAction Nothing
Set-VM -Name "CriticalVM" -AutomaticStopAction ShutDown

Valeur par défaut : AutomaticStartAction = Nothing


3.7.2 — Automatic Stop Action — arrêt propre des VMs

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1529 (System Shutdown/Reboot)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’action d’arrêt automatique doit être configurée sur “ShutDown” (arrêt propre via les Integration Services) plutôt que “TurnOff” (coupure brutale) ou “Save” (sauvegarde de l’état mémoire sur disque) pour éviter la corruption de données et les fuites d’état mémoire.

Vérification :

Get-VM | Select-Object Name, AutomaticStopAction | Where-Object { $_.AutomaticStopAction -ne 'ShutDown' }

Remédiation :

Get-VM | Set-VM -AutomaticStopAction ShutDown

Valeur par défaut : Save


3.7.3 — Notes et documentation des VMs

Attribut Valeur
Niveau 🟢 Faible
Référence CIS CIS Control 1.1
MITRE ATT&CK N/A
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Chaque VM doit avoir un champ Notes documenté contenant le propriétaire, la criticité, la date de création, la justification et le contact responsable.

Vérification :

Get-VM | Select-Object Name, Notes | Where-Object { [string]::IsNullOrWhiteSpace($_.Notes) }

Remédiation :

Set-VM -Name "VMName" -Notes "Propriétaire: Equipe-Infra | Criticité: Haute | Application: ERP | Contact: admin@org.local"

Valeur par défaut : Notes vides


3.7.4 — Version de configuration VM à jour

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 7.1
MITRE ATT&CK T1068 (Exploitation for Privilege Escalation)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : La version de configuration des VMs doit être mise à jour vers la dernière version supportée par l’hôte pour bénéficier des dernières fonctionnalités de sécurité et des correctifs.

Vérification :

Get-VM | Select-Object Name, Version, @{N='IsLatest';E={$_.Version -eq (Get-VMHostSupportedVersion | Sort-Object Version -Descending | Select-Object -First 1).Version}}

Remédiation :

Update-VMVersion -VMName "VMName" -Force

Valeur par défaut : Version au moment de la création


4.4.1 — Politique de déploiement des Shielded VMs documentée

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 4.1
MITRE ATT&CK T1611 (Escape to Host)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Une politique définissant les critères de déploiement des Shielded VMs (quelles VMs, quel niveau de protection, quel mode d’attestation) doit être documentée et appliquée.

Vérification : Vérifier l’existence de la politique de classification et de déploiement des Shielded VMs.

Remédiation : Rédiger et faire approuver une politique de déploiement des Shielded VMs.

Valeur par défaut : Aucune politique


4.4.2 — HGS backup et disaster recovery

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 11.1
MITRE ATT&CK T1490 (Inhibit System Recovery)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le Host Guardian Service doit être sauvegardé régulièrement, y compris les certificats de signature et de chiffrement, les politiques d’attestation et la base de données HGS. La perte du HGS empêche le démarrage de toutes les Shielded VMs.

Vérification :

# Sur le serveur HGS
Get-HgsServer | Select-Object *
Test-Path "C:\Backup\HGS\" -ErrorAction SilentlyContinue

Remédiation :

# Sauvegarder les clés HGS
Export-HgsServerState -Path "C:\Backup\HGS\hgs-state-$(Get-Date -Format 'yyyyMMdd').xml"

Valeur par défaut : HGS non sauvegardé


5.7.1 — Adresses MAC statiques pour les VMs sensibles

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 12.2
MITRE ATT&CK T1036 (Masquerading)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les VMs sensibles doivent utiliser des adresses MAC statiques pour empêcher les changements d’adresse MAC non autorisés et faciliter le suivi réseau. Les adresses MAC dynamiques peuvent changer après un redémarrage.

Vérification :

Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, MacAddress, DynamicMacAddressEnabled
Get-VM | Get-VMNetworkAdapter | Where-Object DynamicMacAddressEnabled | Select-Object VMName, Name

Remédiation :

Set-VMNetworkAdapter -VMName "SensitiveVM" -StaticMacAddress "00155D010101"

Valeur par défaut : Adresse MAC dynamique


5.7.2 — IPsec pour le trafic inter-VM sensible

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 3.10
MITRE ATT&CK T1040 (Network Sniffing)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le trafic réseau sensible entre VMs (base de données, réplication AD, etc.) doit être protégé par IPsec pour assurer la confidentialité et l’intégrité des données en transit au sein du réseau virtuel.

Vérification :

Get-NetIPsecRule | Where-Object Enabled -eq True | Select-Object DisplayName, InboundSecurity, OutboundSecurity
Get-NetIPsecMainModeSA | Select-Object LocalAddress, RemoteAddress

Remédiation : Configurer des règles IPsec via GPO pour le trafic inter-VM sensible.

Valeur par défaut : IPsec non configuré


5.7.3 — Surveillance des flux réseau anormaux

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 13.3
MITRE ATT&CK T1046 (Network Service Discovery), T1071 (Application Layer Protocol)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les flux réseau entre les VMs et vers l’extérieur doivent être surveillés pour détecter les communications anormales (C2, exfiltration, scan de ports, mouvements latéraux). L’analyse des métadonnées de flux (NetFlow/IPFIX) sur le switch virtuel permet cette surveillance.

Vérification :

# Vérifier les compteurs réseau
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, @{N='BytesSent';E={$_.BandwidthSetting}}, Status
# Vérifier les outils de monitoring réseau
Get-Service *NetFlow*, *ntopng* -ErrorAction SilentlyContinue

Remédiation : Déployer un IDS/IPS virtuel ou configurer la capture réseau sur le switch virtuel pour l’analyse.

Valeur par défaut : Aucune surveillance des flux


6.5.1 — Disques de différenciation — usage restreint en production

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 3.6
MITRE ATT&CK T1485 (Data Destruction)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les disques de différenciation (differencing disks / AVHD/AVHDX) ne doivent pas être utilisés en production car ils créent une chaîne de dépendance fragile et des problèmes de performance. Les AVHDX résultant de checkpoints doivent être mergés régulièrement.

Vérification :

Get-VM | Get-VMHardDiskDrive | ForEach-Object {
    $vhd = Get-VHD $_.Path -ErrorAction SilentlyContinue
    if ($vhd.VhdType -eq 'Differencing') {
        [PSCustomObject]@{VM=$_.VMName; Path=$_.Path; Type=$vhd.VhdType; ParentPath=$vhd.ParentPath}
    }
}

Remédiation :

# Merger les disques de différenciation
Merge-VHD -Path "C:\VMs\disk-diff.avhdx" -DestinationPath "C:\VMs\disk.vhdx"

Valeur par défaut : Pas de disques de différenciation (sauf checkpoints)


6.5.2 — Disques VHDX — taille fixe vs dynamique

Attribut Valeur
Niveau 🟢 Faible
Référence CIS CIS Control 3.6
MITRE ATT&CK T1499 (Endpoint Denial of Service)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les disques VHDX à taille fixe offrent de meilleures performances et prévisibilité. Les disques dynamiques peuvent croître et saturer le stockage de l’hôte. Pour les VMs de production, les disques à taille fixe sont recommandés.

Vérification :

Get-VM | Get-VMHardDiskDrive | ForEach-Object {
    $vhd = Get-VHD $_.Path -ErrorAction SilentlyContinue
    [PSCustomObject]@{VM=$_.VMName; Path=$_.Path; Type=$vhd.VhdType; Size=[math]::Round($vhd.Size/1GB,2); FileSize=[math]::Round($vhd.FileSize/1GB,2)}
}

Remédiation :

Convert-VHD -Path "C:\VMs\disk-dynamic.vhdx" -DestinationPath "C:\VMs\disk-fixed.vhdx" -VHDType Fixed

Valeur par défaut : Dynamique


7.4.1 — Drain roles before maintenance

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 18.9.76
MITRE ATT&CK T1499 (Endpoint Denial of Service)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Avant toute maintenance planifiée d’un hôte Hyper-V dans un cluster, les VMs doivent être migrées (drainées) vers les autres noeuds de manière contrôlée pour éviter les interruptions de service.

Vérification :

Get-ClusterNode | Select-Object Name, State, DrainStatus, DrainTarget

Remédiation :

Suspend-ClusterNode -Name "HV-Node01" -Drain -Wait
# Effectuer la maintenance
Resume-ClusterNode -Name "HV-Node01"

Valeur par défaut : Migration manuelle requise


7.4.2 — Preferred owners pour les VMs critiques

Attribut Valeur
Niveau 🟢 Faible
Référence CIS CIS Control 18.9.76
MITRE ATT&CK N/A
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les propriétaires préférés (Preferred Owners) doivent être configurés pour les VMs critiques dans le cluster afin d’optimiser la répartition et garantir que les VMs reviennent sur leur hôte préféré après une maintenance.

Vérification :

Get-ClusterGroup | Where-Object GroupType -eq "VirtualMachine" | Get-ClusterOwnerNode | Select-Object ClusterObject, OwnerNodes

Remédiation :

Set-ClusterOwnerNode -Group "VM-CriticalApp" -Owners "HV-Node01","HV-Node02"

Valeur par défaut : Tous les noeuds sont propriétaires


8.4.1 — DR avec Hyper-V Replica — test de basculement

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 11.4
MITRE ATT&CK T1490 (Inhibit System Recovery)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les tests de basculement (failover) de la réplication Hyper-V doivent être effectués régulièrement pour valider la capacité de reprise d’activité. Le test de basculement crée une VM de test à partir du réplica sans interrompre la réplication en cours.

Vérification :

# Vérifier les réplications actives et leur santé
Get-VM | Get-VMReplication -ErrorAction SilentlyContinue | Select-Object VMName, State, Health, LastReplicationTime, FrequencySec
# Vérifier la date du dernier test de basculement
Get-VM | Get-VMReplication -ErrorAction SilentlyContinue | Select-Object VMName, @{N='LastTestFailover';E={$_.LastTestFailoverStartTime}}

Remédiation :

# Exécuter un test de basculement
Start-VMFailover -VMName "CriticalVM" -AsTest -Confirm:$false
# Nettoyer après le test
Stop-VMFailover -VMName "CriticalVM"

Valeur par défaut : Aucun test planifié


8.4.2 — RPO et RTO définis et mesurés

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 11.1
MITRE ATT&CK T1490 (Inhibit System Recovery)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les objectifs de point de reprise (RPO) et de temps de reprise (RTO) doivent être définis pour chaque catégorie de VM et mesurés lors des tests de basculement. Le RPO est déterminé par la fréquence de réplication (de 30 secondes à 15 minutes avec Hyper-V Replica).

Vérification :

Get-VM | Get-VMReplication -ErrorAction SilentlyContinue | Select-Object VMName, FrequencySec, @{N='RPO_Minutes';E={$_.FrequencySec/60}}, ReplicationHealth

Remédiation : Configurer la fréquence de réplication en fonction du RPO défini pour chaque VM.

Valeur par défaut : RPO 5 minutes (300 secondes)


9.4.1 — Audit des modifications de configuration VM

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 8.5
MITRE ATT&CK T1543 (Create or Modify System Process)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Toutes les modifications de configuration des VMs (ajout/suppression de matériel virtuel, changement de réseau, modification des Integration Services, changement de sécurité) doivent être auditées et enregistrées.

Vérification :

Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Hyper-V-VMMS-Admin'; Id=@(13001,32022); StartTime=(Get-Date).AddDays(-30)} -ErrorAction SilentlyContinue | Select-Object TimeCreated, Id, Message | Select-Object -First 20

Remédiation : Configurer des alertes SIEM pour les Event IDs de modification de configuration VM.

Valeur par défaut : Événements enregistrés localement


9.4.2 — Monitoring de l’état de réplication

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.2
MITRE ATT&CK T1490 (Inhibit System Recovery)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’état de la réplication Hyper-V doit être surveillé en continu. Les alertes doivent être configurées pour les échecs de réplication, les décalages de réplication supérieurs au RPO et les changements d’état de santé de la réplication.

Vérification :

Get-VM | Get-VMReplication -ErrorAction SilentlyContinue | Where-Object { $_.Health -ne 'Normal' } | Select-Object VMName, Health, State, LastReplicationTime

Remédiation : Configurer des alertes pour les réplications en erreur ou avertissement.

Valeur par défaut : Pas d’alerte automatique


9.4.3 — Surveillance de l’espace disque des volumes VM

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.2
MITRE ATT&CK T1499 (Endpoint Denial of Service)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’espace disque disponible sur les volumes hébergeant les fichiers VM doit être surveillé avec des seuils d’alerte. Un volume plein peut provoquer la pause automatique des VMs avec des disques dynamiques et la corruption de données.

Vérification :

Get-Volume | Where-Object { $_.DriveLetter } | Select-Object DriveLetter, FileSystemType, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}}, @{N='FreeGB';E={[math]::Round($_.SizeRemaining/1GB,2)}}, @{N='Free%';E={[math]::Round(($_.SizeRemaining/$_.Size)*100,1)}} | Where-Object { $_.'Free%' -lt 20 }

Remédiation : Configurer des alertes pour les volumes < 20% d’espace libre.

Valeur par défaut : Pas d’alerte configurée


10.3.1 — Runtime de conteneurs — version sécurisée

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 7.1
MITRE ATT&CK T1611 (Escape to Host)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Le runtime de conteneurs (Docker Engine, containerd) doit être à la dernière version stable avec les correctifs de sécurité appliqués.

Vérification :

docker version 2>$null
Get-Service docker -ErrorAction SilentlyContinue | Select-Object Name, Status

Remédiation : Mettre à jour le runtime Docker vers la dernière version.

Valeur par défaut : Version au moment de l’installation


10.3.2 — Logging des conteneurs centralisé

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.2
MITRE ATT&CK T1070 (Indicator Removal)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les journaux des conteneurs doivent être collectés et centralisés dans le SIEM pour la détection d’anomalies et l’investigation forensique.

Vérification :

docker info 2>$null | Select-String "Logging Driver"

Remédiation : Configurer un logging driver centralisé (fluentd, gelf, syslog).

Valeur par défaut : json-file (local)


11.4.1 — SCVMM — audit des actions administratives

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 8.5
MITRE ATT&CK T1078 (Valid Accounts)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les actions administratives effectuées via SCVMM doivent être journalisées et auditées, y compris les créations/suppressions de VMs, les modifications de configuration et les changements de permissions.

Vérification :

Get-SCJob | Where-Object { $_.StartTime -gt (Get-Date).AddDays(-7) } | Select-Object Name, StartTime, ResultName, Status, Owner | Sort-Object StartTime -Descending -ErrorAction SilentlyContinue

Remédiation : Activer l’audit complet dans SCVMM et intégrer avec le SIEM.

Valeur par défaut : Journalisation basique


11.4.2 — SCVMM — Run As Accounts protégés

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 5.3
MITRE ATT&CK T1078 (Valid Accounts), T1552 (Unsecured Credentials)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les Run As Accounts dans SCVMM contiennent les identifiants utilisés pour gérer les hôtes Hyper-V et les ressources. Ces comptes doivent utiliser des gMSA lorsque possible et les mots de passe doivent être renouvelés régulièrement.

Vérification :

Get-SCRunAsAccount | Select-Object Name, UserName, Description -ErrorAction SilentlyContinue

Remédiation : Migrer les Run As Accounts vers des gMSA et auditer régulièrement.

Valeur par défaut : Comptes statiques avec mots de passe


12.3.1 — Templates de VM pré-durcis

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 4.1
MITRE ATT&CK T1195.002 (Supply Chain Compromise)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des templates de VMs pré-durcis conformes aux CIS Benchmarks doivent être utilisés pour la création de nouvelles VMs. Cela garantit que chaque nouvelle VM démarre avec un niveau de sécurité minimal et réduit le risque de configurations par défaut vulnérables.

Vérification :

# Vérifier les templates dans la bibliothèque SCVMM
Get-SCVMTemplate | Select-Object Name, Description, Owner -ErrorAction SilentlyContinue

# Vérifier les VHDX templates
Get-ChildItem -Path (Get-VMHost).VirtualHardDiskPath -Filter "*template*" -Recurse -ErrorAction SilentlyContinue

Remédiation : Créer et maintenir des templates pré-durcis pour chaque OS supporté (Windows Server 2025, Windows Server 2022, Linux).

Valeur par défaut : Aucun template pré-durci


12.3.2 — Inventaire des logiciels installés dans les VMs

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 2.1
MITRE ATT&CK T1518 (Software Discovery)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : L’inventaire des logiciels installés dans les VMs doit être maintenu et audité pour détecter les logiciels non autorisés, les versions obsolètes et les vulnérabilités connues.

Vérification :

Invoke-Command -VMName "VMName" -ScriptBlock {
    Get-WmiObject Win32_Product | Select-Object Name, Version, Vendor | Sort-Object Name
} -Credential $cred

Remédiation : Utiliser SCCM, Intune ou un outil d’inventaire pour maintenir un inventaire centralisé.

Valeur par défaut : Aucun inventaire centralisé


13.2.1 — VMs de test/développement isolées de la production

Attribut Valeur
Niveau 🔴 Critique
Référence CIS CIS Control 12.1
MITRE ATT&CK T1199 (Trusted Relationship), T1021 (Remote Services)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les VMs de test et développement doivent être strictement isolées des VMs de production, idéalement sur des hôtes Hyper-V séparés ou au minimum sur des réseaux virtuels distincts sans connectivité vers les VMs de production.

Vérification :

# Vérifier l'isolation réseau entre les environnements
Get-VM | Select-Object Name, @{N='Switch';E={(Get-VMNetworkAdapter -VMName $_.Name).SwitchName}}, Notes | Sort-Object Switch

Remédiation : Séparer les environnements de test et de production sur des réseaux distincts.

Valeur par défaut : Pas de séparation


14.2.1 — Microsoft Defender for Cloud activé sur Azure Stack HCI

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 10.1
MITRE ATT&CK T1562.001 (Disable or Modify Tools)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Microsoft Defender for Cloud doit être activé pour les clusters Azure Stack HCI pour fournir une évaluation de sécurité continue, des recommandations de durcissement et une détection des menaces avancées.

Vérification : Vérifier dans le portail Azure : Azure Stack HCI > Security > Microsoft Defender for Cloud

Remédiation : Activer Microsoft Defender for Cloud via le portail Azure ou Azure CLI.

Valeur par défaut : Non activé


14.2.2 — Azure Monitor pour Azure Stack HCI

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 8.2
MITRE ATT&CK T1562 (Impair Defenses)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Azure Monitor Insights doit être configuré pour les clusters Azure Stack HCI pour la collecte de métriques de performance, la détection d’anomalies et les alertes de santé du cluster.

Vérification : Vérifier dans le portail Azure : Azure Stack HCI > Monitoring > Insights

Remédiation : Configurer Azure Monitor Insights et les alertes recommandées.

Valeur par défaut : Non configuré


15.4.1 — Protection contre les attaques DoS sur l’hyperviseur

Attribut Valeur
Niveau 🟠 Élevé
Référence CIS CIS Control 13.1
MITRE ATT&CK T1499 (Endpoint Denial of Service)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des protections contre les attaques de déni de service (DoS) ciblant l’hyperviseur doivent être en place, incluant les limites de ressources par VM, la surveillance des charges anormales et les alertes de surcharge.

Vérification :

# Vérifier les limites de ressources
Get-VM | Get-VMProcessor | Select-Object VMName, Maximum, Reserve
Get-VM | Select-Object Name, DynamicMemoryEnabled, MemoryMaximum

Remédiation : Configurer des limites de ressources CPU, mémoire et réseau pour chaque VM.

Valeur par défaut : Pas de limites


15.4.2 — Protection contre les attaques de timing

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 7.1
MITRE ATT&CK T1003 (OS Credential Dumping)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les attaques de timing exploitent les variations de temps d’exécution pour extraire des informations cryptographiques. Les mitigations incluent les correctifs microcode, le core scheduling de l’hyperviseur et la limitation du HyperThreading pour les VMs hautement sensibles.

Vérification :

Get-VM | Get-VMProcessor | Select-Object VMName, HwThreadCountPerCore, ExposeVirtualizationExtensions
# HwThreadCountPerCore = 1 désactive le partage de core entre VMs

Remédiation :

# Restreindre à 1 thread par core pour les VMs sensibles
Set-VMProcessor -VMName "SensitiveVM" -HwThreadCountPerCore 1

Valeur par défaut : HwThreadCountPerCore = 0 (pas de restriction)


16.3.1 — DNS sécurisé pour les VMs

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 9.2
MITRE ATT&CK T1071.004 (Application Layer Protocol: DNS)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les VMs doivent utiliser des serveurs DNS internes sécurisés. Les requêtes DNS des VMs ne doivent pas pouvoir être interceptées ou redirigées. DNS-over-HTTPS (DoH) ou DNSSEC sont recommandés pour les VMs sensibles.

Vérification :

Get-VM | Get-VMNetworkAdapter | Select-Object VMName, @{N='DNS';E={$_.IPAddresses}}

Remédiation : Configurer les serveurs DNS internes via DHCP ou configuration statique.

Valeur par défaut : DNS fourni par DHCP


16.3.2 — Filtrage du trafic de gestion SNMP/WMI

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 4.8
MITRE ATT&CK T1047 (Windows Management Instrumentation)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les protocoles de gestion (SNMP, WMI) doivent être filtrés et restreints aux seules sources autorisées. WMI est un vecteur d’attaque courant pour les mouvements latéraux dans les environnements Windows.

Vérification :

Get-Service SNMP -ErrorAction SilentlyContinue | Select-Object Name, Status
Get-Service Winmgmt | Select-Object Name, Status
Get-NetFirewallRule -DisplayName "*WMI*" | Select-Object DisplayName, Enabled, Action

Remédiation : Désactiver SNMP si non utilisé. Restreindre WMI aux adresses IP de gestion.

Valeur par défaut : WMI activé, SNMP généralement non installé


17.3.1 — Exercice de simulation d’incident de virtualisation

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 17.8
MITRE ATT&CK T1611 (Escape to Host)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Des exercices de simulation d’incidents de virtualisation (tabletop exercises) doivent être effectués annuellement pour tester les procédures de réponse aux incidents, la communication et l’escalade.

Vérification : Vérifier la date du dernier exercice et le rapport de retour d’expérience.

Remédiation : Planifier un exercice de simulation annuel couvrant les scénarios critiques.

Valeur par défaut : Aucun exercice planifié


18.3.1 — Formation sécurité Hyper-V des administrateurs

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 14.1
MITRE ATT&CK T1078 (Valid Accounts)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Les administrateurs Hyper-V doivent recevoir une formation spécifique sur la sécurité de la virtualisation couvrant les menaces spécifiques (VM Escape, side-channel attacks), les bonnes pratiques de configuration, la gestion des Shielded VMs et la réponse aux incidents.

Vérification : Vérifier le registre de formation des administrateurs Hyper-V.

Remédiation : Planifier une formation sécurité Hyper-V annuelle pour tous les administrateurs.

Valeur par défaut : Aucune formation spécifique


18.3.2 — Veille sécuritaire Hyper-V

Attribut Valeur
Niveau 🟡 Moyen
Référence CIS CIS Control 7.1
MITRE ATT&CK T1190 (Exploit Public-Facing Application)
Statut ☐ ✅ ☐ ❌ ☐ ⚠️ ☐ N/A

Description : Un processus de veille sécuritaire doit être en place pour suivre les nouvelles vulnérabilités, les CVE et les mises à jour de sécurité spécifiques à Hyper-V et à la virtualisation Microsoft. Les sources incluent les bulletins de sécurité Microsoft, CERT-FR, NVD et les flux de menaces.

Vérification : Vérifier le processus de veille sécuritaire et les sources suivies.

Remédiation : Mettre en place un processus de veille avec les sources Microsoft Security Response Center, CERT-FR et les bulletins de sécurité.

Valeur par défaut : Aucune veille structurée


═══════════════════════════════════════════════════════════════════════════════

TABLEAUX DE SYNTHÈSE

═══════════════════════════════════════════════════════════════════════════════

TABLEAUX DE SYNTHÈSE

Synthèse par Section

# Section Contrôles ⚠️ N/A Score
1 Sécurité de l’Hôte Hyper-V 23 ___ ___ ___ ___ ___%
2 Gestion des Accès et RBAC 16 ___ ___ ___ ___ ___%
3 Isolation des Machines Virtuelles 17 ___ ___ ___ ___ ___%
4 Machines Virtuelles Blindées (Shielded VMs) 11 ___ ___ ___ ___ ___%
5 Réseau Virtuel (Virtual Networking) 14 ___ ___ ___ ___ ___%
6 Stockage Virtuel 9 ___ ___ ___ ___ ___%
7 Live Migration et Haute Disponibilité 9 ___ ___ ___ ___ ___%
8 Sauvegarde et Reprise d’Activité 5 ___ ___ ___ ___ ___%
9 Journalisation et Monitoring 5 ___ ___ ___ ___ ___%
10 Sécurité des Conteneurs 5 ___ ___ ___ ___ ___%
11 SCVMM et Gestion Centralisée 6 ___ ___ ___ ___ ___%
12 Conformité des VMs Invitées 6 ___ ___ ___ ___ ___%
13 Nested Virtualization et Scénarios Avancés 3 ___ ___ ___ ___ ___%
14 Sécurité Azure Stack HCI 3 ___ ___ ___ ___ ___%
15 Protection contre les Attaques de Virtualisation 5 ___ ___ ___ ___ ___%
16 Réseau et Segmentation Avancée 4 ___ ___ ___ ___ ___%
17 Réponse aux Incidents Virtualisation 5 ___ ___ ___ ___ ___%
18 Gouvernance et Conformité 5 ___ ___ ___ ___ ___%
TOTAL ~151 ___ ___ ___ ___ ___%

Synthèse par Niveau de Criticité

Niveau Symbole Nombre ⚠️ Score
Critique 🔴 ___ ___ ___ ___ ___%
Élevé 🟠 ___ ___ ___ ___ ___%
Moyen 🟡 ___ ___ ___ ___ ___%
Faible 🟢 ___ ___ ___ ___ ___%
TOTAL ___ ___ ___ ___ ___%

Score Global de Maturité

Score Global Niveau Interprétation
90-100% 🟢 Excellent Infrastructure Hyper-V hautement sécurisée
75-89% 🟡 Bon Bon niveau de sécurité avec des améliorations mineures nécessaires
50-74% 🟠 Insuffisant Risques significatifs nécessitant un plan de remédiation structuré
0-49% 🔴 Critique Risques majeurs — Remédiation immédiate et prioritaire requise

═══════════════════════════════════════════════════════════════════════════════

RÉSUMÉ EXÉCUTIF

═══════════════════════════════════════════════════════════════════════════════

RÉSUMÉ EXÉCUTIF

Résultats Généraux

Métrique Valeur
Date de l’audit
Score global ___%
Niveau de maturité ☐ 🟢 Excellent ☐ �� Bon ☐ 🟠 Insuffisant ☐ 🔴 Critique
Nombre total de contrôles évalués ___
Contrôles conformes (✅) ___
Contrôles non conformes (❌) ___
Contrôles partiellement conformes (⚠️) ___
Contrôles non applicables (N/A) ___

Points Forts Identifiés

# Point Fort Section
1
2
3
4
5

Points Faibles Critiques

# Point Faible Section Criticité Remédiation Prioritaire
1 🔴
2 🔴
3 🔴
4 🟠
5 🟠

Recommandations Prioritaires

Priorité Recommandation Effort Impact Délai
P1 ☐ Faible ☐ Moyen ☐ Élevé ☐ Faible ☐ Moyen ☐ Élevé
P2 ☐ Faible ☐ Moyen ☐ Élevé ☐ Faible ☐ Moyen ☐ Élevé
P3 ☐ Faible ☐ Moyen ☐ Élevé ☐ Faible ☐ Moyen ☐ Élevé
P4 ☐ Faible ☐ Moyen ☐ Élevé ☐ Faible ☐ Moyen ☐ Élevé
P5 ☐ Faible ☐ Moyen ☐ Élevé ☐ Faible ☐ Moyen ☐ Élevé

═══════════════════════════════════════════════════════════════════════════════

MAPPING MULTI-RÉFÉRENTIEL

═══════════════════════════════════════════════════════════════════════════════

MAPPING MULTI-RÉFÉRENTIEL

Mapping NIST SP 800-125 (Virtualisation)

Section NIST 800-125 Contrôles ANC Statut
§4.1 Host OS Hardening 1.1.1-1.1.4, 1.2.1-1.2.2, 1.3.1-1.3.3 ☐ ✅ ☐ ❌
§4.2 Patch Management 1.2.1-1.2.2 ☐ ✅ ☐ ❌
§4.3 Secure Boot / TPM 1.6.1-1.6.2 ☐ ✅ ☐ ❌
§4.4 Access Control 2.1.1-2.6.1 ☐ ✅ ☐ ❌
§4.5 Encryption 1.5.1-1.5.2, 6.2.1, 6.4.2 ☐ ✅ ☐ ❌
§5.1 Memory Isolation 3.1.1-3.1.2 ☐ ✅ ☐ ❌
§5.2 Resource Limits 3.2.1-3.2.3 ☐ ✅ ☐ ❌
§5.3 Integration Services 3.3.1-3.3.6 ☐ ✅ ☐ ❌
§5.4 Device Assignment 3.5.1-3.5.2 ☐ ✅ ☐ ❌
§5.5 VM Configuration Security 3.6.1-3.6.3 ☐ ✅ ☐ ❌
§6 Shielded VMs 4.1.1-4.3.4 ☐ ✅ ☐ ❌
§7 Virtual Networking 5.1.1-5.6.2 ☐ ✅ ☐ ❌
§8 Virtual Storage 6.1.1-6.4.3 ☐ ✅ ☐ ❌
§9 Migration & HA 7.1.1-7.3.4 ☐ ✅ ☐ ❌
§10 Backup & DR 8.1.1-8.3.2 ☐ ✅ ☐ ❌
§11 Monitoring 9.1.1-9.3.1 ☐ ✅ ☐ ❌
§12 Guest OS Security 12.1.1-12.2.2 ☐ ✅ ☐ ❌
§13 Attack Protection 15.1.1-15.3.1 ☐ ✅ ☐ ❌

Mapping NIST SP 800-53 Rev5

Famille NIST 800-53 Contrôles ANC
AC (Access Control) 2.1.1-2.6.1
AU (Audit and Accountability) 1.9.1-1.9.6, 9.1.1-9.3.1
CA (Security Assessment) 18.2.3
CM (Configuration Management) 1.1.1-1.1.4, 11.3.2
CP (Contingency Planning) 7.3.3-7.3.4, 8.1.1-8.3.2
IA (Identification and Authentication) 1.8.1-1.8.4, 2.6.1, 7.1.1
IR (Incident Response) 17.1.1-17.2.2
PL (Planning) 18.1.1
PM (Program Management) 18.2.1-18.2.2
RA (Risk Assessment) 14.1.2
SA (System and Services Acquisition) 15.3.1
SC (System and Communications Protection) 1.3.1-1.3.3, 3.1.1, 4.2.3, 5.1.1-5.6.2, 6.4.2, 7.1.2
SI (System and Information Integrity) 1.2.1-1.2.2, 1.4.1-1.4.2, 1.6.1-1.7.3, 15.1.1-15.2.2

Mapping ISO 27001:2022

Contrôle ISO 27001 Description Contrôles ANC
A.5.1 Politiques de sécurité 18.1.1
A.5.15 Contrôle d’accès 2.1.1-2.6.1
A.5.23 Sécurité de l’information dans le cloud 14.1.1-14.1.3
A.5.26 Réponse aux incidents 17.1.1-17.2.2
A.5.28 Collecte de preuves 17.1.3
A.7.1 Sécurité physique 1.6.1-1.6.2, 15.2.2
A.8.1 Appareils utilisateur 2.3.2 (PAW)
A.8.5 Authentification sécurisée 2.6.1 (MFA)
A.8.6 Dimensionnement 3.2.1-3.2.3
A.8.8 Gestion des vulnérabilités 1.2.1-1.2.2, 15.1.1-15.1.2
A.8.9 Gestion de la configuration 1.1.1-1.1.4
A.8.10 Suppression de l’information 8.3.1
A.8.15 Journalisation 1.9.1-1.9.6, 9.1.1-9.3.1
A.8.20 Sécurité des réseaux 5.1.1-5.6.2, 16.1.1-16.2.1
A.8.22 Ségrégation des réseaux 5.2.1, 16.1.2
A.8.24 Cryptographie 1.5.1-1.5.2, 4.2.3, 6.2.1
A.8.25 Cycle de développement sécurisé 15.3.1
A.8.31 Séparation des environnements 3.1.1, 16.1.2

Mapping MITRE ATT&CK Enterprise (Techniques de Virtualisation)

Technique ATT&CK ID Contrôles ANC Associés
Escape to Host T1611 3.1.1, 3.3.1, 3.5.1, 4.2.1, 10.1.1, 13.1.1, 15.1.1
Deploy Container T1610 10.1.1, 10.1.2
Run Virtual Instance T1564.006 13.1.1, 13.1.2, 18.1.3
Virtualization/Sandbox Evasion T1497 3.3.4, 13.1.2
OS Credential Dumping T1003 1.7.1, 3.1.1, 7.1.2, 15.1.2
Valid Accounts T1078 2.1.1-2.1.2, 2.5.1, 2.6.1
Exploitation for Privilege Escalation T1068 1.2.1-1.2.2, 10.2.3
Pre-OS Boot T1542 1.6.1-1.6.2, 3.6.2-3.6.3, 4.1.2, 15.2.2
Impair Defenses T1562 1.3.1, 1.4.1, 1.9.3, 9.1.1
Network Sniffing T1040 4.2.3, 6.4.2, 7.1.2, 16.1.3
Adversary-in-the-Middle T1557 5.1.2, 5.3.1-5.3.3, 7.2.1
Indicator Removal T1070 1.9.2, 1.9.5, 9.2.2, 17.1.3
Data from Local System T1005 1.5.1, 3.6.1, 6.1.2, 6.2.1, 8.2.1
Endpoint Denial of Service T1499 3.2.1, 7.1.4, 7.3.3, 7.3.4
Network Boundary Bridging T1599 5.1.1, 5.2.1, 16.1.2
Lateral Tool Transfer T1570 3.3.5, 17.1.2
Data Encrypted for Impact T1486 8.1.1, 8.1.2, 17.1.1
Resource Hijacking T1496 3.2.1, 9.2.1

Mapping RGPD / NIS2

Exigence Référence Contrôles ANC
Chiffrement des données personnelles RGPD Art. 32 1.5.1-1.5.2, 4.2.1-4.2.3, 6.2.1, 6.4.2
Contrôle d’accès RGPD Art. 32 2.1.1-2.6.1
Journalisation des accès RGPD Art. 30 1.9.1-1.9.6, 9.1.1-9.3.1
Notification de violation RGPD Art. 33-34 17.2.2, 18.2.1
Analyse d’impact (DPIA) RGPD Art. 35 18.2.1
Gestion des risques NIS2 Art. 21 18.1.1, 18.2.2
Gestion des incidents NIS2 Art. 23 17.1.1-17.2.2
Continuité d’activité NIS2 Art. 21(c) 7.3.1-7.3.4, 8.1.1-8.3.2
Sécurité de la chaîne d’approvisionnement NIS2 Art. 21(d) 10.1.2, 15.3.1
Tests de sécurité NIS2 Art. 21(e) 8.3.2, 18.2.3

═══════════════════════════════════════════════════════════════════════════════

PLAN DE REMÉDIATION

═══════════════════════════════════════════════════════════════════════════════

PLAN DE REMÉDIATION

Phase 1 — Actions Immédiates (0-48h) — Contrôles 🔴 Critiques Non Conformes

# Contrôle Action Requise Responsable Date Cible Statut
1 ☐ En cours ☐ Terminé
2 ☐ En cours ☐ Terminé
3 ☐ En cours ☐ Terminé
4 ☐ En cours ☐ Terminé
5 ☐ En cours ☐ Terminé

Phase 2 — Actions Urgentes (7 jours) — Contrôles 🟠 Élevés Non Conformes

# Contrôle Action Requise Responsable Date Cible Statut
1 ☐ En cours ☐ Terminé
2 ☐ En cours ☐ Terminé
3 ☐ En cours ☐ Terminé
4 ☐ En cours ☐ Terminé
5 ☐ En cours ☐ Terminé

Phase 3 — Actions Planifiées (30 jours) — Contrôles 🟡 Moyens

# Contrôle Action Requise Responsable Date Cible Statut
1 ☐ En cours ☐ Terminé
2 ☐ En cours ☐ Terminé
3 ☐ En cours ☐ Terminé
4 ☐ En cours ☐ Terminé
5 ☐ En cours ☐ Terminé

Phase 4 — Améliorations Continues (90+ jours) — Contrôles 🟢 Faibles

# Contrôle Action Requise Responsable Date Cible Statut
1 ☐ En cours ☐ Terminé
2 ☐ En cours ☐ Terminé
3 ☐ En cours ☐ Terminé

Suivi de la Remédiation

Date de Suivi Score Précédent Score Actuel Progression Prochaine Revue
___% ___% ___%
___% ___% ___%
___% ___% ___%

═══════════════════════════════════════════════════════════════════════════════

ANNEXES

═══════════════════════════════════════════════════════════════════════════════

ANNEXE A — Commandes PowerShell Essentielles pour l’Audit Hyper-V

Inventaire Rapide

# Inventaire complet de l'hôte
Get-VMHost | Select-Object *

# Inventaire de toutes les VMs
Get-VM | Select-Object Name, State, Generation, Version, CPUUsage, MemoryAssigned, Uptime, Path | Format-Table -AutoSize

# Inventaire des switches virtuels
Get-VMSwitch | Select-Object Name, SwitchType, AllowManagementOS, IovEnabled | Format-Table

# Inventaire des disques virtuels
Get-VM | Get-VMHardDiskDrive | Select-Object VMName, ControllerType, Path | Format-Table

# Inventaire des Integration Services
Get-VM | ForEach-Object { Get-VMIntegrationService -VMName $_.Name | Select-Object @{N='VM';E={$_.VMName}}, Name, Enabled }

# Inventaire de sécurité des VMs
Get-VM | Get-VMSecurity | Select-Object VMName, Shielded, TpmEnabled, EncryptStateAndVmMigrationTraffic | Format-Table

# Configuration réseau des VMs
Get-VM | Get-VMNetworkAdapter | Select-Object VMName, Name, SwitchName, MacAddress, DhcpGuard, RouterGuard, MacAddressSpoofing | Format-Table

Vérification de Sécurité Rapide

# Script d'audit de sécurité Hyper-V rapide
Write-Output "=== AUDIT SÉCURITÉ HYPER-V ==="
Write-Output "Date : $(Get-Date)"
Write-Output "Hôte : $env:COMPUTERNAME"
Write-Output ""

# 1. Type d'installation
$installType = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").InstallationType
Write-Output "Type d'installation : $installType"

# 2. VBS / Credential Guard
$dg = Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
Write-Output "VBS Status : $($dg.VirtualizationBasedSecurityStatus)"
Write-Output "Security Services : $($dg.SecurityServicesRunning -join ', ')"

# 3. BitLocker
Get-BitLockerVolume | ForEach-Object { Write-Output "BitLocker $($_.MountPoint) : $($_.ProtectionStatus)" }

# 4. Secure Boot
Write-Output "Secure Boot : $(Confirm-SecureBootUEFI)"

# 5. TPM
$tpm = Get-Tpm
Write-Output "TPM Present : $($tpm.TpmPresent), Ready : $($tpm.TpmReady)"

# 6. Enhanced Session Mode
Write-Output "Enhanced Session Mode : $((Get-VMHost).EnableEnhancedSessionMode)"

# 7. Live Migration Auth
Write-Output "Migration Auth : $((Get-VMHost).VirtualMachineMigrationAuthenticationType)"

# 8. Firewall
Get-NetFirewallProfile | ForEach-Object { Write-Output "Firewall $($_.Name) : $($_.Enabled)" }

# 9. Windows Defender
$mpStatus = Get-MpComputerStatus
Write-Output "Defender Enabled : $($mpStatus.AntivirusEnabled)"
Write-Output "Signatures Age : $($mpStatus.AntivirusSignatureAge) jours"

# 10. VMs non Gen2
$gen1Count = (Get-VM | Where-Object Generation -eq 1 | Measure-Object).Count
Write-Output "VMs Génération 1 : $gen1Count"

# 11. VMs sans Secure Boot
$noSecureBoot = (Get-VM | Where-Object Generation -eq 2 | Get-VMFirmware | Where-Object SecureBoot -ne "On" | Measure-Object).Count
Write-Output "VMs Gen2 sans Secure Boot : $noSecureBoot"

# 12. VMs sans vTPM
$noTPM = (Get-VM | Get-VMSecurity | Where-Object { $_.TpmEnabled -ne $true } | Measure-Object).Count
Write-Output "VMs sans vTPM : $noTPM"

Write-Output ""
Write-Output "=== FIN AUDIT ==="

ANNEXE B — Event IDs Hyper-V Critiques — Référence Complète

Event ID Source Catégorie Description Criticité
3040 Hyper-V-Hypervisor Système Hyperviseur démarré Info
3080 Hyper-V-Hypervisor Système Mémoire insuffisante 🔴
12400 Hyper-V-Worker Sécurité Erreur de sécurité VM 🔴
12401 Hyper-V-Worker Sécurité Attestation échouée 🔴
12500 Hyper-V-Worker Sécurité Key Protector invalide 🔴
13000 Hyper-V-VMMS VM VM créée 🟡
13001 Hyper-V-VMMS VM VM modifiée 🟡
13002 Hyper-V-VMMS VM VM exportée 🟠
13003 Hyper-V-VMMS VM VM importée 🟠
13004 Hyper-V-VMMS VM Checkpoint créé 🟡
13005 Hyper-V-VMMS VM Checkpoint appliqué 🟠
13006 Hyper-V-VMMS VM Checkpoint supprimé 🟡
13010 Hyper-V-VMMS VM VM supprimée 🟠
14000 Hyper-V-VMMS Réseau Switch virtuel créé 🟡
14010 Hyper-V-VMMS Réseau Switch virtuel modifié 🟡
14020 Hyper-V-VMMS Réseau Switch virtuel supprimé 🟠
15000 Hyper-V-VMMS Stockage VHD créé 🟡
15010 Hyper-V-VMMS Stockage VHD monté 🟡
18500 Hyper-V-VMMS Migration Live Migration démarrée 🟡
18502 Hyper-V-VMMS Migration Live Migration terminée 🟢
18504 Hyper-V-VMMS Migration Live Migration échouée 🔴
18508 Hyper-V-VMMS Migration Storage Migration démarrée 🟡
18510 Hyper-V-VMMS Migration Storage Migration terminée 🟢
18512 Hyper-V-VMMS Migration Quick Migration 🟡
20400 Hyper-V-VMMS Réplication Réplication configurée 🟡
20402 Hyper-V-VMMS Réplication Réplication suspendue 🟠
20500 Hyper-V-VMMS Réplication Réplication échouée 🔴
32022 Hyper-V-VMMS Configuration Configuration VM modifiée 🟡
32050 Hyper-V-VMMS Sécurité VM Shielded démarrée 🟢
32052 Hyper-V-VMMS Sécurité VM Shielded — échec démarrage 🔴

ANNEXE C — Références et Ressources

Documents de Référence

Référence Titre URL / Source
CIS CIS Microsoft Windows Server 2025 Benchmark v2.0.0 cisecurity.org
MS-HV Microsoft Hyper-V Security Best Practices learn.microsoft.com
MS-GF Microsoft Guarded Fabric and Shielded VMs learn.microsoft.com
MS-BASELINE Microsoft Security Compliance Toolkit microsoft.com/download
ANSSI-VIRT ANSSI — Recommandations de sécurité relatives à la virtualisation ssi.gouv.fr
NIST-125 NIST SP 800-125 — Guide to Security for Full Virtualization nist.gov
NIST-53 NIST SP 800-53 Rev5 — Security and Privacy Controls nist.gov
NIST-190 NIST SP 800-190 — Application Container Security nist.gov
ATT&CK MITRE ATT&CK Enterprise Framework attack.mitre.org
ISO27001 ISO/IEC 27001:2022 — Management de la sécurité de l’information iso.org
RGPD Règlement Général sur la Protection des Données (UE) 2016/679 eur-lex.europa.eu
NIS2 Directive (UE) 2022/2555 — NIS2 eur-lex.europa.eu

═══════════════════════════════════════════════════════════════════════════════

SIGNATURES ET APPROBATION

═══════════════════════════════════════════════════════════════════════════════

SIGNATURES ET APPROBATION

Équipe d’Audit

Rôle Nom Signature Date
Auditeur principal
Auditeur secondaire
Réviseur technique

Approbation Client

Rôle Nom Signature Date
Responsable IT
RSSI
Direction

HISTORIQUE DES RÉVISIONS

Version Date Auteur Modifications
1.0 2026-04-04 AYI NEDJIMI CONSULTANTS Création initiale

CLAUSE DE CONFIDENTIALITÉ

Ce document est la propriété de AYI NEDJIMI CONSULTANTS (ANC) et du client destinataire. Il contient des informations confidentielles relatives à la sécurité de l’infrastructure de virtualisation.

Toute reproduction, diffusion ou utilisation non autorisée de ce document est strictement interdite.

Ce document ne doit être partagé qu’avec les personnes autorisées et impliquées dans l’audit de sécurité de l’infrastructure Hyper-V.


© 2026 AYI NEDJIMI CONSULTANTS (ANC) — Tous droits réservés

CHECKLIST-HYPERV-ANC v1.0 — Classification : CONFIDENTIEL


Toutes nos checklists sécurité

Retrouvez l'ensemble de nos 11 checklists d'audit et de durcissement professionnelles.

Voir toutes les checklists