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 szyfrujące czy tokeny. Jest to kluczowe, ponieważ atakujący, tacy jak boty do wypełniania danych uwierzytelniających czy 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 Slack czy API płatności Stripe. Gdy zostaną przypadkowo wypchnięte 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 są ujawnione, mogą spowodować poważne naruszenia bezpieczeństwa.

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

  • Zapobieganie nieautoryzowanemu dostępowi: Ujawniony klucz tajny może umożliwić atakującemu dostęp do danych produkcyjnych lub usług w chmurze.
  • Unikanie kosztownych naruszeń: Naruszone dane uwierzytelniające są jednym z głównych powodów wycieków danych, jak na przykład naruszenie Uber w 2022 roku, które rozpoczęło się od ujawnionego skryptu PowerShell zawierającego zakodowane dane uwierzytelniające.
  • Wsparcie zgodności: Ramy takie jak SOC 2, GDPR i ISO 27001 wymagają ochrony danych wrażliwych i tajemnic.
  • Zmniejszenie błędów ludzkich: Automatyzacja wykrywania tajemnic pomaga wychwycić wycieki przed wdrożeniem kodu do produkcji, zapobiegając większym naruszeniom.

Jak działa wykrywanie tajemnic

Narzędzia do wykrywania tajemnic używają dopasowywania wzorców, analizy entropii i uczenia maszynowego 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 rzeczywiście tajemnicą czy fałszywym alarmem.
  4. Alarmowanie i naprawa: Zespoły otrzymują alert, co pozwala im na unieważnienie i rotację naruszonych 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 zakodowane na stałe tajemnice przed ich zatwierdzeniem do repozytorium.
  • Zespoły DevSecOps: Integruj skanowanie tajemnic w potoki.
  • 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 tajemnic?

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

Przykład w praktyce

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

Dzięki włączonemu wykrywaniu tajemnic system natychmiast oznacza ujawnienie, automatycznie cofa ujawnione poświadczenie i powiadamia zespół DevSecOps, aby zapobiec potencjalnemu kompromisowi chmury.

Kluczowe możliwości narzędzi do wykrywania tajemnic

ZdolnośćOpis
Dopasowywanie wzorcówWykrywa typowe formaty poświadczeń (klucze API, tokeny, SSH).
Skanowanie entropiiZnajduje losowo wyglądające ciągi, które mogą być sekretami.
Automatyczna odwołanieOdwołuje lub rotuje skompromitowane poświadczenia.
Integracja z pipelineAutomatycznie skanuje kod w przepływach pracy CI/CD.
Centralny pulpit nawigacyjnyZapewnia widoczność, gdzie znajdują się sekrety.
Egzekwowanie politykiBlokuje zatwierdzenia 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 zatwierdzeń.
  • 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 cofa 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ć cofnięty, rotowany i natychmiast zastąpiony.

Następne kroki

Gotowy, aby zabezpieczyć swoje aplikacje? Wybierz swoją dalszą drogę.

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

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready