Błędne konfiguracje IAM
Role o nadmiernych uprawnieniach
Błędne konfiguracje IAM to bezpłatna lekcja Ethical Hacking Academy na CoddyKit. To lekcja 2 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 Ethical Hacking Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Dlaczego IAM jest prawdziwym obwodem bezpieczeństwa
W chmurze tożsamość jest nowym obwodem bezpieczeństwa. IAM (Identity and Access Management) decyduje, kto może wykonywać określone działania. Błąd w IAM pozwala atakującemu przejść od punktu przyczepienia o niskich uprawnieniach do pełnej kontroli nad kontem.
- Użytkownicy, role i konta usługowe są tożsamościami
- Zasady definiują uprawnienia
- Błędnie skonfigurowane zasady są największym zagrożeniem w chmurze
Większość eskalacji uprawnień w chmurze wynika z problemów z IAM.
Użytkownicy, role i zasady
AWS IAM ma trzy podstawowe elementy, które musi Pan/Pani rozumieć:
- Użytkownicy — długotrwałe tożsamości z kluczami dostępu
- Role — tymczasowe tożsamości, które mogą być przyjmowane przez użytkowników lub usługi
- Zasady — dokumenty JSON przyznające lub odmawiające działań na zasobach
Zbyt szeroko przypisana zasada prowadzi do nadmiernego przydzielania uprawnień.
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::reports-bucket/*"
}Zagrożenie związane z symbolami wieloznacznymi
Najbardziej niebezpiecznym wzorcem w IAM jest zasada z symbolem wieloznacznym. Przyznaje ona każde działanie na każdym zasobie.
Jeśli atakujący przejmie tożsamość z taką zasadą, uzyskuje kontrolę nad całym kontem.
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
# Action:* Resource:* = full administrative control.
# Flag this everywhere it appears outside a break-glass admin role.Wyliczanie własnych uprawnień
Po uzyskaniu poświadczenia należy sprawdzić, jakie działania może ono wykonywać. IAM udostępnia interfejsy API do odczytu, które ujawniają przypisane zasady.
Niektóre konta przyznają nawet zwykłym użytkownikom iam:Get* i iam:List*, zapewniając im gotową mapę uprawnień.
# List policies attached to a user
aws iam list-attached-user-policies --user-name devuser
# Get the JSON of a managed policy version
aws iam get-policy-version \
--policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess \
--version-id v1Eskalacja uprawnień przez iam:PassRole
Klasyczny scenariusz eskalacji: użytkownik ma iam:PassRole oraz uprawnienie do tworzenia usług. Może uruchomić zasób, który przyjmie rolę o wysokich uprawnieniach, a następnie odziedziczy jej dostęp.
- Użytkownik ma
ec2:RunInstances+iam:PassRole - Uruchamia instancję EC2 z przypisaną rolą administratora
- Instancja przechowuje teraz poświadczenia administratora, które użytkownik pobiera
Użytkownik nie miał bezpośrednio uprawnień administratora, ale dokonał ich eskalacji.
Niebezpieczne kombinacje uprawnień
Pojedyncze uprawnienia mogą być nieszkodliwe, ale w połączeniu mogą tworzyć ścieżki eskalacji. Do znanych ryzykownych kombinacji należą:
iam:CreatePolicyVersion— przepisanie istniejącej zasady tak, aby przyznawała uprawnienia administratoraiam:AttachUserPolicy— przypisanie sobie AdministratorAccessiam:CreateAccessKeydla innego użytkownika — kradzież jego tożsamoścists:AssumeRoledla roli, która nadmiernie ufa podmiotom wywołującym
Narzędzia automatycznie wyliczają takie kombinacje.
Zasady zaufania i AssumeRole
Role mają zasadę zaufania, która określa, kto może je przyjmować. Zbyt szeroka zasada zaufania jest tylną furtką.
Jeśli rola omyłkowo ufa całemu kontu lub nawet kontu zewnętrznemu, atakujący może ją przyjąć.
{
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::123456789012:root" },
"Action": "sts:AssumeRole"
}
# Trusting the entire account root means ANY identity in it can assume the role.Automatyzacja wykrywania eskalacji
Ręczne sprawdzanie każdej kombinacji zasad jest żmudne. Narzędzia mapują ścieżki eskalacji za Pana/Panią.
- Pacu — framework do testów bezpieczeństwa AWS z modułami privesc
- PMapper — tworzy graf zależności IAM i znajduje krawędzie privesc
- enumerate-iam — metodą brute force sprawdza, które wywołania API może wykonywać dany klucz
# Run Pacu's IAM privilege escalation enumeration
pacu
# > run iam__privesc_scan
# Build an IAM access graph and query it
pmapper graph create
pmapper query 'preset privesc *'Zasady wbudowane a zarządzane
Uprawnienia można przyznawać na dwa sposoby — atakujący sprawdzają oba:
- Zasady zarządzane — wielokrotnego użytku, przypisywane wielu tożsamościom
- Zasady wbudowane — osadzone bezpośrednio w jednym użytkowniku lub roli
Zasady wbudowane łatwo przeoczyć podczas audytów, dlatego często ukrywają nadmierne uprawnienia. Podczas oceny tożsamości zawsze należy wyliczyć oba rodzaje.
# Inline policies are listed separately from attached ones
aws iam list-user-policies --user-name devuser
aws iam get-user-policy --user-name devuser --policy-name custom-inlineWzmacnianie zabezpieczeń: minimalne uprawnienia
Rozwiązaniem problemu błędnych konfiguracji IAM jest zasada minimalnych uprawnień: należy przyznawać wyłącznie dokładnie te uprawnienia, które są potrzebne.
- Zastąpić symbole wieloznaczne jawnymi działaniami i ARN zasobów
- Używać ról z krótkotrwałymi poświadczeniami zamiast długotrwałych kluczy
- Audytować nieużywane uprawnienia za pomocą Access Analyzer
- Wymuszać MFA dla uprzywilejowanych tożsamości
Raport powinien przyporządkowywać każdemu ustaleniu działanie naprawcze oparte na zasadzie minimalnych uprawnień.
Pozostawanie w zakresie autoryzacji
Testowanie eskalacji uprawnień aktywnie zmienia stan konta. Należy zachować ostrożność:
- Tworzenie zasad, kluczy lub ról jest działaniem ingerującym — należy uzyskać pisemną zgodę
- Dokumentować każdą zmianę, aby można było ją wycofać
- Przed wykorzystaniem ścieżki preferować wyliczanie tylko do odczytu w celu potwierdzenia jej istnienia
Często wystarczy wykazać, że ścieżka privesc istnieje; nie zawsze trzeba ją w pełni wykorzystywać.
Szybkie sprawdzenie
Jaka kombinacja uprawnień jest klasyczną ścieżką eskalacji uprawnień w AWS?
Podsumowanie: błędne konfiguracje IAM
Dowiedział się Pan/Dowiedziała się Pani, dlaczego IAM jest prawdziwym obwodem bezpieczeństwa chmury i jak atakujący go wykorzystują.
- Zasady z symbolami wieloznacznymi
Action:* Resource:*mają katastrofalne skutki iam:PassRole+ tworzenie usług umożliwia eskalację uprawnień- Zbyt szerokie zasady zaufania pozwalają atakującym przyjmować role
- Narzędzia takie jak Pacu i PMapper automatyzują wykrywanie ścieżek
- Działaniem naprawczym jest zawsze zasada minimalnych uprawnień
W następnej części omówimy S3 i narażenie magazynów danych.
Często zadawane pytania
Czy lekcja „Błędne konfiguracje IAM” jest bezpłatna?
Tak — pełny tekst „Błędne konfiguracje 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 Ethical Hacking Academy, przejdź na CoddyKit PRO. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Błędne konfiguracje IAM”?
Role o nadmiernych uprawnieniach Ćwiczysz Ethical Hacking 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ąć Ethical Hacking Academy?
Nie wymagamy żadnego doświadczenia. Ethical Hacking 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 2 z 4.
Ile czasu zajmuje lekcja „Błędne konfiguracje 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 Ethical Hacking Academy?
Tak. Każda lekcja Ethical Hacking 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
- Powierzchnia ataku chmury
- Błędne konfiguracje IAM
- Ujawnienie S3 i danych w magazynach
- Metadane i SSRF