Testiranje varnosti AWS zahteva bistveno drugacen pristop kot tradicionalno penetracijsko testiranje infrastrukture. Oblak uvaja povsem novo napadalno povrsino, zgrajeno okoli API-jev, politik identitete in integracij storitev. Kot penetracijski tester, ki redno ocenjuje okolja AWS, zelim predstaviti kljucna podrocja, na katera se osredotocam, in metodologijo, ki dosledno odkriva kriticne ugotovitve.
Model deljene odgovornosti in kaj testiramo
AWS deluje po modelu deljene odgovornosti: Amazon varuje infrastrukturo (hipervizorje, fizicne podatkovne centre, omrezno ogrodje), medtem ko stranka varuje vse, kar je zgrajeno na njej. To pomeni, da se penetracijski testerji osredotocamo skoraj izkljucno na konfiguracijo stranke, upravljanje identitet, omrezno arhitekturo in aplikacijski sloj. Najpogostejse ugotovitve niso eksoticni zero-day napadi, temvec napacne konfiguracije politik IAM, dovoljenj za shranjevanje in omrezne izpostavljenosti. Razumevanje te meje je bistveno za pravilno dolocitev obsega preverjanja AWS.
Napacne konfiguracije IAM v podrobnostih
Upravljanje identitet in dostopa (IAM) je najpomembnejsa napadalna povrsina v vsakem okolju AWS. Politike IAM dolocajo, kdo lahko kaj pocne, in majhne napake ustvarjajo ogromno izpostavljenost.
- Preohlapne politike - Politike, ki dodeljujejo siroka dejanja, kot so
s3:*aliec2:*, namesto minimalnih zahtevanih dovoljenj. Pogosto naletim na upravljane politike, kot staAdministratorAccessaliPowerUserAccess, pripete storitvenim racunom, ki potrebujejo le ozka dovoljenja. - Nadomestni znaki v specifikacijah virov - Politike, ki uporabljajo
"Resource": "*", ko bi morale dolociti specificne ARN-je. To je se posebej nevarno pri dejanjih podatkovne ravni, kot stas3:GetObjectalidynamodb:Scan. - Uporabniki IAM namesto vlog - Dolgozivi pristopni kljuci za uporabnike IAM so pogost vir uhajanja poverilnic. Vloge z zacasnimi poverilnicami prek STS so vedno boljsa izbira. Preverjam pristopne kljuce, starejse od 90 dni, in kljuce, ki niso bili nikoli zamenjani.
- Manjkajoce uveljavljanje MFA - Korenski racuni brez MFA, uporabniki IAM z dostopom do konzole brez zahteve MFA in manjkajoci pogoji
aws:MultiFactorAuthPresentpri obcutljivih klicih API. - Simulacija politik - Uporabljam IAM Policy Simulator in
enumerate-iamza dolocanje dejanskih dovoljenj za dane poverilnice. Razlika med tem, kar administratorji mislijo, da vloga zmore, in tem, kar dejansko zmore, je pogosto precejsnja.
Varnost S3
S3 ostaja ena najpogosteje napacno konfiguriranih storitev AWS, kljub letom pozornosti in dodajanju vec plasti zascite, vkljucno z S3 Block Public Access.
- Presejanje javnih veder - Presejem imena veder na podlagi konvencij poimenovanja (podjetje-backup, podjetje-logs, podjetje-dev) in testiram javni bralni/pisalni dostop. Orodja kot
bucket_finderin prilagojeni seznami besed so tu ucinkoviti. - Napacne konfiguracije ACL - Starejsi ACL-ji lahko dodelijo dostop skupini
AuthenticatedUsers(kateri koli racun AWS) aliAllUsers(internet). Tudi ce so politike vedra na mestu, lahko dovolilni ACL preglasi predvidene omejitve. - Tezave s politikami veder - Politike z
"Principal": "*"ali pogoji, ki se sklicujejo na vrednosti, ki jih napadalec nadzoruje. Preverjam tudi politike, ki dovoljujejos3:PutBucketPolicy, kar napadalcu omogoca popoln prepis politike. - Manjkajoca enkripcija - Vedra brez privzete strezniške enkripcije (SSE-S3 ali SSE-KMS) in objekti, nalozeni brez glav enkripcije. Preverjam, da politike veder uveljavljajo
s3:x-amz-server-side-encryptionpri klicih PutObject. - Zloraba vnaprej podpisanih URL-jev - Aplikacije, ki generirajo vnaprej podpisane URL-je s pretirano dolgimi casi poteka ali ki razkrijejo vnaprej podpisane URL-je prek kode na strani odjemalca. Razkriti vnaprej podpisani URL zagotavlja neoverjen dostop do objekta.
Poti eskalacije privilegijev
Eskalacija privilegijev v AWS je eno najzanimivejsih podrocij za penetracijskega testerja. Za razliko od tradicionalnih okolij, kjer eskaliramo od uporabnika do root, v AWS eskaliramo dovoljenja prek interakcij med storitvami. Raziskava Rhino Security Labs, ki dokumentira vec kot 20 poti eskalacije privilegijev, ostaja bistveno branje.
- iam:PassRole z Lambda - Ce napadalec lahko ustvari funkcijo Lambda in ji dodeli vlogo z visokimi privilegiji, lahko izvaja kodo z dovoljenji te vloge. Za to so potrebna dovoljenja
iam:PassRole,lambda:CreateFunctioninlambda:InvokeFunction. - iam:PassRole z EC2 - Ustvarjanje primerka EC2 s profilom primerka, ki ima visja dovoljenja, nato dostop do storitve metapodatkov iz primerka za pridobitev zacasnih poverilnic.
- Vbrizgavanje kode funkcij Lambda - Ce napadalec lahko posodobi kodo obstojece funkcije Lambda (
lambda:UpdateFunctionCode), podeduje katero koli vlogo, ki je ze pripeta tej funkciji. - Manipulacija skladov CloudFormation - Ustvarjanje ali posodabljanje skladov CloudFormation z
iam:PassRoleza storitev CloudFormation, kar skladu omogoca ustvarjanje virov IAM ali drugih visoko privilegiranih virov v napadalcevem imenu. - SSM RunCommand - Z dovoljenjem
ssm:SendCommandlahko napadalec izvaja poljubne ukaze na primerkih EC2, ki poganjajo agenta SSM, in podeduje vloge IAM teh primerkov. - Zloraba profila primerka EC2 - Kompromitiranje primerka EC2 in poizvedovanje storitve metapodatkov na
169.254.169.254za pridobitev zacasnih poverilnic pripojetega profila primerka.
Druge napadalne povrsine AWS
- Napacne konfiguracije SQS/SNS - Cakalne vrste in teme s preohlapnimi politikami virov, ki omogocajo medracunski dostop ali vbrizgavanje sporocil.
- Skrivnosti v Parameter Store in Secrets Manager - Aplikacije pogosto shranjujejo poverilnice podatkovnih baz in kljuce API v teh storitvah. Preverjam, ali kompromitirane poverilnice IAM omogocajo pridobitev shranjenih skrivnosti.
- Javni dostop do RDS - Primerki podatkovnih baz z omogoceno zastavico
PubliclyAccessiblein varnostnimi skupinami, ki dovoljujejo vhodni dostop z0.0.0.0/0. - Deljenje posnetkov EBS - Posnetki EBS, deljeni javno ali z nenameravanimi racuni AWS. Ti lahko vsebujejo obcutljive podatke, poverilnice ali zasebne kljuce.
Po-izkoriščanje
Ko je zacetni dostop pridobljen, se pozornost preusmeri na sirsanje dostopa in dokazovanje vpliva:
- Pridobivanje poverilnic iz storitve metapodatkov - Storitev metapodatkov primerka EC2 (IMDS) zagotavlja zacasne poverilnice. IMDSv1 je ranljiv za napade na osnovi SSRF, medtem ko IMDSv2 zahteva zeton seje, vendar je se vedno dostopen iz samega primerka.
- Bocno premikanje prek SSM - Systems Manager Session Manager zagotavlja dostop do lupine na primerkih EC2 brez potrebe po kljucih SSH ali odprtih vratih. Kompromitirane poverilnice z dovoljenji SSM omogocajo bocno premikanje po celotni floti.
- Ekstrakcija podatkov - S3 je pogosta pot za ekstrakcijo. Preverjam tudi ekstrakcijo na osnovi DNS prek resolverjev Route 53 in koncnih tock VPC, ki omogocajo pretok podatkov do ciljev pod nadzorom napadalca.
Zaznava, obramba in spremljanje
- CloudTrail - Zagotovite, da je CloudTrail omogocen v vseh regijah z validacijo dnevniskih datotek. Spremljajte visoko tvegane klice API, kot so
CreateAccessKey,PutRolePolicyinCreateLoginProfile. - GuardDuty - Storitev AWS za zaznavo grozenj, ki prepozna anomalne klice API, rudarjenje kriptovalut in kompromitirane poverilnice. Je ena najvrednejsih varnostnih storitev za vklop.
- Pravila AWS Config - Uveljavljajte pravila skladnosti, kot so zahteva enkripcije za vedra S3, zahteva MFA za uporabnike IAM in prepoved vhodnega prometa z
0.0.0.0/0v varnostnih skupinah. - Politike nadzora storitev (SCP) - Politike na ravni organizacije, ki omejujejo, kaj clanski racuni lahko pocnejo, ne glede na njihove politike IAM. SCP-ji so najmocnejsi varovalni mehanizem v AWS Organizations.
Orodja in metodologija
Dobro zastavljen penetracijski test AWS se obicajno zacne s presejanjem v nacinu samo za branje, nadaljuje z ugotavljanjem poti eskalacije privilegijev in zakljuci z dokazovanjem vpliva prek nadzorovanega izkoriščanja.
- Pacu - Okvir za izkoriščanje AWS podjetja Rhino Security Labs. Avtomatizira presejanje, eskalacijo privilegijev in naloge po-izkoriščanja.
- ScoutSuite - Orodje za varnostno revizijo vec oblakov, ki generira obsezna porocila HTML o napacnih konfiguracijah v vseh storitvah AWS.
- Prowler - Orodje za ocenjevanje najboljsih praks varnosti AWS, usklajeno z merili CIS in drugimi okviri skladnosti.
- enumerate-iam - Z grobo silo doloca dovoljenja IAM za dane poverilnice s poskusom klicev API v vseh storitvah AWS.
- aws_consoler - Pretvori pristopne kljuce AWS v URL seje brskalniške konzole, kar je uporabno za vizualno raziskovanje okolja med ocenjevanjem.
Vedno zagotovite, da je vase testiranje pravilno zamejeno s podpisanim dokumentom o pravilih delovanja. AWS zahteva obvestilo za dolocene vrste testiranja, vsa dejavnost pa mora ostati znotraj meja lastniskih racunov in izrecno pooblascenih storitev.
Zanima vas vec o tej temi? Preberite mojo strokovno stran o Web Application Security →
Komentarji
Ni se komentarjev. Bodite prvi!
Dodaj komentar