Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
fad-checker — Buildloses Dependency-Audit-Tool, das 10 Ökosysteme offline scannt und CVEs meldet, priorisiert nach CISA KEV und EPSS, EOL-Pakete, Lizenzen, eingecheckte Schlüssel und Binärdateien mit SBOM- und SARIF-Exporten. | Kitploit
Tools/GitHubGitHub/9pings/fad-checker
DefensivwerkzeugeStatische AnalyseSchwachstellenscannerSchwachstellenanalyseCode-AnalyseKonfigurationsprüfungDevSecOpsSecret-ErkennungLieferkettensicherheit
GitHub9pings/fad-checker

fad-checker

Buildloses Dependency-Audit-Tool, das 10 Ökosysteme offline scannt und CVEs meldet, priorisiert nach CISA KEV und EPSS, EOL-Pakete, Lizenzen, eingecheckte Schlüssel und Binärdateien mit SBOM- und SARIF-Exporten.

132vor 3 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Teilen

fad-checker

npm version npm downloads license node CI

Formidable Auditor's Dependency Checker
AKA Fuckin' Autonomous Dependency Checker

fad-checker prüft Maven · Gradle · npm · Yarn · pnpm · Composer · PyPI · NuGet · Go · Ruby, vendored JavaScript, eingecheckte native Binärdateien und kryptografisches Material (Zertifikate & private/öffentliche Schlüssel) in jedem Quellbaum; Multi-Modul, Monorepo, polyglott; und erzeugt einen eigenständigen HTML- + Word-Bericht (CVE priorisiert nach EPSS + CISA KEV, EOL, veraltet, veraltet mit Release-Datum, Lizenzen) plus -Exporte. ; es liest Lockfiles und Manifeste direkt von der Festplatte.

CycloneDX SBOM / CSAF VEX / SARIF / JSON
Keine Build-Tools, kein Docker, kein Netzwerk nötig

🌐 Projektseite & Doku →

fad-checker animierte Terminal-Demo: ein Offline-Maven-Audit — Abhängigkeiten, die nicht in Maven Central vorhanden sind, als privat/intern markiert, die 15-Schritte-Checkliste der Schwachstellendatenbank, dann Befunde nach Schweregrad eingefärbt

Funktionen

  • 10 Ökosysteme in einem Durchlauf; Maven, Gradle, npm/Yarn/pnpm, Composer, PyPI, NuGet, Go, Ruby — plus vendored JS, eingecheckte native Binärdateien (per Checksumme identifiziert) und eingebettete JARs (Fat-Jars/war/ear, im Speicher geöffnet).
  • Keine Build-Tools; Manifeste und Lockfiles werden von der Festplatte gelesen. Kein mvn/gradle/npm install/pip/dotnet restore/go build, kein node_modules/. Der Maven-Graph wird so aufgelöst, wie Maven ihn auflöst. → wie
  • CVE, zusammengeführt & priorisiert; CVEProject + OSV.dev + NVD, CPE/Version gegengeprüft, um False Positives zu reduzieren, gereiht nach CISA KEV → EPSS → CVSS.
  • Jenseits von CVEs; EOL- und nicht mehr aktiv unterstützte Frameworks, deprecated/abandoned/yanked, veraltet mit Release-Daten, SPDX-Lizenzen und private/interne Pakete — jede Koordinate, die keine konfigurierte Registry kennt, in jedem Ökosystem.
  • Krypto-Material; eingecheckte Zertifikate (Ablauf, schwacher Schlüssel, schwache Signatur, selbstsigniert), private vs. öffentliche Schlüssel über PEM/OpenSSH/PuTTY/PGP und JKS/PKCS#12-Keystores. Offline geparst, kein Netzwerk.
  • Air-gapped; null Netzwerk unter --offline, regressionstested und reproduzierbar unter unshare -rn. Bei Maven erreicht es 657/657 von OSV-Scanners Online-Ergebnis ganz ohne Netzwerkschnittstelle, gegenüber 45 / 40 / 37 bei den anderen. → Benchmark · Air-gapped
  • Supply-Chain-Risiko; bekannte bösartige Advisories (blockieren immer das CI-Gate) und vermutete Typosquats (--typosquat).
  • Audit-tauglich; jeder Bericht trägt ein Provenienz-Manifest und ein Kapitel Methodik & Einschränkungen; Artefakte liefern SHA256SUMS mit; differenzielle Audits vergleichen gegen einen vorherigen Lauf (--baseline) und CI kann nur auf neue Befunde gaten.
  • Eine --help, die auf einen Bildschirm passt; der lange Rattenschwanz an Schaltern faltet sich in vier Flags — -d eol,nvd schaltet Dinge ab, -a licenses,snyk schaltet ein, was standardmäßig aus ist, -r html,json wählt die Ausgaben, -o sagt wo. Die einzelnen Flags funktionieren weiterhin und --help-all listet sie auf.
  • Berichte auf Englisch oder Französisch (--lang fr)
  • Ausgaben & CI; HTML + Findings-JSON standardmäßig (Word .doc bei --report-doc), CycloneDX 1.6 SBOM, CSAF 2.0 VEX, SARIF 2.1.0, JSON; Gate mit --fail-on, Triage mit --ignore/--vex. Private Registries für jedes Ökosystem.

📖 Nutzung & alle Flags · Architektur · Vergleich mit anderen Tools · Datenquellen

Warum fad-checker für Code-Audits verwenden?

Was es für ein Audit leistet, was die anderen nicht tun. Gleicher Spaltensatz und gleiche Sorgfalt bei der Quellenangabe wie docs/COMPARISON.md — ⚠️ bedeutet teilweise und sagt wie, Zellen sollen überprüfbar sein.

Was ein Auditor tatsächlich tun mussfadOSVTrivyGrype+SyftOWASP DCSnyk
Ein 100-Modul-polyglottes Monorepo mit einem Befehl auditieren, ohne installierte Toolchain ¹✅ 105 Module⚠️ Reactor übersprungen⚠️ braucht ~/.m2⚠️ Opt-in⚠️ Java-Build⚠️ mvn-Build
Offline / air-gapped scannen, ohne transitive Abhängigkeiten zu verlieren ²✅ 657/657❌⚠️ ~/.m2⚠️ Opt-in⚠️ Mirror❌
Die privaten/internen Abhängigkeiten in einem großen Projekt identifizieren ³✅❌❌❌❌❌
Bereinigte Abhängigkeitsdeskriptoren in ein externes Verzeichnis extrahieren ⁴✅ -t❌❌❌❌❌
EOL / deprecated Frameworks & Abhängigkeiten berichten, transitive eingeschlossen ⁵✅⚠️ nur deprecated⚠️ nur OS-Distros❌❌⚠️ nur Web-UI
Eingecheckte Schlüssel & Zertifikate berichten ⁶✅❌⚠️ Key-Regel❌❌❌
Eingecheckte Binärdateien erkennen (.dll, .exe, …) und sie gegen ihre Checksummen prüfen ⁷✅❌⚠️ einige⚠️ Muster❌❌

¹ Kein mvn/go/npm/pip/dotnet — Manifeste von der Festplatte geparst, nichts installiert oder ausgeführt. 105 × pom.xml in einem Durchlauf: 790 Paare gegenüber OSV-Scanners 657, 133 nur bei fad, Versionen pro Modul vermittelt statt flachgeklopft.

² 657 von 657 von OSV-Scanners Online-Maven-Ergebnis, unter unshare -rn — keine Netzwerkschnittstelle. Tripwire-getestet; nur öffentliche Koordinaten verlassen jemals die Enklave.

³ Kapitel 0 benennt jede Koordinate, für die jede konfigurierte Registry 404 zurückgab — Maven, npm, PyPI, NuGet, Composer, Go und RubyGems — mit dem/den Manifest(en), die sie deklarieren. Eine Registry, die ein Timeout hatte oder einen Fehler lieferte, wird nie gezählt: eine unschlüssige Antwort würde sonst einen Kunden beschuldigen, interne Pakete auszuliefern, weil dessen Proxy instabil war. -e <regex> schließt sie dann aus.

⁴ -t <dir>: normalisierte POMs plus jedes gespiegelte Nicht-Maven-Lockfile, private Koordinaten entfernt. Archivierbar und von allem scannbar — --snyk eingeschlossen.

⁵ endoflife.date, aufgeteilt in direkt vs. transitiv, damit du weißt, welche Abhängigkeit zu bumpen ist, plus deprecated / abandoned / yanked und veraltet. Trivy deckt nur OS-Distros ab; Snyks Package Health ist nur im Web.

