Skip to main content

Red Team Scanning

Prisma AIRS CLI integrates with Palo Alto Prisma AIRS AI Red Team to run adversarial scans against configured targets. This provides a second layer of validation beyond the guardrail refinement loop's synthetic tests.

Overview​

The airs-cli redteam command group provides full access to Red Team operations:

  • Scan -- launch static, dynamic, or custom prompt set scans
  • Status -- monitor running scans
  • Report -- view results with severity breakdowns and attack details
  • Judge -- compute an independent attack success rate with TypeSafe Jev (redteam judge)
  • List -- browse recent scans
  • Targets -- full CRUD on red team targets (create, get, update, delete, probe, profile, validate-auth, metadata, templates)
  • EULA -- check, view, and accept the Red Team end-user license agreement
  • Instances -- create, read, update, and delete Red Team compute instances
  • Devices -- create, update, and delete devices attached to instances
  • Registry Credentials -- fetch container registry tokens for Red Team infrastructure
  • Prompt Sets -- manage custom prompt sets (create, get, update, archive, upload CSV, download template)
  • Prompts -- manage individual prompts within sets (add, list, get, update, delete)
  • Properties -- manage custom attack property names and values
  • Categories -- list available attack categories
  • Abort -- stop a running scan

Scan Types​

TypeDescription
STATICRuns AIRS-maintained adversarial attack patterns from the attack library
DYNAMICGoal-driven multi-turn attacks using an adversarial agent
CUSTOMRuns your custom prompt sets (created with airs-cli redteam prompt-sets create / upload)

Sub-pages​

Exact command syntax

Every red team command with options and example output lives in the CLI Reference.

Authentication​

Red Team API operations use mgmtClientId, mgmtClientSecret and mgmtTsgId from the selected CLI tenant. Set them through tenant configuration; credential environment variables are ignored. The same mgmtTokenEndpoint serves management authentication across product groups. Optional redTeamDataEndpoint and redTeamMgmtEndpoint settings change API destinations, not authentication.

Live redteam judge calls additionally use the tenant's typesafeApiKey. A local-file dry run or replay needs no credentials; --job still requires management credentials to fetch the scan. This distinction applies to the CLI; the library example below passes its own configuration explicitly.

Library API​

The SdkRedTeamService and SdkPromptSetService classes are exported for programmatic use:

import { SdkRedTeamService, SdkPromptSetService } from '@cdot65/prisma-airs-cli';

const redteam = new SdkRedTeamService({
clientId: process.env.PANW_MGMT_CLIENT_ID,
clientSecret: process.env.PANW_MGMT_CLIENT_SECRET,
tsgId: process.env.PANW_MGMT_TSG_ID,
});

// Target CRUD
const target = await redteam.createTarget({
name: 'My Target',
target_type: 'REST',
connection_params: { api_endpoint: 'https://api.example.com' },
}, { validate: true });

// Scans
const job = await redteam.createScan({
name: 'API Scan',
targetUuid: target.uuid,
jobType: 'STATIC',
});
const completed = await redteam.waitForCompletion(job.uuid, (progress) => {
console.log(`${progress.status}: ${progress.completed}/${progress.total}`);
});
const report = await redteam.getStaticReport(completed.uuid);

// Prompt set management
const promptSets = new SdkPromptSetService({
clientId: process.env.PANW_MGMT_CLIENT_ID,
clientSecret: process.env.PANW_MGMT_CLIENT_SECRET,
tsgId: process.env.PANW_MGMT_TSG_ID,
});

const ps = await promptSets.createPromptSet('My Set', 'Description');
await promptSets.addPrompt(ps.uuid, 'Test prompt', 'Should trigger');
await promptSets.uploadPromptsCsv(ps.uuid, new Blob(['prompt,goal\n"test","goal"']));