Projets · En cours

IA et sécurité.

Comment s’assurer, aujourd’hui, qu’une architecture est sûre et correctement testée ? L’IA aide à trouver les failles, mais elle en crée aussi de nouvelles. Ce projet rassemble les précautions, les référentiels et les outils, puis les applique à un premier terrain : ce site.

Le paysage

L’IA, côté défense et côté risque.

  • L’IA qui défend

    Relire du code, chercher des failles, écrire des tests, analyser des journaux. Des systèmes d’IA ont déjà trouvé de vraies vulnérabilités, inconnues jusque-là GoogleA summer of security: empowering cyber defenders with AI (Big Sleep, CVE-2025-6965)été 2025Ouvrir la sourceVoir dans la liste.

  • L’IA qui expose

    Une application qui embarque un modèle hérite de risques nouveaux : instructions piégées, fuites de données, agents trop autonomes OWASPOWASP Top 10 for LLM Applications 2025 (annonce officielle)novembre 2024Ouvrir la sourceVoir dans la liste.

  • Le code écrit avec l’IA

    Le code produit par un assistant doit être relu comme celui d’un développeur inconnu : il peut contenir des erreurs ou des failles ANSSI et BSIRecommandations de sécurité concernant les assistants de programmation basés sur l’IAoctobre 2024Ouvrir la sourceVoir dans la liste.

Les risques propres à l’IA

Le Top 10 de l’OWASP pour les applications d’IA.

L’OWASP, la référence mondiale de la sécurité applicative, classe les dix risques majeurs des applications qui utilisent un grand modèle de langageOWASPOWASP Top 10 for LLM Applications 2025 (annonce officielle)novembre 2024Édition 2025, publiée en novembre 2024.Ouvrir la sourceVoir dans la liste. La dernière colonne indique les projets de ce site concernés.

  1. LLM01
    Injection de prompt

    Un texte piégé (dans une page, un document, un e-mail) détourne les instructions du modèle.

    Lois, domotique
  2. LLM02
    Divulgation d’informations sensibles

    Le modèle restitue des données qu’il n’aurait pas dû voir ou garder.

    Domotique
  3. LLM03
    Chaîne d’approvisionnement

    Un modèle, une bibliothèque ou un jeu de données tiers compromis.

    –
  4. LLM04
    Empoisonnement des données et du modèle

    Des données d’entraînement ou de référence modifiées pour fausser les réponses.

    Lois
  5. LLM05
    Traitement non sûr des sorties

    Une réponse du modèle exécutée ou affichée sans contrôle (code, requête, HTML).

    –
  6. LLM06
    Autonomie excessive

    Un agent qui dispose de plus d’outils et de droits que nécessaire.

    Domotique
  7. LLM07
    Fuite du prompt système

    Les instructions internes, parfois avec des secrets, sont révélées.

    –
  8. LLM08
    Faiblesses des vecteurs et embeddings

    Une base vectorielle mal cloisonnée ou manipulée, au cœur des systèmes RAG.

    Lois
  9. LLM09
    Désinformation

    Des réponses fausses mais assurées, reprises sans vérification.

    Lois, finance
  10. LLM10
    Consommation non bornée

    Des requêtes qui épuisent le budget ou les ressources.

    –

Précautions et contre-mesures

Les fondamentaux, puis ce que l’IA ajoute.

Les classiques, toujours vrais

  • Moindre privilège : chaque compte, clé ou service n’a que les droits dont il a besoin.
  • Aucun secret dans le code : clés et mots de passe dans des coffres ou des variables protégées.
  • Mises à jour régulières des serveurs, conteneurs et bibliothèques.
  • Chiffrement partout (HTTPS) et en-têtes de sécurité dans les réponses.
  • Sauvegardes testées et journaux conservés pour comprendre un incident.

