
Jage jeden Endpunkt in deinem Code, lege Schatten-APIs offen, kartiere die Angriffsfläche.
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/owasp-noir/noir/assets/13212227/04aee7d0-c224-481b-8d79-2dbdcf3ad84b" width="500px;">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/owasp-noir/noir/assets/13212227/0577860e-3d7e-4294-8f1f-dc7b87ce2b2b" width="500px;">
<img alt="OWASP Noir Logo" src="https://assets.kitploit.com/production/public/readmes/6973/e2e539b3fb591b284773aefdcfe8798369fa69e88b99ea980dce5e97202428cc.png" width="500px;">
</picture>
<p>Spüre jeden Endpoint in deinem Code auf, lege Shadow APIs offen und kartiere die Angriffsfläche.</p>
</div>
<p align="center">
<a href="https://github.com/owasp-noir/noir/releases">
<img src="https://img.shields.io/github/v/release/owasp-noir/noir?style=for-the-badge&color=black&labelColor=black&logo=web"></a>
<a href="https://crystal-lang.org">
<img src="https://img.shields.io/badge/Crystal-000000?style=for-the-badge&logo=crystal&logoColor=white"></a>
<a href="https://owasp.org/projects/noir">
<img src="https://img.shields.io/badge/OWASP-000000?style=for-the-badge&logo=owasp&logoColor=white"></a>
<a href="https://www.bestpractices.dev/projects/14203">
<img src="https://img.shields.io/badge/OpenSSF-Best%20Practices-000000?style=for-the-badge&labelColor=black"></a>
<a href="https://github.com/owasp-noir/noir/blob/main/.github/CONTRIBUTING.md">
<img src="https://img.shields.io/badge/CONTRIBUTIONS-WELCOME-000000?style=for-the-badge&labelColor=black"></a>
</p>
<p align="center">
<a href="https://owasp-noir.github.io/noir/">Dokumentation</a> •
<a href="https://owasp-noir.github.io/noir/get_started/installation/">Installation</a> •
<a href="#usage">Verwendung</a> •
<a href="https://owasp-noir.github.io/noir/usage/github_action/">Github Action</a> •
<a href="#contributing">Mitwirken</a> •
<a href="https://github.com/owasp-noir/noir/blob/main/CHANGELOG.md">Changelog</a>
</p>
Noir ist ein SAST-Tool, das Quellcode liest und die Endpoints extrahiert, die eine Anwendung bereitstellt — Pfade, Methoden, Parameter, Header, Cookies und die dahinterstehenden Quelldateien. Shadow APIs, veraltete Routen und undokumentierte Handler erscheinen als Teil desselben Inventars; sie sind kein separater Modus.
Das Inventar richtet sich an drei Zielgruppen:
- **Menschliche Prüfer.** Sicherheitsingenieure und Code-Auditoren erhalten eine fokussierte Liste angreifer-erreichbarer Einstiegspunkte — Pfade, Parameter, Quelldateien, Tags — statt das gesamte Repository durchsehen zu müssen.
- **KI-Auditoren.** LLM-basierte SAST-Agenten erhalten dieselbe fokussierte Liste, plus Review-Kontext pro Endpoint (`--include callee` für 1-Hop-Callees, `--ai-context` für Guards, Sinks, Validatoren und Signale).
- **DAST-Tools.** ZAP, Burp Suite, Caido und Gori erhalten eine echte Routenliste zum Scannen, einschließlich Pfaden, die sie durch Crawling nie erreicht hätten.
## Was Noir tut
- **Endpoint-Extraktion.** Statische Analyse über [261 Frameworks](https://owasp-noir.github.io/noir/usage/supported/language_and_frameworks/). Liefert Endpoints, Parameter, Header, Cookies und die Quelldateien, aus denen sie stammen.
- **LLM-Fallback.** Übergib nicht unterstützte Frameworks (oder einmaliges Custom-Routing) an OpenAI / Ollama / etc., wenn statische Regeln nicht greifen.
- **Ausgabe für die nächste Stufe.** JSON, YAML, OpenAPI, SARIF, cURL, Postman, HTML — welches Format auch immer das nächste Tool in der Pipeline liest.
- **DAST-Integration.** Direkt in ZAP, Burp Suite, Caido oder Gori als Proxy-Ziel einspeisen oder OpenAPI für den Import durch diese exportieren.
- **KI-SAST-Kontext.** Das Endpoint-Inventar (und mit `--include callee` die 1-Hop-Funktionen, die jeder Handler aufruft) ist der fokussierte Kontext, den ein LLM-Auditor benötigt, um angreifer-erreichbare Bugs zu finden. `--ai-context` geht weiter und hängt aggregierten Review-Kontext pro Endpoint an — Guards, Callees, Sinks, Validatoren und Signale — sodass das LLM diese nicht erneut entdecken muss.
- **CI/CD.** GitHub Action, SARIF-Ausgabe, Exit-Codes — passt in die Pipeline, die du bereits hast.
## Verwendung
```bash
noir -h
```
Beispiel
```bash
noir scan <source_dir>
```
Wenn du es mit GitHub Action verwendest, lies bitte diese [Dokumentation](https://github.com/owasp-noir/noir/blob/main/github-action).

Für weitere Details besuchen Sie bitte unsere [Dokumentation](https://owasp-noir.github.io/noir/).
## Roadmap
Noir begann als Hilfsmittel für WhiteBox-Tests: Endpunkte aus dem Quellcode extrahieren, damit DAST sie genauer scannen kann. Die Aufgabe ist gewachsen – dasselbe Inventar versorgt inzwischen auch menschliche Prüfer und KI-SAST-Agenten. Das Ziel ist es von hier aus, alle drei Nutzergruppen gleichermaßen gut zu bedienen: Menschen, die den Code prüfen, LLMs, die ihn auditieren, und DAST-Tools, die ihn scannen.
Von hier aus:
- Sprach- und Framework-Abdeckung erweitern; die Genauigkeit mit Fixtures pro Framework ehrlich halten.
- Stärker auf LLMs setzen für die Fälle, die statische Analyse nicht erreichen kann.
- Den Prüfkontext pro Endpunkt anreichern (Guards, aufgerufene Funktionen, Sinks, Validatoren, Signale), damit menschliche Prüfer und KI-Auditoren dieselbe fokussierte Sicht auf jeden Handler teilen.
- Die DAST-Integration erstklassig halten – OpenAPI, Proxy-Ziele und direkte Übergaben an ZAP / Burp / Caido / Gori.
## OWASP-Projekt
OWASP Noir ist im **Juni 2024** der OWASP Foundation beigetreten.
- Offizielle Projektseite: [https://owasp.org/projects/noir](https://owasp.org/projects/noir)
- OWASP Nest: [https://nest.owasp.org/projects/noir](https://nest.owasp.org/projects/noir)
## Neuigkeiten & Updates
* Mai 2026: **v1.0.0** veröffentlicht – Einführung einer stabilen 1.x-Linie über alle Analyzer, Tagger, Passive-Scan und eine brandneue verbzentrierte CLI-Struktur.
* Mai 2026: Roadmap überarbeitet – Noirs Ziel ist es nun, Menschen, KI-Auditoren und DAST-Tools gleichermaßen als Nutzer desselben Endpunkt-Inventars zu dienen.
* August 2025: Vortrag beim OWASP Seoul Meetup. ([Open Source Gardening](https://owasp-noir.github.io/noir/community/media/#featured-owasp-seoul-aug-2025-open-source-gardening))
* November 2024: Gastblogbeitrag ["Powering Up DAST with ZAP and Noir"](https://www.zaproxy.org/blog/2024-11-11-powering-up-dast-with-zap-and-noir/) im ZAP-Blog veröffentlicht.
* Juni 2024: OWASP als OWASP Noir beigetreten
* GitHub-Organisation von noir-cr in owasp-noir umbenannt
* Übergang zur Co-Leitung mit [@ksg97031](https://github.com/ksg97031)
* November 2023: Das Noir-Repository in die GitHub-Organisation noir-cr verschoben.
* August 2023: Als persönliches Projekt von [@hahwul](https://github.com/hahwul) gestartet.
## Kernteam
[](https://owasp-noir.github.io/noir/resources/contact/)
## Mitwirken
Noir ist ein Open-Source-Projekt, gemacht mit ❤️.
Wenn du mitwirken möchtest, lies bitte [CONTRIBUTING.md](https://github.com/owasp-noir/noir/blob/main/.github/CONTRIBUTING.md) und reiche einen Pull Request ein.
[](https://github.com/owasp-noir/noir/graphs/contributors)
## Maskottchen
|  | Unser Maskottchen ist Hak (학), ein Kranich, der Eleganz und Präzision beim Aufspüren verborgener Schwachstellen symbolisiert. Auf Koreanisch bedeutet „학" „Kranich" und steht für einen scharfen Verbündeten, der tief eintaucht, um Schwachstellen und Angriffsflächen in deinem Code aufzudecken. <br><br> Weitere Kunstwerke und Ressourcen rund um Hak findest du im [noir-artwork-Repository](https://github.com/owasp-noir/noir-artwork).|
| -------------- | -------------- |