Human creativity meets systematic methodology—complements automated scanning.
Penetration testing (pen testing) is an authorized simulation of real-world attacks against systems, networks, or applications. Testers chain weaknesses to demonstrate business impact, validate detective controls, and produce actionable remediation guidance—not just a list of scanner hits.
| Style | Knowledge | Typical goal |
|---|---|---|
| Black box | No internal details | Assess external exposure like an outsider |
| White box | Full architecture & code access | Deep logic flaws, authZ, abuse cases |
| Gray box | Partial knowledge (e.g., user account) | Balance realism with efficiency |
Automation does not replace testers, but it feeds them: deploy artifacts from the same pipeline, run authenticated DAST baselines, export SBOMs, and attach build SHAs to the pen-test scope.
# Scheduled OWASP ZAP baseline in GitHub Actions (illustrative)
name: security-scheduled
on:
schedule:
- cron: '0 6 * * 1' # Mondays 06:00 UTC
jobs:
zap:
runs-on: ubuntu-latest
steps:
- uses: zaproxy/action-baseline@v0.12.0
with:
target: ${{ vars.STAGING_URL }}
fail_action: true
Pair scheduled jobs with manual pen-test windows; store reports as build artifacts with retention policy.
DAST tools automate probing against URLs; pen tests add adversarial thinking, custom payloads, social engineering (if in scope), and lateral movement across systems.
Reports should include severity (CVSS optional), likelihood, impact, affected components, reproduction, and fix recommendations. Track remediation in the same backlog as SAST/SCA with SLAs.