Arsenał DevSecOps: Od zera do bohatera
Bądźmy szczerzy: uruchamianie trivy image to nie DevSecOps. To tylko generowanie szumu.
Prawdziwe inżynieria bezpieczeństwa dotyczy stosunku sygnału do szumu. Chodzi o budowanie potoku, który szanują Twoi deweloperzy, a nie takiego, który omijają. Ten przewodnik dostarcza “konfiguracje klasy produkcyjnej” dla 17 narzędzi standardowych w branży, aby zatrzymać podatności bez zatrzymywania biznesu.
Faza 1: Przed zatwierdzeniem i lokalnie (Shift Left lub idź do domu)
Wykrywanie problemów w CI to już za późno. Właśnie zmarnowałeś kredyty na obliczenia i czas przełączania kontekstu dewelopera. Wykryj to na ich laptopie.
1. Gitleaks (Strażnik Tajemnic)
Nie bądź firmą, która wycieka klucze AWS na GitHubie.
Większość ludzi uruchamia Gitleaks na ślepo. Profesjonaliści używają bazowych danych.
--baseline-path: Złoty bilet. Uruchom świeże skanowanie, zapisz wynik. Teraz Gitleaks alarmuje TYLKO o nowych tajemnicach.--redact: Maskuj odkryte tajemnice w logach wyjściowych (procent 0-100). Nigdy nie wyciekaj podwójnie.--enable-rule: Skup się na konkretnych typach tajemnic (np. tylko klucze AWS) według ID.--follow-symlinks: Nie pozwól, aby tajemnice ukrywały się za dowiązaniami symbolicznymi.--ignore-gitleaks-allow: Zabroń używania wbudowanych komentarzy “pomijających”. Wymuszaj zasady.--max-target-megabytes: Unikaj skanowania ogromnych binarnych blobów.
2. Trufflehog (Weryfikator)
Znalezienie ciągu, który wygląda jak klucz, to jedno. Sprawdzenie, czy działa, to co innego.
Trufflehog wyróżnia się tym, że weryfikuje poświadczenia u dostawcy.
--no-verification: Szybszy tryb. Pomija “sprawdzenie na żywo”, jeśli chcesz tylko analizę statyczną.--results: Filtruj wyniki wedługverified(prawdziwe zagrożenie) lubunknown.--filter-entropy: Znajdź ciągi o wysokiej entropii (prawdopodobnie hasła) nawet bez dopasowania regex. Zacznij od 3.0.--detector-timeout: Ogranicz czas wykonania na detektor, aby zapobiec zawieszaniu się CI.--archive-max-depth: Nie utknij w zagnieżdżonych zip-bombach.
3. Opengrep (Szybka analiza statyczna)
Grep jest martwy. Niech żyje strukturalne wyszukiwanie.
Silnik kompatybilny z Semgrep do znajdowania błędów za pomocą wzorców kodu, a nie tylko ciągów.
--baseline-commit: Kluczowe. Skanuj tylko kod zmieniony od konkretnego commitu (Delta Scanning).--config: Załaduj niestandardowe reguły z ograniczeń YAML lub rejestru.--dataflow-traces: Pokaż pełną ścieżkę, jak dane przemieszczają się od źródła do zlewu.--exclude-minified-files: Pomijaj.min.jsi inne gęste, nieczytelne dla człowieka pliki.--strict: Zatrzymaj budowę, jeśli konfiguracja jest nieprawidłowa lub wystąpią błędy na poziomie WARN.
4. Bandit (Bezpieczeństwo Pythona)
Standard dla analizy AST Pythona.
-t/--tests: Uruchom TYLKO określone identyfikatory testów (lista dozwolonych).-s/--skips: Pomijaj określone identyfikatory testów (lista zabronionych).--severity-level: Pokaż tylko wyniki >=low,mediumlubhigh.--confidence-level: Filtruj “zgadywanie”—pokaż tylko wyniki o wysokiej pewności.--ignore-nosec: Zobacz, co deweloperzy próbują ominąć używając# nosec.
5. Dustilock (Zamieszanie z zależnościami)
Zapobiegaj wstrzyknięciu złośliwego prywatnego pakietu przez atakującego.
-a: Tylko audyt. Sprawdź, czy jesteś podatny na przejęcie nazwy pakietu bez zatrzymywania potoku.
6. Hadolint (Inteligencja Docker)
Twój Dockerfile jest kiepski. Hadolint wie dlaczego.
--trusted-registry: Bezpieczeństwo łańcucha dostaw. Zezwalaj tylko na obrazy zinternal.ecr.aws.--strict-labels: Wymuszaj standardy metadanych (np.maintainer,cost-center).--ignore: Wyłącz zasady, które nie mają zastosowania do twojej kompilacji.--error/--warning: Przypisz na nowo poziomy ważności zasad, aby pasowały do twojej polityki.--require-label: Wymuszaj określone formaty etykiet (Regex).
7. TFLint (Logika Terraform)
terraform validate to sprawdzenie składni. TFLint to sprawdzenie logiki.
--enable-plugin: Załaduj zasady specyficzne dla dostawcy (np. AWS, Azure), aby sprawdzić zgodność ze specyfikacjami API.--minimum-failure-severity: Kontroluj próg przerwania kompilacji (Błąd, Ostrzeżenie, Powiadomienie).--call-module-type: Skanuj modułyall,locallubnone.--var-file: Wstrzykuj zmienne, aby dokładnie ocenić logikę warunkową.
Faza 2: Strażnicy CI (Ufaj, ale weryfikuj)
To jest pokój wojenny. Głęboka analiza podczas procesu budowy.
8. Trivy (Ciężki Kaliber)
Szwajcarski scyzoryk.
--ignore-unfixed: Obowiązkowe. Jeśli nie ma poprawki, nie przerywaj budowy. Monitoruj to.--ignore-status: Filtruj podatności o określonych statusach.--pkg-types: Skup skanowanie na pakietachoslub zależnościachlibrary.--offline-scan: Uruchom w środowiskach odizolowanych od sieci.--include-dev-deps: Nie ignorujdevDependencies— mogą one nadal zagrażać środowisku budowy.--list-all-pkgs: Wyprowadź wszystko. Niezbędne do generowania kompletnego SBOM.
9. Syft (Generator SBOM)
Nie możesz zabezpieczyć tego, czego nie wiesz, że masz.
--enrich: Dodaj metadane online dla bogatszego kontekstu użycia (Golang, Java, itp.).-s/--scope: Skanuj wszystkie warstwy (all-layers) lub tylko końcowy obraz (squashed).--select-catalogers: Skieruj się na określone menedżery pakietów (npm, pip, apk).--platform: Skieruj się na określone architektury (np.arm64).
10. Grype (Skaner SBOM)
Przejmuje pałeczkę od Syft.
-f/--fail-on: Przerwij budowę, jeśli poziom zagrożenia >=medium,high, itp.--only-fixed: Raportuj tylko podatności, które można naprawić.--by-cve: Organizuj wyjście według ID CVE dla śledzenia.--ignore-states: Ignoruj ogólne statusy “wontfix” lub “not-affected”.
11. Checkov (Zarządzanie IaC)
Zapobiegaj błędom konfiguracji chmury, zanim będą Cię kosztować pieniądze.
-s/--soft-fail: Ostrzegaj, ale nie przerywaj. Najlepsze dla “trybu obserwacji.”--check/--skip-check: biała lista lub czarna lista konkretnych kontroli (CKV_AWS_1).--skip-framework: Ignoruj całe frameworki (np. skanuj Terraform, ale pomiń CloudFormation).--enable-secret-scan-all-files: Rozszerz skanowanie sekretów poza standardowe pliki konfiguracyjne.--block-list-secret-scan: Wyklucz konkretne pliki ze skanera sekretów.
12. KICS (Keeping IaC Secure)
Alternatywa dla szerokiego pokrycia IaC.
--exclude-queries: Usuń szumy, filtrując konkretne identyfikatory zapytań.--exclude-categories: Filtruj wyniki według domeny bezpieczeństwa.--fail-on: Określ, które poziomy powagi zwracają kod wyjścia różny od zera.--minimal-ui: Uproszczone wyjście CLI dla czystszych logów.--disable-secrets: Wyłącz wewnętrzne skanowanie sekretów (użyj Gitleaks zamiast tego).
13. Terrascan (Policy-as-Code)
Specjalizowany w egzekwowaniu polityki dla wielu chmur.
-i/--iac-type: Optymalizuj, określając platformę (k8s, helm, terraform).-t/--policy-type: Filtruj polityki według dostawcy (aws, azure, gcp).--severity: Określ minimalną powagę do zgłoszenia.--non-recursive: Skanuj tylko bieżący katalog.
14. OWASP Dependency-Check (Legacy & Compliance)
Ciężki zawodnik dla Java i .NET SCA.
--failOnCVSS: Przerwij budowę, jeśli jakakolwiek biblioteka przekroczy wynik CVSS (np. 7.0).--suppression: Użyj pliku XML, aby “wyciszyć” znane bezpieczne podatności (VEX-lite).--enableExperimental: Użyj nowych analizatorów dla mniej popularnych języków.
15. DevSkim (Higiena Poliglotyczna)
Kontrole IDE i CI skoncentrowane na deweloperach.
--rule-ids: Ogranicz analizę do określonych reguł.--ignore-globs: Użyj standardowych wzorców glob, aby pominąć hałaśliwe pliki.--skip-git-ignored-files: Automatycznie synchronizuj z.gitignore.--skip-excerpts: Utrzymuj raporty małe, usuwając próbki kodu.
Faza 3: Czas Wykonania i Artefakty (Ostatnia Linia)
Skanowanie końcowego artefaktu lub środowiska na żywo.
16. Clamscan (Obrona przed Malware)
Ponieważ czasami ludzie przesyłają wirusy do twojego wiadra S3.
--exclude/--exclude-dir: Pomiń wzorce plików/katalogów, aby zaoszczędzić czas.--detect-pua: Szukaj “Potencjalnie Niechcianych Aplikacji” (adware, koparki).--detect-structured: Skanuj pod kątem wzorców danych wrażliwych, takich jak karty kredytowe/SSN.--scan-pdf/--scan-html: Włącz głęboką inspekcję dla typów dokumentów.--cross-fs: Pozwól na skanowanie w różnych systemach plików (używaj ostrożnie).
17. Nuclei (Nóż Hakera)
Skanowanie szablonowe, które wydaje się nielegalne.
-t/--templates: Uruchom określone pliki szablonów lub katalogi.-tags: Skieruj skanowanie na podstawie technologii (np.wordpress,cve).-s/--severity: Filtruj szablony według poziomu wpływu.-fr/--follow-redirects: Śledź przekierowania HTTP 301/302, aby znaleźć ładunek.-passive: Skanuj, analizując istniejące nagłówki/odpowiedzi bez wysyłania nowych “ataków”.-etags fuzz: Wyklucz szablony fuzzingu w produkcji.
Podsumowanie: “Idealny” Pipeline
- Lokalnie:
pre-commituruchamia Gitleaks (podstawowy), Trufflehog (zweryfikowany) i Hadolint. - Budowa: Trivy skanuje zależności (
--ignore-unfixed). Syft generuje SBOM. Dependency-Check dla zgodności. - Test: Checkov i KICS skanują plan Terraform. Opengrep sprawdza wzorce kodu.
- Artefakt: Clamscan sprawdza końcowy binarny plik/zasoby.
- Wdrożenie: Nuclei sprawdza poprawność działania końcowego punktu.
Dostosuj swoje narzędzia, inaczej one dostosują się do Ciebie.
Plexicus ułatwił to wszystko
Dzięki jednej zintegrowanej tablicy rozdzielczej i dostępowi do wszystkich naszych integracji narzędzi, zajmie to tylko kilka kliknięć Plexicus


