L'IA qui trouve des failles avant vos attaquants
Anthropic vient d'annoncer qu'elle ne publiera pas son dernier modèle, Claude Mythos, au grand public. À la place, l'entreprise le réserve à un cercle restreint de partenaires de sécurité via le Project Glasswing. La raison ? Le modèle est capable de trouver des milliers de vulnérabilités critiques de manière autonome — dans les navigateurs, les systèmes d'exploitation, les bibliothèques tierces.
Concrètement : Mythos Preview a rédigé de manière autonome un exploit navigateur enchaînant quatre vulnérabilités, incluant un JIT heap spray permettant de s'échapper des sandboxes renderer et OS. Il a obtenu des élévations de privilèges locaux sur Linux en exploitant des race conditions subtiles et des contournements KASLR.
Ce n'est pas encore entre toutes les mains. Mais ce le sera bientôt. La question n'est pas si ces capacités vont se démocratiser, mais quand. Pour les équipes qui maintiennent des stacks PHP/Symfony sur Docker avec PostgreSQL et des pipelines CI/CD, la fenêtre de préparation est maintenant.
🔍 Intégrer des scans automatisés dans votre pipeline CI/CD
La première ligne de défense est d'automatiser la détection de vulnérabilités avant que le code n'atteigne la production. Voici les briques essentielles à ajouter à votre pipeline GitHub Actions ou GitLab CI.
Analyse des dépendances PHP
# .github/workflows/security.yml
jobs:
security-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Composer audit
run: composer audit --format=json | tee audit-report.json
- name: Fail on high severity
run: |
HIGHS=$(jq '[.advisories[] | select(.severity == "high" or .severity == "critical")] | length' audit-report.json)
if [ "$HIGHS" -gt 0 ]; then echo "⛔ $HIGHS vulnérabilité(s) critique(s) détectée(s)" && exit 1; fi
Scan des images Docker
Avant de pousser une image en production, intégrez Trivy :
- name: Scan image Docker
uses: aquasecurity/trivy-action@master
with:
image-ref: 'ghcr.io/mulertech/mon-app:${{ github.sha }}'
severity: 'HIGH,CRITICAL'
exit-code: '1'
Ce scan couvre les CVE des packages système (Debian/Alpine), les bibliothèques embarquées et les fichiers de configuration exposés.
Analyse statique du code (SAST)
Pour PHP, Psalm avec le plugin de sécurité et phpcs-security-audit permettent de détecter les injections SQL, XSS et désérialisations dangereuses :
./vendor/bin/psalm --taint-analysis
🐳 Durcir vos conteneurs Docker et votre PostgreSQL
Un modèle IA capable d'exploiter des race conditions noyau cherchera d'abord les surfaces d'attaque les plus accessibles. Les conteneurs mal configurés en font partie.
Dockerfile : principes de moindre privilège
FROM php:8.3-fpm-alpine
# Ne jamais tourner en root
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Réduire la surface d'attaque
RUN rm -rf /var/cache/apk/* /tmp/*
# Capabilities minimales
USER appuser
docker-compose.yml : isolation réseau
services:
app:
security_opt:
- no-new-privileges:true
read_only: true
tmpfs:
- /tmp
- /var/run
networks:
- internal
postgres:
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
networks:
- internal # jamais exposé directement
networks:
internal:
internal: true # pas d'accès internet direct
secrets:
db_password:
file: ./secrets/db_password.txt
PostgreSQL : restreindre les permissions
-- Créer un utilisateur applicatif avec droits minimaux
CREATE ROLE app_user WITH LOGIN PASSWORD 'xxx';
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
REVOKE CREATE ON SCHEMA public FROM app_user;
-- Auditer les connexions
ALTER SYSTEM SET log_connections = 'on';
ALTER SYSTEM SET log_disconnections = 'on';
🚨 Préparer un workflow d'incident
La détection ne suffit pas. Quand une vulnérabilité critique est publiée (ou exploitée), vous devez pouvoir réagir en moins d'une heure. Voici une structure minimale.
Runbook de réponse express
1. DÉTECTION (< 5 min)
- Alerte Trivy/Dependabot reçue
- Vérifier le score CVSS : >= 9.0 → procédure critique
2. ISOLATION (< 15 min)
- Couper le service exposé : docker compose stop app
- Activer la page de maintenance Symfony
- Révoquer les tokens d'API actifs si auth compromise
3. ÉVALUATION (< 30 min)
- Le vecteur d'attaque est-il réseau ou local ?
- Les logs PostgreSQL montrent-ils des requêtes anormales ?
- Y a-t-il des containers sortants vers des IP inconnues ?
4. CORRECTION (< 60 min)
- Mise à jour de la dépendance : composer update vendor/package
- Rebuild et redéploiement de l'image Docker
- Validation du scan Trivy avant remise en production
5. POST-MORTEM (< 48h)
- Timeline complète documentée
- Ajout d'un test de non-régression
- Mise à jour du runbook
Symfony : désactiver rapidement une surface d'attaque
// config/packages/security.yaml - bloquer temporairement une route
access_control:
- { path: ^/api/vulnerable-endpoint, roles: ROLE_NO_ACCESS }
Ce que Project Glasswing nous enseigne vraiment
Anthropique fait le bon choix en ne publiant pas Mythos immédiatement. Mais cette décision nous envoie un signal clair : les capacités de découverte de vulnérabilités vont s'industrialiser. Ce qui prend aujourd'hui des semaines à un pentest humain prendra bientôt quelques minutes à un agent IA.
La bonne nouvelle : les contre-mesures défensives profitent exactement des mêmes progrès. Des outils comme Trivy, Dependabot ou composer audit sont déjà gratuits et intégrables en une journée.
L'objectif n'est pas de devenir invulnérable — c'est de rendre l'effort d'exploitation plus coûteux que la valeur de la cible, et de réduire le temps de détection/réponse en dessous du temps nécessaire à une exfiltration significative.
Commencez par l'étape la plus simple : exécutez composer audit sur votre projet aujourd'hui. Puis ajoutez-le à votre CI. Le reste peut suivre progressivement.
Article inspiré de l'analyse de Simon Willison sur Project Glasswing et la system card officielle d'Anthropic.