Ce que l’IA ajoute

  • Isoler le système d’IA et journaliser ses traitements ANSSIRecommandations de sécurité pour un système d’IA générative29 avril 2024Ouvrir la sourceVoir dans la liste.
  • Séparer les instructions des données : un document lu par le modèle ne doit jamais pouvoir lui donner d’ordres OWASPOWASP Top 10 for LLM Applications 2025 (annonce officielle)novembre 2024Ouvrir la sourceVoir dans la liste.
  • Contrôler chaque sortie avant de l’exécuter ou de l’afficher OWASPOWASP Top 10 for LLM Applications 2025 (annonce officielle)novembre 2024Ouvrir la sourceVoir dans la liste.
  • Limiter les outils et les droits d’un agent, et garder un humain dans la boucle pour les actions sensibles OWASPOWASP Top 10 for LLM Applications 2025 (annonce officielle)novembre 2024Ouvrir la sourceVoir dans la liste.
  • Relire systématiquement le code généré par l’IA ANSSIRecommandations de sécurité pour un système d’IA générative29 avril 2024Ouvrir la sourceVoir dans la listeANSSI et BSIRecommandations de sécurité concernant les assistants de programmation basés sur l’IAoctobre 2024Ouvrir la sourceVoir dans la liste.
  • Ne pas confier de données sensibles à un service d’IA public ANSSIRecommandations de sécurité pour un système d’IA générative29 avril 2024Ouvrir la sourceVoir dans la liste.
  • Plafonner les volumes et les coûts pour éviter l’épuisement OWASPOWASP Top 10 for LLM Applications 2025 (annonce officielle)novembre 2024Ouvrir la sourceVoir dans la liste.

Référentiels de base : le guide de l’ANSSI pour les systèmes d’IA générative ANSSIRecommandations de sécurité pour un système d’IA générative29 avril 2024Ouvrir la sourceVoir dans la liste, ses recommandations avec le BSI allemand sur les assistants de programmation ANSSI et BSIRecommandations de sécurité concernant les assistants de programmation basés sur l’IAoctobre 2024Ouvrir la sourceVoir dans la liste, et le Top 10 de l’OWASP OWASPOWASP Top 10 for LLM Applications 2025 (annonce officielle)novembre 2024Ouvrir la sourceVoir dans la liste.

Des IA déjà à l’épreuve

Ce qu’elles ont déjà trouvé.

Google · Big Sleep

Un agent de recherche de vulnérabilités qui a découvert une faille de SQLite (CVE-2025-6965), selon Google avant qu’elle ne soit exploitée GoogleA summer of security: empowering cyber defenders with AI (Big Sleep, CVE-2025-6965)été 2025Ouvrir la sourceVoir dans la liste.

DARPA · AIxCC

Un concours où des systèmes d’IA autonomes devaient trouver et corriger des failles dans de vrais logiciels libres ; finale en août 2025 KeysightAIxCC 2025 : what it means for device security (finale du défi IA de la DARPA)25 août 2025Ouvrir la sourceVoir dans la liste.

XBOW

Un agent de test d’intrusion autonome, monté en tête du classement américain de la plateforme HackerOne. Chiffres déclarés par l’éditeur AppSec SantaAI Pentesting Agents 2026 (dont XBOW, chiffres déclarés par l’éditeur)2026Ouvrir la sourceVoir dans la liste.

Anthropic · Claude Code

Une revue de sécurité des changements, en ligne de commande ou sur GitHub. Anthropic précise qu’elle n’est pas protégée contre l’injection de prompt : à réserver au code de confiance AnthropicAutomate security reviews with Claude Code (commande /security-review et action GitHub)6 août 2025Ouvrir la sourceVoir dans la liste.

Avec Claude

Ce qu’un assistant peut faire, et ce qu’il ne fait pas.

Ce qu’il fait bien

  • Lire le code et la configuration, et repérer ce qui est risqué.
  • Lancer les outils de test, en lire les résultats et les expliquer simplement.
  • Proposer les corrections, les appliquer et vérifier qu’elles marchent.
  • Écrire des tests automatiques qui rejouent chaque contrôle à chaque mise à jour.
  • Relire chaque changement avec la commande /security-review AnthropicAutomate security reviews with Claude Code (commande /security-review et action GitHub)6 août 2025Ouvrir la sourceVoir dans la liste.

