Seven scanners, one pipeline
ZAP, Nuclei, Nikto, Trivy, Semgrep, Burp Enterprise, and your own rules — orchestrated with dedupe, baselines, and historical trendlines out of the box.
PennScan orchestrates seven open-source scanners behind one pipeline — dedupes their findings, prioritizes by exploitability, and ships AI-written fixes straight into your CI.
ZAP, Nuclei, Nikto, Trivy, Semgrep, Burp Enterprise, and your own rules — orchestrated with dedupe, baselines, and historical trendlines out of the box.
Findings grouped by root cause, ranked by exploitability, and shipped with concrete fix steps — not "severity: high". Triage actions propagate to your next scan.
Allowlist + denylist + rate limiting enforced at the engine. Every scan proves authorization before a single packet ships. Logged, signed, auditable.
Trigger on every PR via GitHub webhooks, on a cron, or on demand from the CLI. Gate merges on new HIGH/CRITICAL findings through a single status check.
Per-project allowlists, findings, API keys, and quotas. Scan twenty services without cross-contamination or shared-blast risk.
The Pennscan engine runs anywhere Python runs. Air-gapped docker-compose overlay included. Bring your own rules and your own scanners — no vendor lock-in.
Paste a URL or repo and prove you own it. The engine refuses to scan anything not on the signed allowlist — no accidental third-party traffic, no legal exposure.
Every PR, every deploy, a nightly cron, or on-demand from the CLI. Ten scanners run in parallel; findings are deduped and ranked by exploitability before they ever reach your inbox.
A single GitHub status check fails the PR on new HIGH/CRITICAL findings. AI-written fix steps ship in the PR comment. Triage once — decisions propagate to every future scan.
# .github/workflows/pennscan.yml
name: pennscan
on: [pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: pennscan/scan-action@v1
with:
project: my-api
target: ${{ env.STAGING_URL }}
fail-on: HIGH,CRITICAL # block the PRWhile we validate — Pro and Enterprise are $1/mo. Upgrade any time.
Yes — PennScan only scans targets you've explicitly allowlisted inside your project. Every run proves authorization before a single packet ships, and the allowlist is signed and auditable. Running against third-party targets without authorization is blocked at the engine, not just the UI.
ZAP, Nuclei, Nikto, Trivy, Semgrep, Burp Enterprise, and a set of in-house rules — ten tools total. Findings are deduped across tools and ranked by exploitability, so you don't get ten copies of the same TLS warning.
Yes. The engine is plain Python and ships with an air-gapped docker-compose overlay. Bring your own rules, your own scanners, and your own infrastructure — the hosted platform is a convenience, not a lock-in.
Those focus on a single surface (SCA, supply chain, SAST). PennScan orchestrates DAST + SAST + container + config in one pass, correlates findings across tools, and gates merges on a single status check. Semgrep and Trivy are part of our pipeline, not a competitor.
Nothing exploitative. The scanners run non-destructive profiles by default; HIGH/CRITICAL findings trigger a webhook (Slack, GitHub, PagerDuty, or your SIEM) and can gate the next merge. We never attempt exploitation against production without an explicit `exploit=true` flag on a scoped target.
30 days on Free, 180 days on Pro, 10 years on Enterprise. You can export findings as JSON or SARIF at any time; retention governs how long we keep them queryable in-platform.
A drop-in GitHub Action, a GitLab CI template, and a plain CLI for everything else. Fail on any severity threshold, post a PR comment with the delta since last scan, and gate the merge with a single status check.
Yes — no credit card, 100 scans/month and 20 AI analyses, 3 projects. Enough to evaluate PennScan against a real app end-to-end. If you hit the cap mid-month, scans queue rather than fail.
Start scanning in five minutes. No credit card for the free tier.