Azure Active Directory, zdaj preimenovan v Microsoft Entra ID, sluzi kot identitetna hrbtenica za milijone organizacij po vsem svetu. Upravlja overitev, avtorizacijo in nadzor dostopa za Microsoft 365, vire Azure in tisocere aplikacije SaaS tretjih oseb. Ko so podjetja presla na arhitekture z oblakom na prvem mestu, je Azure AD postal najpomembnejsa komponenta njihove varnostne drze. Napacna konfiguracija tukaj ne izpostavi le ene aplikacije -- lahko ogrozi celotno organizacijo. Pri mojih penetracijskih testiranjih okolij Azure napacne konfiguracije identitete dosledno prinasajo ugotovitve z najvecjim vplivom.
Azure AD v sodobni podjetniski identiteti
Azure AD deluje kot veliko vec kot preprosta imenska storitev. Funkcjonira kot centralni ponudnik identitete za hibridna okolja, ki povezuje lokalni Active Directory z oblacnimi storitvami prek Azure AD Connect. Upravlja uveljavljanje politik pogojnega dostopa, okvire soglasij aplikacij, federacijo identitet B2B in B2C ter upravljanje naprav prek integracije z Intune. Ta sirina funkcionalnosti pomeni, da je napadalna povrsina ogromna. Vsaka funkcija, ki administratorjem zagotavlja udobje, predstavlja tudi potencialno napacno konfiguracijo, ki jo napadalci lahko izkoristijo.
Pogoste napacne konfiguracije v podrobnostih
- Phishing soglasja (nedovoljena soglasja) - To je eden najucinkovitejsih napadov na Azure AD. Napadalec registrira zlonamerno aplikacijo v svojem najemniku in oblikuje phishing povezavo, ki zrtev usmeri na Microsoftov zaslon za soglasje. Ce uporabnik odobri soglasje, napadalceva aplikacija prejme delegirana dovoljenja za dostop do uporabnikove poste, datotek ali profilnih podatkov. Nevaren vidik je, da to ne zahteva kraje poverilnic -- uporabnik se legitimno overi pri Microsoftu, dovoljenja pa ostanejo, dokler niso izrecno preklicana.
- Preohlapen dostop gostov (nastavitve B2B) - Sodelovanje Azure AD B2B zunanjim uporabnikom omogoca, da so povabljeni kot gostje. Privzeta dovoljenja gostujocih uporabnikov v mnogih najemnikih so preobsirna in gostom dovoljujejo presejanje vseh uporabnikov, skupin in aplikacij v imeniku. Nastavitve dostopa gostov bi morale zunanjim uporabnikom omejiti vpogled le na njihov lastni profil in vire, ki so z njimi izrecno deljeni.
- Nevarne registracije aplikacij - Registracije aplikacij v Azure AD ustvarjajo storitvena nacela, ki lahko drzijo mocna dovoljenja. Pogoste tezave vkljucujejo aplikacije z dovoljenji na ravni aplikacije za Microsoft Graph, kot sta Mail.ReadWrite ali Directory.ReadWrite.All, storitvena nacela s skrivnostmi odjemalca brez datuma poteka in aplikacije z administratorskim soglasjem za siroke obsege, ki dalec presegajo njihove operativne zahteve.
- Vrzeli pogojnega dostopa - Pogojni dostop je primarni mehanizem uveljavljanja politik v Azure AD, vendar pogosto najdem kriticne vrzeli. Pogoste tezave vkljucujejo politike, ki zahtevajo MFA za portal Azure, ne pa za Azure CLI ali dostop PowerShell, racune za izredne razmere izkljucene iz vseh politik brez ustreznega nadzora, in manjkajoce zahteve skladnosti naprav, kar omogoca dostop z neupravljanih naprav.
Tehnike presejanja
Ucinkovita ocena Azure AD se zacne s temeljitim presejanjem. Tudi brez poverilnic je mogoce zbrati pomembne informacije o ciljnem najemniku.
- Odkrivanje najemnika - Javne koncne tocke razkrijejo obstoj in konfiguracijo najemnika. Poizvedba na
https://login.microsoftonline.com/[domena]/.well-known/openid-configurationvrne ID najemnika in koncne tocke avtorizacije. Koncna tocka autodiscover, API GetCredentialType in API za odkrivanje uporabniskega podrocja lahko razkrijejo, ali domena uporablja samo oblacno ali federirano overitev. - Presejanje uporabnikov - Vec koncnih tock Azure AD omogoca presejanje uporabniskih imen brez overitve. API GetCredentialType se odzove drugace za veljavna in neveljavna uporabniska imena. Napadi razprsevanja gesel lahko testirajo pogosta gesla proti presejanim uporabnikom, medtem ko ostanejo pod pragi zaklepanja.
- AADInternals - Ta modul PowerShell dr. Nestorija Syynimaa je eno najobseznejsih orodij za varnost Azure AD. Lahko preseja informacije o najemniku, izvaja presejanje uporabnikov, izvaza in uvaza konfiguracije Azure AD, manipulira registracije naprav in zlorablja razlicne funkcije Azure AD.
- ROADTools - Razvil ga je Dirk-jan Mollema. ROADTools zbira in analizira podatke Azure AD prek Microsoft Graph API in notranjih API-jev Azure AD. Ustvari lokalno bazo podatkov SQLite o uporabnikih, skupinah, aplikacijah, storitvenih nacelih, vlogah in politikah najemnika, kar omogoca analizo brez povezave.
- AzureHound - Komponenta Azure projekta BloodHound. Zbira podatke Azure AD in Azure Resource Manager ter preslika napadne poti od trenutnega dostopa do visoko vrednih ciljev, kot je Global Admin.
Poti eskalacije privilegijev
Eskalacija privilegijev v Azure AD pogosto sledi potem, ki verizijo vec napacnih konfiguracij. Razumevanje teh poti je kriticno tako za napad kot za obrambo.
- Application Admin do Global Admin - Vloga Application Administrator lahko upravlja vse vidike registracij aplikacij in storitvenih nacel. Application Admin lahko doda nove poverilnice kateri koli aplikaciji, vkljucno s tistimi z visoko privilegiranimi dovoljenji Microsoft Graph ali tistimi, dodeljenimi privilegiranim vlogam imenika. Z dodajanjem skrivnosti storitvenemu nacelu, ki ima dodeljeno vlogo Global Administrator, Application Admin dejansko postane Global Admin.
- Vloge virov Azure, ki presegajo v Azure AD - Vloga User Access Administrator na obsegu korenskih upravnih skupin v Azure lahko sama sebi dodeli katero koli vlogo Azure AD. Podobno lahko lastnik narocnine, ki vsebuje racun Azure Automation z upravljano identiteto z dovoljenji Azure AD, izkoristi ta racun za izvajanje dejanj v Azure AD.
- Zloraba upravljane identitete - Upravljane identitete Azure zagotavljajo identiteto za vire Azure za overitev pri storitvah, ki podpirajo overitev Azure AD. Ce napadalec ogrozi vir Azure, ki ima dodeljeno upravljano identiteto z visoko privilegiranimi dovoljenji Azure AD, lahko zahteva zetone od storitve metapodatkov instance in jih uporabi za izvajanje dejanj v Azure AD.
- Pridobivanje poverilnic storitvenih nacel - Storitvena nacela s skrivnostmi odjemalca, shranjenimi v repozitorijih kode, Key Vault s preohlapnimi politikami dostopa ali spremenljivkami okolja na ogrozenih virih Azure zagotavljajo neposreden dostop do katerih koli dovoljenj, ki jih storitveno nacelo ima.
Napadi na osnovi zetonov
Overitev Azure AD na osnovi zetonov ustvarja specificne vektorje napadov, ko so zetoni ogrozeni.
- Zloraba primarnega zetona za osvezitev (PRT) - PRT je izdan napravam, ki so pridruzene ali registrirane v Azure AD, in zagotavlja SSO cez vse aplikacije Azure AD na tej napravi. Ce napadalec pridobi PRT z ogrozene naprave z uporabo orodij kot ROADToken ali mimikatz, ga lahko uporabi za overitev kot uporabnik s katere koli naprave, s cimer obvozi politike pogojnega dostopa na osnovi naprav.
- Kraja pristopnih zetonov - Pristopni zetoni Azure AD so obicajno veljavni 60-90 minut. Zetone, ukradene iz sej brskalnika, dnevnikov aplikacij ali izpisov pomnilnika, je mogoce uporabiti neposredno proti API-jem brez potrebe po uporabnikovih poverilnicah. Neprekinjena evalvacija dostopa (CAE) je izboljsala to stanje z omogocanjem preklica zetonov v skoraj realnem casu za nekatere scenarije, vendar vse aplikacije ne podpirajo CAE.
- Predvajanje zetonov za osvezitev - Zetoni za osvezitev imajo daljso zivljenjsko dobo in jih je mogoce uporabiti za pridobivanje novih pristopnih zetonov. Ce je zeton za osvezitev ukraden, lahko napadalec ohrani trajni dostop, dokler zeton ni preklican. Zascita zetonov (dokaz posedovanja) povezuje zetone z zahtevajoco napravo, kar omili napade predvajanja, vendar zahteva sodobne odjemalce in se ni univerzalno uvedena.
Scenariji napadov iz prakse
S kombiniranjem zgornjih tehnik so tu scenariji napadov, s katerimi se srecujem med ocenami:
- Razprsevanje gesel do dostopa do postnega predala - Presejte veljavne uporabnike prek API GetCredentialType. Razprsite gesla s pogostimi gesli proti racunom brez MFA. Uporabite pridobljene poverilnice za dostop do Outlook Web App, iskanje vsebine postnega predala za dodatne poverilnice, konfiguracije VPN ali obcutljive poslovne podatke.
- Veriga phishinga soglasij - Oblikujte phishing e-posto s povezavo do strani za soglasje zlonamerne aplikacije. Ko uporabnik soglaša, uporabite delegirana dovoljenja za branje njegovih e-postnih sporocil, prepoznavanje notranjih aplikacij in storitvenih racunov ter odkrivanje poverilnic, deljenih prek e-poste.
- Od registracije aplikacije do polne kompromitacije - Iz racuna Application Administrator presejte storitvena nacela z visoko privilegiranimi dovoljenji. Dodajte novo skrivnost odjemalca storitvenemu nacelu z dovoljenjem Directory.ReadWrite.All. Overite se kot storitveno nacelo in spremenite objekte imenika, dodajte uporabnike v privilegirane vloge ali pridobite obcutljive podatke.
Bistvena orodja
- AADInternals - Obsezen nabor orodij PowerShell za ocenjevanje, presejanje, izkoriscanje in vzdrzevanje obstojnosti v Azure AD. Vkljucuje module za izvidovanje najemnikov, presejanje uporabnikov, manipulacijo zetonov, zlorabo pridruzitve naprav in izvoz konfiguracije.
- ROADTools - Okvir za zbiranje in analizo podatkov Azure AD. ROADrecon zbira podatke najemnika, ROADlib zagotavlja knjiznico za interakcijo, spletni vmesnik pa omogoca raziskovanje strukture in razmerij najemnika.
- AzureHound - Zbiralnik podatkov za BloodHound, ki preslika napadne poti Azure AD in Azure Resource Manager. Bistven za prepoznavanje poti eskalacije privilegijev in razumevanje obsega vpliva ogrozenih racunov.
- TokenTactics - Modul PowerShell za manipulacijo zetonov Azure AD. Podpira pridobivanje zetonov prek razlicnih tokov, pridobivanje iz predpomnilnika zetonov, operacije s primarnim zetonom za osvezitev in testiranje neprekinjene evalvacije dostopa.
- MFASweep - Orodje za prepoznavanje racunov Azure AD, ki nimajo uveljavljen MFA. Testira overitev proti vec Microsoftovim storitvam za iskanje storitev, kjer MFA ni zahtevan, kar razkrije vrzeli pogojnega dostopa.
Priporocila za utrjevanje
- Implementirajte potek administratorskega soglasja - Popolnoma onemogocite uporabnisko soglasje za aplikacije ali ga omejite na preverjene izdajatelje z dovoljenji z nizkim tveganjem. Zahtevajte administratorsko odobritev za vse zahteve za soglasje aplikacij. Ta sama sprememba odpravi vektor napada phishinga soglasij.
- Omejite registracije aplikacij - Omejite, kdo lahko registrira aplikacije v Azure AD. Redno revidirajte obstojoce registracije aplikacij glede prekomernih dovoljenj, poteklih ali nepotrebnih poverilnic in aplikacij, ki niso vec v uporabi.
- Uvedite celovite politike pogojnega dostopa - Zahtevajte MFA za vse uporabnike v vseh oblacnih aplikacijah, ne le na portalu Azure. Uveljavljajte skladnost naprav za dostop do obcutljivih podatkov. Implementirajte politike tveganja prijave in tveganja uporabnika prek Azure AD Identity Protection. Blokirajte zastarele protokole overitve, ki ne morejo podpreti MFA.
- Omogocite PIM za privilegirane vloge - Privileged Identity Management zagotavlja aktivacijo vlog ob pravem casu, ki od administratorjev zahteva izrecno aktivacijo njihovih privilegiranih vlog za omejen cas. Omogocite PIM za vse privilegirane vloge Azure AD in vloge virov Azure. Zahtevajte MFA in utemeljitev za aktivacijo vloge.
- Omogocite varnostne privzete vrednosti ali osnovne politike - Za organizacije brez licenc Azure AD Premium varnostne privzete vrednosti zagotavljajo osnovni nabor varnostnih mehanizmov identitete, vkljucno z registracijo MFA, izzivom MFA za administratorje in blokiranjem zastarele overitve.
- Neprekinjeno nadzorujte in revidirajte - Omogocite revizijske dnevnike Azure AD in dnevnike prijav z zadrževanjem v SIEM. Opozorite na visoko tvegane dogodke: nove dodelitve Global Admin, podelitve soglasij aplikacij, spremembe politik pogojnega dostopa in overitve z neobicajnih lokacij ali naprav.
Zanima vas vec o tej temi? Preberite mojo strokovno stran o Web Application Security →
Komentarji
Ni se komentarjev. Bodite prvi!
Dodaj komentar