⁶ Inventar und Urteile: Ablauf, RSA<2048, MD5/SHA1, selbstsigniert; private vs. öffentliche Schlüssel; JKS/PKCS#12. Offline-Parser. Trivys Secret-Regel findet die Datei, nicht den Mangel.

⁷ Identifiziert per Hash über deps.dev + CIRCL → should-be-declared / name≠checksum / unknown / malicious. Syfts Muster benennen eine Version, keine Identität.

⁸ Kapitel 0 markiert, was dieser Scan nicht erreichen konnte (fehlende Lockfiles, BOM-only-Versionen, Yarn Berry, nicht bestimmbare PHP-Runtime); Kapitel 6.3 legt dar, was das Tool nie bewertet. Anderswo ist das Erste eine Log-Zeile, die das Audit nie sieht, das Zweite wird nicht niedergeschrieben.

⁹ Provenienz-Manifest: Tool, Runtime, Modus, Laufkonfiguration und Cache-Frische für alle 13 Quellen. Grype und Dependency-Check tragen das Datum einer Quelle, nicht des Laufs.

¹⁰ Kapitel 0→6 mit einer Executive Summary und Fix-Rezepten, eigenständiges HTML plus ein Word-.doc-Zwilling. Keines der anderen gibt Word aus.

¹¹ Vier Inline-SVG-Diagramme — CWE nach schlimmstem Schweregrad, verwundbare Transitive pro Root-Abhängigkeit, deine verwundbarsten Module (direkt vs. transitiv in einem Ein-Modul-Projekt), Fix-Prioritätsbänder — auch im .doc gerendert, mit Ein-Klick-Kopie als PNG (oder einer Tabelle als Rich-HTML), die formatiert in Word eingefügt wird. Jede CVE behält ihren CVSS-Vektor, CWE, Referenzen, CPE-Konfiguration und via-Pfad hinter einem Drill-down, ganz ohne externe Assets.

¹² --baseline fügt ein Δ-Kapitel hinzu (neu / behoben / unverändert); --fail-on-new gated nur auf neue Befunde. Snyk verfolgt dies auf seiner Plattform, nicht als lokalen Diff.

Wo es verliert — Container/OS-Pakete, Auto-Fix-PRs und CVE-Abdeckung gegenüber Snyks kuratiertem Feed → docs/COMPARISON.md · die Lücke, gemessen.

Bewusst kein Ziel: Erreichbarkeit. Ein Befund ist eine verwundbare Version im Abhängigkeitsgraphen, und der Bericht sagt genau das (Kap. 6.3), statt Aufrufpfade zu erraten. Zu entscheiden, ob der verwundbare Code in dieser Anwendung erreichbar ist, ist Sache des Auditors, getroffen mit Anwendungskontext, den kein Scanner hat.

[!WARNING] fad-checker ist neu und kann noch (seltene) Bugs enthalten. Behandle seine Ausgabe als starken ersten Durchlauf, prüfe alles Kritische doppelt und melde bitte Probleme; sie werden schnell behoben.

Schnellstart```bash

npm install -g fad-checker fad-checker -s ./my-project # → ./fad-checker-report/cve-report.html

root@kitploit:~
Ein kostenloser [NVD-API-Schlüssel](https://nvd.nist.gov/developers/request-an-api-key) (sofort) ermöglicht eine 10× schnellere Anreicherung: `fad-checker --set-nvd-key YOUR_KEY`. Ein paar gängige Aufrufe; die vollständige Liste über `fad-checker --help` oder [docs/USAGE.md](https://github.com/9pings/fad-checker/blob/main/docs/USAGE.md):```bash
fad-checker -s ./proj -e "^com\.acme\."                        # exclude private libs (coord regex)
fad-checker -s ./proj -t ../clean -e "^com\.acme\."            # extract only: normalised descriptors, private modules flagged
fad-checker -s ./proj -t ../clean -e "^com\.acme\." -a snyk   # same extraction + scan + merge Snyk
fad-checker -s ./proj --offline                                # fully offline (zero network, needs a warmed cache)
fad-checker -s ./proj -a osv-db,typosquat                      # offline-complete OSV + typosquat
fad-checker -s ./proj -a licenses --fail-on high               # license chapter + CI gate
fad-checker -s ./proj --report-json --baseline last.json --fail-on-new   # differential audit: fail CI on NEW findings
fad-checker diff last.json this.json                           # standalone diff of two findings JSONs

