securite-anssi
Sécurité ANSSI — Règles essentielles
Règles de sécurité pour le développement d'applications de l'État, issues du guide d'hygiène informatique ANSSI et des recommandations TLS.
Source : https://cyber.gouv.fr/reglementation/cybersecurite-systemes-dinformation/
Workflow d'audit
- Analyser le projet (code source, configuration, infrastructure, CI/CD)
- Parcourir les 12 domaines de la checklist ci-dessous
- Pour chaque règle, attribuer un statut :
- OK — Règle respectée
- KO — Règle non respectée (identifier le problème et le risque)
- NA — Non applicable (justifier)
- Partiel — Partiellement respectée (préciser ce qui manque)
- Produire le rapport structuré selon le format défini en fin de document
- Exporter le rapport : écrire le rapport dans un fichier Markdown ET l'afficher dans la conversation
Checklist par domaine
1. TLS / HTTPS
- HTTPS obligatoire sur tous les échanges (pas de HTTP en production)
- TLS 1.2 minimum, TLS 1.3 recommandé
- Certificats valides et renouvelés avant expiration
- Désactiver les suites de chiffrement faibles (RC4, DES, 3DES, MD5)
- Header
Strict-Transport-Security(HSTS) avecmax-age≥ 1 an
Strict-Transport-Security: max-age=31536000; includeSubDomains
2. Gestion des secrets
- Jamais de secret dans le code source (clés API, mots de passe, tokens)
- Utiliser des variables d'environnement ou un gestionnaire de secrets (Vault, AWS Secrets Manager)
- Fichiers
.envdans.gitignore - Rotation régulière des secrets (tous les 90 jours minimum)
- Révoquer immédiatement tout secret exposé accidentellement
3. Authentification et contrôle d'accès
- Authentification multi-facteurs (MFA) pour les accès administrateurs
- Mots de passe : 12 caractères minimum, pas de contrainte de complexité artificielle
- Verrouillage temporaire après 5 tentatives échouées
- Sessions : durée limitée, invalidation côté serveur à la déconnexion
- Principe du moindre privilège : chaque composant n'a accès qu'à ce dont il a besoin
4. Headers de sécurité HTTP
-
Content-Security-Policy: restreindre les sources de scripts, styles, images -
X-Content-Type-Options: nosniff -
X-Frame-Options: DENY(ouSAMEORIGINsi iframe nécessaire) -
Referrer-Policy: strict-origin-when-cross-origin -
Permissions-Policy: désactiver les API non utilisées (camera, microphone, geolocation)
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
5. Validation des entrées
- Valider toutes les entrées côté serveur (ne jamais faire confiance au client)
- Utiliser des schémas de validation (Zod, Joi, Pydantic)
- Échapper les sorties HTML pour prévenir les XSS
- Requêtes SQL paramétrées (pas de concaténation de chaînes)
- Limiter la taille des requêtes (body, upload, query strings)
6. Gestion des dépendances
- Auditer les dépendances régulièrement (
npm audit,pip audit,trivy) - Mettre à jour les dépendances avec des vulnérabilités connues (CVE)
- Utiliser un fichier de lock (package-lock.json, poetry.lock)
- Minimiser le nombre de dépendances directes
- Scanner les images Docker (
trivy image)
7. Journalisation et monitoring
- Logger les événements de sécurité : authentifications, erreurs d'accès, modifications critiques
- Jamais de données sensibles dans les logs (mots de passe, tokens, données personnelles)
- Horodatage UTC sur tous les logs
- Centraliser les logs (ELK, Loki, CloudWatch)
- Alertes sur les événements anormaux (pics d'erreurs 401/403, tentatives brute force)
8. Protection des API
- Authentification sur tous les endpoints (sauf santé/métadonnées publiques)
- Rate limiting pour prévenir les abus
- Pagination obligatoire sur les endpoints de liste
- Ne pas exposer de détails techniques dans les messages d'erreur en production
- Versionner les API (
/v1/,/v2/)
9. Sécurité des conteneurs et du déploiement
- Images Docker basées sur des images minimales (Alpine, distroless)
- Ne pas exécuter les processus en root dans les conteneurs
- Scanner les images avant déploiement
- Séparer les environnements (dev, staging, prod) avec des accès distincts
- Health checks et readiness probes configurés
10. Sécurité du poste de développement
- Chiffrement du disque dur activé (FileVault, LUKS)
- Verrouillage automatique après 5 minutes d'inactivité
- VPN pour les accès aux ressources internes
- Pas de compte administrateur pour l'usage quotidien
11. Sauvegarde et continuité
- Sauvegardes régulières des données et configurations critiques
- Tester la restauration des sauvegardes périodiquement
- Documenter la procédure de reprise d'activité
12. Gestion des incidents
- Procédure de signalement des incidents de sécurité documentée
- Contact CERT ministériel identifié
- Capacité à révoquer des accès et rotater des secrets en urgence
Format du rapport d'audit
## Audit Sécurité ANSSI — Rapport de conformité
**Date :** AAAA-MM-JJ
**Périmètre audité :** [description du projet / service / composant]
**Résultat global :** X/Y règles conformes (Z% conforme)
(X conformes, X non conformes, X partielles, X non applicables)
---
### Tableau de synthèse
| # | Domaine | Statut | Détail |
|---|---------|--------|--------|
| 1 | TLS / HTTPS | OK / KO / Partiel / NA | résumé en une ligne |
| 2 | Gestion des secrets | OK / KO / Partiel / NA | résumé en une ligne |
| 3 | Authentification et contrôle d'accès | OK / KO / Partiel / NA | résumé en une ligne |
| 4 | Headers de sécurité HTTP | OK / KO / Partiel / NA | résumé en une ligne |
| 5 | Validation des entrées | OK / KO / Partiel / NA | résumé en une ligne |
| 6 | Gestion des dépendances | OK / KO / Partiel / NA | résumé en une ligne |
| 7 | Journalisation et monitoring | OK / KO / Partiel / NA | résumé en une ligne |
| 8 | Protection des API | OK / KO / Partiel / NA | résumé en une ligne |
| 9 | Sécurité des conteneurs et du déploiement | OK / KO / Partiel / NA | résumé en une ligne |
| 10 | Sécurité du poste de développement | OK / KO / Partiel / NA | résumé en une ligne |
| 11 | Sauvegarde et continuité | OK / KO / Partiel / NA | résumé en une ligne |
| 12 | Gestion des incidents | OK / KO / Partiel / NA | résumé en une ligne |
---
### Non-conformités détectées
**[KO] Domaine {#} — {Nom du domaine}**
- **Règle concernée :** description de la règle non respectée
- **Constat :** ce qui a été observé dans le code / la configuration
- **Risque :** impact sécurité si non corrigé (ex : fuite de données, compromission)
- **Correction :** action concrète à mener
- **Priorité :** 🔴 Critique / 🟠 Élevée / 🟡 Modérée
### Conformités partielles
**[Partiel] Domaine {#} — {Nom du domaine}**
- **Règles respectées :** liste des points OK
- **Règles manquantes :** liste des points restants à traiter
- **Correction :** actions à mener pour atteindre la conformité complète
---
### Domaines conformes
{liste compacte des domaines OK}
### Domaines non applicables
- **Domaine {#}** — {justification courte}
Grille de priorités
| Priorité | Définition | Exemples |
|---|---|---|
| 🔴 Critique | Vulnérabilité exploitable, risque immédiat de compromission | Secret dans le code source, pas de TLS, injection SQL possible |
| 🟠 Élevée | Faiblesse significative, exploitation possible sous conditions | Headers de sécurité manquants, pas de rate limiting, pas de MFA admin |
| 🟡 Modérée | Bonne pratique non respectée, risque limité | Logs non centralisés, pas de scan d'images Docker, rotation des secrets non planifiée |
Export du rapport
Après avoir produit le rapport, toujours :
- Créer le dossier
audits/à la racine du projet s'il n'existe pas - Écrire le rapport complet dans
audits/securite-anssi-AAAA-MM-JJ.md(date du jour, format ISO) - Afficher également le rapport dans la conversation
Si un fichier du même nom existe déjà, ajouter un suffixe incrémental : securite-anssi-2026-03-26-2.md.
Exemple :
audits/securite-anssi-2026-03-26.md
More from etalab-ia/skills
rgaa
>-
14datagouv-apis
>-
10react-dsfr
Créer des interfaces React conformes au Design System de l'État français (DSFR) avec @codegouvfr/react-dsfr. Utiliser cette skill quand l'utilisateur demande de créer des pages, composants ou interfaces en React utilisant le DSFR, quand il mentionne react-dsfr, le design system de l'État, ou quand le projet utilise @codegouvfr/react-dsfr. Couvre les composants natifs react-dsfr (pas MUI), le routing, les icônes, les couleurs et les patterns de mise en page.
9lasuite-ui-kit
Créer des interfaces React pour les applications LaSuite (Docs, Drive, People, Webinaire, Messagerie, etc.) avec @gouvfr-lasuite/ui-kit et @gouvfr-lasuite/cunningham-react. Utiliser cette skill quand l'utilisateur travaille sur une application LaSuite, mentionne @gouvfr-lasuite/ui-kit, @gouvfr-lasuite/cunningham-react, @openfun/cunningham-react, ou développe des composants pour la suite numérique de l'État. Couvre le layout applicatif, la navigation, la recherche rapide, les utilisateurs, les badges, les icônes Material, les menus contextuels et les patterns de partage.
9rag-parse
Convertir des documents non-structurés (PDF, DOCX, PPTX, XLSX, images, etc.) en markdown ou JSON localement, sans dépendances cloud. Utiliser quand l'utilisateur demande de parser des fichiers, convertir des documents, ou extraire du texte de PDFs.
7rag-index
Indexer un corpus de documents markdown pour la recherche sémantique. Utiliser quand l'utilisateur veut créer une base de connaissances, indexer des documents, ou configurer une recherche sémantique.
6