Production-grade web platform that embeds SAST · SCA · Secrets · DAST scanning into every CI/CD pipeline run, with policy gates, vulnerability lifecycle management, RBAC, and an immutable audit trail.
Stack: PHP 8.1 · MySQL 8.0 · Java 17 · Apache 2.4 · HTML5 / CSS3 / ES2020 Design: HashiCorp dark marketing system — black canvas, charcoal surface lifts, eyebrow section labels, per-product accents as scan-type identity, no neon, no glow.
You can deploy Cerberus, its database, and all dependencies instantly using Docker.
- Run
docker-compose up -d - Visit
http://localhost:8080/cerberus/(The database is automatically seeded on the first run).
-
Drop the folder into your XAMPP
htdocsdirectory:C:\xampp\htdocs\cerberus\ (Windows) /Applications/XAMPP/htdocs/cerberus/ (macOS) /opt/lampp/htdocs/cerberus/ (Linux) -
Start Apache + MySQL from the XAMPP control panel.
-
Create the database:
- Open
http://localhost/phpmyadmin - Click "Import" → choose
database/schema.sql→ Go - Click "Import" again → choose
database/seed.sql→ Go
- Open
-
Configure DB credentials (only if your XAMPP MySQL uses a non-default password) by editing
config/database.php. Defaults assumeroot/ empty password /localhost. -
Compile the Java SAST engine (optional — the platform runs without it; mock scans still work):
cd scanner bash build.shThis produces
scanner/CerberusScanner.jar. Requires Java 17+ onPATH. -
Visit
http://localhost/cerberus/and log in.
| Username | Password | Role |
|---|---|---|
admin |
Cerberus@123 |
Admin |
sarah_sec |
Cerberus@123 |
Security Engineer |
dev_john |
Cerberus@123 |
Developer |
viewer_lisa |
Cerberus@123 |
Viewer (read-only) |
All passwords stored as bcrypt cost-12 hashes.
cerberus/
├── index.php Login (public entry)
├── .htaccess Apache rewrite + security headers
├── config/ DB · auth · constants
├── database/ schema.sql · seed.sql
├── core/ Auth · Database · AuditLogger · Scanner · PolicyEngine · Notification
├── pages/ 19 feature pages
├── api/ 5 AJAX endpoints
├── includes/layout/ header · sidebar · topbar · footer
├── includes/components/ 7 reusable PHP components
├── assets/{css,js,img}/ Stylesheet · scripts · logo SVG
└── scanner/ Java 17 SAST engine + 33-rule registry
- All SQL via PDO prepared statements
- All output passes through
h()(htmlspecialchars wrapper) - CSRF token on every POST
- bcrypt cost 12 ·
session_regenerate_id(true)on login audit_logsis INSERT-only (no UPDATE/DELETE in code path)- Java scanner invoked only via
escapeshellarg() - Secrets are masked at write-time and never displayed unmasked
.htaccessships strict CSP, X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy
CS-305 Software Engineering · Muhammad Jawad Khan (Reg# 2500733)