Was -t <dir> tatsächlich macht. Es ist ein Extraktionsschritt, kein Snyk-Adapter. Er schreibt einen parallelen Baum aus normalisierten Abhängigkeitsdeskriptoren: jede pom.xml reduziert auf die abhängigkeitsrelevanten Knoten (Koordinaten, properties, dependencyManagement, dependencies, modules), Reactor-Parents neu verdrahtet auf ihren echten relativePath im Baum, ${…} in Koordinaten aufgelöst — plus jede Nicht-Maven-Lockfile/Manifest gespiegelt am selben relativen Pfad (package-lock/yarn.lock/pnpm-lock, composer.lock, poetry/Pipfile/uv/pdm, *.csproj/packages.lock.json, go.mod/go.sum, Gemfile.lock und Begleiter wie Directory.Packages.props oder nuget.config). Online sondiert er außerdem jede Koordinate gegen die konfigurierten Maven-Repositories und meldet diejenigen, die dort nicht existieren — deine privaten/internen Module —, die -e <regex> dann aus den umgeschriebenen POMs entfernt. Dann stoppt er: kein CVE/EOL-Durchlauf und kein Report, es sei denn, du übergibst zusätzlich --snyk, ein --report-<type>, --fail-on* oder --baseline. Was du bekommst, ist ein buildfreies, bereinigtes Abhängigkeitsinventar, das du als Audit-Nachweis archivieren, einem Kunden oder einer rechtlichen Prüfung übergeben oder auf jeden Scanner richten kannst — Snyk via --snyk ist einer davon.

[!IMPORTANT] --offline liest den Cache, ersetzt ihn nicht. Bei einem kalten Cache gibt es nichts zum Abgleichen, also meldet ein erster Offline-Lauf legitim 0 CVE / 0 EOL / 0 veraltet; das ist ein leerer Cache, kein sauberes Projekt. Wärme ihn einmal auf (ein normaler Online-Lauf auf irgendeinem Projekt, oder --import-cache), dann liefert --offline das vollständige Ergebnis mit null Netzwerkaufrufen. Air-gapped Maschinen bekommen ihren Cache über --export-cache / --import-cache.

Ein einzelnes eigenständiges Binary (kein Node), Installation aus dem Quellcode und Shell-Completion findest du in → docs/USAGE.md.

Was er findet

Der Report ist in Wurzelkapitel organisiert (jedes gruppiert verwandte Unterkapitel):

KapitelQuelleWas er erkennt
0. Warnungen (oben)lokale HeuristikenFehlende Lockfiles, unaufgelöste Maven-Versionen (BOM-verwaltet), private Libs nicht auf Maven Central
Δ. Änderungen seit Baseline (oben, mit --baseline)Diff vs. vorheriges JSONNeue / behobene / unveränderte Befunde pro Kategorie + die Liste der neuen Produktions-CVEs; für wiederkehrende Audits und --fail-on-new CI-Gating
1. CVE (X direkt, Y indirekt, Z dev)CVEProject + OSV.dev + NVD + CPE1.1 Produktion; öffentliche CVE / GHSA in Prod-Abhängigkeiten, pro Ökosystem, pro Manifest, priorisiert nach CISA KEV + EPSS + CVSS · 1.2 Vendored JS-Schwachstellen (retire.js) · 1.3 Dev (test/provided, dev/optional/peer) · 1.4 Wahrscheinliche False Positives (CPE-gefiltert)
2. Unmanaged / unversioned componentsdeps.dev + CIRCL (per Checksum), retire.js, eingebautes X.5092.1 Embedded binaries; CVEs in Libs, die in committeten .jar/.war/.ear ausgeliefert werden (Fat-Jars, Shaded Uber-Jars) · 2.2 Native binaries (.dll/.exe/.so/.dylib) per Hash identifiziert, markiert als should-be-managed / Name≠Checksum / unbekannt / bösartig · 2.3 Vendored JavaScript-Inventar (jQuery, Bootstrap, …) verwundbar oder nicht · 2.4 Zertifikate & Schlüsselmaterial; committete Zertifikate (Ablauf / schwacher Schlüssel / schwache Signatur / selbstsigniert), private vs. öffentliche Schlüssel (PEM/OpenSSH/PuTTY/PGP/SSH) und Keystores, alles offline geparst
3. Wartung / Lebenszyklus (X EOL, Y obsolet, Z veraltet)endoflife.date · kuratiert + Registry-Flags · Maven Central / npm / Packagist / PyPI / NuGet3.1 End-of-Life-Frameworks (+ ein Band „Out of active support" mit --eol-support; Symfony/Laravel gruppiert als eine Zeile pro Framework; PHP-Runtime, wenn die Composer-Constraint es beweist), aufgeteilt in (deklariert / vom Parent-POM geerbt — diese anheben) vs. (die Abhängigkeit anheben, die sie hereinzieht) · · (neuere Version verfügbar, mit Release-Daten; nur direkte Abhängigkeiten)

Der HTML-Report öffnet sich in jedem Browser, enthält jedes Detail (CVSS-Vektoren, Referenzen, vollständige Beschreibungen, CPE-Konfigurationen, Via-Pfade für Transitive) und liefert einen Word-kompatiblen .doc-Zwilling mit. Jeder Treffer trägt eine zusammengesetzte Priorität (KEV-ausgenutzt > EPSS-Wahrscheinlichkeit > CVSS-Schweregrad), und der Lauf kann zusätzlich eine CycloneDX 1.6 SBOM (--report-sbom, Schwachstellen inline) und eine CSAF 2.0 VEX (--report-csaf) für nachgelagerte Tooling ausgeben.

fad-checker HTML report; executive summary with severity tiles and a detailed CVE table with CWE, descriptions and fix versions

Abdeckung, ehrlich: die Paare, die Snyk meldet und fad-checker nicht

Kein Tool findet alles. fad-checker führt bei 87 % einer Union aus 908 Paaren, und 131 Paare kamen von Snyk zurück und nicht von ihm. Einzeln gegen OSV adjudiziert, ist keines ein Recall-Bug:

Urteil
57falsches Artefakt — der Advisory bindet eine andere Koordinate
31außerhalb des Bereichs — die Version liegt außerhalb jedes deklarierten betroffenen Bereichs
23nicht in OSV — 19 proprietäre SNYK-*-IDs, 4, die nur NVD führt
19keine Maven-Bindung — der Advisory bindet überhaupt kein Maven-Paket
1bereits gemeldet, unter dem CVE-Alias
0bestätigter Fehlschlag

Zwei Drittel widersprechen dem öffentlichen Record, sie zu melden hieße also, False Positives auszuliefern. CVE-2023-6481 ist das saubere Beispiel: beansprucht für [email protected], bindet es logback-core bei [1.2.12, 1.2.13) — falsches Artefakt, und eine Version, die veröffentlicht wurde, bevor der Fehler existierte.

Scope. Alle 131 sind von Snyk: OSV-Scanner, Trivy und Grype+Syft trugen jeweils 0 Befunde bei, die niemand sonst hatte. Und alle liegen auf dem Maven-Ziel — außerhalb von Maven liegt der Graph in der Lockfile, jeder Scanner liest dieselbe Eingabe, und der Benchmark misst identische Befundmengen auf npm, RubyGems und Composer.

Deshalb gibt es --snyk. fad-checker nimmt die Ausgabe von snyk test als Eingabe und merged sie, sodass du die Union bekommst, statt eine Seite zu wählen. Eine Abdeckungsentscheidung, keine Korrektur.

Methode, Caveats und die Urteile pro Paar → docs/BENCHMARK.md; reproduzierbar mit scripts/adjudicate-gap.js.

Air-gapped Audits

Zero-data-sent-Garantie. Unter --offline macht fad-checker überhaupt keine Netzwerkaufrufe; er liest nur die aufgewärmten ~/.fad-checker/-Caches und überträgt niemals eine Abhängigkeit, einen Pfad oder einen Befund von der Maschine. Es ist regression-getestet (test/offline-guarantee.test.js, ein Tripwire-Fetcher, der wirft, wenn er berührt wird) und auditor-reproduzierbar: unshare -rn node fad-checker.js -s ./proj --offline … führt ihn in einem Namespace mit keiner Netzwerkschnittstelle aus und liefert byte-identische Befunde. Anders als die gängigen OSS-Scanner löst fad auch den Maven-transitiven Graphen offline auf; auf einem air-gapped Multi-Modul-Projekt findet er also die transitiven CVEs, die sie nicht finden können.

Wenn das auditierte System offline / vertraulich ist (typisch für ein reguliertes oder air-gapped Audit), kann es OSV / NVD / Maven Central / npm nicht erreichen. Teile die Arbeit über Maschinen auf, während null Umgebungsinformationen die sichere Enklave verlassen: ein anonymisierter Deskriptor trägt nur öffentliche Paketkoordinaten; keine Dateisystempfade, keine Registry-URLs, keine Hostnamen/Benutzernamen; und der detaillierte Report wird zurück auf der Offline-Maschine erzeugt.

Der Transfer beruht auf einer Eigenschaft der fad-checker-Caches: Sie sind nach Koordinate oder Vuln-ID geschlüsselt, niemals nach Pfad, sind also maschinenunabhängig. Der Online-Schritt wärmt nur die Caches auf; der Offline-Schritt spielt den Scan erneut ab und bekommt Cache-Hits.```bash

── Phase 1; OFFLINE (audited machine): export the anonymized descriptor ──

Exclude private/internal packages with -e (offline we can't tell private from public).

fad-checker -s ./proj -e "^(client|internal)." --export-anonymized deps.json

→ deps.json: public coordinates only. Review it before it leaves the enclave.

── Phase 2; ONLINE (any machine, no source needed): warm the caches ──

fad-checker --import-anonymized deps.json # scans coordinates → OSV/NVD/CVE/registry/EOL + retire signatures fad-checker --export-cache fad-cache.tar.gz # bundle the warmed ~/.fad-checker/

── Phase 3; OFFLINE (audited machine): full report, all local context ──

fad-checker --import-cache fad-cache.tar.gz # merged into the enclave's own cache fad-checker -s ./proj --offline # re-collect locally (real paths) + cache hits

→ full HTML/.doc report with manifests & structure, generated inside the enclave.

root@kitploit:~
Was der Deskriptor (`fad-deps/1`) enthält vs. verwirft:

| Behalten (zum Scannen nötig) | Verworfen (Umgebung) |
| --- | --- |
| ecosystem, ecosystemType | Manifest-Pfade / pom-Pfade |
| namespace, name | aufgelöste Registry-URLs |
| version, versions | Integritäts-Hashes |
| scope, isDev | Parent-Ketten, Lockfile-Typ |

Der Online-Phasenbericht ist selbst pfadfrei; Befunde zu vendored JavaScript (retire.js) werden
**offline in Phase 3** erzeugt, da retire die tatsächlichen `.js`-Dateien benötigt; seine Signatur-
DB wird online vorgewärmt (Phase 2) und über `--export-cache` mitgeführt. Vollständige Offline-/Cache-Steuerung →
[`docs/USAGE.md`](https://github.com/9pings/fad-checker/blob/main/docs/USAGE.md).

## Docs

- [`docs/USAGE.md`](https://github.com/9pings/fad-checker/blob/main/docs/USAGE.md); jedes Flag und jeder Workflow: Offline-/Cache-Steuerung, private Registries, Konfigurationsdateien, Rezepte, Safety Rails.
- [`docs/ARCHITECTURE.md`](https://github.com/9pings/fad-checker/blob/main/docs/ARCHITECTURE.md); Interna: Codecs, Collection, Matching, Report-Pipeline.
- [`docs/COMPARISON.md`](https://github.com/9pings/fad-checker/blob/main/docs/COMPARISON.md); vs. OSV-Scanner / Trivy / Grype / OWASP DC / Snyk, und wie es build-frei bleibt.
- [`docs/BENCHMARK.md`](https://github.com/9pings/fad-checker/blob/main/docs/BENCHMARK.md) — reproduzierbarer Air-Gapped-Recall-Benchmark vs. OSV-Scanner auf einem öffentlichen 105-Modul-Projekt.
- [`docs/DATA-SOURCES.md`](https://github.com/9pings/fad-checker/blob/main/docs/DATA-SOURCES.md); die öffentlichen Datensätze, die fad-checker verwendet + ihre Lizenzen.
- [`docs/SPEC-audit-pro.md`](https://github.com/9pings/fad-checker/blob/main/docs/SPEC-audit-pro.md); die Audit-Grade-Features (Provenienz, differenzieller Audit, Methodik/Integrität) und warum jedes so gebaut wurde.
- [`CHANGELOG.md`](https://github.com/9pings/fad-checker/blob/main/CHANGELOG.md) · [`CLAUDE.md`](https://github.com/9pings/fad-checker/blob/main/CLAUDE.md); Release-Historie · Code-Level-Orientierung für Contributors.

## Contributing

Der nützlichste Beitrag zu einem jungen Scanner ist **ihm zu sagen, wo er falsch liegt**: führe ihn auf einem
echten Projekt aus und reiche einen [False-Positive-/False-Negative-Bericht](https://github.com/9pings/fad-checker/issues/new?template=false_positive.yml)
mit der Koordinate und dem Manifest-Snippet ein, das ihn erzeugt hat. Dev-Setup, Grundregeln und der
Codec-Erweiterungspunkt → [`CONTRIBUTING.md`](https://github.com/9pings/fad-checker/blob/main/CONTRIBUTING.md). Schwachstellen in fad-checker
selbst → [`SECURITY.md`](https://github.com/9pings/fad-checker/blob/main/SECURITY.md) (bitte privat melden).

**Zur KI-Unterstützung:** Diese Codebasis wird unter starker Nutzung von Claude Code geschrieben; [`CLAUDE.md`](https://github.com/9pings/fad-checker/blob/main/CLAUDE.md)
im Repo-Root ist genau das, wonach es aussieht. Der Maßstab, an dem sie gemessen wird, ist der, den du selbst
überprüfen kannst: **847 Tests** (`npm test`), die Zero-Network-Garantie, die durch einen Tripwire-Test erzwungen und
unter `unshare -rn` reproduzierbar ist, und Coverage-Zahlen, die gegen eine Snyk-Baseline gemessen statt
behauptet werden. `fad-checker` selbst verwendet **zur Laufzeit kein LLM**; Befunde stammen aus öffentlichen
Schwachstellen-Datenbanken und deterministischen Parsern, und es wird kein Berichtstext generiert. Vollständige
Erklärung, einschließlich wo das Review tatsächlich einen schlechten Befund erwischt hat →
[`AI_POLICY.md`](https://github.com/9pings/fad-checker/blob/main/AI_POLICY.md). Wo der Code diesen Maßstab nicht erfüllt, ist das ein Bug-Report, den ich will.

## License

MIT; siehe [`LICENSE`](https://github.com/9pings/fad-checker/blob/main/LICENSE).
Tool herunterladen
Klar auflisten, was nicht gescannt wurde — bevor der Kunde fragt ⁸✅ Kap. 0 + 6.3⚠️ Log⚠️ Log⚠️ Log⚠️ Log⚠️ Log
Sechs Monate später beantworten: „gegen welche Daten?“ ⁹✅❌❌⚠️ DB-Datum⚠️ NVD-Datum❌
Einen Bericht senden, keinen JSON-Dump ¹⁰✅ HTML + .doc⚠️ HTML-Liste⚠️ Template❌⚠️ HTML-Liste⚠️ snyk-to-html
Diagramme, Drill-down pro CVE und eine einfügbare Word-Kopie ¹¹✅❌❌❌❌❌
Delta-Berichte erstellen, die nur Änderungen zeigen ¹²✅ --baseline❌❌❌❌⚠️ Cloud
direkt
transitiv
3.2 Obsolet / deprecated / abandoned / yanked
3.3 Veraltet
4. Lizenzen (Opt-in: --licenses)Registry-Metadaten + Maven-POMs → SPDX-RichtlinieDie Lizenz jeder Abhängigkeit normalisiert auf SPDX und klassifiziert; Copyleft (GPL/AGPL/LGPL/MPL), proprietär und unbekannt zur Prüfung markiert
5. Fix-EmpfehlungenberechnetPin-Rezepte pro Ökosystem: Maven <dependencyManagement>, Gradle constraints { }, npm overrides, yarn resolutions, composer require, pip install, dotnet add package
6. Scan-Kontext & EinschränkungenProvenienz-Manifest + Walk6.1 Gescannte Deskriptoren (jedes geparste Manifest) · 6.2 Ignorierte Verzeichnisse (ausgeschlossene Pfade + Regel) · 6.3 Methodik, Datenquellen & Einschränkungen (Aktualität der Datenquellen, Lauf-Konfiguration, ausdrückliche Erklärung, was fad-checker nicht bewertet)
Supply-Chain-Risiko (querschnittlich)OSV MAL-… + NamensheuristikBekannt bösartige Pakete (blockieren immer das CI-Gate, jede --fail-on-Stufe) und vermutete Typosquats (--typosquat: ein npm/PyPI-Name mit einer Editierdistanz von 1 zu einem populären Paket; lodahs↔lodash)