Skill Being Reviewed
Skill name: dast-config
Skill path: skills/devsecops/dast-config/SKILL.md
False Positive Analysis
Benign authenticated DAST setup that should not be flagged just because it exercises state-changing flows:
env:
contexts:
- name: staging-shop
urls: ["https://staging.example.com"]
includePaths:
- "https://staging.example.com/shop/.*"
excludePaths:
- "https://staging.example.com/shop/account/delete.*"
authentication:
method: browser
verification:
method: response
loggedInRegex: "\\QSign Out\\E"
loggedOutRegex: "\\QSign In\\E"
users:
- name: dast-buyer
credentials:
username: "${DAST_BUYER_USERNAME}"
password: "${DAST_BUYER_PASSWORD}"
state_safety:
environment: ephemeral_staging
seed_data_reset: before_and_after_scan
anti_csrf_tokens: refreshed_by_sequence
mutation_budget: low_value_test_account_only
Why this is a false positive risk:
The current skill correctly requires authenticated scanning, excludes destructive endpoints, and warns against production active scans. But reviewers can still overcorrect by treating every authenticated state-changing flow as unsafe. Some business-critical surfaces only become testable when the scanner follows a sequence that creates a draft object, refreshes anti-CSRF tokens, and mutates seed data in an ephemeral environment. The skill should distinguish safe stateful DAST from unsafe stateful DAST.
Coverage Gaps
Missed variant 1: active scan runs authenticated business flows without seed/reset evidence
jobs:
- type: spider
parameters:
context: app
user: admin
- type: activeScan
parameters:
context: app
user: admin
state_safety:
seed_data_reset: missing
post_scan_cleanup: missing
mutation_budget: unrestricted
Why it should be caught:
The skill says active scans should target staging and exclude destructive endpoints, but it does not require reviewers to record whether authenticated state-changing requests are constrained to disposable users, seeded data, a mutation budget, and reset/cleanup evidence. A scanner can create orders, update profiles, trigger emails, consume inventory, or pollute logs without hitting a literal /delete path.
Missed variant 2: CSRF/anti-forgery tokens are stale in replayed authenticated requests
sequence:
login: captured_once
checkout_post:
csrf_token: static_value_from_har
refresh_strategy: missing
Why it should be caught:
ZAP can support authentication verification and sequence-based scanning, and form auth may need anti-CSRF token handling. If a DAST plan replays stale tokens from a HAR or captured request, coverage can silently fail: the scan appears authenticated but most state-changing requests are rejected as invalid, producing false confidence.
Missed variant 3: multi-step flows are spidered out of order instead of scanned as sequences
flow: add_item -> create_draft_order -> apply_coupon -> submit_payment
scanner_behavior: generic_spider_then_active_scan
sequence_evidence: missing
Why it should be caught:
Many modern apps require ordered state transitions. Generic crawling may miss later steps, skip required token refreshes, or hit endpoints in invalid order. The skill should require sequence evidence for stateful flows such as checkout, account recovery, onboarding, subscription changes, and admin workflows.
Edge Cases
- A state-changing request is not automatically unsafe when it uses a disposable user, seeded tenant, bounded data set, and verified reset/cleanup.
- Excluding every POST/PUT/PATCH/DELETE path creates blind spots; the better gate is risk-based inclusion with safeguards.
- CSRF token refresh can be handled by scanner configuration, browser auth, sequence scripts, or app-specific hooks. The review should record the evidence rather than mandate one tool.
- Production passive scans may be acceptable, but authenticated active stateful scans need explicit approval and rollback evidence.
Remediation Quality
Comparison to Other Tools / Sources
| Tool / Source |
Catches this? |
Notes |
| ZAP Automation Framework |
Partial |
Supports contexts, authentication, users, job order, job tests, and sequence jobs, but the skill does not require reviewers to capture stateful safety evidence. |
| ZAP Authentication docs |
Partial |
Covers authentication methods, verification strategy, users, and anti-CSRF token handling for form auth. |
| OWASP WSTG |
Partial |
Requires authenticated/session/CSRF testing but does not by itself define CI seed-data and mutation-budget gates. |
| Current skill |
Partial |
Covers authenticated scanning and destructive endpoint exclusions, but lacks an explicit stateful scan safety matrix. |
Overall Assessment
Strengths:
- Good ZAP Automation Framework examples.
- Good separation between passive PR scans and active staging scans.
- Good basic authentication verification and scope management checks.
Needs improvement:
- Authenticated DAST should not be considered complete without stateful flow coverage evidence.
- Reviewers need a concrete decision matrix for state-changing requests that are safe to scan, unsafe to scan, or only safe with sequence/reset controls.
- Output should record token refresh, seed/reset, mutation budget, test user role, side-effect exclusions, and post-scan cleanup evidence.
Priority recommendations:
- Add a
Stateful Authenticated Scan Safety step after authenticated scanning setup.
- Add finding triggers for missing sequence evidence, stale anti-CSRF tokens, unrestricted mutation budget, privileged test user, missing seed/reset, and missing post-scan cleanup.
- Extend the report template with a stateful scan safety table.
- Add vulnerable and benign fixtures showing unsafe authenticated active scans vs controlled sequence-based scans.
Sources Checked
Bounty Info
Skill Being Reviewed
Skill name:
dast-configSkill path:
skills/devsecops/dast-config/SKILL.mdFalse Positive Analysis
Benign authenticated DAST setup that should not be flagged just because it exercises state-changing flows:
Why this is a false positive risk:
The current skill correctly requires authenticated scanning, excludes destructive endpoints, and warns against production active scans. But reviewers can still overcorrect by treating every authenticated state-changing flow as unsafe. Some business-critical surfaces only become testable when the scanner follows a sequence that creates a draft object, refreshes anti-CSRF tokens, and mutates seed data in an ephemeral environment. The skill should distinguish safe stateful DAST from unsafe stateful DAST.
Coverage Gaps
Missed variant 1: active scan runs authenticated business flows without seed/reset evidence
Why it should be caught:
The skill says active scans should target staging and exclude destructive endpoints, but it does not require reviewers to record whether authenticated state-changing requests are constrained to disposable users, seeded data, a mutation budget, and reset/cleanup evidence. A scanner can create orders, update profiles, trigger emails, consume inventory, or pollute logs without hitting a literal
/deletepath.Missed variant 2: CSRF/anti-forgery tokens are stale in replayed authenticated requests
Why it should be caught:
ZAP can support authentication verification and sequence-based scanning, and form auth may need anti-CSRF token handling. If a DAST plan replays stale tokens from a HAR or captured request, coverage can silently fail: the scan appears authenticated but most state-changing requests are rejected as invalid, producing false confidence.
Missed variant 3: multi-step flows are spidered out of order instead of scanned as sequences
Why it should be caught:
Many modern apps require ordered state transitions. Generic crawling may miss later steps, skip required token refreshes, or hit endpoints in invalid order. The skill should require sequence evidence for stateful flows such as checkout, account recovery, onboarding, subscription changes, and admin workflows.
Edge Cases
Remediation Quality
Comparison to Other Tools / Sources
Overall Assessment
Strengths:
Needs improvement:
Priority recommendations:
Stateful Authenticated Scan Safetystep after authenticated scanning setup.Sources Checked
Bounty Info