Module Pentest IA
Tests de pénétration autonomes orchestrés par Claude Agent SDK + Temporal — découverte, exploitation, rapport
Module Pentest IA
Le module Pentest IA orchestre des tests de pénétration autonomes assistés par intelligence artificielle. Il combine :
- Le Claude Agent SDK (Anthropic) pour le raisonnement adversarial
- Temporal pour l'orchestration de workflows long-running (résumable, checkpointed)
- Le pentest-worker Go qui exécute les outils offensifs dans un sandbox K8s isolé
Disponible à partir du plan Business (le module est en Beta sous feature flag — voir section Maturité du module ci-dessous). Comptes MSP internes : également activé par défaut.
Pourquoi un pentest IA
Un pentest manuel coûte typiquement 5 000 à 25 000 $ CAD par engagement et n'est rejoué que tous les 6-12 mois. Le pentest IA Scanyze :
- Coût marginal : quelques dollars de crédits IA par exécution
- Reproductible : même méthodologie à chaque exécution, aucun biais d'opérateur
- Continu : peut être planifié hebdomadairement / mensuellement
- Documenté : chaque action de l'agent est journalisée avec timestamp et raisonnement
- Limité aux scénarios standards : ne remplace pas un pentest manuel adversarial pour les environnements critiques
Authorization (autorisation préalable obligatoire)
Tout pentest exige une autorisation écrite du propriétaire du système cible. Scanyze impose une étape de création d'Authorization avant tout lancement de pentest.
Procédure
- Naviguez vers
/pentests/authorizations. - Cliquez sur Nouvelle autorisation.
- Renseignez :
- Cible : un domaine ou une IP de votre tenant (la cible doit être une
Targetcréée etactive) - Scope : description textuelle du périmètre autorisé (URLs, sous-domaines, ports inclus / exclus)
- Date de début et date de fin : fenêtre temporelle de l'autorisation (max 90 jours par autorisation)
- Tests autorisés : checkboxes parmi lateral_movement
- Personne responsable : nom + courriel du décideur (le client_admin du tenant)
- Confirmation typée : il faut taper le texte « J'AUTORISE LE PENTEST » pour valider
- Cible : un domaine ou une IP de votre tenant (la cible doit être une
- Cliquez sur Créer. L'autorisation est cryptographiquement scellée (signature SHA-256 + horodatage immuable).
L'autorisation est conservée 7 ans (rétention forensic) et peut être exportée en PDF pour vos archives ou produite à votre RSSI / auditeur.
Lancer un pentest
- Naviguez vers
/pentests. - Cliquez sur Nouveau pentest.
- Sélectionnez une Authorization valide (uniquement les autorisations actives sont listées).
- Choisissez les options :
- Profondeur :
recon-only/light/standard/deep - Mode :
safe(pas d'exploitation destructive, défaut) ouaggressive(exploitation tentée, opt-in explicite) - Budget de crédits : plafond max de crédits IA à consommer (défaut : 200)
- Durée max : 1h / 4h / 12h / 24h
- Profondeur :
- Cliquez sur Lancer. Le workflow Temporal démarre et un identifiant
pentest_idest créé.
Lifecycle d'un pentest
Le workflow Temporal exécute des activités successives, chacune supervisée par l'agent Claude :
[Activité 1] Recon passif → DNS, WHOIS, sous-domaines, certificats
↓ (résumé envoyé à Claude pour analyse)
[Activité 2] Recon actif → Nmap, HTTPx, services, technologies
↓
[Activité 3] Vulnerability scan → Nuclei, NSE, scripts custom
↓
[Activité 4] Web app analysis → Crawl, fuzzing, paramètres, auth flow
↓
[Activité 5] Exploit hypotheses → Claude génère des hypothèses d'exploit
↓
[Activité 6] Exploit attempts → Tentatives ciblées (bornées par scope + Authorization)
↓
[Activité 7] Findings consolidation → Dédup, scoring CVSS, evidence
↓
[Activité 8] AI report generation → Synthèse exécutive + rapport technique détailléChaque activité est persistée par Temporal : si le worker crash, le workflow reprend où il s'était arrêté. Les états intermédiaires sont visibles en temps réel sur la page du pentest.
Suivi en temps réel
Sur /pentests/{id}, vous voyez :
- Console live : flux des actions de l'agent avec horodatage et raisonnement court
- Carte des cibles : sous-domaines / endpoints découverts avec leur statut (scanned, exploited, accepted, rejected)
- Findings : liste des findings au fur et à mesure qu'ils sont confirmés
- Crédits consommés : compteur live, alerte à 80% du budget
- Bouton Pause / Stop : Pause met le workflow Temporal en attente, Stop termine proprement le pentest avec génération du rapport partiel
Le rapport pentest
À la fin du workflow, deux artefacts sont générés :
1. Rapport exécutif (PDF, 5-15 pages)
- Résumé de la mission, scope effectif, durée, méthodologie
- Top findings : 5-10 vulnérabilités les plus critiques avec leur impact business
- Score global de la posture pentest
- Recommandations stratégiques (quick wins vs roadmap)
- Conformité avec les autorisations et le scope
2. Rapport technique (PDF, 30-200 pages)
- Méthodologie détaillée par phase
- Pour chaque finding :
- Description, sévérité, CVSS, CWE, CVE associés
- Steps to reproduce : commandes exactes pour reproduire le finding
- Evidence : payloads HTTP, captures, logs
- Recommandation détaillée avec correctif
- Exploit chains : chaînes d'exploitation reconstituées
- Annexes : raw outputs Nmap, Nuclei, listes complètes
Modes Safe vs Aggressive
| Mode | Activités autorisées | Risque pour la cible |
|---|---|---|
| Safe (défaut) | Recon, vuln scan, fuzzing non-destructif, tentatives d'exploit en mode lecture-seule (ex. SQL injection avec ', mais pas avec DROP TABLE) | Quasi nul. Équivalent d'un scan EASM agressif. |
| Aggressive | Toutes les activités Safe + exploitation effective (récupération de fichiers via LFI, exécution de commandes via RCE, dump de bases via SQLi confirmé) | Élevé. Peut causer des effets de bord (création de fichiers, requêtes DB volumineuses, alertes WAF). À utiliser seulement avec autorisation explicite et fenêtre de maintenance. |
Gestion des comptes test
Pour les pentests authentifiés, vous pouvez fournir des identifiants de test dans les paramètres du pentest. Les identifiants sont :
- Chiffrés AES-256-GCM dans
pentest_credentials - Utilisés uniquement pendant le workflow
- Effacés à la fin du pentest (ne sont jamais persistés en clair)
Sidebar dédié et navigation
Depuis la v0.126.0, le module Pentest a son propre groupe dans la sidebar (Pentest IA) avec les sous-sections :
Authorizations— gestion des autorisations préalablesPentests— historique et résultatsTemplates— profils de pentest réutilisablesReports— exports PDF par pentest
Maturité du module — feature flags Alpha / Beta / Production
Scanyze utilise des feature flags de maturité par module (table feature_maturity, migration 000168) avec 3 niveaux :
| Niveau | Visibilité | Affichage UI |
|---|---|---|
| Alpha | Internal SecuAAS uniquement | Badge Alpha rouge + bandeau d'avertissement |
| Beta | Tenants Business + MSP internes | Badge Beta orange |
| Production | Tous les plans qui activent la category | Pas de badge |
Le module Pentest IA est actuellement en Beta sur les comptes Business + MSP. Les comptes Free / Starter / Pro voient un message « Module disponible avec le plan Business ou via un partenaire MSP ».
L'admin SecuAAS (/admin/features) peut faire transiter un module entre Alpha → Beta → Production via la page de gestion. Source : secuscan-web/app/admin/features/page.tsx.
Autorisations par plan
| Plan | Pentests/mois | Concurrence | Mode aggressive |
|---|---|---|---|
| Free | ❌ | — | — |
| Starter | ❌ | — | — |
| Pro | ❌ | — | — |
| Business | 5 | 2 simultanés | Oui |
| Enterprise | -1 | -1 | Oui |
| MSP internal | -1 | -1 | Oui |
Chaque pentest consomme des crédits IA en plus du quota mensuel (typiquement 50-200 crédits selon profondeur et mode).
Limitations
- Le pentest IA ne remplace pas un pentest manuel adversarial pour des environnements critiques (banques, infrastructures vitales).
- Il est limité aux vecteurs externes : pas d'attaques physiques, pas d'ingénierie sociale, pas d'attaques sur les comptes utilisateurs réels (sauf comptes test fournis).
- Les 0-days ne peuvent pas être découverts ; l'agent IA s'appuie sur les CVE connus et les patterns de vulnérabilités courantes.
- Le mode aggressive est conçu pour des environnements de staging ou des fenêtres de maintenance. Ne jamais l'utiliser en production sans plan de rollback.
Sources de cette page
- Backend :
secuscan-api/internal/services/pentest/,secuscan-api/cmd/pentest-worker/ - Agent :
secuscan-pentest-agent/(TypeScript + Anthropic Agent SDK) - Temporal workflows :
secuscan-api/internal/services/pentest/temporal/
À jour pour Scanyze v0.130.x.