OWASP Sentinel

A hybrid scanner for the OWASP Top 10 (2025): static analysis (Opengrep with open rules) finds candidate vulnerabilities, and an LLM gives a second opinion on each to cut false positives. It is benchmarked on the OWASP Benchmark (Java) with known answers.

This page is a static, read-only demo. The live scanner (paste code, get findings) is not hosted here. It runs locally with Docker: see the README for the two commands.

What I built

Headline numbers (450-case Benchmark sample, Java)

In plain English: precision is how many flagged issues are real; recall is how many real issues get found; false-positive rate is how many safe code samples are wrongly flagged. Higher precision and recall are better; lower false-positive rate is better.

ConfigurationPrecisionRecallFalse-positive rate
A. Opengrep (sast-rules) 0.6750.6000.289
B. A + custom rules 0.6760.8890.427
C. B + LLM triage (1 run) 0.7120.8890.360
00.51 A. Opengrep (sast-rules): 0.675 0.68 A B. A + custom rules: 0.676 0.68 B C. B + LLM triage (1 run): 0.712 0.71 C Precision (higher is better) A. Opengrep (sast-rules): 0.600 0.60 A B. A + custom rules: 0.889 0.89 B C. B + LLM triage (1 run): 0.889 0.89 C Recall (higher is better) A. Opengrep (sast-rules): 0.289 0.29 A B. A + custom rules: 0.427 0.43 B C. B + LLM triage (1 run): 0.360 0.36 C False-positive rate (lower is better)

A. Opengrep (sast-rules)B. A + custom rulesC. B + LLM triage (1 run)

Full benchmark results and OWASP 2025 coverage

Only categories with ground truth get metrics; the others are listed as "Not covered". Model: gemini:gemini-3.1-flash-lite.