Translated ['src/pentesting-cloud/azure-security/az-basic-information/RE

This commit is contained in:
Translator
2025-02-10 23:32:38 +00:00
parent ce5b2c49d9
commit 7af74473e6
2 changed files with 112 additions and 105 deletions

View File

@@ -1,12 +1,12 @@
# Az - Osnovne Informacije
# Az - Osnovne informacije
{{#include ../../../banners/hacktricks-training.md}}
## Hijerarhija Organizacije
## Hijerarhija organizacije
<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUcVrh1BpuQXN7RzGqoxrn-4Nm_sjdJU-dDTvshloB7UMQnN1mtH9N94zNiPCzOYAqE9EsJqlboZOj47tQsQktjxszpKvIDPZLs9rgyiObcZCvl7N0ZWztshR0ZddyBYZIAwPIkrEQ=s2048?key=l3Eei079oPmVJuh8lxQYxxrB" alt=""><figcaption><p><a href="https://www.tunecom.be/stg_ba12f/wp-content/uploads/2020/01/VDC-Governance-ManagementGroups-1536x716.png">https://www.tunecom.be/stg_ba12f/wp-content/uploads/2020/01/VDC-Governance-ManagementGroups-1536x716.png</a></p></figcaption></figure>
### Grupa za Upravljanje
### Grupa za upravljanje
- Može sadržati **druge grupe za upravljanje ili pretplate**.
- Ovo omogućava **primenu kontrola upravljanja** kao što su RBAC i Azure Policy jednom na nivou grupe za upravljanje i da se one **naslede** od svih pretplata u grupi.
@@ -19,14 +19,14 @@
<figure><img src="../../../images/image (147).png" alt=""><figcaption><p><a href="https://td-mainsite-cdn.tutorialsdojo.com/wp-content/uploads/2023/02/managementgroups-768x474.png">https://td-mainsite-cdn.tutorialsdojo.com/wp-content/uploads/2023/02/managementgroups-768x474.png</a></p></figcaption></figure>
### Azure Pretplate
### Azure pretplate
- To je još jedan **logički kontejner gde se resursi** (VM-ovi, DB-ovi…) mogu pokretati i biće naplaćeni.
- To je još jedan **logički kontejner u kojem se mogu pokretati resursi** (VM-ovi, DB-ovi…) i za koji će se naplaćivati.
- Njegov **roditelj** je uvek **grupa za upravljanje** (i može biti grupa za upravljanje korenom) jer pretplate ne mogu sadržati druge pretplate.
- **Veruje samo jednoj Entra ID** direktoriji.
- **Dozvole** primenjene na nivou pretplate (ili bilo kojem od njenih roditelja) se **nasleđuju** svim resursima unutar pretplate.
- **Veruje samo jednoj Entra ID** direktoriji
- **Dozvole** primenjene na nivou pretplate (ili bilo kojem od njenih roditelja) se **nasleđuju** svim resursima unutar pretplate
### Grupe Resursa
### Grupe resursa
[Iz dokumenata:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) Grupa resursa je **kontejner** koji sadrži **povezane resurse** za Azure rešenje. Grupa resursa može uključivati sve resurse za rešenje, ili samo one **resurse koje želite da upravljate kao grupu**. Generalno, dodajte **resurse** koji dele **isti životni ciklus** u istu grupu resursa kako biste ih lako implementirali, ažurirali i obrisali kao grupu.
@@ -34,15 +34,15 @@ Svi **resursi** moraju biti **unutar grupe resursa** i mogu pripadati samo jedno
<figure><img src="https://i0.wp.com/azuredays.com/wp-content/uploads/2020/05/org.png?resize=748%2C601&ssl=1" alt=""><figcaption><p><a href="https://i0.wp.com/azuredays.com/wp-content/uploads/2020/05/org.png?resize=748%2C601&ssl=1">https://i0.wp.com/azuredays.com/wp-content/uploads/2020/05/org.png?resize=748%2C601&ssl=1</a></p></figcaption></figure>
### Azure Resursni ID-evi
### Azure Resource IDs
Svaki resurs u Azure-u ima Azure Resursni ID koji ga identifikuje.
Svaki resurs u Azure-u ima Azure Resource ID koji ga identifikuje.
Format Azure Resursnog ID-a je sledeći:
Format Azure Resource ID-a je sledeći:
- `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}`
Za virtuelnu mašinu nazvanu myVM u grupi resursa `myResourceGroup` pod ID-jem pretplate `12345678-1234-1234-1234-123456789012`, Azure Resursni ID izgleda ovako:
Za virtuelnu mašinu nazvanu myVM u grupi resursa `myResourceGroup` pod ID-jem pretplate `12345678-1234-1234-1234-123456789012`, Azure Resource ID izgleda ovako:
- `/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM`
@@ -50,15 +50,15 @@ Za virtuelnu mašinu nazvanu myVM u grupi resursa `myResourceGroup` pod ID-jem p
### Azure
Azure je Microsoftova sveobuhvatna **platforma za cloud računarstvo, koja nudi širok spektar usluga**, uključujući virtuelne mašine, baze podataka, veštačku inteligenciju i skladištenje. Deluje kao osnova za hostovanje i upravljanje aplikacijama, izgradnju skalabilnih infrastruktura i pokretanje modernih radnih opterećenja u oblaku. Azure pruža alate za programere i IT profesionalce da kreiraju, implementiraju i upravljaju aplikacijama i uslugama bez problema, zadovoljavajući razne potrebe od startapa do velikih preduzeća.
Azure je Microsoftova sveobuhvatna **platforma za cloud računarstvo, koja nudi širok spektar usluga**, uključujući virtuelne mašine, baze podataka, veštačku inteligenciju i skladištenje. Ona služi kao osnova za hostovanje i upravljanje aplikacijama, izgradnju skalabilnih infrastruktura i pokretanje modernih radnih opterećenja u oblaku. Azure pruža alate za programere i IT profesionalce da kreiraju, implementiraju i upravljaju aplikacijama i uslugama bez problema, zadovoljavajući razne potrebe od startapa do velikih preduzeća.
### Entra ID (ranije Azure Active Directory)
Entra ID je cloud-bazirana **usluga upravljanja identitetom i pristupom** dizajnirana da se bavi autentifikacijom, autorizacijom i kontrolom pristupa korisnika. Omogućava siguran pristup Microsoftovim uslugama kao što su Office 365, Azure i mnoge treće strane SaaS aplikacije. Sa funkcijama kao što su jedinstveno prijavljivanje (SSO), višefaktorska autentifikacija (MFA) i uslovi pristupa među ostalim.
Entra ID je cloud-bazirana **usluga upravljanja identitetom i pristupom** dizajnirana da se bavi autentifikacijom, autorizacijom i kontrolom pristupa korisnika. Ona omogućava siguran pristup Microsoftovim uslugama kao što su Office 365, Azure i mnoge aplikacije trećih strana. Sa funkcijama kao što su jedinstveno prijavljivanje (SSO), višefaktorska autentifikacija (MFA) i politike uslovnog pristupa, između ostalog.
### Entra Domain Services (ranije Azure AD DS)
Entra Domain Services proširuje mogućnosti Entra ID-a nudeći **upravljane usluge domena kompatibilne sa tradicionalnim Windows Active Directory okruženjima**. Podržava nasleđene protokole kao što su LDAP, Kerberos i NTLM, omogućavajući organizacijama da migriraju ili pokreću starije aplikacije u oblaku bez implementacije lokalnih kontrolera domena. Ova usluga takođe podržava grupne politike za centralizovano upravljanje, što je čini pogodnom za scenarije gde nasleđena ili AD-bazirana radna opterećenja treba da koegzistiraju sa modernim cloud okruženjima.
Entra Domain Services proširuje mogućnosti Entra ID nudeći **upravljane usluge domena kompatibilne sa tradicionalnim Windows Active Directory okruženjima**. Podržava nasleđene protokole kao što su LDAP, Kerberos i NTLM, omogućavajući organizacijama da migriraju ili pokreću starije aplikacije u oblaku bez implementacije lokalnih kontrolera domena. Ova usluga takođe podržava grupne politike za centralizovano upravljanje, što je čini pogodnom za scenarije u kojima nasleđena ili AD-bazirana radna opterećenja treba da koegzistiraju sa modernim cloud okruženjima.
## Entra ID Principali
@@ -66,7 +66,7 @@ Entra Domain Services proširuje mogućnosti Entra ID-a nudeći **upravljane usl
- **Novi korisnici**
- Naznačite ime i domen e-pošte iz odabranog tenant-a
- Naznačite Prikazano ime
- Naznačite prikazano ime
- Naznačite lozinku
- Naznačite svojstva (ime, radno mesto, kontakt informacije…)
- Podrazumevani tip korisnika je “**član**”
@@ -75,40 +75,40 @@ Entra Domain Services proširuje mogućnosti Entra ID-a nudeći **upravljane usl
- Naznačite svojstva
- Podrazumevani tip korisnika je “**Gost**”
### Podrazumevane Dozvole Članova i Gostiju
### Podrazumevane dozvole članova i gostiju
Možete ih proveriti na [https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions) ali među ostalim radnjama član će moći da:
- Čita sve korisnike, Grupe, Aplikacije, Uređaje, Uloge, Pretplate i njihove javne osobine
- Poziva Goste (_može se isključiti_)
- Kreira Bezbednosne grupe
- Čita ne-skrivene članstva Grupa
- Dodaje goste u Vlasničke grupe
- Čita sve korisnike, grupe, aplikacije, uređaje, uloge, pretplate i njihove javne osobine
- Poziva goste (_može se isključiti_)
- Kreira sigurnosne grupe
- Čita ne-skrivene članstva grupa
- Dodaje goste u vlasničke grupe
- Kreira nove aplikacije (_može se isključiti_)
- Dodaje do 50 uređaja u Azure (_može se isključiti_)
> [!NOTE]
> Zapamtite da da bi se enumerisali Azure resursi, korisnik treba da ima eksplicitno odobrenje za dozvolu.
### Podrazumevane Konfigurabilne Dozvole Korisnika
### Podrazumevane konfigurabilne dozvole korisnika
- **Članovi (**[**docs**](https://learn.microsoft.com/en-gb/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions)**)**
- Registrujte Aplikacije: Podrazumevano **Da**
- Ograničite ne-administrativne korisnike od kreiranja tenant-a: Podrazumevano **Ne**
- Kreirajte bezbednosne grupe: Podrazumevano **Da**
- Ograničite pristup Microsoft Entra administrativnom portalu: Podrazumevano **Ne**
- Registracija aplikacija: Podrazumevano **Da**
- Ograničavanje ne-administrativnih korisnika od kreiranja tenant-a: Podrazumevano **Ne**
- Kreiranje sigurnosnih grupa: Podrazumevano **Da**
- Ograničavanje pristupa Microsoft Entra administrativnom portalu: Podrazumevano **Ne**
- Ovo ne ograničava API pristup portalu (samo web)
- Dozvolite korisnicima da povežu radni ili školski nalog sa LinkedIn-om: Podrazumevano **Da**
- Prikaži zadrži korisnika prijavljenim: Podrazumevano **Da**
- Ograničite korisnike od oporavka BitLocker ključeva za njihove vlasničke uređaje: Podrazumevano Ne (proverite u Podešavanjima Uređaja)
- Čitajte druge korisnike: Podrazumevano **Da** (putem Microsoft Graph-a)
- Prikazivanje zadržavanja korisnika prijavljenim: Podrazumevano **Da**
- Ograničavanje korisnika od oporavka BitLocker ključeva za njihove vlasničke uređaje: Podrazumevano Ne (proverite u podešavanjima uređaja)
- Čitanje drugih korisnika: Podrazumevano **Da** (putem Microsoft Graph)
- **Gosti**
- **Ograničenja pristupa gostujućih korisnika** opcije:
- **Gosti imaju isti pristup kao članovi**.
- **Gosti imaju ograničen pristup osobinama i članstvima objekata direktorijuma (podrazumevano)**. Ovo ograničava pristup gostiju samo na njihov profil korisnika po default-u. Pristup informacijama o drugim korisnicima i grupama više nije dozvoljen.
- **Pristup gostujućih korisnika je ograničen na osobine i članstva njihovih vlastitih objekata direktorijuma** je najrestriktivniji.
- **Gosti imaju ograničen pristup svojstvima i članstvima objekata direktorijuma (podrazumevano)**. Ovo ograničava pristup gostiju samo na njihov profil korisnika po default-u. Pristup informacijama o drugim korisnicima i grupama više nije dozvoljen.
- **Pristup gostujućih korisnika je ograničen na svojstva i članstva njihovih vlastitih objekata direktorijuma** je najrestriktivniji.
- **Gosti mogu pozivati** opcije:
- **Svako u organizaciji može pozvati gostujuće korisnike uključujući goste i ne-administratore (najinkluzivnije) - Podrazumevano**
- **Svako u organizaciji može pozvati gostujuće korisnike uključujući goste i ne-admine (najinkluzivnije) - Podrazumevano**
- **Članovi korisnici i korisnici dodeljeni specifičnim administrativnim ulogama mogu pozvati gostujuće korisnike uključujući goste sa članovskim dozvolama**
- **Samo korisnici dodeljeni specifičnim administrativnim ulogama mogu pozvati gostujuće korisnike**
- **Niko u organizaciji ne može pozvati gostujuće korisnike uključujući administratore (najrestriktivnije)**
@@ -122,110 +122,110 @@ Možete ih proveriti na [https://learn.microsoft.com/en-us/entra/fundamentals/us
Postoje **2 tipa grupa**:
- **Bezbednosne**: Ova vrsta grupe se koristi za davanje članovima pristupa aplikacijama, resursima i dodeljivanje licenci. Korisnici, uređaji, servisni principi i druge grupe mogu biti članovi.
- **Microsoft 365**: Ova vrsta grupe se koristi za saradnju, dajući članovima pristup zajedničkoj pošti, kalendaru, datotekama, SharePoint sajtu, itd. Članovi grupe mogu biti samo korisnici.
- **Sigurnosne**: Ova vrsta grupe se koristi za davanje članovima pristupa aplikacijama, resursima i dodeljivanje licenci. Korisnici, uređaji, servisni principi i druge grupe mogu biti članovi.
- **Microsoft 365**: Ova vrsta grupe se koristi za saradnju, dajući članovima pristup zajedničkoj pošti, kalendaru, datotekama, SharePoint lokaciji, itd. Članovi grupe mogu biti samo korisnici.
- Ovo će imati **adresu e-pošte** sa domenom EntraID tenant-a.
Postoje **2 tipa članstava**:
Postoje **2 tipa članstva**:
- **Dodeljeno**: Omogućava ručno dodavanje specifičnih članova u grupu.
- **Dinamičko članstvo**: Automatski upravlja članstvom koristeći pravila, ažurirajući uključivanje grupe kada se atributi članova promene.
### **Servisni Principi**
### **Servisni principi**
**Servisni Princip** je **identitet** kreiran za **upotrebu** sa **aplikacijama**, hostovanim uslugama i automatizovanim alatima za pristup Azure resursima. Ovaj pristup je **ograničen ulogama dodeljenim** servisnom principu, dajući vam kontrolu nad **koji resursi mogu biti pristupljeni** i na kojem nivou. Iz bezbednosnih razloga, uvek se preporučuje da **koristite servisne principe sa automatizovanim alatima** umesto da im dozvolite prijavu sa korisničkim identitetom.
**Servisni princip** je **identitet** kreiran za **upotrebu** sa **aplikacijama**, hostovanim uslugama i automatizovanim alatima za pristup Azure resursima. Ovaj pristup je **ograničen ulogama dodeljenim** servisnom principu, dajući vam kontrolu nad **koji resursi mogu biti pristupljeni** i na kojem nivou. Iz bezbednosnih razloga, uvek se preporučuje da **koristite servisne principe sa automatizovanim alatima** umesto da im dozvolite prijavu sa korisničkim identitetom.
Moguće je **direktno se prijaviti kao servisni princip** generišući mu **tajnu** (lozinku), **sertifikat**, ili dodeljujući **federisani** pristup trećim platformama (npr. Github Actions) preko njega.
Moguće je **direktno se prijaviti kao servisni princip** generišući mu **tajnu** (lozinku), **sertifikat**, ili dodeljujući **federisani** pristup platformama trećih strana (npr. Github Actions) preko njega.
- Ako izaberete **lozinku** za autentifikaciju (podrazumevano), **sačuvajte generisanu lozinku** jer je nećete moći ponovo pristupiti.
- Ako izaberete autentifikaciju sertifikatom, uverite se da će **aplikacija imati pristup privatnom ključu**.
### Registracije Aplikacija
### Registracije aplikacija
**Registracija Aplikacije** je konfiguracija koja omogućava aplikaciji da se integriše sa Entra ID i da izvršava radnje.
**Registracija aplikacije** je konfiguracija koja omogućava aplikaciji da se integriše sa Entra ID i da izvršava radnje.
#### Ključne Komponente:
#### Ključne komponente:
1. **ID Aplikacije (Client ID):** Jedinstveni identifikator za vašu aplikaciju u Azure AD.
2. **Redirect URIs:** URL-ovi gde Azure AD šalje odgovore na autentifikaciju.
3. **Sertifikati, Tajne & Federisani Akreditivi:** Moguće je generisati tajnu ili sertifikat za prijavu kao servisni princip aplikacije, ili dodeliti federisani pristup (npr. Github Actions).
1. **ID aplikacije (Client ID):** Jedinstveni identifikator za vašu aplikaciju u Azure AD.
2. **Redirect URIs:** URL-ovi na koje Azure AD šalje odgovore na autentifikaciju.
3. **Sertifikati, tajne i federisani kredencijali:** Moguće je generisati tajnu ili sertifikat za prijavu kao servisni princip aplikacije, ili dodeliti federisani pristup (npr. Github Actions).
1. Ako je **sertifikat** ili **tajna** generisana, moguće je da osoba **prijavi kao servisni princip** koristeći CLI alate znajući **ID aplikacije**, **tajnu** ili **sertifikat** i **tenant** (domen ili ID).
4. **API Dozvole:** Specifikuje koje resurse ili API-je aplikacija može pristupiti.
5. **Podešavanja Autentifikacije:** Definiše podržane tokove autentifikacije aplikacije (npr., OAuth2, OpenID Connect).
6. **Servisni Princip**: Servisni princip se kreira kada se aplikacija kreira (ako se to uradi iz web konzole) ili kada se instalira u novom tenant-u.
4. **API dozvole:** Specifikuje koje resurse ili API-je aplikacija može pristupiti.
5. **Podešavanja autentifikacije:** Definiše podržane tokove autentifikacije aplikacije (npr., OAuth2, OpenID Connect).
6. **Servisni princip**: Servisni princip se kreira kada se aplikacija kreira (ako se to uradi iz web konzole) ili kada se instalira u novom tenant-u.
1. **Servisni princip** će dobiti sve tražene dozvole sa kojima je konfigurisan.
### Podrazumevane Dozvole za Pristanak
### Podrazumevane dozvole pristanka
**Korisnički pristanak za aplikacije**
- **Ne dozvoliti korisnički pristanak**
- Administrator će biti potreban za sve aplikacije.
- **Dozvoliti korisnički pristanak za aplikacije od verifikovanih izdavača, za odabrane dozvole (Preporučeno)**
- Svi korisnici mogu dati pristanak za dozvole klasifikovane kao "niskog uticaja", za aplikacije od verifikovanih izdavača ili aplikacije registrovane u ovoj organizaciji.
- **Podrazumevane** dozvole niskog uticaja (iako morate prihvatiti da ih dodate kao niske):
- User.Read - prijavite se i pročitajte korisnički profil
- offline_access - održava pristup podacima kojima su korisnici dali pristup
- openid - prijavite korisnike
- profile - prikažite osnovni profil korisnika
- email - prikažite adresu e-pošte korisnika
- **Dozvoliti korisnički pristanak za aplikacije (Podrazumevano)**
- Svi korisnici mogu dati pristanak za bilo koju aplikaciju da pristupi podacima organizacije.
- **Dozvoliti korisnički pristanak za aplikacije od verifikovanih izdavača, interne aplikacije i aplikacije koje traže samo odabrane dozvole (preporučeno)**
- Svi korisnici mogu pristati na aplikacije koje traže samo dozvole klasifikovane kao "niskog uticaja", aplikacije od verifikovanih izdavača i aplikacije registrovane u tenant-u.
- **Podrazumevane** dozvole niskog uticaja (iako ih treba prihvatiti da bi se dodale kao niske):
- User.Read - prijava i čitanje korisničkog profila
- offline_access - održavanje pristupa podacima kojima su korisnici dali pristup
- openid - prijava korisnika
- profile - pregled osnovnog profila korisnika
- email - pregled adrese e-pošte korisnika
- **Dozvoliti korisnički pristanak za aplikacije (podrazumevano)**
- Svi korisnici mogu pristati na bilo koju aplikaciju da pristupi podacima organizacije.
**Zahtevi za pristanak administratora**: Podrazumevano **Ne**
- Korisnici mogu zatražiti pristanak administratora za aplikacije za koje ne mogu dati pristanak
- Ako je **Da**: Moguće je naznačiti Korisnike, Grupe i Uloge koje mogu dati pristanke
- Korisnici mogu zatražiti pristanak administratora za aplikacije na koje ne mogu pristati
- Ako je **Da**: Moguće je naznačiti korisnike, grupe i uloge koje mogu pristati na zahteve
- Takođe konfigurišite da li će korisnici primati obaveštenja putem e-pošte i podsetnike o isteku
### **Upravljani Identitet (Metapodaci)**
### **Upravljani identitet (metapodaci)**
Upravljani identiteti u Azure Active Directory nude rešenje za **automatsko upravljanje identitetom** aplikacija. Ovi identiteti se koriste od strane aplikacija u svrhu **povezivanja** sa **resursima** kompatibilnim sa autentifikacijom Azure Active Directory (**Azure AD**). Ovo omogućava **uklanjanje potrebe za hardkodiranjem cloud akreditiva** u kodu jer će aplikacija moći da kontaktira **metapodatkovnu** uslugu kako bi dobila važeći token za **izvršavanje radnji** kao naznačeni upravljani identitet u Azure-u.
Upravljani identiteti u Azure Active Directory nude rešenje za **automatsko upravljanje identitetom** aplikacija. Ovi identiteti se koriste od strane aplikacija u svrhu **povezivanja** sa **resursima** kompatibilnim sa autentifikacijom Azure Active Directory (**Azure AD**). Ovo omogućava **uklanjanje potrebe za hardkodiranjem cloud kredencijala** u kodu jer će aplikacija moći da kontaktira **metapodatkovnu** uslugu kako bi dobila važeći token za **izvršavanje radnji** kao naznačeni upravljani identitet u Azure-u.
Postoje dva tipa upravljanih identiteta:
- **Sistemom dodeljeni**. Neke Azure usluge omogućavaju da **omogućite upravljani identitet direktno na instanci usluge**. Kada omogućite sistemom dodeljeni upravljeni identitet, **servisni princip** se kreira u Entra ID tenant-u kojem veruje pretplata gde se resurs nalazi. Kada se **resurs** **obriše**, Azure automatski **briše** **identitet** za vas.
- **Sistemom dodeljeni**. Neke Azure usluge omogućavaju da **omogućite upravljani identitet direktno na instanci usluge**. Kada omogućite sistemom dodeljeni upravljeni identitet, **servisni princip** se kreira u Entra ID tenant-u kojem veruje pretplata u kojoj se resurs nalazi. Kada se **resurs** **obriše**, Azure automatski **briše** **identitet** za vas.
- **Korisnikom dodeljeni**. Takođe je moguće da korisnici generišu upravljane identitete. Ovi se kreiraju unutar grupe resursa unutar pretplate i servisni princip će biti kreiran u EntraID kojem veruje pretplata. Zatim, možete dodeliti upravljeni identitet jednoj ili **više instanci** Azure usluge (više resursa). Za korisnikom dodeljene upravljane identitete, **identitet se upravlja odvojeno od resursa koji ga koriste**.
Upravljani identiteti **ne generišu večne akreditive** (kao što su lozinke ili sertifikati) za pristup kao servisni princip koji je povezan sa njima.
Upravljani identiteti **ne generišu večne kredencijale** (kao što su lozinke ili sertifikati) za pristup kao servisni princip koji je povezan sa njima.
### Preduzeća Aplikacije
### Preduzeća aplikacije
To je samo **tabela u Azure-u za filtriranje servisnih principa** i proveru aplikacija koje su dodeljene.
**To nije još jedan tip "aplikacije",** ne postoji nijedan objekat u Azure-u koji je "Preduzeće Aplikacija", to je samo apstrakcija za proveru servisnih principa, registracija aplikacija i upravljanih identiteta.
**To nije još jedan tip "aplikacije",** ne postoji nijedan objekat u Azure-u koji je "Preduzeće aplikacija", to je samo apstrakcija za proveru servisnih principa, registracija aplikacija i upravljanih identiteta.
### Administrativne Jedinice
### Administrativne jedinice
Administrativne jedinice omogućavaju da **daju dozvole iz uloge nad specifičnim delom organizacije**.
Administrativne jedinice omogućavaju **davanje dozvola iz uloge nad specifičnim delom organizacije**.
Primer:
- Scenario: Kompanija želi da regionalni IT administratori upravljaju samo korisnicima u svojoj regiji.
- Implementacija:
- Kreirajte Administrativne Jedinice za svaku regiju (npr., "Severna Amerika AU", "Evropa AU").
- Kreirajte administrativne jedinice za svaku regiju (npr., "Severna Amerika AU", "Evropa AU").
- Popunite AU sa korisnicima iz njihovih odgovarajućih regija.
- AU može **sadržati korisnike, grupe ili uređaje**
- AU mogu **sadržati korisnike, grupe ili uređaje**
- AU podržavaju **dinamička članstva**
- AU **ne mogu sadržati AU**
- Dodelite Administrativne Uloge:
- Dodelite ulogu "Administrator korisnika" regionalnom IT osoblju, ograničeno na AU njihove regije.
- Dodelite administrativne uloge:
- Dodelite ulogu "Administrator korisnika" regionalnom IT osoblju, ograničenu na AU njihove regije.
- Ishod: Regionalni IT administratori mogu upravljati korisničkim nalozima unutar svoje regije bez uticaja na druge regije.
### Entra ID Uloge & Dozvole
### Entra ID Uloge i Dozvole
- Da bi upravljali Entra ID, postoje neke **ugrađene uloge** koje se mogu dodeliti Entra ID principima za upravljanje Entra ID
- Proverite uloge na [https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference)
- Uloge označene kao **`PRIVILEGOVANE`** od strane EntraID-a treba dodeliti sa oprezom jer, kako Microsoft objašnjava [u dokumentima](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference): Dodeljivanje privilegovanih uloga može dovesti do povećanja privilegija ako se ne koristi na siguran i nameran način.
- Najprivilegovanija uloga je **Globalni Administrator**
- Grupe uloga **grupiraju granularne dozvole** i mogu se naći u njihovim opisima.
- Uloge označene kao **`PRIVILEGOVANE`** od strane EntraID treba dodeliti sa oprezom jer, kako Microsoft objašnjava [u dokumentima](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference): Dodeljivanje privilegovanih uloga može dovesti do povećanja privilegija ako se ne koristi na siguran i nameran način.
- Najprivilegovanija uloga je **Globalni administrator**
- Uloge grupišu **granularne dozvole** i mogu se naći u njihovim opisima.
- Moguće je **kreirati prilagođene uloge** sa željenim dozvolama. Iako iz nekog razloga nisu sve granularne dozvole dostupne za administratore da kreiraju prilagođene uloge.
- Uloge u Entra ID su potpuno **nezavisne** od uloga u Azure-u. Jedina veza je da principi sa ulogom **Globalni Administrator** u Entra ID mogu povećati na ulogu **Administrator pristupa korisnicima** u Azure-u.
- Uloge u Entra ID su potpuno **nezavisne** od uloga u Azure-u. Jedina veza je da principi sa ulogom **Globalni administrator** u Entra ID mogu povećati na ulogu **Administrator pristupa korisnicima** u Azure-u.
- **Nije moguće koristiti džoker znakove** u Entra ID ulogama.
## Azure Uloge & Dozvole
## Azure Uloge i Dozvole
- **Uloge** su **dodeljene** **principima** na **opsegu**: `principal -[HAS ROLE]->(scope)`
- **Uloge** se **dodeljuju** **principima** na **opsegu**: `princip -[IMA ULOGU]->(opseg)`
- **Uloge** dodeljene **grupama** se **nasleđuju** od svih **članova** grupe.
- U zavisnosti od opsega na koji je uloga dodeljena, **uloga** se može **naslediti** na **druge resurse** unutar kontejnera opsega. Na primer, ako korisnik A ima **ulogu na pretplati**, on će imati tu **ulogu na svim grupama resursa** unutar pretplate i na **svim resursima** unutar grupe resursa.
@@ -233,18 +233,18 @@ Primer:
[Iz dokumenata: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Azure role-based access control (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) ima nekoliko Azure **ugrađenih uloga** koje možete **dodeliti** **korisnicima, grupama, servisnim principima i upravljanim identitetima**. Dodeljivanje uloga je način na koji kontrolišete **pristup Azure resursima**. Ako ugrađene uloge ne zadovoljavaju specifične potrebe vaše organizacije, možete kreirati svoje [**Azure prilagođene uloge**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles).
**Ugrađene** uloge se primenjuju samo na **resurse** za koje su **namenjene**, na primer, proverite ova 2 primera **Ugrađenih uloga** nad resursima **Računara**:
**Ugrađene** uloge se primenjuju samo na **resurse** za koje su **namenjene**, na primer, proverite ova 2 primera **ugrađenih uloga** nad Compute resursima:
| [Disk Backup Reader](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Omogućava dozvolu za backup vault da izvrši backup diska. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ |
| [Virtual Machine User Login](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Prikazivanje virtuelnih mašina u portalu i prijavljivanje kao običan korisnik. | fb879df8-f326-4884-b1cf-06f3ad86be52 |
| [Virtual Machine User Login](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Pregledajte virtuelne mašine u portalu i prijavite se kao običan korisnik. | fb879df8-f326-4884-b1cf-06f3ad86be52 |
Ove uloge se **takođe mogu dodeliti nad logičkim kontejnerima** (kao što su grupe za upravljanje, pretplate i grupe resursa) i principi koji su pogođeni će ih imati **nad resursima unutar tih kontejnera**.
- Pronađite ovde listu sa [**svim Azure ugrađenim ulogama**](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles).
- Pronađite ovde listu sa [**svim Entra ID ugrađenim ulogama**](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference).
### Prilagođene Uloge
### Prilagođene uloge
- Takođe je moguće kreirati [**prilagođene uloge**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)
- One se kreiraju unutar opsega, iako uloga može biti u više opsega (grupe za upravljanje, pretplate i grupe resursa)
@@ -254,9 +254,9 @@ Ove uloge se **takođe mogu dodeliti nad logičkim kontejnerima** (kao što su g
- Moguće je koristiti džoker znakove
- Korišćeni format je JSON
- `actions` se odnosi na dozvole za upravljačke operacije nad resursima, kao što su kreiranje, ažuriranje ili brisanje definicija i podešavanja resursa.
- `dataActions` su dozvole za operacije podataka unutar resursa, omogućavajući vam da čitate, pišete ili brišete stvarne podatke sadržane u resursu.
- `dataActions` su dozvole za operacije sa podacima unutar resursa, omogućavajući vam da čitate, pišete ili brišete stvarne podatke sadržane u resursu.
- `notActions` i `notDataActions` se koriste za isključivanje specifičnih dozvola iz uloge. Međutim, **ne negiraju ih**, ako druga uloga dodeljuje te dozvole, princip će ih imati.
- `assignableScopes` je niz opsega gde se uloga može dodeliti (kao što su grupe za upravljanje, pretplate ili grupe resursa).
- `assignableScopes` je niz opsega u kojima se uloga može dodeliti (kao što su grupe za upravljanje, pretplate ili grupe resursa).
Primer dozvola JSON za prilagođenu ulogu:
```json
@@ -329,8 +329,8 @@ Azure Policies su **proaktivne**: mogu sprečiti kreiranje ili promenu neusklađ
**Neki primeri:**
1. **Osiguranje usklađenosti sa specifičnim Azure regijama**: Ova politika osigurava da se svi resursi postavljaju u specifične Azure regije. Na primer, kompanija može želeti da osigura da su svi njeni podaci smešteni u Evropi radi usklađenosti sa GDPR-om.
2. **Sprovođenje standarda imenovanja**: Politike mogu sprovoditi konvencije imenovanja za Azure resurse. Ovo pomaže u organizovanju i lakom identifikovanju resursa na osnovu njihovih imena, što je korisno u velikim okruženjima.
1. **Osiguranje usklađenosti sa specifičnim Azure regionima**: Ova politika osigurava da se svi resursi postavljaju u specifične Azure regione. Na primer, kompanija može želeti da osigura da su svi njeni podaci pohranjeni u Evropi radi usklađenosti sa GDPR-om.
2. **Sprovođenje standarda imenovanja**: Politike mogu sprovoditi konvencije imenovanja za Azure resurse. Ovo pomaže u organizaciji i lakom identifikovanju resursa na osnovu njihovih imena, što je korisno u velikim okruženjima.
3. **Ograničavanje određenih tipova resursa**: Ova politika može ograničiti kreiranje određenih tipova resursa. Na primer, politika može biti postavljena da spreči kreiranje skupih tipova resursa, poput određenih veličina VM-a, kako bi se kontrolisali troškovi.
4. **Sprovođenje politika označavanja**: Oznake su parovi ključ-vrednost povezani sa Azure resursima koji se koriste za upravljanje resursima. Politike mogu sprovoditi da određene oznake moraju biti prisutne, ili imati specifične vrednosti, za sve resurse. Ovo je korisno za praćenje troškova, vlasništvo ili kategorizaciju resursa.
5. **Ograničavanje javnog pristupa resursima**: Politike mogu sprovoditi da određeni resursi, poput skladišnih naloga ili baza podataka, nemaju javne krajnje tačke, osiguravajući da su dostupni samo unutar mreže organizacije.
@@ -370,7 +370,7 @@ Ova hijerarhijska struktura omogućava efikasno i skalabilno upravljanje dozvola
Međutim, u nekim slučajevima možda ćete želeti da obezbedite **fino podešeno upravljanje pristupom** ili **pojednostavite** upravljanje **stotinama** dodela uloga.
Azure **ABAC** (kontrola pristupa zasnovana na atributima) se oslanja na Azure RBAC dodavanjem **uslova dodele uloga zasnovanih na atributima** u kontekstu specifičnih akcija. _Uslov dodele uloge_ je **dodatna provera koju možete opcionalno dodati svojoj dodeli uloge** kako biste obezbedili fino podešenu kontrolu pristupa. Uslov filtrira dozvole dodeljene kao deo definicije uloge i dodele uloge. Na primer, možete **dodati uslov koji zahteva da objekat ima specifičnu oznaku da bi se pročitao objekat**.\
Ne možete eksplicitno **odbiti** **pristup** specifičnim resursima **koristeći uslove**.
Ne možete eksplicitno **odbiti** **pristup** specifičnim resursima **korišćenjem uslova**.
## Reference

View File

@@ -4,9 +4,9 @@
## OAuth App Phishing
**Azure aplikacije** su konfigurisane sa dozvolama koje će moći da koriste kada korisnik da saglasnost aplikaciji (kao što su enumeracija direktorijuma, pristup datotekama ili izvršavanje drugih radnji). Imajte na umu da aplikacija deluje u ime korisnika, tako da čak i ako aplikacija može tražiti administratorske dozvole, ako **korisnik koji daje saglasnost nema tu dozvolu**, aplikacija **neće moći da izvršava administratorske radnje**.
**Azure aplikacije** su konfigurisane sa dozvolama koje će moći da koriste kada korisnik da saglasnost aplikaciji (kao što je enumeracija direktorijuma, pristup datotekama ili izvršavanje drugih radnji). Imajte na umu da aplikacija deluje u ime korisnika, tako da čak i ako aplikacija može tražiti administratorske dozvole, ako **korisnik koji daje saglasnost nema tu dozvolu**, aplikacija **neće moći da izvršava administratorske radnje**.
### Dozvole za saglasnost aplikacija
### Dozvole za saglasnost aplikacije
Podrazumevano, svaki **korisnik može dati saglasnost aplikacijama**, iako se ovo može konfigurisati tako da korisnici mogu dati saglasnost samo za **aplikacije od verifikovanih izdavača za odabrane dozvole** ili čak **ukloniti dozvolu** korisnicima da daju saglasnost aplikacijama.
@@ -14,28 +14,28 @@ Podrazumevano, svaki **korisnik može dati saglasnost aplikacijama**, iako se ov
Ako korisnici ne mogu dati saglasnost, **administratori** kao što su `GA`, `Application Administrator` ili `Cloud Application` `Administrator` mogu **dati saglasnost aplikacijama** koje korisnici mogu koristiti.
Štaviše, ako korisnici mogu dati saglasnost samo za aplikacije koje koriste **niskorizične** dozvole, te dozvole su podrazumevano **openid**, **profile**, **email**, **User.Read** i **offline_access**, iako je moguće **dodati više** na ovu listu.
Pored toga, ako korisnici mogu dati saglasnost samo za aplikacije koje koriste **niskorizične** dozvole, ove dozvole su podrazumevano **openid**, **profile**, **email**, **User.Read** i **offline_access**, iako je moguće **dodati više** na ovu listu.
Ako mogu dati saglasnost za sve aplikacije, mogu dati saglasnost za sve aplikacije.
I ako mogu dati saglasnost za sve aplikacije, mogu dati saglasnost za sve aplikacije.
### 2 vrste napada
### 2 Tipova napada
- **Neautentifikovani**: Iz spoljnog naloga kreirati aplikaciju sa **niskorizičnim dozvolama** `User.Read` i `User.ReadBasic.All`, na primer, prevariti korisnika, i moći ćete da pristupite informacijama iz direktorijuma.
- Ovo zahteva da prevareni korisnik bude **u mogućnosti da prihvati OAuth aplikacije iz spoljnog tenanta**.
- Ako je prevareni korisnik neki administrator koji može **dati saglasnost bilo kojoj aplikaciji sa bilo kojim dozvolama**, aplikacija bi takođe mogla **tražiti privilegovane dozvole**.
- **Autentifikovani**: Nakon što je kompromitovan glavni korisnik sa dovoljno privilegija, **kreirati aplikaciju unutar naloga** i **prevariti** nekog **privilegovanog** korisnika koji može prihvatiti privilegovane OAuth dozvole.
- **Neautentifikovani**: Iz spoljnog naloga kreirati aplikaciju sa **niskorizičnim dozvolama** `User.Read` i `User.ReadBasic.All`, na primer, phishing korisnika, i moći ćete da pristupite informacijama iz direktorijuma.
- Ovo zahteva da phished korisnik bude **u mogućnosti da prihvati OAuth aplikacije iz spoljnog tenanta**.
- Ako je phished korisnik neki administrator koji može **dati saglasnost bilo kojoj aplikaciji sa bilo kojim dozvolama**, aplikacija bi takođe mogla **tražiti privilegovane dozvole**.
- **Autentifikovani**: Nakon što je kompromitovan glavni korisnik sa dovoljno privilegija, **kreirati aplikaciju unutar naloga** i **phish** nekog **privilegovano** korisnika koji može prihvatiti privilegovane OAuth dozvole.
- U ovom slučaju već možete pristupiti informacijama iz direktorijuma, tako da dozvola `User.ReadBasic.All` više nije zanimljiva.
- Verovatno ste zainteresovani za **dozvole koje zahtevaju da ih administrator odobri**, jer običan korisnik ne može dati OAuth aplikacijama nikakve dozvole, zato treba da **prevarite samo te korisnike** (više o tome koje uloge/dozvole dodeljuju ovu privilegiju kasnije).
- Verovatno ste zainteresovani za **dozvole koje zahtevaju da ih administrator odobri**, jer običan korisnik ne može dati OAuth aplikacijama bilo koju dozvolu, zato treba da **phishujete samo te korisnike** (više o tome koje uloge/dozvole daju ovu privilegiju kasnije).
### Korisnicima je dozvoljeno da daju saglasnost
Imajte na umu da morate izvršiti ovu komandu iz naloga unutar tenanta, ne možete pronaći ovu konfiguraciju tenanta iz spoljnog. Sledeća CLI može vam pomoći da razumete dozvole korisnika:
Imajte na umu da morate izvršiti ovu komandu iz korisnika unutar tenanta, ne možete pronaći ovu konfiguraciju tenanta iz spoljnog. Sledeća CLI može vam pomoći da razumete dozvole korisnika:
```bash
az rest --method GET --url "https://graph.microsoft.com/v1.0/policies/authorizationPolicy"
```
- Korisnici mogu da daju saglasnost za sve aplikacije: Ako unutar **`permissionGrantPoliciesAssigned`** pronađete: `ManagePermissionGrantsForSelf.microsoft-user-default-legacy` tada korisnici mogu da prihvate svaku aplikaciju.
- Korisnici mogu da daju saglasnost za aplikacije od verifikovanih izdavača ili vaše organizacije, ali samo za dozvole koje odaberete: Ako unutar **`permissionGrantPoliciesAssigned`** pronađete: `ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team` tada korisnici mogu da prihvate svaku aplikaciju.
- **Onemogućite saglasnost korisnika**: Ako unutar **`permissionGrantPoliciesAssigned`** možete da pronađete samo: `ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat` i `ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team` tada korisnici ne mogu da daju saglasnost.
- **Onemogućite saglasnost korisnika**: Ako unutar **`permissionGrantPoliciesAssigned`** možete pronaći samo: `ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat` i `ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team` tada korisnici ne mogu dati saglasnost.
Moguće je pronaći značenje svake od komentarisane politika u:
```bash
@@ -61,10 +61,10 @@ az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/0d60
Napad se sastoji od nekoliko koraka koji ciljaju generičku kompaniju. Evo kako bi to moglo izgledati:
1. **Registracija Domen i Hosting Aplikacije**: Napadač registruje domen koji podseća na pouzdanu stranicu, na primer, "safedomainlogin.com". Pod ovim domenom, kreira se poddomen (npr., "companyname.safedomainlogin.com") za hosting aplikacije dizajnirane da hvata autorizacione kodove i zahteva pristupne tokene.
2. **Registracija Aplikacije u Azure AD**: Napadač zatim registruje Multi-Tenant Aplikaciju u svom Azure AD Tenant-u, nazivajući je po ciljanom preduzeću kako bi izgledala legitimno. Konfiguriše URL za preusmeravanje aplikacije da upućuje na poddomen koji hostuje zloćudnu aplikaciju.
1. **Registracija Domen i Hosting Aplikacije**: Napadač registruje domen koji podseća na pouzdanu stranicu, na primer, "safedomainlogin.com". Pod ovim domenom se kreira poddomen (npr., "companyname.safedomainlogin.com") za hosting aplikacije dizajnirane da hvata autorizacione kodove i zahteva pristupne tokene.
2. **Registracija Aplikacije u Azure AD**: Napadač zatim registruje Multi-Tenant Aplikaciju u svom Azure AD Tenantu, nazivajući je po ciljanom preduzeću kako bi izgledala legitimno. Konfiguriše URL za preusmeravanje aplikacije da upućuje na poddomen koji hostuje zlonamernu aplikaciju.
3. **Postavljanje Dozvola**: Napadač postavlja aplikaciju sa raznim API dozvolama (npr., `Mail.Read`, `Notes.Read.All`, `Files.ReadWrite.All`, `User.ReadBasic.All`, `User.Read`). Ove dozvole, kada ih korisnik odobri, omogućavaju napadaču da izvuče osetljive informacije u ime korisnika.
4. **Distribucija Zloćudnih Linkova**: Napadač kreira link koji sadrži klijent id zloćudne aplikacije i deli ga sa ciljnim korisnicima, obmanjujući ih da daju saglasnost.
4. **Distribucija Zlonamernih Linkova**: Napadač kreira link koji sadrži ID klijenta zlonamerne aplikacije i deli ga sa ciljnim korisnicima, obmanjujući ih da daju saglasnost.
## Primer Napada
@@ -123,9 +123,16 @@ https://graph.microsoft.com/v1.0/me/onenote/notebooks \
### Phishing post-eksploatacija
U zavisnosti od traženih dozvola, možda ćete moći da **pristupite različitim podacima o tenant-u** (lista korisnika, grupa... ili čak da modifikujete podešavanja) i **informacijama o korisniku** (fajlovi, beleške, e-mailovi...). Tada možete iskoristiti te dozvole da izvršite te radnje.
U zavisnosti od traženih dozvola, možda ćete moći da **pristupite različitim podacima zakupca** (lista korisnika, grupa... ili čak da modifikujete podešavanja) i **informacijama o korisniku** (fajlovi, beleške, e-mailovi...). Tada možete iskoristiti te dozvole da izvršite te radnje.
### Post-eksploatacija aplikacija
### Entra ID aplikacije admin
Ako ste uspeli da kompromitujete nekako Entra ID principal koji može da upravlja aplikacijama u Entra ID, i postoje aplikacije koje koriste korisnici zakupca. Administrator bi mogao da **modifikuje dozvole koje aplikacija traži i doda novu dozvoljenu adresu za preusmeravanje da bi ukrao tokene**.
- Imajte na umu da je moguće **dodati redirect URIs** (nije potrebno brisati pravu) i zatim poslati HTTP link koristeći napadačev redirect URI, tako da kada korisnik prati link, autentifikacija se automatski dešava i napadač prima token.
- Takođe je moguće promeniti dozvole koje aplikacija traži kako bi dobila više dozvola od korisnika, ali u tom slučaju korisnik će morati da **ponovo prihvati prompt** (čak i ako je već bio prijavljen).
- Da bi izveo ovaj napad, napadač **NE TREBA** da kontroliše kod aplikacije jer može jednostavno poslati link za prijavu u aplikaciju korisniku sa novim URL-om u **`redirect_uri`** parametru.
### Post-eksploatacija aplikacije
Proverite sekcije Aplikacije i Servisni Principal na stranici: