jan-karel.nl
Home / Securitymaatregelen / Cloudbeveiliging / Azure & Entra ID Hardening

Azure & Entra ID Hardening

Azure & Entra ID Hardening

Cloud Snel, Cloud Strak

Cloudomgevingen veranderen snel. Daarom moet beveiliging hier standaard en geautomatiseerd meebewegen.

Voor Azure & Entra ID Hardening is automatisering leidend: guardrails in code, least privilege en continue driftcontrole.

Zo houd je snelheid in de cloud, zonder dat veiligheid afhankelijk wordt van handmatig geluk.

Directe maatregelen (15 minuten)

Waarom dit telt

De kern van Azure & Entra ID Hardening is risicoreductie in de praktijk. Technische context ondersteunt de maatregelkeuze, maar implementatie en borging staan centraal.

Verdedigingsmaatregelen

Conditional Access

Conditional Access is de belangrijkste verdedigingslaag in Entra ID. Een goed geconfigureerd Conditional Access-beleid maakt veel van de aanvallen in dit hoofdstuk onmogelijk of significant moeilijker.

Essentiële policies:

Policy Beschrijving Welke aanval het mitigeert
MFA voor alle gebruikers Vereist MFA voor elke authenticatie Password spraying
Block legacy auth Blokkeer IMAP, POP3, SMTP AUTH, etc. MFA bypass via legacy protocols
Block device code flow Blokkeer de device authorization flow Device code phishing
Require compliant device Alleen beheerde devices Token theft vanaf onbeheerde devices
Block risky sign-ins Blokkeer bij “high” risico-score Diverse
Named locations Beperk tot vertrouwde IP-ranges Brute force vanuit onbekende locaties
Require app protection Vereist Intune-managed apps Data exfiltratie via onbeheerde apps
# Audit: alle Conditional Access policies ophalen
az rest --method GET \
    --uri "https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies" | \
    python3 -c "
import sys,json
policies = json.load(sys.stdin).get('value',[])
for p in policies:
    state = p.get('state','unknown')
    name = p.get('displayName','')
    print(f'[{state.upper():8}] {name}')
"

Privileged Identity Management (PIM)

PIM implementeert just-in-time privileged access: rollen zijn niet permanent toegewezen, maar moeten worden geactiveerd wanneer ze nodig zijn. Activering vereist een justificatie en kan MFA en goedkeuring vereisen.

PIM vermindert het aanvalsoppervlak door: - Minder permanent actieve Global Admins - Tijdgebonden rolactivering (max 8 uur standaard) - Audit trail van rolactivering - MFA-vereiste bij activering (zelfs als de sessie al MFA heeft)

Workload Identity Federation

Workload Identity Federation is de opvolger van client secrets voor app registrations. In plaats van een geheim dat gestolen kan worden, gebruikt het een federatieve vertrouwensrelatie met een externe identity provider. Geen secret, geen risk van secret leakage.

# Controleer of er nog apps zijn met client secrets (die zouden moeten migreren)
az ad app list --query "[?passwordCredentials[0]!=null].{App:displayName,Created:passwordCredentials[0].startDateTime,Expires:passwordCredentials[0].endDateTime}" -o table

Overige Aanbevelingen

Maatregel Beschrijving
Disable user consent Voorkom illicit consent grant attacks
Enable audit logging Azure AD sign-in logs + audit logs naar SIEM
Rotate storage keys Automatische rotatie via Key Vault
Disable public blob access Op subscription-level afdwingen
Monitor Managed Identity usage Anomaliedetectie op token-aanvragen
Azure AD Connect hardening Dedicated server, beperkte admin-toegang
PRT protection Token protection (Windows 11+)

Referentietabel

Onderwerp Techniek Tool MITRE ATT&CK Moeilijkheid
Tenant enumeratie Unauthenticated recon curl, browser T1589 (Gather Victim Identity Information) Laag
Directory enumeratie Authenticated user enum az cli, ROADtools, Graph API T1087.004 (Cloud Account Discovery) Laag
Password spraying Credential Access MSOLSpray T1110.003 (Password Spraying) Laag
MFA bypass (legacy auth) Legacy protocol abuse curl, Thunderbird T1078.004 (Cloud Accounts) Gemiddeld
Device code phishing OAuth device flow abuse Python, TokenTactics T1528 (Steal Application Access Token) Gemiddeld
Consent grant attack Illicit OAuth consent Custom app registration T1528 (Steal Application Access Token) Gemiddeld
Conditional Access bypass Policy gap exploitation roadrecon, Graph API T1078.004 (Cloud Accounts) Hoog
RBAC escalation Role assignment abuse az cli T1098.003 (Additional Cloud Roles) Gemiddeld
Custom role abuse Overprivileged custom roles az cli T1098.003 (Additional Cloud Roles) Gemiddeld
Managed Identity token theft IMDS token extraction curl T1552.005 (Cloud Instance Metadata API) Gemiddeld
Key Vault secrets Secret/key/cert extraction az cli T1552.001 (Credentials in Files) Gemiddeld
Storage account abuse SAS token / shared key az cli, curl T1530 (Data from Cloud Storage) Laag-Gemiddeld
Azure AD Connect (PHS) Sync credential extraction AADInternals T1003.006 (DCSync) Hoog
Azure AD Connect (PTA) Authentication interception AADInternals T1557 (Adversary-in-the-Middle) Hoog
Golden SAML ADFS cert theft + token forge ADFSDump, AADInternals T1606.002 (SAML Tokens) Hoog
Automation runbook abuse Credential dump via runbook az cli T1078.004 (Cloud Accounts) Gemiddeld
Hybrid Worker exploitation On-prem code execution az cli T1059 (Command and Scripting Interpreter) Hoog
Global Admin escalation elevateAccess API az rest T1098.003 (Additional Cloud Roles) Laag (als je GA bent)

In het volgende hoofdstuk verlaten we de Azure-wereld en betreden we het territorium van Google — een plek waar alles draait om projecten, service accounts, en het onuitputtelijke vertrouwen dat Google heeft in zijn eigen infrastructuur. Spoiler: dat vertrouwen is niet altijd gerechtvaardigd.

Op de hoogte blijven?

Ontvang maandelijks cybersecurity-inzichten in je inbox.

← Cloudbeveiliging ← Home