Les garde-fous

  • Il demande l’autorisation avant les actions sensibles, et les secrets restent dans mes mains : sur ce site, j’ai moi-même posé les clés.
  • Il ne teste que des systèmes dont j’ai la responsabilité ou pour lesquels j’ai une autorisation écrite.
  • Ses conclusions se vérifient : un outil ou une IA peut se tromper dans les deux sens.

La boîte à outils

OutilCe qu’il vérifie
Mozilla HTTP ObservatoryEn-têtes de sécurité d’un site
SSL LabsConfiguration HTTPS et TLS
testssl.shTLS, en ligne de commande
nmapPorts et services exposés
OWASP ZAPScan de vulnérabilités web
WPScanSécurité WordPress
gitleaksSecrets dans le code et l’historique Git
TrivyFailles des images Docker et dépendances
Dependabot et CodeQLDépendances et analyse du code sur GitHub
Claude Code /security-reviewRevue de sécurité des changements par l’IA

Premier chantier

Ce site, testé en premier.

Trois analyses non intrusives, le même jour : ce que le site et la partie en accès privé répondent à n’importe quel visiteur, avant les corrections, après les en-têtes de sécurité, puis après la politique de contenu de l’accès privé. Points conformes : 4 sur 11Relevé de l’auteurEn-têtes HTTP et configuration TLS de bertrand-didier.tech et de la partie des projets sensibles, lus avec curl et openssl2 novembre 2026Ouvrir la sourceVoir dans la liste, puis 10 Relevé de l’auteurAnalyse 2, après remédiation : mêmes contrôles curl et openssl2 novembre 2026Ouvrir la sourceVoir dans la liste, puis 11 Relevé de l’auteurAnalyse 3, après la politique CSP de l’accès privé : mêmes contrôles curl et openssl2 novembre 2026Ouvrir la sourceVoir dans la liste.

bertrand-didier.tech

Mozilla HTTP Observatory Mozilla HTTP ObservatoryNotes de bertrand-didier.tech et prive.bertrand-didier.tech, à chaque analyse2 novembre 2026Ouvrir la sourceVoir dans la liste

DA+A+

30 → 110 → 110 points · 8 → 12 → 12 tests réussis sur 12

SSL Labs, configuration TLS : A+ Qualys SSL LabsSSL Server Test de bertrand-didier.tech et prive.bertrand-didier.tech2 novembre 2026Ouvrir la sourceVoir dans la liste

prive.bertrand-didier.tech

Mozilla HTTP Observatory Mozilla HTTP ObservatoryNotes de bertrand-didier.tech et prive.bertrand-didier.tech, à chaque analyse2 novembre 2026Ouvrir la sourceVoir dans la liste

DBA+

30 → 75 → 110 points · 8 → 11 → 12 tests réussis sur 12

SSL Labs, configuration TLS : A+ Qualys SSL LabsSSL Server Test de bertrand-didier.tech et prive.bertrand-didier.tech2 novembre 2026Ouvrir la sourceVoir dans la liste

Analyse 1, recommandation, analyses 2 et 3

Point contrôléAnalyse 1 (avant)Recommandation appliquéeAnalyse 2Analyse 3
HTTPS et certificat valideOKRien à changerOKOK
Protocoles TLS : 1.2 et 1.3 acceptés, 1.0 et 1.1 refusésOKRien à changerOKOK
Redirection automatique de HTTP vers HTTPSOKRien à changerOKOK
HSTS : imposer HTTPS au navigateurAbsentStrict-Transport-Security, 1 an, sous-domaines inclusOKOK
Content-Security-Policy : n’autoriser que les scripts prévusAbsentPolitique stricte sur le site, puis sur la page publique de l’accès privéOK sur le site seulementOK
Intégration dans une autre page (clickjacking)AbsentX-Frame-Options SAMEORIGIN et frame-ancestorsOKOK
X-Content-Type-OptionsAbsentnosniffOKOK
Referrer-PolicyAbsentstrict-origin-when-cross-originOKOK
Permissions-PolicyAbsentBloquer caméra, micro, géolocalisation, paiement, USBOKOK
Versions des serveurs (nginx, Apache, PHP)VisiblesRetirer les en-têtes Server et X-Powered-ByMasquéesMasquées
Accès privé : contenu, API et flux fermés aux anonymesOKRien à changerOKOK

Ce qui a été mis en place

  • Dans Traefik, un jeu d’en-têtes de sécurité commun au site, à l’API des cours et à l’accès privé, qui retire aussi les en-têtes révélant les versions.
  • Une Content-Security-Policy stricte pour le site : seuls ses propres scripts s’exécutent, et les polices Google sont les seules ressources extérieures autorisées.
  • Le site ne place plus aucun script directement dans ses pages, condition pour cette politique stricte.
  • Pour l’accès privé, le module WordPress envoie une politique encore plus stricte (aucun script) sur la page des visiteurs non connectés ; l’administration, qui a besoin de ses propres scripts, n’est pas concernée.
  • Pour l’accès privé, une double authentification : après le mot de passe, un code à 6 chiffres donné par une application comme Google Authenticator, avec des codes de secours. Elle repose sur l’extension officielle Two Factor de WordPress, gratuite.
  • Après chaque déploiement, GitHub Actions vérifie ces en-têtes en ligne et fait échouer la publication s’il en manque un.

Le plan de test de remédiation

TestCommentRésultat attenduStatut
Les en-têtes de sécurité restent en place sur les trois servicesÉtape « Check security headers » de GitHub Actions, après chaque déploiementTous présents, CSP comprise, sinon le déploiement échoueAutomatisé
Aucune réponse ne révèle une version de serveurMême étape automatiqueNi Server ni X-Powered-By avec un numéroAutomatisé
Note Mozilla HTTP ObservatoryScan public des deux adresses, une fois par moisA+ pour les deux adressesFait le 2 novembre : A+ et A+
La politique CSP ne casse aucune pageParcours de toutes les pages, console du navigateur sans erreurGraphiques, animations, polices et cours chargésFait le 2 novembre
La connexion à l’accès privé fonctionnePage de connexion et tableau de bord WordPressFormulaire affiché et connexion réussiePage vérifiée ; connexion à tester avec un vrai compte
Content-Security-Policy pour l’accès privéPolitique stricte envoyée par le module WordPress sur la page des visiteurs non connectésPage affichée sans erreur ; administration WordPress inchangéeFait le 2 novembre
Configuration TLS détailléeSSL Labs, sur les deux adressesNote A ou mieuxFait le 2 novembre : A+
Double authentification de l’accès privéConnexion avec le mot de passe, puis le code à 6 chiffres de l’application d’authentificationCode demandé à chaque connexion ; codes de secours disponiblesActive et testée le 2 novembre
Retour arrière possibleCopies datées des configurations sur le serveurRétablir l’état d’avant en une commandePrêt

La suite du plan de test

  1. 01

    En-têtes de sécurité

    Mozilla HTTP Observatory Fait : HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy et Permissions-Policy dans Traefik ; note passée de D à A+.

  2. 02

    Masquer les versions

    curl Fait : les numéros de version de nginx, Apache et PHP ne sortent plus.

  3. 03

    Configuration TLS complète

    SSL Labs Fait : A+ sur les deux adresses, TLS 1.2 et 1.3 seulement, sans avertissement.

  4. 04

    Surface exposée du serveur

    nmap Lister les ports ouverts du VPS et fermer tout ce qui n’a pas à être public.

  5. 05

    Accès privé (WordPress)

    WPScan Fait en partie : double authentification active et testée sur la connexion. Reste à scanner versions, extensions et comptes.

  6. 06

    Scan applicatif

    OWASP ZAP Parcourir le site et l’API comme un attaquant, en mode passif puis actif.

  7. 07

    Dépendances

    npm audit, Dependabot Signaler et mettre à jour les bibliothèques vulnérables.

  8. 08

    Secrets et historique Git

    gitleaks Vérifier qu’aucune clé n’a jamais été publiée dans le dépôt.

  9. 09

    Conteneurs

    Trivy Chercher les failles connues dans les images Docker.

  10. 10

    Revue de code assistée

    Claude Code /security-review Faire relire chaque changement par l’IA, puis par moi.