SecuAAS Docs
SecuScan / ScanyzeModules

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

  1. Naviguez vers /pentests/authorizations.
  2. Cliquez sur Nouvelle autorisation.
  3. Renseignez :
    • Cible : un domaine ou une IP de votre tenant (la cible doit être une Target créée et active)
    • 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
  4. 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

  1. Naviguez vers /pentests.
  2. Cliquez sur Nouveau pentest.
  3. Sélectionnez une Authorization valide (uniquement les autorisations actives sont listées).
  4. Choisissez les options :
    • Profondeur : recon-only / light / standard / deep
    • Mode : safe (pas d'exploitation destructive, défaut) ou aggressive (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
  5. Cliquez sur Lancer. Le workflow Temporal démarre et un identifiant pentest_id est 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

ModeActivités autoriséesRisque 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.
AggressiveToutes 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)

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éalables
  • Pentests — historique et résultats
  • Templates — profils de pentest réutilisables
  • Reports — 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 :

NiveauVisibilitéAffichage UI
AlphaInternal SecuAAS uniquementBadge Alpha rouge + bandeau d'avertissement
BetaTenants Business + MSP internesBadge Beta orange
ProductionTous les plans qui activent la categoryPas 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

PlanPentests/moisConcurrenceMode aggressive
Free
Starter
Pro
Business52 simultanésOui
Enterprise-1-1Oui
MSP internal-1-1Oui

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.

On this page