Azure Pentest zonder VM's
1. Identiteit en Toegang
1.1 Role-Based Access Control
Principle of Least Privilege: Controleer of elke gebruiker, groep en applicatie alleen de strikt noodzakelijke rechten heeft om zijn taken uit te voeren. Overmatig gebruik van rollen als Owner, Contributor of Global Administrator leidt vaak tot onnodige risico’s.
Bevoegde accounts: Onderzoek of er accounts bestaan met hoge privileges, maar die in de praktijk niet nodi zijn. Verouderde of gedeelde accounts kunnen een zwakke schakel vormen.
Leesrechten: Houd er rekening mee dat zelfs Reader-rollen kunnen leiden tot ongewenste inzichten (bijv. in resourceconfiguraties of gegevensstructuren).
1.2 Authenticatie- en autorisatiemethoden
Multi-Factor Authentication (MFA): Toets of MFA verplicht is voor alle accounts met verhoogde rechten en voor externe gastgebruikers. Controleer ook het beleid rondom telefoonnummers, authenticator-apps en back-upmethoden.
Federatie en Single Sign-On (SSO): Analyseer implementaties van OAuth2, SAML en OpenID Connect. Foutieve configuraties kunnen leiden tot token-kaping, ongeautoriseerde toegang of SSO misconfigurations.
Legacy Authentication: Identificeer of verouderde protocollen (IMAP, POP3, SMTP Basic Auth) zijn uitgeschakeld. Deze protocollen zijn kwetsbaar voor bruteforce en phishing-aanvallen.
1.3 Conditional Access Policies
Risicogebaseerde inloggen: Controleer of Risky Sign-ins worden gedetecteerd en geblokkeerd of gemitigeerd (bijv. via wachtwoordreset of extra verificatie).
Locatie- en apparaatbeleid: Onderzoek of toegang vanaf onveilige netwerken, onbekende locaties of ongecontroleerde apparaten effectief wordt beperkt.
Gastgebruikers (B2B): Herzie de policy voor externe samenwerkingen, en controleer of gastaccounts automatisch worden verwijderd of beperkt wanneer ze niet meer nodig zijn.
1.4 Logging en Auditing
Audit Logs: Zorg dat Azure AD-audit- en sign-in logs worden bewaard gedurende een voldoende lange periode. Deze logs zijn essentieel om verdachte activiteiten te detecteren.
Integraties: Kijk of logs worden geïntegreerd in een SIEM-systeem, en of er alerts zijn geconfigureerd voor afwijkend login- of aanmeldgedrag.
2. Blob, File Shares, Tables, SQL, Key Vault
2.1 Publieke toegang en misconfiguraties
Openbare containers: Controleer of Blob Storage-containers per ongeluk public read access hebben. Zelfs met alleen ‘list’ of ‘read’-toegang kunnen gevoelige data of configuratiebestanden op straat komen te liggen.
File Shares: Onderzoek of er gedeelde bestandsopslag is die anoniem of via zwakke inlogmethoden toegankelijk is.
Table- en Queue Storage: Bekijk of er data-structuren zijn die zonder authenticatie uit te lezen of te manipuleren zijn.
2.2 Sleutel- en tokenbeheer
Access keys en SAS-tokens: Controleer of deze tokens onbeheerst circuleren, onbeperkt geldig zijn of te ruime rechten toekennen.
Key Vault Policies: Kijk of Key Vault correct is geconfigureerd, met strikte toegangsrestricties en auditing. Een slecht beheer kan leiden tot ongeautoriseerde toegang tot cryptografische sleutels, wachtwoorden en certificaten.
2.3 Databasebeveiliging
Azure SQL: Onderzoek firewallinstellingen en toegangsregels. Test of databases publiekelijk benaderbaar zijn en of auditing en Advanced Threat Detection zijn ingeschakeld.
Data-encryptie: Verifieer of Transparent Data Encryption (TDE) en Always Encrypted correct zijn geconfigureerd, zodat data-at-rest en data-in-use beschermd blijven.
SQL-injectie: Hoewel je geen VM’s hebt om op te scannen, kunnen applicaties die verbinding maken met Azure SQL nog steeds gevoelig zijn voor injectie-aanvallen. Test vooral API’s en webapplicaties die databasecalls maken.
2.4 Logging en auditing van data
Storage Analytics: Bekijk of er read/write en delete operations worden gelogd. Dit is cruciaal om te zien of iemand ongeautoriseerd bestanden leest of verwijdert.
Retention Policies: Let op de bewaarperiode van logs. Korte retentionperioden kunnen het lastig maken om incidenten te onderzoeken.
3. Web Apps, Function Apps, Logic Apps, API’s
3.1 Web App Security
OWASP Top 10: Pas traditionele webapplicatiescans toe voor in Azure gehoste apps, gericht op kwetsbaarheden als SQL-injection, XSS, CSRF en insecure deserialization.
Framework- en libraryupdates: Controleer of er sprake is van verouderde frameworks of bibliotheken (bijv. .NET, Java, Node.js). Beveiligingsupdates zijn essentieel.
TLS-configuratie: Onderzoek of TLS 1.2 (of hoger) is afgedwongen, en of zwakkere versies zijn uitgeschakeld.
3.2 Function Apps - Serverless
Toegangscontrole: Functies kunnen publiekelijk of intern toegankelijk zijn. Indien publiek, verifieer of er een autorisatiemechanisme is (bijv. function keys of JWT-tokens).
Overmatige privileges: Check of een Function App met Managed Identity meer rechten heeft dan nodig, bijvoorbeeld op Key Vault of Storage.
Omgevingsvariabelen: Kijk of gevoelige data (wachtwoorden, connectiestrings) zichtbaar zijn in de Function App-configuratie.
3.3 Logic Apps
Workflow-controls: Bepaal of gevoelige workflowstappen (bijv. het verwerken van PII) voldoende zijn afgeschermd.
Endpointbeveiliging: Logic Apps kunnen triggers hebben die via HTTP bereikbaar zijn. Controleer of deze alleen toegankelijk zijn vanuit geautoriseerde bronnen.
Audit trails: Houd bij wie workflows maakt en wijzigt, en of deze acties worden vastgelegd.
3.4 API-architectuur
Authenticatie en autorisatie: Gebruik bij voorkeur token-based mechanismen (OAuth2, JWT) voor toegang tot API’s. Test of ongeautoriseerde toegang mogelijk is via alternatieve paden of endpoints.
Data-exfiltratie: Controleer of gevoelige data onbedoeld naar de client wordt gestuurd. Is response filtering ingeschakeld?
Rate limiting: Zonder rate limiting kunnen aanvallers brute force- of DDoS-aanvallen uitvoeren. Let op ‘throttling’-instellingen voor API calls.
4. NSG, Firewalls, Private Endpoints, DDoS
4.1 Network Security Groups (NSG) en Firewall-regels
Regeloptimalisatie: Check of er brede ‘allow’-regels zijn, bijvoorbeeld ANY-ANY inbound/outbound, die onnodige toegang mogelijk maken.
Flow logs: Zorg dat NSG-flow logs zijn ingeschakeld voor forensisch onderzoek. Dit helpt bij het detecteren van ongeoorloofd verkeer.
4.2 Publieke toegang tot resources
Public IP’s: Identificeer alle public IP’s binnen de omgeving. Ieder publiek endpoint is een potentieel aanvalsoppervlak.
Private Endpoints: Wanneer mogelijk, valideer of Private Link en Private Endpoints kunnen worden ingezet om verkeer via het interne Azure-netwerk te laten lopen in plaats van via het publieke internet.
4.3 DDoS-bescherming
Azure DDoS Protection: Controleer of Basic of Standard DDoS-bescherming is geactiveerd, en of de configuratie geschikt is voor de workloads.
Mitigatieplan: Kijk of er een incidentresponsplan is voor DDoS-aanvallen. Zijn escalatieprocedures en monitoring hiervoor ingericht?
4.4 Netwerksegmentatie en Peerings
VNET-peering: Onderzoek of de peering juist is geconfigureerd (bijv. ‘useRemoteGateways’ en ‘allowForwardedTraffic’). Fouten hierin kunnen tot ongeautoriseerde toegang tussen VNET’s leiden.
VPN-verbindingen: Controleer encryptie-instellingen en authenticatie voor Site-to-Site of Point-to-Site VPN’s. Onveilige tunnels vormen een risico voor dataverkeer.
5. DevOps & CI/CD - Infrastructuur en Applicatieontwikkeling
5.1 Code- en configuratiebeheer
Repositories: Onderzoek of er in source code of configuratiebestanden wachtwoorden, API-sleutels of certificaten staan. Dit kan ook betrekking hebben op templatebestanden of scripts die voor provisioning worden gebruikt.
Branch policies: Kijk of er pull request policies, code reviews en verplichte approvals zijn ingesteld.
5.2 Secret Management in pipelines
Integratie met Key Vault: Valideer of gevoelige variabelen (bijv. connectiestrings, certificaten) via een beveiligde Key Vault worden geladen in plaats van in plain text.
Rechten van build agents: Onderzoek of build agents en release-agents geen overmatige toegang hebben tot resource groups, Key Vaults of andere gevoelige componenten.
5.3 Pipeline Security
Toegang tot pipelines: Controleer wie pipelines kan aanmaken, wijzigen of verwijderen. Een kwaadaardige aanpassing kan leiden tot supply chain-aanvallen of het uitrollen van backdoors.
Artifactbeveiliging: Artefacten die in de pipeline worden gegenereerd (zoals Docker-images of binaries) moeten niet publiek toegankelijk zijn, tenzij expliciet gewenst.
5.4 Logging en auditing
Commit- en pipeline-logs: Verifieer of alle commit- en buildactiviteiten worden gelogd en of deze logs worden bewaakt op verdachte patronen (bijv. plotselinge invoer van potentieel malafide code).
Rollbackstrategieën: Kijk of er mogelijkheden zijn om snel terug te schakelen naar een eerdere stabiele versie indien er een beveiligingsincident plaatsvindt.
6. Beheer & Monitoring - Azure Policy, Defender, Governance
6.1 Azure Policy
Naleving van vereisten: Controleer of Azure Policy is gebruikt om misconfiguraties te voorkomen (bijv. verplicht encryptie, voorkom publieke endpoints, enforce tagging).
Afwijkingen: Zorg dat policies worden geëvalueerd en dat afwijkingen actief worden opgevolgd.
6.2 Azure Security Center en Defender
Compliance score: Azure Security Center geeft inzicht in securitystatus en ‘secure score’. Analyseer de aanbevelingen en controleer of deze zijn opgevolgd.
Realtime alerts: Check of alerts (bijv. ongeautoriseerde activiteiten, malware-indicatoren) worden doorgestuurd naar de juiste personen of systemen voor snelle reactie.
6.3 Governance en kostenbeheer
Resource tagging: Zonder consistente tagging kan het lastig zijn om eigenaarschap en verantwoordelijkheden aan te wijzen.
Afgesloten resources: Gebruik Resource Locks om kritieke resources te beschermen tegen onbedoelde wijzigingen of verwijdering.
6.4 Logging en rapportage
Activity Logs & Diagnostic Logs: Kijk of alle relevante logs (bijv. Key Vault-access, Storage-access, AD-audits) worden verzameld en over een gepaste termijn bewaard.
Log Analytics & SIEM: Integreer logs in een centrale omgeving of SIEM voor correlatie en detectie van complexe aanvallen.
7. Serverless & Containers - AKS, Container Registry, Serverless Workloads
7.1 Azure Kubernetes Service (AKS)
RBAC binnen Kubernetes: Beoordeel of Kubernetes zelf goed is afgeschermd en of pods en namespaces niet onnodig toegankelijk zijn.
Add-ons en extensies: Controleer of er add-ons actief zijn die niet worden gebruikt (bijv. Dashboard, Ingress-controllers) en of deze voldoende zijn afgeschermd.
Container-hardening: Verifieer of containerimages voldoen aan best practices (least privilege, geen root-gebaseerde containers, up-to-date libraries).
7.2 Container Registry
Repositorytoegang: Zorg dat slechts geautoriseerde gebruikers en services images kunnen pushen of pullen. Publiek toegankelijke registries kunnen leiden tot het uitlekken van bedrijfsgeheimen.
Image scanning: Hoewel je geen specifieke tools hoeft te noemen, is het wel van belang na te gaan of images structureel worden gescand op kwetsbaarheden.
7.3 Serverless beveiliging
Geïsoleerde omgevingen: Check of serverless services in aparte resource groups staan en of ze niet onnodig toegang hebben tot andere delen van de omgeving.
Evenementgedreven workflows: Logic Apps, Event Grid en Functions kunnen onverwachte koppelingen creëren tussen systemen. Test of kwaadaardige input (bijv. phishing e-mails, gemanipuleerde webhooks) de workflow kan verstoren of overnemen.
8. API Management
8.1 Authenticatie en autorisatie
API-keys: Check hoe vaak API-sleutels worden geroteerd en of er onderscheid is tussen productie- en test-API keys.
OAuth2 en JWT: Onderzoek of er tokenvalidatie plaatsvindt (bijv. handtekeningcontrole, geldigheidsduur). Foutieve validatie kan leiden tot ongeautoriseerde API-toegang.
8.2 Rate limiting en throttling
Bescherming tegen misbruik: Door limieten in te stellen op het aantal verzoeken per tijdseenheid, voorkom je dat een aanvaller de dienst overspoelt of brute force-aanvallen uitvoert.
Doorgifte van gevoelige data: Kijk of er mechanismen zijn om gevoelige velden te maskeren, bijvoorbeeld in response payloads of logbestanden.
8.3 Data-exfiltratie
Validatie van input en output: Inspecteer hoe de API omgaat met ongebruikelijke of malafide input, en of gevoelige data in JSON/XML-responses onbedoeld wordt meegestuurd.
Logging: Controleer of alle API requests en responses (voor zover nodig) worden gelogd, en of foutmeldingen geen gevoelige details lekken.
9. Compliance en Governance
9.1 Policyhandhaving
Interne richtlijnen: Kijk of het bedrijf interne standaarden heeft opgesteld voor het gebruik van cloudresources, en of deze worden gehandhaafd via Azure Policy of Governance-structuren.
Rapportage: Beoordeel of er periodieke rapportages plaatsvinden over de compliance-status (bijv. GDPR, ISO27001, SOC 2).
9.2 Shadow IT
Niet-geautoriseerde resources: Inventariseer de gehele subscription (of meerdere subscriptions) om te ontdekken of er resources zijn aangemaakt buiten de reguliere procedures.
Offboardingprocessen: Controleer of resources worden opgeruimd zodra een project afloopt of een gebruiker het bedrijf verlaat.
9.3 Risicoanalyse
Classificatie van data en systemen: Kijk of er een duidelijk beeld is van welke data onderhevig is aan wettelijke eisen en welke services kritiek zijn voor de bedrijfscontinuïteit.
Gap-analyse: Vergelijk bestaande securitymaatregelen met de vereiste normen en identificeer concrete verbeterpunten.
10. Incident Response & Recovery
10.1 Back-upstrategie
Periodiek testen: Het maken van back-ups is één ding, maar het regelmatig testen van herstel (restore) is net zo belangrijk. Onderzoek of dit proces gestructureerd plaatsvindt.
Automatisering: Controleer of back-ups geautomatiseerd worden gemaakt, of ze offsite/op een andere Azure-regio worden opgeslagen en of versleuteling is ingeschakeld.
10.2 Disaster Recovery (DR)
Failover en failback: Beoordeel of er een secondair datacenter of Azure-regio is waarnaar kan worden overgeschakeld bij falen van de primaire regio.
RTO/RPO-eisen: Kijk of de Recovery Time Objective (RTO) en Recovery Point Objective (RPO) overeenkomen met de verwachtingen van de organisatie en daadwerkelijk haalbaar zijn.
10.3 Security Playbooks
Incidentresponsplan: Verifieer of er een formeel incidentresponsplan is voor verschillende scenario’s, zoals DDoS-aanvallen, datalekken of accountcompromittering.
Communicatie en escalatie: Onderzoek of er duidelijke richtlijnen bestaan over wie wanneer wordt geïnformeerd, en welke stappen volgen om schade te beperken of te herstellen.
Last updated