Azure Active Directory, zdaj preimenovan v Microsoft Entra ID, služi kot identitetna hrbtenica za milijone organizacij po vsem svetu. Upravlja overitev, avtorizacijo in nadzor dostopa za Microsoft 365, vire Azure in tisočere aplikacije SaaS tretjih oseb. Ko so podjetja prešla na arhitekture z oblakom na prvem mestu, je Azure AD postal najpomembnejša komponenta njihove ravni varnosti. Napačna konfiguracija tukaj ne izpostavi le ene aplikacije -- lahko ogrozi celotno organizacijo. Pri mojih penetracijskih testiranjih okolij Azure napačne konfiguracije identitete dosledno prinašajo ugotovitve z največjim vplivom.
Razliko med objektom aplikacije in storitveno identiteto pojasnjuje Microsoft: Applications and service principals.
Azure AD v sodobni podjetniški identiteti
Azure AD deluje kot veliko več kot preprosta imenska storitev. Deluje kot centralni ponudnik identitete za hibridna okolja, ki povezuje lokalni Active Directory z oblačnimi 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 širina funkcionalnosti pomeni, da je napadalna površina ogromna. Vsaka funkcija, ki administratorjem zagotavlja udobje, predstavlja tudi potencialno napačno konfiguracijo, ki jo napadalci lahko izkoristijo.
Pogoste napačne konfiguracije v podrobnostih
- Phishing soglasja (nedovoljena soglasja) - To je eden najučinkovitejših napadov na Azure AD. Napadalec registrira zlonamerno aplikacijo v svojem najemniku in oblikuje phishing povezavo, ki žrtev usmeri na Microsoftov zaslon za soglasje. Če uporabnik odobri soglasje, napadalceva aplikacija prejme delegirana dovoljenja za dostop do uporabnikove pošte, 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 omogoča, da so povabljeni kot gostje. Privzeta dovoljenja gostujočih uporabnikov v mnogih najemnikih so preobširna in gostom dovoljujejo popis 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 storitvene identitete, ki imajo lahko obsežna dovoljenja. Pogoste težave vključujejo aplikacije z dovoljenji na ravni aplikacije za Microsoft Graph, kot sta Mail.ReadWrite ali Directory.ReadWrite.All, storitvene identitete s skrivnostmi odjemalca brez datuma poteka in aplikacije z administratorskim soglasjem za široke obsege, ki daleč presegajo njihove operativne zahteve.
- Vrzeli pogojnega dostopa - Pogojni dostop je primarni mehanizem uveljavljanja politik v Azure AD, vendar pogosto najdem kritične vrzeli. Pogoste težave vključujejo politike, ki zahtevajo MFA za portal Azure, ne pa za Azure CLI ali dostop PowerShell, račune za izredne razmere izključene iz vseh politik brez ustreznega nadzora, in manjkajoče zahteve skladnosti naprav, kar omogoča dostop z neupravljanih naprav.
Tehnike popisa
Učinkovita ocena Azure AD se začne s temeljitim pregledom. Tudi brez poverilnic je mogoče zbrati pomembne informacije o ciljnem najemniku.
- Odkrivanje najemnika - Javne končne točke razkrijejo obstoj in konfiguracijo najemnika. Poizvedba na
https://login.microsoftonline.com/[domena]/.well-known/openid-configurationvrne ID najemnika in končne točke avtorizacije. Končna točka autodiscover, API GetCredentialType in API za odkrivanje uporabniškega področja lahko razkrijejo, ali domena uporablja samo oblačno ali federirano overitev. - Popis uporabnikov - Več končnih točk Azure AD omogoča popis uporabniških imen brez overitve. API GetCredentialType se odzove drugače za veljavna in neveljavna uporabniška imena. Napadi razprševanja gesel lahko testirajo pogosta gesla proti popisanim uporabnikom, medtem ko ostanejo pod pragi zaklepanja.
- AADInternals - Ta modul PowerShell dr. Nestorja Syynimaa je eno najobsežnejših orodij za varnost Azure AD. Lahko popiše informacije o najemniku, izvaja popis uporabnikov, izvaža in uvaža konfiguracije Azure AD, manipulira registracije naprav in zlorablja različne 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 identitetih, vlogah in politikah najemnika, kar omogoča 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 stopnjevanja pravic
Stopnjevanje pravic v Azure AD pogosto sledi potem, ki povezujejo več napačnih konfiguracij. Razumevanje teh poti je kritično tako za napad kot za obrambo.
- Application Admin do Global Admin - Vloga Application Administrator lahko upravlja vse vidike registracij aplikacij in storitvenih identitet. Application Admin lahko doda nove poverilnice kateri koli aplikaciji, vključno s tistimi z visoko privilegiranimi dovoljenji Microsoft Graph ali tistimi, dodeljenimi privilegiranim vlogam imenika. Z dodajanjem skrivnosti storitveni identiteti, 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 naročnine, ki vsebuje račun Azure Automation z upravljano identiteto z dovoljenji Azure AD, izkoristi ta račun 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. Če napadalec ogrozi vir Azure, ki ima dodeljeno upravljano identiteto z visoko privilegiranimi dovoljenji Azure AD, lahko zahteva žetone od storitve metapodatkov instance in jih uporabi za izvajanje dejanj v Azure AD.
- Pridobivanje poverilnic storitvenih identitet - Storitvene identitete s skrivnostmi odjemalca, shranjenimi v repozitorijih kode, Key Vault s preohlapnimi politikami dostopa ali spremenljivkami okolja na ogroženih virih Azure zagotavljajo neposreden dostop do katerih koli dovoljenj, ki jih storitvena identiteta ima.
Napadi na osnovi žetonov
Overitev Azure AD na osnovi žetonov ustvarja specifične vektorje napadov, ko so žetoni ogroženi.
- Zloraba primarnega žetona za osvežitev (PRT) - PRT je izdan napravam, ki so pridružene ali registrirane v Azure AD, in zagotavlja SSO čez vse aplikacije Azure AD na tej napravi. Če napadalec pridobi PRT z ogrožene naprave z uporabo orodij kot ROADToken ali mimikatz, ga lahko uporabi za overitev kot uporabnik s katere koli naprave, s čimer obvozi politike pogojnega dostopa na osnovi naprav.
- Kraja dostopnih žetonov - Dostopni žetoni Azure AD so običajno veljavni 60-90 minut. Žetone, ukradene iz sej brskalnika, dnevnikov aplikacij ali izpisov pomnilnika, je mogoče uporabiti neposredno proti API-jem brez potrebe po uporabnikovih poverilnicah. Neprekinjena evalvacija dostopa (CAE) je izboljšala to stanje z omogočanjem preklica žetonov v skoraj realnem času za nekatere scenarije, vendar vse aplikacije ne podpirajo CAE.
- Ponovna uporaba žetonov za osvežitev - Žetoni za osvežitev imajo daljšo življenjsko dobo in jih je mogoče uporabiti za pridobivanje novih dostopnih žetonov. Če je žeton za osvežitev ukraden, lahko napadalec ohrani trajni dostop, dokler žeton ni preklican. Zaščita žetonov (dokaz posedovanja) povezuje žetone z zahtevajočo napravo, kar omili napade s ponovno uporabo žetonov, vendar zahteva sodobne odjemalce in še ni povsod uvedena.
Scenariji napadov iz prakse
S kombiniranjem zgornjih tehnik so tu scenariji napadov, s katerimi se srečujem med ocenami:
- Razprševanje gesel do dostopa do poštnega predala - Preverite veljavne uporabnike prek API GetCredentialType. Razpršite gesla s pogostimi gesli proti računom brez MFA. Uporabite pridobljene poverilnice za dostop do Outlook Web App, iskanje vsebine poštnega predala za dodatne poverilnice, konfiguracije VPN ali občutljive poslovne podatke.
- Veriga phishinga soglasij - Oblikujte phishing e-pošto s povezavo do strani za soglasje zlonamerne aplikacije. Ko uporabnik soglaša, uporabite delegirana dovoljenja za branje njegovih e-poštnih sporočil, prepoznavanje notranjih aplikacij in storitvenih računov ter odkrivanje poverilnic, deljenih prek e-pošte.
- Od registracije aplikacije do polne kompromitacije - Iz računa Application Administrator preverite storitvene identitete z visoko privilegiranimi dovoljenji. Dodajte novo skrivnost odjemalca storitveni identiteti z dovoljenjem Directory.ReadWrite.All. Overite se kot storitvena identiteta in spremenite objekte imenika, dodajte uporabnike v privilegirane vloge ali pridobite občutljive podatke.
Bistvena orodja
- AADInternals - Obsežen nabor orodij PowerShell za ocenjevanje, popis, izkoriščanje in vzdrževanje obstojnosti v Azure AD. Vključuje module za izvidovanje najemnikov, popis uporabnikov, manipulacijo žetonov, zlorabo pridružitve naprav in izvoz konfiguracije.
- ROADTools - Okvir za zbiranje in analizo podatkov Azure AD. ROADrecon zbira podatke najemnika, ROADlib zagotavlja knjižnico za interakcijo, spletni vmesnik pa omogoča raziskovanje strukture in razmerij najemnika.
- AzureHound - Zbiralnik podatkov za BloodHound, ki preslika napadne poti Azure AD in Azure Resource Manager. Bistven za prepoznavanje poti stopnjevanja pravic in razumevanje obsega vpliva ogroženih računov.
- TokenTactics - Modul PowerShell za manipulacijo žetonov Azure AD. Podpira pridobivanje žetonov prek različnih tokov, pridobivanje iz predpomnilnika žetonov, operacije s primarnim žetonom za osvežitev in testiranje neprekinjene evalvacije dostopa.
- MFASweep - Orodje za prepoznavanje računov Azure AD, ki nimajo uveljavljen MFA. Testira overitev proti več Microsoftovim storitvam za iskanje storitev, kjer MFA ni zahtevan, kar razkrije vrzeli pogojnega dostopa.
Priporočila za utrjevanje
- Uvedite potek administratorskega soglasja - Popolnoma onemogočite uporabniško 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 obstoječe registracije aplikacij glede prekomernih dovoljenj, poteklih ali nepotrebnih poverilnic in aplikacij, ki niso več v uporabi.
- Uvedite celovite politike pogojnega dostopa - Zahtevajte MFA za vse uporabnike v vseh oblačnih aplikacijah, ne le na portalu Azure. Uveljavljajte skladnost naprav za dostop do občutljivih podatkov. Uvedite politike tveganja prijave in tveganja uporabnika prek Azure AD Identity Protection. Blokirajte zastarele protokole overitve, ki ne morejo podpreti MFA.
- Omogočite PIM za privilegirane vloge - Privileged Identity Management zagotavlja aktivacijo vlog ob pravem času, ki od administratorjev zahteva izrecno aktivacijo njihovih privilegiranih vlog za omejen čas. Omogočite PIM za vse privilegirane vloge Azure AD in vloge virov Azure. Zahtevajte MFA in utemeljitev za aktivacijo vloge.
- Omogočite varnostne privzete vrednosti ali osnovne politike - Za organizacije brez licenc Azure AD Premium varnostne privzete vrednosti zagotavljajo osnovni nabor varnostnih mehanizmov identitete, vključno z registracijo MFA, izzivom MFA za administratorje in blokiranjem zastarele overitve.
- Neprekinjeno nadzorujte in revidirajte - Omogočite 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 neobičajnih lokacij ali naprav.
Sorodno branje: Microsoft 365 in Entra ID: zmanjšanje izpostavljenosti prevzemu računov in Pregled pravic v oblaku: storitveni računi in najmanjše potrebne pravice.
Zanima vas več o tej temi? Preberite mojo strokovno stran o Web Application Security →
Komentarji
Ni še komentarjev. Bodite prvi!
Dodaj komentar