governance
    New
    2026-04-13

    Adversarial Robustness Testing

    Test model resilience against five adversarial attack types. Required for NIST AI RMF MEASURE-ME4, FDA SaMD, and EU AI Act Art. 9.

    adversarial
    robustness
    fgsm
    pgd
    security
    nist
    fda

    Overview

    Adversarial robustness evaluation tests how much a model's accuracy degrades when inputs are deliberately perturbed. The platform supports simulation mode (statistical estimates — no model endpoint needed) and full mode (live perturbation testing via model endpoint).

    Adversarial robustness
    AI Robustness — pick a model and attack types (Carlini-Wagner, DeepFool…), set the epsilon budget, and run in simulation or full mode.
    Ai Robustness
    History tab.

    Attack Types

    Five attack types are supported.

    AttackTypeTypical Accuracy DropUse Case
    FGSMSingle-step L∞5–15%Fast baseline test
    PGDIterative L∞10–20%Standard robustness benchmark
    Carlini-Wagner (C&W)Optimisation-based15–25%Highest-fidelity attack
    DeepFoolMinimum-norm8–18%Geometry of decision boundary
    Square AttackScore-based black-box4–12%No gradient access required

    Running a Robustness Evaluation

    Submit via API with attack types, epsilon, and mode.

    typescript
    1const result = await client.robustnessEvals.create(
    2  "model_fraud_v2",
    3  {
    4    attack_types: ["fgsm", "pgd", "carlini_wagner"],
    5    epsilon: 0.1,
    6    num_steps: 20,
    7    mode: "simulation",       // no endpoint needed
    8    clean_accuracy: 0.86,
    9  }
    10);
    11
    12// result.passed     → true if robustness_score >= 0.70
    13// result.robustness_score → 0.74
    14// result.findings   → [{attack_type, severity, note}, ...]

    Pass Criteria

    An evaluation passes when: robustness_score ≥ 0.70 AND robust_accuracy ≥ 0.50. The robustness_score is the mean robust accuracy across all attack types, normalised to [0, 1]. When passed is false, a robustness_eval.failed webhook fires automatically. This event also triggers the IncidentResponseAgent, which classifies severity (critical if score < 0.40), generates an LLM incident summary, and notifies configured Slack, JIRA, and PagerDuty channels. Critical incidents page on-call immediately via PagerDuty Events API v2.

    Edit this page on GitHub