
Ein DAST-Benchmark mit absichtlich verwundbaren Anwendungen und Ground-Truth-Antwortschlüsseln zur Bewertung von Scannern
Ein DAST-Benchmark aus absichtlich verwundbaren Apps mit Ground-Truth-Antwortschlüsseln zur Bewertung von Scannern.
⚠️ Dieses Repository enthält ABSICHTLICH UNSICHERE Anwendungen. Sie existieren einzig dazu, Sicherheits-Tooling zu benchmarken – DAST-Scanner, SAST-Engines und LLM- Sicherheitsagenten. Jede App bindet an
127.0.0.1, zeigt ein LAUTES Banner und enthält keine echten Daten. Setze nichts davon jemals in einem öffentlichen Netzwerk ein.
Eine Suite aus 19 absichtlich verwundbaren Apps, eine pro Stack, jede mit einer dokumentierten, maschinell prüfbaren Ground Truth. Der Sinn besteht darin zu messen, wie gut ein Scanner oder Agent (a) die eingepflanzten Bugs findet, (b) den sicheren Beinahe-Treffer- Code direkt daneben ignoriert und (c) keine Findings auf dem gepatchten Zwilling halluziniert.
19 Apps · 559 eingepflanzte Schwachstellen · 155 Beinahe-Treffer · 556 ausführbare PoCs ·
634 katalogisierte Endpunkte. Jede App startet auf 127.0.0.1:13311, liefert ein
vuln/+safe/-Zwillingspaar und einen Single-Image---solo-Build. dynast-bench list
gibt diese Tabelle live aus; dynast-bench surface <app> gibt ihren Endpunktkatalog aus.
| App | Stack | Datastore | Vulns | Near-miss | Docs |
|---|---|---|---|---|---|
| aspnet | C# / ASP.NET Core Razor Pages | SQL Server | 28 | 12 | plan |
| fastapi | Python / FastAPI + Jinja2 | Postgres | 26 | 5 | plan |
| gin | Go / Gin | Postgres | 17 | 12 | readme |
| golang | Go / chi | Postgres | 26 | 4 | plan |
| graphql | Node / GraphQL 16 API-only | Postgres | 31 | 6 | plan |
| jsp | Java / JSP + Servlets (Tomcat) | Postgres | 28 | 6 | plan |
| laravel | PHP 8.3 / Laravel 11 + Blade | MySQL | 25 | 7 | plan |
| llmagent | Node / Fastify + AI SDK + MCP | Postgres | 29 | 8 | plan |
| llmchat | Python / FastAPI + LangChain RAG | Postgres+pgvector | 30 | 9 | plan |
| nestjs | Node / NestJS + Handlebars | Postgres | 23 | 6 | plan |
| network | Simuliertes Multi-Host-Netzwerk-Range | gemischte Flotte | 32 | 5 | plan |
| nextjs | Node / Next.js 15 (Referenzimplementierung) | Postgres | 40 | 19 | plan |
| php | PHP / prozedurales LAMP | MySQL | 21 | 5 | plan |
| rails | Ruby / Rails 7.2 | Postgres | 26 | 6 | plan |
| springboot | Java / Spring Boot + Thymeleaf | Postgres | 30 | 4 | plan |
| swagger | OpenAPI / Swagger UI + Spec-Laden | Postgres | 19 | 5 | plan |
| websocket | Node 22 / ws + Socket.IO Realtime | Postgres | 28 | 6 | plan |
| weirdproxy | nginx + Apache + Traefik über einen Origin | keine | 16 | 4 | plan |
| wordpress | PHP / WordPress + Custom-Plugin | MySQL | 28 | 6 | plan |
Zusätzliche Sidecars pro Stack (Mailpit, MinIO, Redis, Jenkins, Prometheus, Ollama, …) sind unten in Die Apps aufgeführt.
Die Design-Dokumente pro Stack liegen in benchmark-plans/ –
beginne dort für den vollständigen Schwachstellenkatalog jeder App. Dieses README ist der
Betriebsleitfaden: wie das Repo aufgebaut ist und wie man eine App ausführt und bewertet.
Jeder platzierte Bug trägt eine CWE und eine OWASP-Kategorie. Nach Klasse zusammengefasst – jeder Bug einmal gezählt, unter seiner primären CWE – verteilen sich die platzierten Bugs ungefähr wie folgt (Rollup zuletzt neu generiert bei 480 Bugs; die obigen Pro-App-Zahlen sind aktuell):