AWS - GuardDuty Enum
GuardDuty
Zgodnie z dokumentacją: GuardDuty łączy w sobie uczenie maszynowe, wykrywanie anomalii, monitorowanie sieci i odkrywanie złośliwych plików, korzystając zarówno z usług AWS, jak i z wiodących źródeł zewnętrznych, aby pomóc w ochronie obciążeń i danych w AWS. GuardDuty jest zdolny do analizowania dziesiątek miliardów zdarzeń z różnych źródeł danych AWS, takich jak dzienniki zdarzeń AWS CloudTrail, dzienniki przepływu Amazon Virtual Private Cloud (VPC) Flow Logs, 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 w CloudWatch Events.
Kiedy użytkownik wyłącza GuardDuty, przestaje on monitorować środowisko AWS i nie generuje żadnych nowych wyników, a istniejące wyniki zostaną utracone. Jeśli go tylko zatrzymasz, istniejące wyniki pozostaną.
Przykład wyników
Rekonesans: Aktywność sugerująca rekonesans 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 z zablokowanego znanego złego IP.
Kompromitacja instancji: Aktywność wskazująca na kompromitację instancji, taką jak kopanie kryptowalut, działanie backdoorów i kontrola (C&C), złośliwe oprogramowanie korzystające z algorytmów generowania domen (DGA), działanie odmowy usługi na zewnątrz, niezwykle wysoki ruch sieciowy, nietypowe protokoły sieciowe, komunikacja instancji z znanym złośliwym IP, tymczasowe poświadczenia Amazon EC2 używane przez zewnętrzny adres IP oraz wyciek danych za pomocą DNS.
Kompromitacja konta: Powszechne wzorce wskazujące na kompromitację konta obejmują wywołania API z nietypowej lokalizacji lub z anonimizującego serwera proxy, próby wyłączenia logowania 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 oraz wywołania API z znanych złośliwych adresów IP.
Kompromitacja kubełka: Aktywność wskazująca na kompromitację kubełka, taką jak podejrzane wzorce dostępu do danych wskazujące na nadużycie poświadczeń, nietypowa aktywność API Amazon S3 z zdalnego hosta, nieautoryzowany dostęp do S3 z znanych złośliwych adresów IP oraz wywołania API w celu pobrania danych z kubełków S3 przez użytkownika, który wcześniej nie miał historii dostępu do kubełka lub wywołane z nietypowej lokalizacji. Amazon GuardDuty ciągle monitoruje i analizuje zdarzenia danych AWS CloudTrail S3 (np. GetObject, ListObjects, DeleteObject), aby wykrywać podejrzaną aktywność we wszystkich kubełkach Amazon S3.
Wszystkie wyniki
Dostęp do listy wszystkich wyników GuardDuty można uzyskać pod adresem: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Wielokrotne konta
Przez 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.
Przez organizację
Możesz wyznaczyć dowolne konto w organizacji jako delegowany administrator GuardDuty. Tylko konto zarządzające organizacją może wyznaczyć delegowanego administratora.
Konto, które zostanie wyznaczone jako delegowany administrator, staje się kontem administratora GuardDuty, automatycznie włącza GuardDuty w wyznaczonym regionie AWS i ma również uprawnienia do włączania i zarządzania GuardDuty dla wszystkich kont w organizacji w tym regionie. Inne konta w organizacji mogą być wyświetlane i dodawane jako konta członkowskie GuardDuty powiązane z tym kontem delegowanego administratora.
Wyliczanie
Bypass GuardDuty
Ogólne wskazówki
Spróbuj dowiedzieć się jak najwięcej o zachowaniu używanych przez Ciebie poświadczeń:
Częstotliwość ich użycia
Lokalizacje
Agenty użytkownika / Usługi (Może być używane z awscli, webconsole, lambda...)
Regularnie używane uprawnienia
Na podstawie tych informacji, odtwórz jak najwięcej scenariuszy, aby uzyskać dostęp:
Jeśli jest to użytkownik lub rola dostępna przez użytkownika, spróbuj użyć jej o tej samej godzinie, z tej samej lokalizacji (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 w tym samym przedziale czasowym
Zawsze spróbuj użyć tych samych uprawnień, które 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 (czasami awscli wywołuje kilka operacji odczytu przed operacją zapisu)
Omijanie GuardDuty
guardduty:UpdateDetector
guardduty:UpdateDetector
Z tym uprawnieniem możesz wyłączyć GuardDuty, aby uniknąć wywoływania alertów.
guardduty:CreateFilter
guardduty:CreateFilter
Atakujący posiadający to uprawnienie mają możliwość używania filtrów do automatycznego archiwizowania wyników:
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)Atakujący posiadający wcześniej wymienione uprawnienia mogą modyfikować listę zaufanych adresów IP w GuardDuty, dodając do niej 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 Unikania Wykrycia
Należy zauważyć, że istnieje wiele wyników GuardDuty, jednak jako Red Teamer nie wszystkie z nich będą miały na Ciebie wpływ, a co lepsze, masz pełną dokumentację każdego z nich na stronie https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html, więc zerknij na nią przed podjęciem jakiejkolwiek akcji, aby nie zostać wykrytym.
Oto kilka przykładów unikania wykrycia konkretnych wyników GuardDuty:
GuardDuty wykrywa żądania interfejsu API AWS z popularnych narzędzi do testowania penetracyjnego i wywołuje wynik PenTest. Jest to wykrywane przez nazwę agenta użytkownika, która jest przekazywana w żądaniu interfejsu API. W związku z tym, zmieniając agenta użytkownika, można zapobiec wykryciu ataku przez GuardDuty.
Aby temu zapobiec, można wyszukać skrypt session.py
w pakiecie botocore
i zmodyfikować agenta użytkownika, lub ustawić Burp Suite jako proxy AWS CLI i zmienić agenta użytkownika za pomocą MitM, lub po prostu użyć systemu operacyjnego takiego jak Ubuntu, Mac lub Windows, aby uniknąć wywołania tego alertu.
UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
Wyodrębnianie poświadczeń EC2 z usługi metadanych i używanie ich poza środowiskiem AWS aktywuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
. Natomiast użycie tych poświadczeń z 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, w której je znalazłeś, aby nie wywoływać tego alertu.
Odwołania
Last updated