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 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
- 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¶
| Type | Description |
|---|---|
STATIC |
Runs AIRS-maintained adversarial attack patterns from the attack library |
DYNAMIC |
Goal-driven multi-turn attacks using an adversarial agent |
CUSTOM |
Runs your custom prompt sets (e.g., those generated by airs runtime topics generate --create-prompt-set) |
Sub-pages¶
- Running Scans -- launch scans, monitor progress, view reports
- Managing Targets -- CRUD operations for red team targets, auth validation, metadata, templates
- EULA & Infrastructure -- EULA acceptance, instance management, devices, registry credentials
- Prompt Sets & Prompts -- manage custom prompt sets and individual prompts
Authentication¶
Red Team operations reuse the same OAuth2 credentials as topic management:
PANW_MGMT_CLIENT_IDPANW_MGMT_CLIENT_SECRETPANW_MGMT_TSG_ID
Optional overrides for dedicated red team endpoints:
PANW_RED_TEAM_DATA_ENDPOINTPANW_RED_TEAM_MGMT_ENDPOINTPANW_RED_TEAM_TOKEN_ENDPOINT
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"']));