Glosariusz Secret Detection

Wykrywanie Tajemnic

TL;DR

Wykrywanie tajemnic znajduje wrażliwe informacje, takie jak klucze API, hasła, tokeny i dane uwierzytelniające w kodzie źródłowym, plikach konfiguracyjnych lub logach, pomagając zapobiegać przypadkowemu ujawnieniu.

Narzędzie do wykrywania tajemnic skanuje repozytoria, potoki i kontenery, aby pomóc zapobiegać wyciekom danych i nieautoryzowanemu dostępowi.

Wczesne wykrywanie problemów z tajemnicami pomaga chronić aplikacje, API i usługi w chmurze przed atakującymi.

Co to jest wykrywanie tajemnic?

Wykrywanie tajemnic to proces skanowania baz kodu, potoków CI/CD i chmury w celu identyfikacji ujawnionych tajemnic, takich jak klucze API, dane uwierzytelniające, klucze szyfrowania lub tokeny. Jest to kluczowe, ponieważ atakujący, tacy jak boty do wypełniania danych uwierzytelniających lub porywacze zasobów chmurowych, mogą wykorzystać te ujawnione tajemnice do uzyskania nieautoryzowanego dostępu.

Te “tajemnice” są często używane do uwierzytelniania użytkowników lub łączenia się z usługami, takimi jak webhooki Slacka lub API płatności Stripe. Gdy zostaną przypadkowo przesłane do publicznego repozytorium, takiego jak GitHub, atakujący mogą je wykorzystać do uzyskania dostępu do systemu, bazy danych lub konta w chmurze, z którym się łączysz.

Dlaczego wykrywanie tajemnic jest ważne?

Tajemnice mogą pojawić się w plikach środowiskowych, kodzie źródłowym, plikach konfiguracyjnych YAML i logach CI/CD.

Jeśli tajemnice zostaną ujawnione, mogą spowodować poważne naruszenia bezpieczeństwa.

Zrozumienie i łagodzenie tych ryzyk może znacząco poprawić bezpieczeństwo i zgodność. Cztery największe ryzyka to:

  • Zapobiegaj nieautoryzowanemu dostępowi: Ujawniony klucz tajny może pozwolić atakującemu na dostęp do danych produkcyjnych lub usług w chmurze.
  • Unikaj kosztownych naruszeń: Skompromitowane dane uwierzytelniające są jedną z głównych przyczyn wycieków danych, jak w przypadku naruszenia Uber w 2022 roku, które rozpoczęło się od ujawnionego skryptu PowerShell zawierającego zakodowane na stałe dane uwierzytelniające.
  • Wspieraj zgodność: Ramy takie jak SOC 2, GDPR i ISO 27001 wymagają ochrony danych wrażliwych i tajemnic.
  • Zmniejsz błędy ludzkie: Automatyzacja wykrywania tajemnic pomaga wykrywać wycieki przed wdrożeniem kodu do produkcji, zapobiegając większym naruszeniom.

Jak działa wykrywanie tajemnic

Narzędzia do wykrywania tajemnic wykorzystują dopasowywanie wzorców, analizę entropii i uczenie maszynowe do lokalizowania i klasyfikowania informacji wrażliwych w kodzie lub infrastrukturze.

Oto typowy przepływ pracy:

  1. Skanowanie kodu i konfiguracji: Narzędzie skanuje repozytoria, kontenery i szablony IaC (Infrastructure as Code) w poszukiwaniu danych uwierzytelniających i tokenów
  2. Identyfikacja wzorca: Wykrywa typowe rodzaje tajemnic, takie jak klucze dostępu AWS, tokeny JWT czy klucze prywatne SSH.
  3. Korelacja kontekstu: Narzędzia oceniają, czy wykryty ciąg jest faktycznie tajemnicą, czy fałszywym alarmem.
  4. Alarmowanie i naprawa: Zespoły otrzymują alarm, co pozwala na unieważnienie i rotację skompromitowanych tajemnic
  5. Ciągłe monitorowanie: Integracja wykrywania z kontrolą wersji lub CI/CD dla ciągłej ochrony.

Kto używa wykrywania tajemnic

  • Deweloperzy: Wykrywaj twardo zakodowane sekrety przed ich zatwierdzeniem do repozytorium.
  • Zespoły DevSecOps: Integruj skanowanie sekretów w potokach.
  • Inżynierowie bezpieczeństwa: Monitoruj repozytoria i kontenery pod kątem wycieków.
  • Zespoły ds. zgodności: Zapewnij bezpieczne zarządzanie poświadczeniami.

Kiedy należy wdrożyć wykrywanie sekretów?

  • Przed zatwierdzeniem (rozważ użycie hooka git commit-msg): Stosuj hooki pre-commit, aby zablokować ujawnienie sekretów przed ich zatwierdzeniem.
  • Podczas CI/CD (zgodnie z git push): Automatyzuj wykrywanie przy każdym buildzie lub wdrożeniu, aby wychwycić wszelkie sekrety przed ostateczną integracją.
  • Ciągle (traktuj to jako część procesu git pull lub post-deploy): Regularnie monitoruj środowisko produkcyjne pod kątem nowo ujawnionych sekretów.

Przykład w praktyce

Zespół deweloperski przypadkowo przesyła poświadczenia AWS do publicznego repozytorium GitHub. W ciągu kilku godzin atakujący próbują użyć tych kluczy do uruchomienia instancji EC2, co powoduje koszt około 15 000 USD w nieautoryzowanym użyciu w ciągu sześciu godzin.

Dzięki włączonemu wykrywaniu sekretów system natychmiast oznacza ujawnienie, automatycznie unieważnia ujawnione poświadczenie i powiadamia zespół DevSecOps, aby zapobiec potencjalnemu naruszeniu chmury.

Kluczowe możliwości narzędzi do wykrywania sekretów

FunkcjonalnośćOpis
Dopasowywanie WzorówWykrywa typowe formaty poświadczeń (klucze API, tokeny, SSH).
Skanowanie EntropiiZnajduje losowo wyglądające ciągi, które mogą być sekretami.
Automatyczne UnieważnianieUnieważnia lub rotuje skompromitowane poświadczenia.
Integracja z PipelineAutomatycznie skanuje kod w przepływach CI/CD.
Centralizowany DashboardDaje wgląd w to, gdzie znajdują się sekrety.
Egzekwowanie PolitykiBlokuje commity zawierające sekrety.

Popularne Narzędzia do Wykrywania Sekretów

  • Plexicus ASPM – Zunifikowana platforma AppSec łącząca wykrywanie sekretów, SCA i skanowanie IaC.
  • GitGuardian – Wykrywa ujawnione poświadczenia w repozytoriach.
  • TruffleHog – Narzędzie open-source do skanowania repozytoriów i historii commitów.
  • Gitleaks – Lekki skaner do wykrywania sekretów w repozytoriach Git.
  • SpectralOps – Monitoruje sekrety w CI/CD, kontenerach i API.

Najlepsze Praktyki Zarządzania Sekretami

  • Nigdy nie koduj sekretów w kodzie źródłowym.
  • Używaj menedżerów sekretów, takich jak AWS Secret Manager lub HashiCorp Vault.
  • Regularnie zmieniaj poświadczenia.
  • Monitoruj ciągle nowe ujawnione sekrety.
  • Szkol zespół deweloperów w zakresie najlepszych praktyk bezpiecznego kodowania.

Powiązane Terminy

FAQ: Wykrywanie Tajemnic

1. Jaka jest różnica między wykrywaniem tajemnic a zarządzaniem tajemnicami?

Wykrywanie tajemnic znajduje ujawnione tajemnice; zarządzanie tajemnicami bezpiecznie je przechowuje, rotuje i kontroluje dostęp do nich.

2. Czy wykrywanie tajemnic może automatycznie zapobiegać wyciekom?

Tak, wiele narzędzi blokuje zatwierdzenia lub automatycznie unieważnia klucze, gdy zostaną znalezione tajemnice.

3. Czy wykrywanie tajemnic dotyczy tylko kodu źródłowego?

Nie, skanuje również logi, kontenery, pliki IaC i przechowywanie w chmurze.

4. Co się dzieje po znalezieniu tajemnicy?

Klucz powinien być unieważniony, zrotowany i natychmiast zastąpiony.

Kolejne kroki

Gotowy, aby zabezpieczyć swoje aplikacje? Wybierz swoją ścieżkę do przodu.

Dołącz do ponad 500 firm, które już zabezpieczają swoje aplikacje z Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready