Erste Schritte
Voraussetzungen
Linux x86_64, macOS (Intel & Apple Silicon) oder Windows x64. Die Binärdatei ist vollständig eigenständig — keine Laufzeitumgebung, keine zu installierenden Abhängigkeiten.
Installation
Laden Sie die Binärdatei für Ihr Betriebssystem aus Ihrem Konto herunter, legen Sie sie in einen beliebigen Ordner und machen Sie sie ausführbar.
Erstes Audit
Projekt initialisieren, dann Audit ausführen. Das --init-Flag generiert eine audit.config.json mit automatisch erkannten Einstellungen.
Konfiguration
Die gesamte Konfiguration wird in audit.config.json im Projektstammverzeichnis gespeichert. Das --init-Flag generiert diese Datei mit automatisch erkannten Einstellungen. Zwei Schlüssel sind obligatorisch.audit.config.json at the root of your project. The --init flag generates this file with auto-detected settings. Two keys are mandatory.
Pflichtschlüssel
| Schlüssel | Beschreibung |
|---|---|
| languages | Array der zu scannenden Sprachen. Steuert, welche Erkennungsregeln ausgeführt werden. |
| paths.include | Array der zu scannenden Verzeichnisse (relativ zum Projektstamm). |
Beispielkonfiguration
{
"languages": ["python", "javascript", "html"],
"paths": {
"include": ["src/", "app/", "lib/"],
"exclude": ["node_modules/", "vendor/", ".venv/"]
},
"brand": {
"tool_name": "StaticCodeAudit",
"company_name": "CodeFixture",
"prefix": "SCA",
"logo": null
},
"reports": {
"output_dir": "audit-reports",
"history_dir": "audit-reports/audit-datas",
"max_history": 10,
"language": "en"
},
"categories": {
"security": { "enabled": true, "weight": 3 },
"architecture": { "enabled": true, "weight": 2 },
"ui": { "enabled": true, "weight": 1 },
"ux": { "enabled": true, "weight": 1 },
"maintenance": { "enabled": true, "weight": 1 },
"dependencies": { "enabled": false, "weight": 2 },
"cicd": { "enabled": false, "weight": 2 }
},
"retention": {
"mode": null,
"max_count": 10,
"max_days": 90
}
}
CLI-Optionen
Alle Flags sind optional. Das einzige erforderliche Argument ist der Pfad zu Ihrem Projekt.
| Flag | Beschreibung |
|---|---|
| --init | Neues Projekt initialisieren: Registrierung mit UUID und Generierung von audit.config.json. |
| --quick, -q | Schnellmodus: Tests, Fixture-Validierung und Abhängigkeitsscan überspringen. |
| --config, -c | Pfad zu einer benutzerdefinierten Konfigurationsdatei (Standard: audit.config.json im Projektstamm). |
| --output, -o | Ausgabeverzeichnis für Berichte überschreiben. |
| --project-name, -p | Im Bericht angezeigten Projektnamen überschreiben. |
| --verbose, -v | Detaillierte Konsolenausgabe mit Fortschritt aktivieren. |
| --fail-on-high | Mit Code 1 beenden, wenn ein HIGH-Schweregrad-Befund erkannt wird (nützlich für CI/CD). |
| --sarif | SARIF 2.1.0-Export zusätzlich zum HTML-Bericht generieren. |
| --sbom | CycloneDX 1.5 SBOM (Software Bill of Materials) generieren. |
| --git-blame | Autor jedes Befunds über git blame auflösen. |
| --skip-tests | Unit-Test-Ausführung überspringen. |
| --skip-deps | Abhängigkeits-Schwachstellenscan überspringen. |
| --skip-cicd | CI/CD-Pipeline-Audit überspringen. |
| --script-lang | Konsolenausgabesprache: en, fr, es, de (Standard: en). |
| --only-category | Nur eine einzelne Kategorie ausführen (z.B. --only-category security). |
| --disable-rule | Bestimmte Regeln per Schlüssel deaktivieren (wiederholbar). |
| --retention-dry-run | Vorschau welche alten Berichte gelöscht würden, ohne sie tatsächlich zu entfernen. |
| --self-test | Alle Fixtures (verwundbar + sauber) gegen Erkennungsregeln validieren. |
| --install-hook | Git Pre-Commit-Hook installieren, der das Audit automatisch ausführt. |
| --list-rules | Alle verfügbaren Erkennungsregeln auflisten und beenden. |
| --list-categories | Alle Audit-Kategorien mit ihrem Status auflisten und beenden. |
| --list-projects | Alle registrierten Projekte auflisten und beenden. |
| --debug | Debug-Level festlegen: info, detail oder trace. |
Audit-Kategorien
StaticCodeAudit organisiert seine 698 Erkennungsregeln in 7 Kategorien. Jede Kategorie hat ein Gewicht, das die Gesamtgesundheitsbewertung beeinflusst. Kategorien können in Ihrer Konfiguration aktiviert oder deaktiviert werden.
| Kategorie | Code | Gewicht | Standard | Abdeckung |
|---|---|---|---|---|
| Sicherheit | SECURITY | 3 | ✓ | SQL-Injection, XSS, SSRF, Path Traversal, Geheimnisse, LDAP, Cookies, Krypto, DSGVO |
| Architektur | ARCH | 2 | ✓ | Admin-Routen, DB in Routern, direkte Abfragen, N+1, Dateigröße |
| UI | UI | 1 | ✓ | Inline-Styles, createElement, SVG inline, Event-Listener, DOM-Schleifen |
| UX | UX | 1 | ✓ | ARIA, Alt-Text, Fokus, Autoplay, i18n, console.log, WCAG 2.1 |
| Wartung | MAINTENANCE | 1 | ✓ | TODO/FIXME, veraltete APIs (5 Sprachen), Catch-All, Debug-Anweisungen |
| Abhängigkeiten | DEPENDENCIES | 2 | Deaktiviert | CVE-Scan (pip-audit, npm audit), ungepinnte Versionen, Lizenzkonformität |
| CI/CD | CICD | 2 | Deaktiviert | GitHub Actions, GitLab CI, Expression-Injection, Berechtigungen, ungepinnte Actions |
Abhängigkeiten und CI/CD sind standardmäßig deaktiviert. Aktivieren Sie sie in audit.config.json. Das Gewicht beeinflusst die Berechnung der Gesundheitsbewertung: höheres Gewicht bedeutet stärkeren Einfluss der Kategorie.
Unterstützte Sprachen
Deklarieren Sie die in Ihrem Projekt verwendeten Sprachen über das languages-Array in audit.config.json. Jede Sprache aktiviert ihren dedizierten Satz von Erkennungsregeln.languages array in audit.config.json. Each language activates its dedicated set of detection rules.
| Sprache | Config-Wert | Dateierweiterungen |
|---|---|---|
| Python | "python" | .py |
| JavaScript / TypeScript | "javascript" | .js, .jsx, .ts, .tsx, .mjs |
| HTML / Templates | "html" | .html, .htm, .xhtml, .vue, .svelte, .ejs, .hbs, .njk, .jinja, .jinja2, .twig, .liquid, .mustache, .phtml, .erb, .jsp, .asp, .aspx, .cshtml |
| Java | "java" | .java |
| C# | "csharp" | .cs |
| PHP | "php" | .php, .inc |
| YAML | "yaml" | .yml, .yaml |
YAML-Scanning wird für CI/CD-Regeln verwendet (GitHub Actions, GitLab CI). TypeScript wird durch den Config-Wert "javascript" abgedeckt — dieselben Regeln gelten für beide.
Ausgabeformate
Jedes Audit generiert einen HTML-Bericht und eine JSON-Datendatei. Zusätzliche Formate können über CLI-Flags aktiviert werden.
HTML-Bericht
Eigenständige HTML-Datei mit CSS, JavaScript und Chart.js inline. In jedem Browser öffnen, per E-Mail teilen, als PDF drucken. Kein Server erforderlich.
SCA-REPORT-YYYY-MM-DD-HH-MM.html
JSON-Daten
Strukturierte Audit-Daten für programmatische Verarbeitung und historischen Vergleich. Enthält alle Befunde, Bewertungen, Metadaten und Statistiken.
SCA-DATA-YYYY-MM-DD-HH-MM.json
SARIF 2.1.0
--sarifOASIS-Standard für statische Analyseergebnisse. Kompatibel mit GitHub Code Scanning, GitLab SAST und Azure DevOps.
SCA-SARIF-YYYY-MM-DD-HH-MM.sarif
SBOM CycloneDX 1.5
--sbomSoftware Bill of Materials, die jede Komponente und Abhängigkeit in Ihrem Projekt auflistet. Zunehmend gefordert durch Lieferketten-Sicherheitsvorschriften.
SCA-SBOM-YYYY-MM-DD-HH-MM.json
White-Label-Branding
Passen Sie Berichte mit Ihrem eigenen Branding an — kostenlos, keine Enterprise-Lizenz erforderlich. Das gesamte Branding wird im brand-Abschnitt von audit.config.json konfiguriert.brand section of audit.config.json.
| Option | Standard | Wirkung |
|---|---|---|
| brand.tool_name | StaticCodeAudit | Wird im Berichts-Header, Fußzeile, Konsolenbanner und Seitentitel angezeigt. |
| brand.company_name | CodeFixture | Wird in der Fußzeile des Berichts angezeigt. |
| brand.prefix | SCA | Dateipräfix für Ausgabedateien (z.B. SCA-REPORT-, SCA-DATA-). |
| brand.logo | null | Pfad zu Ihrem Logo (SVG, PNG, JPG). Ersetzt das Standard-Favicon und Header-Symbol im Bericht. |
| brand.primary_color | #1e3a5f | Startfarbe des Berichts-Header-Gradienten. |
| brand.accent_color | #2c5282 | Endfarbe des Berichts-Header-Gradienten. |
"brand": {
"tool_name": "MyCompany Audit",
"company_name": "MyCompany Inc.",
"prefix": "MCA",
"logo": "assets/my-logo.svg",
"primary_color": "#1a1a2e",
"accent_color": "#16213e"
}
Berichtsfunktionen
Der HTML-Bericht ist vollständig eigenständig — eine einzelne Datei mit allen CSS, JavaScript und Diagrammen inline. Kein Server, keine externen Ressourcen.
12+ interaktive Diagramme
Schweregradverteilung, Kategorieaufschlüsselung, Zeitanalyse, historische Trends, Konfidenzniveaus und mehr. Betrieben von Chart.js (inline).
Schweregrad-Gruppierung
Befunde nach Schweregrad organisiert (CRITICAL, HIGH, MEDIUM, LOW, INFO) mit farbcodierten Badges, Dateipfaden, Zeilennummern und Code-Kontext.
Gesundheitsbewertung
Logarithmische Bewertung (0-100) basierend auf Sicherheitsbefunden, normalisiert nach Projektgröße (LOC). Schweregradstrafen: CRITICAL ×10, HIGH ×5, MEDIUM ×2, LOW ×1.
Git-Blame-Integration
Bei Aktivierung (--git-blame) zeigt jeder Befund den Committer-Namen, das Datum und den Commit-Hash für Team-Verantwortlichkeit an.
Baseline-Vergleich
Audit-Ergebnisse mit bis zu 10 vorherigen Snapshots vergleichen (konfigurierbar). Neue, gelöste und persistente Befunde im Zeitverlauf verfolgen.
Berichtsaufbewahrung
Automatische Bereinigung alter Berichte nach Anzahl, Alter in Tagen oder beidem. --retention-dry-run verwenden, um Löschungen vorzuschauen. Mindestens 1 Bericht wird immer behalten.
Berichte in 4 Sprachen
Vollständige Lokalisierung in Englisch, Französisch, Spanisch und Deutsch. Jeder String übersetzt: Regelnamen, Risiken, Lösungen, Vorteile, Diagrammbeschriftungen, Glossarbegriffe.
Integriertes Glossar
36 Akronyme und Fachbegriffe mit Tooltip-Vorschau. Jedes Vorkommen im gesamten Bericht ist ein klickbarer Link zur Glossardefinition.
Executive Summary
Dashboard am Anfang jedes Berichts: Gesundheits-Score, Schweregrad-Aufschlüsselung, Trend und Prioritätsempfehlungen in voller Breite für sofortige Übersicht.
Benutzerhandbuch in 4 Sprachen
Jede Kundenlieferung enthält USER-GUIDE.md auf Englisch, Französisch, Spanisch und Deutsch — CLI-Optionen, audit.config.json, Berichtsanpassung, Unterdrückung und CI/CD-Integration.