AWS - GuardDuty Enum
GuardDuty
Zgodnie z dokumentacją: GuardDuty łączy uczenie maszynowe, wykrywanie anomalii, monitorowanie sieci i odkrywanie złośliwych plików, korzystając zarówno z źródeł AWS, jak i wiodących na rynku źródeł zewnętrznych, aby pomóc w ochronie obciążeń pracy i danych w AWS. GuardDuty jest zdolny do analizowania dziesiątek miliardów zdarzeń z wielu źródeł danych AWS, takich jak dzienniki zdarzeń AWS CloudTrail, dzienniki przepływów Amazon Virtual Private Cloud (VPC), audyt i dzienniki systemowe Amazon Elastic Kubernetes Service (EKS) oraz dzienniki zapytań DNS.
Amazon GuardDuty identyfikuje nietypową aktywność w Twoich kontach, analizuje istotność z punktu widzenia bezpieczeństwa tej aktywności i podaje kontekst, w jakim została wywołana. Pozwala to osobie reagującej określić, czy powinna poświęcić czas na dalsze dochodzenie.
Alerty pojawiają się w konsoli GuardDuty (90 dni) i zdarzeniach CloudWatch.
Gdy użytkownik wyłącza GuardDuty, przestaje monitorować środowisko AWS i nie generuje żadnych nowych ustaleń, a istniejące ustalenia zostaną utracone. Jeśli po prostu go zatrzymasz, istniejące ustalenia pozostaną.
Przykład Ustaleń
Rozpoznanie: Aktywność sugerująca rozpoznanie przez atakującego, takie jak nietypowa aktywność API, podejrzane próby logowania do bazy danych, skanowanie portów wewnątrz-VPC, nietypowe wzorce nieudanych prób logowania, lub sondowanie portów znanego złego IP.
Zagrożenie instancji: Aktywność wskazująca na zagrożenie instancji, takie jak kopanie kryptowalut, działanie backdoor command and control (C&C), złośliwe oprogramowanie używające algorytmów generowania domen (DGA), wychodząca aktywność odmowy usługi, nietypowy wysoki ruch sieciowy, nietypowe protokoły sieciowe, wychodząca komunikacja instancji z znanym złośliwym IP, tymczasowe poświadczenia Amazon EC2 używane przez zewnętrzny adres IP, i wyciek danych za pomocą DNS.
Zagrożenie konta: Powszechne wzorce wskazujące na zagrożenie konta obejmują wywołania API z nietypowej geolokalizacji lub anonimizującego proxy, próby wyłączenia rejestrowania AWS CloudTrail, zmiany osłabiające politykę hasła konta, nietypowe uruchomienia instancji lub infrastruktury, wdrożenia infrastruktury w nietypowym regionie, kradzież poświadczeń, podejrzana aktywność logowania do bazy danych, i wywołania API z znanych złośliwych adresów IP.
Zagrożenie kubełka: Aktywność wskazująca na zagrożenie kubełka, takie jak podejrzane wzorce dostępu do danych wskazujące na nadużycie poświadczeń, nietypowa aktywność API Amazon S3 z hosta zdalnego, nieautoryzowany dostęp do S3 z znanych złośliwych adresów IP, i wywołania API do pobierania danych z kubełków S3 przez użytkownika bez wcześniejszej historii dostępu do kubełka lub wywołane z nietypowej lokalizacji. Amazon GuardDuty ciągle monitoruje i analizuje zdarzenia danych S3 AWS CloudTrail (np. GetObject, ListObjects, DeleteObject) w celu wykrycia podejrzanej aktywności we wszystkich kubełkach Amazon S3.
Wszystkie Ustalenia
Dostęp do listy wszystkich ustaleń GuardDuty: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Wielokrotne Konta
Poprzez Zaproszenie
Możesz zaprosić inne konta do innego konta AWS GuardDuty, aby każde konto było monitorowane z tego samego GuardDuty. Konto główne musi zaprosić konta członkowskie, a następnie przedstawiciel konta członkowskiego musi zaakceptować zaproszenie.
Poprzez Organizację
Możesz wyznaczyć dowolne konto w organizacji jako administratora delegowanego GuardDuty. Tylko konto zarządzające organizacją może wyznaczyć administratora delegowanego.
Konto, które zostaje wyznaczone jako administrator delegowany, staje się kontem administratora GuardDuty, ma automatycznie włączony GuardDuty w wyznaczonym regionie AWS, a także ma uprawnienie do włączania i zarządzania GuardDuty dla wszystkich kont w organizacji w tym regionie. Pozostałe konta w organizacji mogą być przeglądane i dodawane jako konta członkowskie GuardDuty powiązane z tym kontem administratora delegowanego.
Wyliczanie
GuardDuty Ominięcie
Ogólne Wskazówki
Spróbuj dowiedzieć się jak najwięcej o zachowaniu poświadczeń, których zamierzasz użyć:
Czasy, w których są używane
Lokalizacje
Agenty użytkownika / Usługi (Może być używane z awscli, konsoli internetowej, lambdy...)
Regularnie używane uprawnienia
Mając te informacje, odtwórz jak najdokładniej ten sam scenariusz, aby uzyskać dostęp:
Jeśli jest to użytkownik lub rola dostępna przez użytkownika, spróbuj użyć jej o tych samych godzinach, z tej samej geolokacji (nawet tego samego dostawcy usług internetowych i adresu IP, jeśli to możliwe)
Jeśli jest to rola używana przez usługę, utwórz tę samą usługę w tej samej regionie i użyj jej stamtąd w tych samych przedziałach czasowych
Zawsze spróbuj użyć tych samych uprawnień, jakie używał ten podmiot
Jeśli musisz użyć innych uprawnień lub nadużyć uprawnienia (na przykład, pobierz 1.000.000 plików dziennika cloudtrail) zrób to powoli i z minimalną ilością interakcji z AWS (awscli czasami wywołuje kilka interfejsów API do odczytu przed zapisaniem)
Złamanie GuardDuty
guardduty:UpdateDetector
guardduty:UpdateDetector
Z tym uprawnieniem możesz wyłączyć GuardDuty, aby uniknąć wyzwalania alertów.
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)Atakujący posiadający wcześniejsze uprawnienia mogą modyfikować listę zaufanych adresów IP GuardDuty, dodając swój adres IP i unikając generowania alertów.
guardduty:DeletePublishingDestination
guardduty:DeletePublishingDestination
Atakujący mogą usunąć cel, aby zapobiec generowaniu alertów:
Usunięcie tego miejsca publikacji nie wpłynie na generowanie ani widoczność wyników w konsoli GuardDuty. GuardDuty będzie nadal analizować zdarzenia w Twoim środowisku AWS, identyfikować podejrzane lub nieoczekiwane zachowanie i generować wyniki.
Konkretne Przykłady Ominięcia Wyników
Zauważ, że istnieje wiele wyników GuardDuty, jednak nie wszystkie z nich będą miały wpływ na Ciebie jako Red Teamera, a co lepsze, masz pełną dokumentację każdego z nich pod adresem https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html, więc zerknij przed podjęciem jakiejkolwiek akcji, aby nie zostać wykrytym.
Oto kilka przykładów omijania konkretnych wyników GuardDuty:
GuardDuty wykrywa żądania interfejsu API AWS z popularnych narzędzi do testów penetracyjnych i wywołuje wynik PenTest. Jest to wykrywane przez nazwę agenta użytkownika, która jest przekazywana w żądaniu interfejsu API. Dlatego zmieniając agenta użytkownika można zapobiec wykryciu ataku przez GuardDuty.
Aby temu zapobiec, możesz wyszukać skrypt session.py
w pakiecie botocore
i zmodyfikować agenta użytkownika, lub ustawić Burp Suite jako proxy AWS CLI i zmienić nagłówek user-agent za pomocą MitM, lub po prostu użyć systemu operacyjnego takiego jak Ubuntu, Mac lub Windows, aby zapobiec wywołaniu tego alertu.
UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
Wydobycie poświadczeń EC2 z usługi metadanych i wykorzystanie ich poza środowiskiem AWS aktywuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
. Natomiast wykorzystanie tych poświadczeń z Twojej instancji EC2 wywołuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
. Jednak użycie poświadczeń na innej skompromitowanej instancji EC2 w ramach tego samego konta pozostaje niewykryte, nie wywołując żadnego alertu.
Dlatego używaj wydobytych poświadczeń wewnątrz maszyny, gdzie je znalazłeś, aby nie wywoływać tego alertu.
Odnośniki
Last updated