Tożsamości niebędące tożsamościami ludzkimi — klucze API, tokeny, konta usług, tożsamości obciążeń — stanowią obecnie jeden z najłatwiejszych sposobów dostępu do nowoczesnych środowisk chmurowych. Nie dlatego, że atakujący nagle stali się geniuszami, ale dlatego, że organizacje coraz częściej opierają się na zaufaniu między maszynami, a to zaufanie jest często zbyt szerokie, długotrwałe i słabo monitorowane.
Nowa analiza, o której mowa w raporcie, wskazuje na znany schemat na ogromną skalę: tysiące obrazów kontenerów i repozytoriów przypadkowo ujawniają sekrety, które po cichu zapewniają dostęp do systemów produkcyjnych. Problem nie polega tylko na tym, że programiści czasami popełniają błędy. Problem polega na tym, że domyślne narzędzia i zachęty sprawiają, że…łatwyaby przesyłać tajemnice itwardyaby udowodnić, że tego nie zrobiłeś.
To historia o „niewidzialnym naruszeniu”. Wiele naruszeń nie zaczyna się od exploita ani głośnego ataku złośliwego oprogramowania. Zaczynają się od tokena, który uwierzytelnia się bezbłędnie – więc wszystko wygląda normalnie – dopóki nie zorientujesz się, że używa go niewłaściwy podmiot.
Czym są „tożsamości nieludzkie” (w prostych słowach)
Tożsamość nieludzka (NHI) to dowolne poświadczenie umożliwiające oprogramowaniu uwierzytelnienie się jako zaufany podmiot:
- klucze dostępu do chmury i tokeny sesji
- konta usług i tożsamości obciążeń
- Poświadczenia CI/CD używane przez potoki kompilacji
- tokeny dla narzędzi SaaS (GitHub, GitLab, Slack, platformy monitorujące)
- Klucze API dla usług stron trzecich (dostawców płatności, dostawców poczty e-mail, interfejsów API modeli AI)
Istotną różnicą w porównaniu z logowaniem ludzkim jest to, że NHI zazwyczaj:
- działać nieprzerwanie
- są osadzone w kodzie lub konfiguracji
- i często nie używamy MFA
To właśnie czyni je atrakcyjnymi.
Jeśli atakujący uzyska działający token, nie musi się „włamywać”. Musi się uwierzytelnić.
Dlaczego teraz jest coraz gorzej
Trzy trendy powodują, że NHI przestają być instytucjami „istotnego” ryzyka i stają się instytucjami „dominującego ryzyka”:
1) Łańcuchy dostaw oprogramowania są większe niż kiedykolwiek
Nowoczesne aplikacje są tworzone z:
- pojemniki
- zależności typu open source
- infrastruktura jako kod
- dziesiątki integracji SaaS
Każda integracja dodaje kolejne dane uwierzytelniające.
2) Automatyzacja jest wszędzie
Organizacje chcą:
- szybsze wdrażanie
- infrastruktura samoobsługowa
- środowiska efemeryczne
Automatyzacja jest dobra, ale opiera się na tożsamościach, które mają przywileje.
3) Poświadczenia są trwalsze niż osoby, które je stworzyły
Ludzie zamieniają się rolami i odchodzą.
Ale token w repozytorium lub kontenerze może:
- utrzymywać się przez miesiące lub lata
- zostać skopiowane do nowych kompilacji
- i pozostają ważne długo po tym, jak ktokolwiek przypomni sobie o ich istnieniu
Więc powierzchnia ataku rośnie bezgłośnie.
Jak sekrety wyciekają w prawdziwym życiu (nie zawsze jest tak, że „ktoś ujawnił klucz”)
Stereotyp to deweloper, który popełniaAWS_SECRET_ACCESS_KEYdo GitHub.
To nadal się zdarza. Ale wiele wycieków jest mniej oczywistych:
- tokeny wtopione w warstwy kontenerów
- pliki konfiguracyjne kopiowane do obrazów podczas kompilacji
- dzienniki debugowania zawierające sekrety
- „tymczasowe” klucze udostępniane na czacie, a później wklejane do kodu
- Zmienne CI drukowane przez nieprawidłowo skonfigurowane potoki
Obrazy kontenerów są szczególnie niebezpieczne, ponieważ:
- są odbijane lustrzanie
- są buforowane
- są kopiowane między zespołami
Nawet jeśli usuniesz klucz z repozytorium, klucz może pozostać w starych warstwach obrazu.
Dlaczego wyciekłe tokeny są groźniejsze niż wiele exploitów
Exploity są głośne i często powodują alerty.
Wyciekłe tokeny są ukryte. Często wyglądają jak te używane normalnie:
- pomyślne uwierzytelnienie
- poprawne wywołania API
- legalne punkty końcowe
To zmienia sytuację obrońcy.
Zamiast wykrywać „atakującego” należy wykryć:
- nieoczekiwanegłównyużywając ważnych danych uwierzytelniających
- z nietypowych lokalizacji
- w nietypowych momentach
- wykonywanie nietypowych czynności
Dlatego właśnie NHI stanowią lukę w wykrywaniu dla wielu organizacji.
Problem przywilejów: tokeny są często zbyt potężne
Wiele sekretów powstaje jako skróty pozwalające „zadziałać”:
- szerokie uprawnienia w chmurze
- dostęp do API na poziomie administratora
- klucze o długiej żywotności
A gdy system już zadziała, ludzie nie będą chcieli się z nim mierzyć.
To stwarza niebezpieczną asymetrię:
- konto ludzkie może mieć uwierzytelnianie wieloskładnikowe i monitorowanie
- tożsamość maszyny może mieć szeroki dostęp i być poddawana niewielkiej kontroli
W przypadku wycieku danych o maszynie promień rażenia może być większy.
Jak wygląda dobra strategia NHI (konkretne praktyki)
Można to rozwiązać, ale tylko jeśli traktujemy NHI jako najwyższej klasy środki bezpieczeństwa.
1) Preferuj krótkotrwałe referencje
Jeśli to możliwe:
- użyj tymczasowych danych uwierzytelniających sesję
- często obracaj tokenami
- unikaj kluczy „nigdy nie wygasających”
Krótkotrwałe tokeny zmniejszają zyski z wycieków.
2) Zastąp klucze statyczne tożsamością obciążenia, jeśli to możliwe
W nowoczesnych środowiskach chmurowych uwierzytelnianie obciążeń roboczych często można przeprowadzić za pośrednictwem:
- tożsamość instancji
- Federacja OIDC
- zarządzana tożsamość
Zmniejsza to konieczność przechowywania kluczy statycznych.
3) Ściśle oddziel środowiska
Częstym błędem jest używanie tego samego tokena w:
- deweloper
- inscenizacja
- produkcja
Tokeny powinny mieć zasięg środowiskowy.
Jeśli obraz deweloperski wycieknie, nie powinno to spowodować odblokowania wersji produkcyjnej.
4) Zapasy i własność
Każdy znaczący token powinien posiadać:
- właściciel
- cel
- oczekiwany wzorzec użytkowania
Jeśli token nie ma właściciela, stanowi dług techniczny, który tylko czeka, aż stanie się incydentem.
5) Monitoruj zachowanie NHI tak, jak monitorujesz zachowanie człowieka
Dobre sygnały obejmują:
- niemożliwa podróż / niezwykłe miejsca geograficzne
- nietypowe sekwencje wywołań API
- skoki w dostępie do danych
- przyznano nowe uprawnienia
- utworzono nowe tokeny
Celem nie jest idealne wykrywanie, lecz wczesne wykrywanie.
6) Traktuj CI/CD jako fabrykę tożsamości wysokiego ryzyka
Systemy CI często obejmują:
- klucze wdrożeniowe
- klucze do podpisywania
- poświadczenia chmurowe
Zamknij je:
- najmniejszy przywilej
- oddzieleni biegacze
- maskowanie poufne i zapobieganie wyciekom logów
- surowe zatwierdzenia etapów wdrażania produkcji
Gdzie zespoły zazwyczaj zawodzą (i jak tego uniknąć)
„Czasami zmieniamy klucze” to nie jest plan
Jeśli rotacja jest wykonywana ręcznie i jest bolesna, nie uda się jej wykonać pod ciśnieniem.
Uczyń rotację rutynową i zautomatyzowaną.
Narzędzia bezpieczeństwa bez egzekwowania stają się „teatrem monitorowania”
Skanowanie repozytoriów w celu znalezienia sekretów jest przydatne, ale to nie wystarczy.
Potrzebujesz również:
- szybkie odwołanie
- alerty dotyczące użytkowania
- i zapobieganie w budowie rurociągów
Pułapka warstwy kontenera
Jeśli sekrety kiedykolwiek weszły do kontekstu kompilacji kontenera, należy założyć, że mogą istnieć w:
- stare obrazy
- buforowane warstwy
- Artefakty CI
Rozwiązaniem nie jest tylko „usunięcie klucza repozytorium”. Jest to:
- obróć sekret
- odbudować i ponownie opublikować obrazy
- unieważnij pamięć podręczną, jeśli to możliwe
Co obejrzeć dalej
Jeśli chcesz śledzić, czy organizacje osiągają lepsze wyniki w zakresie NHI, zwróć uwagę na:
- przyjęcie tożsamości krótkotrwałej (OIDC/tożsamość obciążenia)
- szeroko rozpowszechnione programy rotacji tokenów
- silniejsze kontrole granic CI/CD
- raporty o incydentach, w których jako główną przyczynę podano „użyto ważnych danych uwierzytelniających”
Warto też zwrócić uwagę na kwestię narzędzi: najlepsze narzędzia przejdą od „wykrywania odsłoniętych ciągów znaków” do „ograniczenia liczby istniejących statycznych sekretów”.
Ekonomia: dlaczego atakujący uwielbiają polować na tokeny
Wagi do polowań na żetony.
Osoba atakująca, która ukradnie jedno działające poświadczenie, może często:
- dostęp do wielu systemów (chmura + kontrola źródła + CI)
- ponowne wykorzystanie tej samej techniki w wielu organizacjach
- i sprzedawać dostęp na rynkach, jeśli nie chcą sami nim zarządzać
Dla obrońców oznacza to, że zagrożeniem nie jest po prostu „haker atakujący nas”. To „gospodarka maszynowa, która czerpie zyski z wszelkich wielokrotnego użytku danych uwierzytelniających”.
Dlatego zapobieganie jest tu ważniejsze niż reagowanie. Jeśli klucz nigdy nie istniał w formie statycznej, nie da się go później zebrać.
Pomysły na wykrywanie betonu (na co zwracać uwagę)
Jeśli tworzysz mechanizmy wykrywania chorób niezakaźnych (NHI), skup się na zmianach zachowania, a nie na magicznych słowach kluczowych.
Przykłady wysokiego sygnału:
- Konto usługi używane znowy kraj/ASNNigdy wcześniej nie był używany.
- Token, który normalnie wywołuje tylko jedno API, nagle wylicza zasoby lub pobiera duże ilości.
- Tożsamość CI wykonująca działania poza standardowym oknem wydania.
- Sekrety używane w interaktywnych punktach końcowych użytkowników, gdy były przeznaczone wyłącznie do obciążeń serwerowych.
Nawet podstawowe alerty o anomaliach mogą wcześnie wykryć zjawisko „cichej kradzieży danych uwierzytelniających”.
Pomysły na utwardzanie betonu (niski wysiłek, duża dźwignia)
Oto praktyczne zmiany, które większość zespołów może wprowadzić bez konieczności przeprowadzania gruntownej przebudowy:
- Zmniejsz zakres tokena:podzielić jeden szeroki token na kilka tokenów o wąskim zakresie.
- Rotacja zgodnie z harmonogramem:obracaj nawet wtedy, gdy nic nie jest „nie tak”, dzięki czemu rotacja staje się pamięcią mięśniową.
- Produkcja bram:wymagają wyraźnego zatwierdzenia dla tożsamości wdrożeniowych w środowisku produkcyjnym.
- Blokuj sekrety tekstu jawnego w kompilacjach:CI powinno kończyć się niepowodzeniem kompilacji, gdy pojawią się oczywiste, tajne wzorce.
Każdy ruch zmniejsza promień wybuchu, nawet jeśli nadal nastąpi wyciek.
Prosta wewnętrzna polityka, która zapobiega wielu bólom
Jeśli szukasz polityki, która wymusza lepsze zachowania, to jest to ta:
- Żadnych sekretów mogących mieć zastosowanie w produkcji na laptopach programistów lub w kontekstach budowania kontenerów.
Zasada ta powoduje zmiany takie jak:
- tożsamość obciążenia pracą dla usług
- poświadczenia dotyczące inscenizacji rozwoju
- i wyraźne zatwierdzenia etapów wdrażania produkcji
Na początku może to być denerwujące, ale w efekcie odcina najłatwiejsze ścieżki przecieku.
Podsumowanie
Tożsamości niebędące ludźmi stanowią podstawę współczesnej automatyzacji, a także są głównym powodem naruszeń bezpieczeństwa, ponieważ często omijają zabezpieczenia, które stworzyliśmy dla ludzi.
Jeśli chcesz praktycznego progu: gdy będziesz w stanie odpowiedzieć na pytanie „gdzie znajdują się nasze długotrwałe tokeny, kto jest ich właścicielem i jak szybko możemy je unieważnić/obrócić”, przesunąłeś się od myślenia życzeniowego do rzeczywistego programu obronnego.
Praktycznym rozwiązaniem nie jest jeden magiczny skaner. To program: minimalizuje statyczne sekrety, zmniejsza uprawnienia, tworzy rutynową rotację i monitoruje tożsamości maszyn tak, jak monitoruje się konta użytkowników.