Stappen Azure - Heavy


Stap 1: Voorbereiding en Scopebepaling

1.1 Stakeholderoverleg en Documentatieverzameling

  1. Inventariseer de Azure-omgeving en dependencies

    • Breng de volledige Azure-architectuur in kaart (VM’s, AKS, App Services, Function Apps, Storage, Key Vaults, IoT Hubs, etc.).

    • Maak een diagram waarin ook hybride koppelingen (on-premises, multi-cloud) zichtbaar zijn.

  2. Controleer de huidige beveiligingsrichtlijnen

    • Raadpleeg ISO 27001 ISMS-documentatie, Tenant Security Baseline, en eventuele eigen securitypolicies.

    • Kijk specifiek naar Annex A.14 (Systems Acquisition, Development & Maintenance) en A.13 (Communications Security) voor cloud-gerelateerde controles.

  3. Identificeer bedrijfsprocessen en kritieke data

    • Bepaal welke data (PII, financiële gegevens, intellectueel eigendom) en processen (financiële transacties, productie-applicaties) kritisch zijn.

    • Check compliance-eisen (GDPR, PCI DSS, HIPAA, SOC 2) en breng deze in verband met de cloudservices in gebruik.

  4. Maak een risico-indeling

    • Koppel elk kritisch systeem aan mogelijke risico’s zoals integriteitsverlies, datalekken of serviceonderbreking.

    • Gebruik een risicomatrix (Impact vs. Waarschijnlijkheid) om prioriteiten vast te stellen voor de pentest.

  5. Review van eerdere pentests of audits

    • Bekijken van bestaande rapporten: wat is eerder gevonden en hoe is daarop gereageerd?

    • Controleer of eerdere bevindingen opnieuw geverifieerd moeten worden (regressietest).

1.2 Rules of Engagement (RoE)

  1. Testvensters

    • Spreek expliciet af wanneer disruptieve tests (zoals (mini-)DoS of stress-tests) mogen plaatsvinden.

    • Definieer ‘business hours’ en ‘maintenance windows’.

  2. Afgesproken tools en methoden

    • Techniek 1: Scantools (Nessus, OpenVAS, Qualys) en netwerkscans (Nmap).

    • Techniek 2: Webapp- en API-tests: Burp Suite, OWASP ZAP, Recon-ng.

    • Techniek 3: Azure CLI/PowerShell-scripts voor enumeratie en configuratietesten.

    • Techniek 4: Container/AKS-scanners (Trivy, Clair, Kubebench) en SAST/DAST-pipelines.

    • Techniek 5: Exploitation frameworks (Metasploit/Cobalt Strike) in beperkte, vooraf goedgekeurde scenario’s.

  3. Impactbeperking

    • Minimaliseer risico op downtime: geen bulk-aanmaken of -verwijderen van resources.

    • Gebruik speciaal aangemaakte testaccounts voor brute-forcing of credential-stuffing.

  4. Incidentmanagement

    • Definieer escalatieniveaus: bij kritieke verstoringen (productie-down) → direct telefonisch contact met Security Officer.

    • Stel SLA’s op voor responstijden (bijv. 15 minuten reactie bij ernstige problemen).

  5. Juridische aspecten

    • Letter of Authorization door directie en/of CISO ondertekend.

    • Mogelijk extra NDA’s als er persoonsgegevens van derden in Azure staan.


Stap 2: Reconnaissance

2.1 Externe Inventarisatie

  1. DNS- en subdomeinscans

    • Techniek 1: Amass of Sublist3r om subdomeinen te detecteren die verwijzen naar *.azurewebsites.net of *.blob.core.windows.net.

    • Techniek 2: MassDNS voor snellere lookups op grote woordlijsten.

    • Techniek 3: Reverse DNS-scan op Microsoft IP-ranges met Shodan/Censys.

    • Techniek 4: Dearchiveer DNSSEC-instellingen, check mogelijke misconfiguraties.

    • Techniek 5: Kijk naar DKIM/SPF-records (indien mail in Azure, Exchange Online) om spoofingrisico te beoordelen.

  1. Publieke metadata en OSINT

    • Zoeken naar configbestanden of credentials op GitHub, GitLab, Pastebin, Gist.

    • Speur persberichten, conferentieslides, social media voor hints over de gebruikte Azure-services.

  2. Cloud Storage Check

    • Techniek 1: GreyHatWarfare- of Bucketsso-achtige tools voor het vinden van open blob containers.

    • Techniek 2: Met Python requests attempt indexes op https://accountname.blob.core.windows.net/containername.

    • Techniek 3: Fuzz container namen met tools als Microburst.

    • Techniek 4: Check of client-cors-configs niet per ongeluk wildcarden (Access-Control-Allow-Origin: *).

    • Techniek 5: Kijken of backups of data exports publiek staan (bv. .bak-bestanden, .csv dumps).

  3. Selfscan van publiek toegankelijke endpoints

    • Fuzzing op *.azurewebsites.net met dirsearch, wfuzz.

    • SSLyze of testssl.sh om de TLS-sterkte te checken (oude ciphers?).

    • Reverse IP lookup: welke subdomeinen draaien op hetzelfde IP als *.azurewebsites.net ?

  4. Evaluatie van Cloud Footprint

    • Bepaal welke delen van Azure publiek toegankelijk (exposed) zijn en noteer IP-ranges.

    • Maak een prioriteitenlijst van deze componenten voor latere deep-dive.

2.2 Interne Inventarisatie

  1. Tenant Resource Listing

    • Techniek 1: Get-AzResource -ResourceGroupName * in PowerShell, parse JSON-resultaten.

    • Techniek 2: az resource list --output table om snel te filteren op resource types.

    • Techniek 3: Vergelijk bestaande ARM-templates en Terraform-manifests met de huidige ‘live’ toestand (drift-detectie).

    • Techniek 4: Microburst of AzureHound (BloodHound-variant voor Azure) om IAM-relaties te visualiseren.

    • Techniek 5: Let op afgeschermde Previews of Beta-services die onbedoeld actief zijn.

  1. Azure Active Directory Overzicht

    • Haal lijst op van alle Security en Microsoft 365 Groups.

    • Inventariseer Applicatie-registraties, OAuth2.0 toestemmingen (met name Graph API).

    • Check PIM (Privileged Identity Management): wie kan escaleren naar Global Admin?

  2. Beheerderstoegang en Rollen

    • Identificeer alle Subscription Admins, Resource Group Owners en Tenant Global Admins.

    • Let op custom roles die potentieel te permissief zijn (“*" in actions).

    • Controleer Managed Service Identities die per abuis Owner op subscription-level zijn.

  3. Netwerkcomponenten

    • Overzicht van VNets, Subnetten, NSG’s, Peering-relaties, ExpressRoute, VPN Gateways.

    • Kijk naar user-defined routes (UDR) die al het verkeer naar onveilige endpoints leiden.

  4. Log en Monitoringconfiguraties

    • Techniek 1: Check Diagnostic Settings per resource; waar worden logs heen gestuurd (Log Analytics, Event Hub)?

    • Techniek 2: Check Logging Retention (7 dagen? 90 dagen?).

    • Techniek 3: Integreer met Microsoft Defender for Cloud?

    • Techniek 4: Analyseer of KQL-queries in Sentinel bestaan voor kritieke activiteiten.

    • Techniek 5: Bepaal of men ook custom logs gebruikt (bijv. container logs, func-logs).


Stap 3: Kwetsbaarheidsscans en Configuratieanalyse

3.1 Identiteitsbeheer en Authenticatie

  1. Wachtwoordbeleid en MFA

    • Techniek 1: PowerShell-script om Password Hash Sync- en MFA-status te controleren.

    • Techniek 2: Geautoriseerde Password Spray test via dummyaccounts, check of er lock-out policies zijn.

    • Techniek 3: Hydra op OWA/EAS (Exchange Online) voor legacy auth-checks.

    • Techniek 4: Inspecteer Azure AD B2B-instellingen (een gast kan anders te veel rechten verkrijgen).

    • Techniek 5: Check of risicodetecties in Azure AD Identity Protection worden gemeld.

  2. Gast- en serviceaccounts

    • Filter op ‘UserType = Guest’ en let op inactieve / slapende gastaccounts.

    • Controleer Service Principals (bijv. MS Graph apps) op “application permissions” (zeer krachtig).

    • Check licentieconsumptie (Office E3/E5) vs. werkelijk gebruik.

  3. Analyze Legacy Authentication

    • Techniek 1: Vergeet niet EWS (Exchange Web Services), EAS (Exchange ActiveSync).

    • Techniek 2: Kijk naar logs in Azure AD Sign-in: filter op “Legacy Authentication = True”.

    • Techniek 3: Bepaal of Conditional Access legacy protocollen blokkeert.

    • Techniek 4: Probeer IMAP/POP3 authenticatie met Telnet/Python scripts.

    • Techniek 5: Check “Security Defaults” in Azure AD als alternatieve baseline.

  4. Policy Management

    • Techniek 1: Listeer alle Conditional Access Policies (Get-AzureADPolicy), let op conflicts.

    • Techniek 2: Check Named Locations (IPv4, IPv6 ranges, geolocatie).

    • Techniek 3: Evalueer Sessiepolicies (continuous access evaluation).

    • Techniek 4: Custom RBAC-rollen in Azure (Owner, Contributor) – let op misconfiguraties.

    • Techniek 5: Inspecteer of PIM (Privileged Identity Management) wel actief wordt gebruikt.

  5. Verouderde protocollen

    • Techniek 1: Banner grab IMAP4/POP3 op M365 endpoints.

    • Techniek 2: Python scripting (imaplib) om Basic Auth te testen.

    • Techniek 3: Check op NTLM of on-prem AD Federation Services.

    • Techniek 4: SAML-assertion vervalsingstesten (indien ADFS/SSO on-prem/hybride).

    • Techniek 5: Monitor sign-in logs: detecteerde Azure AD deze handmatige testaanval?

3.2 Compute Resources

  1. VM’s en OS-patching

    • Techniek 1: Nmap-scripts: nmap -sV --script vuln x.x.x.x -p-

    • Techniek 2: Metasploit auxiliary: smb_version, ssh_login, rdp_scanner.

    • Techniek 3: Chef InSpec of OpenSCAP benchmarks voor Linux/Windows OS.

    • Techniek 4: Azure Policy: “VM must have approved patches installed” → check compliance.

    • Techniek 5: Kijken of Disk Encryption (BitLocker/dm-crypt) actief is en correct geconfigureerd.

  2. AKS en Containers

    • Techniek 1: kube-hunter of kubectl-get enumeratie (kubectl get pods -A) check of je overpermissioned bent.

    • Techniek 2: Trivy/Clair scans op images (evt. container registries).

    • Techniek 3: Kubebench (CIS Benchmark for Kubernetes).

    • Techniek 4: Check of RBAC cluster-wide te permissief is (“admin:admin”).

    • Techniek 5: Inspecteer NetworkPolicy: is verkeer tussen pods beperkt?

  3. App Services en Function Apps

    • Techniek 1: Wappalyzer + OWASP ZAP-proxy om webonderdelen te analyseren (CMS, frameworks).

    • Techniek 2: SAST (SonarQube) en DAST (ZAP) op het CI/CD-proces (Azure DevOps).

    • Techniek 3: Inspectie TLS (TLS 1.2+?), clientcertificaten?

    • Techniek 4: Connection Strings naar databases in plain text?

    • Techniek 5: Rate-limiting of IP-limiting check (API-tier-limit).

3.3 Opslag en Data Security

  1. Storage Accounts

    • Techniek 1: az storage container list --account-name X --output table check public-access.

    • Techniek 2: Fuzz container names (perl- of python-scripts).

    • Techniek 3: “Secure Transfer Required = Enabled”? Anders is HTTP toegestaan.

    • Techniek 4: Azure Monitor diag logs: detecteer anonieme requests?

    • Techniek 5: Check Private Endpoints; zijn er resources toch publiek?

  2. SAS-tokens

    • Techniek 1: Create SAS-tokens met extreme scope en test of je ongeautoriseerde data kunt exfiltreren.

    • Techniek 2: Bepaal of er policies zijn op maximale geldigheidsduur.

    • Techniek 3: Fuzzen van SAS-tokens (kans op brute-forcing is klein maar niet nul).

    • Techniek 4: Draai test-lambda/azure function die random tokens checkt.

    • Techniek 5: Lab-scenario: Expire SAS-token; check of logs correct melding geven.

  3. Key Vault

    • Techniek 1: Key Vault Access Policies: wie mag secrets, keys en certificates beheren?

    • Techniek 2: Soft-delete en purge protection geactiveerd? Zo niet: direct risico op permanent secret verlies.

    • Techniek 3: Sleutelrotatie-interval, is dat realistisch (30-90 dagen)?

    • Techniek 4: Auditing: check of elke secret read in logs verschijnt.

    • Techniek 5: Probeer “Vault chaining”: secret in Vault A verwijst naar B – check misconfig.

3.4 Netwerkbeveiliging

  1. Virtual Networks en Subnetting

    • Techniek 1: Volledige portscan (TCP+UDP) van subnet A → B indien interne toegang.

    • Techniek 2: Validate route tables (UDR) die verkeer omleiden naar externe of onveilige endpoints.

    • Techniek 3: NSG-rules: let op “ANY,ANY,ALLOW” bovenaan.

    • Techniek 4: ARP/ND Spoof test in eigen sandbox VM.

    • Techniek 5: VLAN-hopping (indien ExpressRoute connecties of S2S VPN’s).

  2. Firewall, Application Gateway, VPN

    • Techniek 1: hping3 mini-DDoS test (met lage packet rate) richting App Gateway.

    • Techniek 2: Packet capture in Azure Network Watcher om filtering te valideren.

    • Techniek 3: WAF-regels: check of modsec ruleset up-to-date is (OWASP CRS).

    • Techniek 4: Inspecteer IPSec / IKEv2 sterkte op Azure VPN Gateway.

    • Techniek 5: Test of firewall logging is ingeschakeld en of alerts/metrics worden verzameld (Sentinel?).

  3. Monitoring en Logging

    • Techniek 1: Azure Flow Logs voor NSG: check of enabled en > 0MB logs.

    • Techniek 2: DDoS Protection Standard: check of subscription is onboarded.

    • Techniek 3: Packet capturing: Connection Monitor scenario’s.

    • Techniek 4: SIEM-check in Sentinel: custom KQL queries voor netwerkanomalieën.

    • Techniek 5: Lateral movement tests (binnen subnets) en kijken of detectie plaatsvindt.

3.5 Applicaties en API’s

  1. Azure App Services

    • Techniek 1: OWASP ZAP of Burp Site map en spider op *.azurewebsites.net.

    • Techniek 2: API fuzzing (SoapUI, Postman, boofuzz) met diverse methoden (GET, POST, PUT, DELETE).

    • Techniek 3: Inspecteer API Management config: throttling, IP white/blacklists.

    • Techniek 4: Check op XSS (reflected, stored, DOM), SSRF, SQL/Command injecties.

    • Techniek 5: Kijk of custom domain in App Service TLS correct (geen wildcard mismatch).

  2. Logic Apps en Function Apps

    • Techniek 1: Inspecteer triggers (“HTTPTrigger” met Anonymous auth is risicovol).

    • Techniek 2: Invoervalidering: test JSON/XML-injectie, path traversal.

    • Techniek 3: CI/CD secrets management in repos.

    • Techniek 4: Check logverbosity, of credentials in plain text in logs.

    • Techniek 5: Cross-tenant connectors: bijv. link naar externe SharePoint – escalaties?

  3. Key Vault (Herhaling)

    • Techniek 1: Soft-delete test: remove secret, direct purge → check misconfig.

    • Techniek 2: Overlapping access policies (Owner + KeyPermissions) => te groot attack surface.

    • Techniek 3: Automatisering: Terraform config – misconfig?

    • Techniek 4: Check codesecrets (pfx, private keys) en cryptografische sterkte.

    • Techniek 5: Evalueer Key Vault daily logs op pattern van misbruik/spam reads.

3.6 Beveiligingstools en Logging

  1. Azure Security Center / Defender

    • Techniek 1: JIT VM Access test: open RDP/SSH pas na request, check logging.

    • Techniek 2: Security Score en aanbevelingen – scan in hoeverre die zijn opgevolgd.

    • Techniek 3: Simuleer ransomware in test-VM; Defender for Cloud moet alarmeren.

    • Techniek 4: Azure Defender for Containers: check scanning images in ACR.

    • Techniek 5: Policy compliance-check (CIS, Azure baseline) in Security Center.

  2. Azure Monitor / Log Analytics / Sentinel

    • Techniek 1: Custom logs config, ex. container logs, function logs, key vault audit logs.

    • Techniek 2: KQL-queries om brute-force of password spray te detecteren.

    • Techniek 3: Creëer detectieregels “User logs in from suspicious country” of “Sudden resource creation spike”.

    • Techniek 4: Test incident creation in Sentinel, observeer escalatie.

    • Techniek 5: Spear-phishing simulatie, correlatie check in Sentinel/Defender.

  3. Compliance en Governance

    • Techniek 1: Azure Policy: resource compliance-lijsten (vm, storage, keys).

    • Techniek 2: Resource tagging: (CostCenter, Env=Prod, Sensitivity=High).

    • Techniek 3: Azure Blueprints, enforced?

    • Techniek 4: Azure Advisor recommendations t.b.v. security vs. performance.

    • Techniek 5: Alert op resource creatie buiten “Allowed locations”.


Stap 4: Resultaatanalyse en Rapportage

4.1 Rapportage van Bevindingen

  1. Kwetsbaarhedenlijst

    • Techniek 1: CVSS-scores, aangevuld met context (kritieke data, compliance).

    • Techniek 2: PoC-scripts of tooling-output (screenshots) in bijlage.

    • Techniek 3: Onderscheid exploitabel vs. potentiële risico’s.

    • Techniek 4: Link bevindingen aan ISO 27001 Annex A-controls.

    • Techniek 5: Alle data versleuteld opslaan voor confidentiality.

  2. Impactanalyse

    • Benoem schade: datalek, credentialscompromis, serviceonderbreking.

    • Bijvoorbeeld: “Als deze Key Vault-kwetsbaarheid wordt uitgebuit, kan men X, Y, Z.”

  3. Prioritering

    • High: onmiddellijk oplossen.

    • Medium: plan voor de korte termijn.

    • Low: langetermijn / best practice.

  4. Managementsamenvatting

    • Kort, bondig, met kerncijfers (# crit., # med, # low).

    • Gevolgen voor compliance, reputatie, continuïteit.

  5. Transparantie

    • Wat is wél getest, wat is uitgesloten (bv. DoS op productie)?

    • Garandeer integriteit van de testresultaten.

4.2 Aanbevelingen en Verbeteracties

  1. Technische Adviezen

    • Techniek 1: MFA-verplichting voor alle beheerders en gevoelige accounts.

    • Techniek 2: NSG’s opschonen; alleen toegestane ports, JIT Access voor RDP/SSH.

    • Techniek 3: Key Vault soft-delete + purge protection en sleutelrotatie inplannen.

    • Techniek 4: Opslagaccounts: “Secure Transfer Required” en private endpoints.

    • Techniek 5: Container image scanning in CI/CD.

  2. Organisatorische Adviezen

    • Techniek 1: Maandelijkse account- en autorisatie review.

    • Techniek 2: Change management aangescherpt voor Azure resource creaties.

    • Techniek 3: “Security Champions” in ieder development-/DevOps-team.

    • Techniek 4: Meer training in phishing- en social-engineering scenario’s.

    • Techniek 5: Regelmatig interne audits op compliance-checks (Azure Policy).

  3. Continuous Monitoring

    • Techniek 1: Sentinel-dashboards voor IAM-anomalieën (bijv. “Owner role assigned om 03:00u”).

    • Techniek 2: SAST/DAST-integratie in de DevOps-pipeline (Azure DevOps, GitHub Actions).

    • Techniek 3: Alerts op resource spikes of grote data-exfil.

    • Techniek 4: “Azure Security Benchmark” mapping naar eigen policies.

    • Techniek 5: Eventuele automatische mitigaties (bijv. resource isoleren bij vermoede inbraak).

4.3 Nazorg en Validatie

  1. Hertesten

    • Techniek 1: Mini-pentest op de aangepaste resources (patchverificatie).

    • Techniek 2: Scripting retest: “High vulnerabilities” direct opnieuw scannen.

    • Techniek 3: E2E scenario-validate: compromised user → privileges?

    • Techniek 4: CI/CD pipeline-check: zijn security-plugins nu geactiveerd?

    • Techniek 5: Logs nalopen om te checken of nieuwe regels/policies afdoende zijn.

  2. Documentatie

    • ISMS en risicoregister bijwerken met bevinding→actie→status.

    • Bewaar de testresultaten, PoC’s en rapporten conform Annex A.8 (Asset Management).

  3. Continue Verbetering

    • Techniek 1: Lessons-learned sessie, verbeterpunten voor volgende pentest.

    • Techniek 2: KPI’s instellen: “Binnen 2 dagen fix voor kritieke issues.”

    • Techniek 3: Security Champions programma uitbreiden.

    • Techniek 4: Periodieke compliance-checks in de pipeline (Terraform/ARM-lint).

    • Techniek 5: Feedbackloop: managementbesluiten → updates in beleid → pentest → audit.


Stap 5: Borging in ISO 27001 Framework

  1. Updaten van het Risicoregister

    • Techniek 1: Link elke bevinding aan specifieke ISO 27001 Annex A-controles.

    • Techniek 2: Bepaal rest-risico na implementatie van mitigerende maatregelen.

    • Techniek 3: Stel nieuwe of gewijzigde controls voor (bv. strengere NAC, extra detection rules).

    • Techniek 4: Definieer eigenaar en deadline van iedere risicobeheersactie.

    • Techniek 5: Monitor voortgang van risico-oplossing via ISMS-rapportages.

  2. Management Review

    • Techniek 1: Presentatie van bevindingen met visuals (grafieken, trending van vulnerabilities).

    • Techniek 2: Betrek DPO (Data Protection Officer) en CISO bij privacy- en complianceaspecten.

    • Techniek 3: Budget en resourcebeslissingen voor implementatie van fixes.

    • Techniek 4: Afstemmen frequentie van toekomstige pentests (bijv. halfjaarlijks, jaarlijks).

    • Techniek 5: Nieuwe securitydoelstellingen formuleren (bijv. “MFA coverage 100% in Q3,” “Geen kritieke findings bij volgende audit”).

  3. Continue PDCA-cyclus

    • Plan: Leg vast welke findings urgent zijn (High) en welke middellang (Medium).

    • Do: Implementeer technische en organisatorische verbeteringen (configupdates, training, etc.).

    • Check: Validate de effectiviteit middels retest, logging, interne audits.

    • Act: Optimaliseer beleid en procedures, stel nieuwe KPI’s en herhaal de cycle.


Zie Red Teaming Sheets voor meer pwness

Last updated