Voici une synthèse claire et structurée des points importants de sécurité dans SQL Server, regroupés par thématique, afin de vous aider à sécuriser efficacement un environnement SQL Server :
🔐 1. Authentification et autorisations
- Utiliser l’authentification Windows de préférence (Kerberos, intégration AD, pas de mot de passe à gérer côté SQL).
- Limiter l’usage de l’authentification SQL Server (comptes avec mot de passe stocké).
- Désactiver le compte « sa » ou en modifier le nom si utilisé.
- Appliquer le principe du moindre privilège (ne jamais donner sysadmin inutilement).
- Créer des rôles personnalisés au lieu d’attribuer directement des droits à des utilisateurs.
🧱 2. Gestion des surfaces d’exposition
- Désactiver les fonctionnalités inutiles : XP_CMDSHELL, SQL Mail, OLE Automation, CLR s’il n’est pas nécessaire.
- Restreindre les connexions à distance si non nécessaires.
- Filtrer les ports SQL Server au niveau du pare-feu (ex. : TCP 1433).
🔍 3. Audit et journalisation
- Activer l’audit SQL Server (SQL Audit) pour suivre :
- Connexions
- Modifications d’objets
- Élévation de privilèges
- Surveiller les connexions échouées (tentatives de bruteforce).
- Consulter régulièrement les logs SQL Server et Event Viewer.
🔒 4. Chiffrement
- Activer le chiffrement des connexions (SSL/TLS) entre les clients et SQL Server.
- Utiliser TDE (Transparent Data Encryption) pour chiffrer les fichiers de bases de données au repos.
- Utiliser Always Encrypted pour protéger les données sensibles côté client (ex. : numéros de carte bancaire).
- Protéger les sauvegardes avec mot de passe ou chiffrement natif.
🧬 5. Sécurisation des objets et du code
- Éviter l’utilisation de SQL dynamique non protégé (risque d’injection SQL).
- Contrôler les droits sur les objets système (éviter
EXECUTE ASsans besoin). - Ne pas stocker de mots de passe en clair dans la base (utiliser
HASHBYTESou chiffrement symétrique).
🛡️ 6. Gestion des correctifs
- Appliquer régulièrement les CU (Cumulative Updates) et mises à jour de sécurité de SQL Server.
- Surveiller les bulletins de sécurité Microsoft (MSRC) pour SQL Server.
🧾 7. Sauvegardes et restauration
- Protéger l’accès aux dossiers de sauvegarde (droits NTFS limités).
- Chiffrer les sauvegardes sensibles.
- Tester régulièrement la restauration (intégrité, accès, chiffrement, etc.).
🧑💻 8. Surveillance des comptes à privilèges
- Limiter le nombre de comptes sysadmin.
- Surveiller les actions des comptes privilégiés (via SQL Audit ou Extended Events).
- Éviter que des services applicatifs tournent avec des comptes sysadmin.
🛠️ 9. Sécurité du système d’exploitation
- Sécuriser le système hôte : patch OS, antivirus, GPO, UAC.
- Utiliser des comptes de service dédiés (faibles privilèges) pour SQL Server.
- Restreindre l’accès RDP et PowerShell aux serveurs SQL.
📦 10. Sécurité dans les environnements cloud (si applicable)
- Configurer correctement les pare-feux réseau et groupes de sécurité (Azure NSG, AWS SG).
- Utiliser l’identité managée dans Azure SQL.
- Surveiller les journaux via Azure Defender ou AWS GuardDuty.