Das DevSecOps-Arsenal: Vom Anfänger zum Experten
Lassen Sie uns ehrlich sein: Das Ausführen von trivy image ist kein DevSecOps. Es ist nur Lärmerzeugung.
Echte Sicherheitsingenieurskunst dreht sich um das Signal-Rausch-Verhältnis. Es geht darum, eine Pipeline zu bauen, die Ihre Entwickler respektieren, nicht eine, die sie umgehen. Dieser Leitfaden bietet die “produktionsreife” Konfigurationen für 17 Industriestandard-Tools, um Schwachstellen zu stoppen, ohne das Geschäft zu stoppen.
Phase 1: Vor dem Commit & Lokal (Shift Left oder geh nach Hause)
Probleme im CI zu erkennen, ist bereits zu spät. Sie haben gerade Rechenressourcen verschwendet und die Zeit eines Entwicklers für den Kontextwechsel. Erkennen Sie es auf ihrem Laptop.
1. Gitleaks (Der Geheimnishüter)
Seien Sie nicht das Unternehmen, das AWS-Schlüssel auf GitHub leakt.
Die meisten Leute führen Gitleaks blind aus. Die Profis verwenden Baselines.
--baseline-path: Das goldene Ticket. Führen Sie einen frischen Scan durch, speichern Sie die Ausgabe. Jetzt alarmiert Gitleaks NUR bei neuen Geheimnissen.--redact: Maskieren Sie entdeckte Geheimnisse in den Ausgabelogdateien (Prozentsatz 0-100). Niemals doppelt leaken.--enable-rule: Konzentrieren Sie sich auf bestimmte Geheimnistypen (z.B. nur AWS-Schlüssel) nach ID.--follow-symlinks: Lassen Sie keine Geheimnisse hinter Symlinks verstecken.--ignore-gitleaks-allow: Verhindern Sie die Verwendung von Inline-”Skip”-Kommentaren. Erzwingen Sie die Regeln.--max-target-megabytes: Vermeiden Sie das Scannen massiver Binärblobs.
2. Trufflehog (Der Verifizierer)
Einen String zu finden, der wie ein Schlüssel aussieht, ist eine Sache. Zu überprüfen, ob er funktioniert, ist eine andere.
Trufflehog zeichnet sich dadurch aus, dass es Anmeldedaten beim Anbieter verifiziert.
--no-verification: Schnellere Modus. Überspringt den “Live-Check”, wenn Sie nur eine statische Analyse wünschen.--results: Filtert die Ausgabe nachverified(die echte Gefahr) oderunknown.--filter-entropy: Findet hoch-entropy Strings (wahrscheinlich Passwörter) auch ohne Regex-Treffer. Beginnen Sie mit 3.0.--detector-timeout: Begrenzen Sie die Ausführungszeit pro Detektor, um CI-Hänger zu vermeiden.--archive-max-depth: Vermeiden Sie das Steckenbleiben in verschachtelten Zip-Bomben.
3. Opengrep (Schnelle Statische Analyse)
Grep ist tot. Es lebe die strukturelle Suche.
Semgrep-kompatible Engine zum Auffinden von Fehlern mit Code-Mustern, nicht nur Strings.
--baseline-commit: Entscheidend. Scannt nur Code, der seit einem bestimmten Commit geändert wurde (Delta-Scanning).--config: Laden Sie benutzerdefinierte Regeln aus YAML-Limits oder dem Registry.--dataflow-traces: Zeigt den vollständigen Pfad, wie Daten von der Quelle zum Ziel gelangen.--exclude-minified-files: Überspringt.min.jsund andere dichte, nicht menschenlesbare Dateien.--strict: Bricht den Build ab, wenn die Konfiguration ungültig ist oder WARN-Level-Fehler auftreten.
4. Bandit (Python Sicherheit)
Der Standard für Python AST-Analyse.
-t/--tests: Führen Sie NUR spezifische Test-IDs aus (Allowlist).-s/--skips: Überspringen Sie spezifische Test-IDs (Denylist).--severity-level: Zeigt nur Ergebnisse >=low,mediumoderhighan.--confidence-level: Filtert “Vermutungen” heraus—zeigt nur Ergebnisse mit hoher Sicherheit an.--ignore-nosec: Sehen Sie, was Entwickler versuchen zu umgehen, indem sie# nosecverwenden.
5. Dustilock (Abhängigkeitsverwirrung)
Verhindern Sie, dass ein Angreifer ein bösartiges privates Paket injiziert.
-a: Nur Audit. Überprüfen Sie, ob Sie anfällig für Paketnamen-Hijacking sind, ohne die Pipeline zu stoppen.
6. Hadolint (Docker-Intelligenz)
Ihre Dockerfile ist schlecht. Hadolint weiß warum.
--trusted-registry: Lieferkettensicherheit. Erlauben Sie nur Bilder voninternal.ecr.aws.--strict-labels: Erzwingen Sie Metadatenstandards (z.B.maintainer,cost-center).--ignore: Regeln, die nicht auf Ihren Build zutreffen, stummschalten.--error/--warning: Regel-Schwierigkeiten umdefinieren, um Ihrer Richtlinie zu entsprechen.--require-label: Erzwingen Sie spezifische Labelformate (Regex).
7. TFLint (Terraform-Logik)
terraform validate ist eine Syntaxprüfung. TFLint ist eine Logikprüfung.
--enable-plugin: Laden Sie anbieter-spezifische Regeln (z.B. AWS, Azure), um gegen API-Spezifikationen zu prüfen.--minimum-failure-severity: Kontrollieren Sie die Build-Abbruch-Schwelle (Fehler, Warnung, Hinweis).--call-module-type: Scannen Sieall,localodernoneModule.--var-file: Variablen injizieren, um bedingte Logik genau zu bewerten.
Phase 2: Die CI-Torwächter (Vertrauen, aber verifizieren)
Dies ist der Kriegsraum. Tiefenanalyse während des Build-Prozesses.
8. Trivy (Der Schwergewichtler)
Das Schweizer Taschenmesser.
--ignore-unfixed: Verpflichtend. Wenn es keinen Patch gibt, den Build nicht fehlschlagen lassen. Überwachen Sie es.--ignore-status: Filtert Schwachstellen mit bestimmten Status aus.--pkg-types: Konzentriert Scans aufos-Pakete oderlibrary-Abhängigkeiten.--offline-scan: Führen Sie in luftdicht abgeschotteten Umgebungen aus.--include-dev-deps: Ignorieren SiedevDependenciesnicht – sie können die Build-Umgebung dennoch gefährden.--list-all-pkgs: Alles ausgeben. Wesentlich für die Erstellung eines vollständigen SBOM.
9. Syft (Der SBOM-Generator)
Sie können nicht sichern, was Sie nicht wissen, dass Sie es haben.
--enrich: Fügen Sie Online-Metadaten für einen reichhaltigeren Nutzungskontext hinzu (Golang, Java, etc.).-s/--scope: Scannen Sie alle Schichten (all-layers) oder nur das endgültige Image (squashed).--select-catalogers: Zielgerichtete spezifische Paketmanager (npm, pip, apk).--platform: Zielgerichtete spezifische Architekturen (z.B.arm64).
10. Grype (Der SBOM-Scanner)
Nimmt den Staffelstab von Syft.
-f/--fail-on: Brechen Sie den Build ab, wenn die Schwere >=medium,high, etc. ist.--only-fixed: Berichten Sie nur über Schwachstellen, die umsetzbar sind.--by-cve: Organisieren Sie die Ausgabe nach CVE-ID zur Nachverfolgung.--ignore-states: Ignorieren Sie generische “wontfix”- oder “not-affected”-Status.
11. Checkov (IaC-Governance)
Verhindern Sie Cloud-Fehlkonfigurationen, bevor sie Sie Geld kosten.
-s/--soft-fail: Warnen, aber nicht abbrechen. Am besten für den “Beobachtungsmodus” geeignet.--check/--skip-check: Bestimmte Prüfungen auf die weiße oder schwarze Liste setzen (CKV_AWS_1).--skip-framework: Ganze Frameworks ignorieren (z.B. Terraform scannen, aber CloudFormation überspringen).--enable-secret-scan-all-files: Geheimnisscans über die Standardkonfigurationsdateien hinaus erweitern.--block-list-secret-scan: Bestimmte Dateien vom Geheimnisscanner ausschließen.
12. KICS (Keeping IaC Secure)
Die Alternative für umfassende IaC-Abdeckung.
--exclude-queries: Lärm reduzieren, indem bestimmte Abfrage-IDs herausgefiltert werden.--exclude-categories: Ergebnisse nach Sicherheitsdomäne filtern.--fail-on: Definieren, welche Schweregrade einen Nicht-Null-Exit-Code zurückgeben.--minimal-ui: Vereinfachte CLI-Ausgabe für sauberere Protokolle.--disable-secrets: Internes Geheimnisscannen deaktivieren (stattdessen Gitleaks verwenden).
13. Terrascan (Policy-as-Code)
Spezialisiert auf Multi-Cloud-Policy-Durchsetzung.
-i/--iac-type: Optimieren durch Angabe der Plattform (k8s, helm, terraform).-t/--policy-type: Richtlinien nach Anbieter filtern (aws, azure, gcp).--severity: Das minimale Schweregradniveau definieren, das gemeldet werden soll.--non-recursive: Nur das aktuelle Verzeichnis scannen.
14. OWASP Dependency-Check (Legacy & Compliance)
Der Schwerarbeiter für Java und .NET SCA.
--failOnCVSS: Bricht den Build ab, wenn eine Bibliothek einen CVSS-Score überschreitet (z.B. 7.0).--suppression: Verwenden Sie eine XML-Datei, um bekannte sichere Schwachstellen zu “stummzuschalten” (VEX-lite).--enableExperimental: Verwenden Sie neue Analysatoren für weniger verbreitete Sprachen.
15. DevSkim (Polyglot Hygiene)
Entwicklerzentrierte IDE- und CI-Überprüfungen.
--rule-ids: Beschränken Sie die Analyse auf spezifische Regeln.--ignore-globs: Verwenden Sie Standard-Glob-Muster, um störende Dateien zu überspringen.--skip-git-ignored-files: Automatische Synchronisation mit.gitignore.--skip-excerpts: Halten Sie Berichte klein, indem Sie Codebeispiele entfernen.
Phase 3: Laufzeit & Artefakte (Die letzte Linie)
Scannen des endgültigen Artefakts oder der Live-Umgebung.
16. Clamscan (Malware-Abwehr)
Weil manchmal Leute Viren in Ihren S3-Bucket hochladen.
--exclude/--exclude-dir: Überspringen Sie Datei-/Verzeichnismuster, um Zeit zu sparen.--detect-pua: Suchen Sie nach “Potentiell unerwünschten Anwendungen” (Adware, Miner).--detect-structured: Scannen Sie nach Mustern sensibler Daten wie Kreditkarten/SSNs.--scan-pdf/--scan-html: Aktivieren Sie die Tiefeninspektion für Dokumenttypen.--cross-fs: Erlauben Sie das Scannen über verschiedene Dateisysteme hinweg (mit Vorsicht verwenden).
17. Nuclei (Das Hacker-Messer)
Vorlagenbasiertes Scannen, das sich illegal anfühlt.
-t/--templates: Bestimmte Vorlagendateien oder Verzeichnisse ausführen.-tags: Scans basierend auf Technologie (z.B.wordpress,cve) anvisieren.-s/--severity: Vorlagen nach Einflussstufe filtern.-fr/--follow-redirects: HTTP 301/302-Weiterleitungen folgen, um die Nutzlast zu finden.-passive: Scannen durch Betrachten bestehender Header/Antworten ohne neue “Angriffe” zu senden.-etags fuzz: Fuzzing-Vorlagen in der Produktion ausschließen.
Zusammenfassung: Die “Perfekte” Pipeline
- Lokal:
pre-commitführt Gitleaks (Baseline), Trufflehog (verifiziert) und Hadolint aus. - Build: Trivy scannt Abhängigkeiten (
--ignore-unfixed). Syft generiert SBOM. Dependency-Check für Compliance. - Test: Checkov & KICS scannen Terraform-Plan. Opengrep überprüft Code-Muster.
- Artefakt: Clamscan überprüft das finale Binärdatei/Assets.
- Bereitstellung: Nuclei führt Sanity-Checks des Live-Endpunkts durch.
Passen Sie Ihre Werkzeuge an, oder sie werden Sie ignorieren.
Plexicus machte all das einfacher
Mit einem einheitlichen Dashboard und Zugriff auf alle unsere Tool-Integrationen, wird es nur ein paar Klicks dauern Plexicus



