0Pricing
Cyber Security Academy · Lekcja

Wykorzystywanie błędnych konfiguracji IAM

Eskalacja uprawnień w chmurze

Wykorzystywanie błędnych konfiguracji IAM to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

IAM jako mechanizm eskalacji

W chmurze eskalacja uprawnień zwykle polega na wykorzystaniu uprawnień IAM, a nie na wykorzystywaniu błędów pamięci. Jeśli tożsamość o niskich uprawnieniach może modyfikować zasady, tworzyć klucze lub przyjmować role, może uzyskać dostęp administratora.

  • Uprawnienia umożliwiające modyfikowanie IAM są z natury niebezpieczne.
  • Ścieżki eskalacji wynikają z logiki zasad, a nie z podatności.
  • Rozwiązaniem jest zasada najmniejszych uprawnień, a nie poprawka.

Niebezpieczne uprawnienia

Niektóre działania IAM umożliwiają bezpośrednią eskalację. Należy zwrócić na nie uwagę w przypadku kontrolowanego przez Państwa podmiotu:

  • iam:CreateAccessKey dla innego użytkownika.
  • iam:AttachUserPolicy / iam:PutUserPolicy (dołączenie AdministratorAccess).
  • iam:CreatePolicyVersion (przepisanie istniejącej zasady).
  • iam:PassRole + usługa obliczeniowa (uruchomienie kodu jako uprzywilejowana rola).
  • sts:AssumeRole ze słabą zasadą zaufania.

Eskalacja przez dołączenie zasady

Jeśli tożsamość może dołączać zasady do samej siebie, do eskalacji wystarczy jedno wywołanie. Wystarczy dołączyć zarządzaną zasadę administracyjną, aby odziedziczyć pełne uprawnienia.

# Attach AdministratorAccess to yourself
aws iam attach-user-policy \
  --user-name me \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

Wykorzystanie PassRole

iam:PassRole umożliwia przekazanie roli usłudze. W połączeniu z usługą, która uruchamia Państwa kod (EC2, Lambda, Glue), pozwala wykonywać kod jako ta rola, nawet jeśli ma ona znacznie szersze uprawnienia.

# Launch a Lambda that assumes a privileged role you can pass
aws lambda create-function --function-name esc \
  --role arn:aws:iam::111:role/AdminRole \
  --runtime python3.12 --handler h.run --zip-file fileb://code.zip

Przywracanie wersji zasady

iam:CreatePolicyVersion lub SetDefaultPolicyVersion umożliwia zastąpienie aktywnego dokumentu zasady albo przywrócenie bardziej liberalnej wcześniejszej wersji, zapewniając szeroki dostęp bez zmieniania członkostwa w grupach.

# Make a new, permissive default version of an existing policy
aws iam create-policy-version \
  --policy-arn arn:aws:iam::111:policy/devs \
  --policy-document file://admin.json --set-as-default

Wykorzystanie zasad zaufania i AssumeRole

Zasady zaufania roli określają, kto może ją przyjąć. Słabe warunki zaufania umożliwiają przejęcie.

  • Rolę ufającą * lub całemu kontu można przyjąć zbyt szeroko.
  • Jeśli można edytować zasadę zaufania roli, można dodać siebie jako zaufany podmiot.
  • Confused deputy: brak identyfikatorów zewnętrznych w rolach integracji zewnętrznych.
# Assume a poorly-scoped role
aws sts assume-role \
  --role-arn arn:aws:iam::111:role/CrossAccountAdmin \
  --role-session-name pt

Odpowiedniki w innych chmurach

Te same wzorce występują u różnych dostawców.

  • Azure: przypisanie roli User Access Administrator lub Owner; wykorzystanie Managed Identity; dodawanie danych uwierzytelniających do podmiotu usługi.
  • GCP: iam.serviceAccounts.actAs wraz z usługą obliczeniową; setIamPolicy w projekcie; tworzenie kluczy kont usług.
# GCP: impersonate a privileged service account
gcloud compute instances create esc --service-account priv@proj.iam.gserviceaccount.com --scopes cloud-platform

Narzędzia do wykrywania ścieżek

Zamiast zgadywać, należy użyć narzędzi, aby ujawnić możliwe ścieżki eskalacji z bieżącej tożsamości.

# Pacu (AWS exploitation framework) escalation module
pacu
run iam__privesc_scan

# PMapper query for escalation
pmapper query 'preset privesc me'

Łączenie z płaszczyzną sterowania

Eskalacja często polega na połączeniu dostępu do płaszczyzny danych z uprawnieniami płaszczyzny sterowania.

  • Przejąć maszynę wirtualną i wykraść jej dane uwierzytelniające roli instancji z metadanych.
  • Rola instancji ma uprawnienie PassRole oraz dostęp do Lambda, co umożliwia uruchomienie roli administratora.
  • Z poziomu administratora utworzyć trwałe klucze dostępu w celu zachowania dyskrecji.

Każde ogniwo jest osobnym ustaleniem, które warto zgłosić.

Ochrona IAM

Zapobieganie koncentruje się na zasadzie najmniejszych uprawnień i mechanizmach ochronnych.

  • Usunąć symbole wieloznaczne; ściśle ograniczyć działania i zasoby.
  • Użyć granic uprawnień i SCP, aby ograniczyć maksymalny poziom uprawnień.
  • Wymagać identyfikatorów zewnętrznych w rolach zewnętrznych podmiotów i ograniczyć zasady zaufania.
  • Preferować krótkotrwałe dane uwierzytelniające ról zamiast kluczy długoterminowych.
  • Używać analizatorów dostępu do wykrywania ryzykownych i nieużywanych uprawnień.

Etyczne wykonywanie działań

Eskalacja IAM może zapewnić uprawnienia do całego konta. Należy zatrzymać się na dowodzie słuszności koncepcji: zademonstrować ścieżkę bez tworzenia trwałych tylnych wejść ani modyfikowania produkcyjnych zasad, których nie można przywrócić. Zawsze należy cofnąć wszelkie zmiany zasad lub ról i usunąć utworzone klucze.

Działania zakłócające (takie jak przepisanie współdzielonej zasady) należy wcześniej uzgodnić z klientem.

Szybki test

Sprawdź swoją wiedzę na temat eskalacji IAM.

Podsumowanie

Nauczono się, jak błędne konfiguracje IAM prowadzą do eskalacji uprawnień.

  • Do głównych ścieżek należą dołączanie zasad, PassRole, przywracanie wersji i AssumeRole.
  • Te same wzorce powtarzają się w AWS, Azure i GCP.
  • Pacu i PMapper automatycznie wykrywają możliwe ścieżki.
  • Zasada najmniejszych uprawnień, granice uprawnień i identyfikatory zewnętrzne stanowią zabezpieczenia.

Następnie: utrzymywanie dostępu i przemieszczanie się między kontami chmurowymi.

Często zadawane pytania

Czy lekcja „Wykorzystywanie błędnych konfiguracji IAM” jest bezpłatna?

Tak — pełny tekst „Wykorzystywanie błędnych konfiguracji IAM” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wykorzystywanie błędnych konfiguracji IAM”?

Eskalacja uprawnień w chmurze Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?

Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Wykorzystywanie błędnych konfiguracji IAM”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?

Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Powierzchnia ataku chmury
  2. Wyliczanie zasobów chmurowych
  3. Wykorzystywanie błędnych konfiguracji IAM
  4. Utrzymywanie dostępu i ruch boczny
← Powrót do Cyber Security Academy