> For the complete documentation index, see [llms.txt](https://docs.stoik.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stoik.io/cyber-best-practices/nl/handleidingen-voor-het-verhelpen-van-kwetsbaarheden/cloud-scan/microsoft-azure-entra-id-microsoft-365.md).

# Microsoft Azure / Entra ID / Microsoft 365

Deze bevindingen zijn van toepassing op organisaties die Microsoft-cloudservices gebruiken (Azure-abonnementen, Microsoft 365, Entra ID / Azure Active Directory).

## Bevoorrechte gebruikers met uitgeschakelde MFA

**Ernst: Hoog**

### Wat het betekent

Multi-Factor Authentication (MFA) voegt een tweede beveiligingslaag toe bij het inloggen, meestal een code uit een telefoonapp of een hardwarekey. Zonder MFA, als een aanvaller het wachtwoord van een beheerder raadt of steelt (via phishing, een datalek of brute force), krijgt hij volledige toegang tot je cloudomgeving zonder dat iets hem tegenhoudt.

Deze bevinding markeert **beheerdersaccounts waarvoor MFA niet is ingeschakeld**. Dit zijn de meest gevoelige accounts in je organisatie: een gecompromitteerd beheerdersaccount kan leiden tot volledige controle over je e-mail, bestanden en infrastructuur.

### Wat de scan controleert

De scan onderzoekt alle gebruikers met bevoorrechte rollen (Global Administrator, Application Administrator, Security Administrator, enz.) en controleert of ze zich hebben geregistreerd voor MFA. De waarschuwing wordt geactiveerd als een bevoorrechte gebruiker MFA uitgeschakeld heeft.

### Hoe je het oplost

**Optie A: Security Defaults inschakelen (de eenvoudigste)**

Als je nog geen Conditional Access-beleid hebt, is Security Defaults de snelste manier om MFA voor alle gebruikers af te dwingen:

1. Ga naar [Entra ID](https://entra.microsoft.com) > `Identity` > `Overzicht` > `Eigenschappen`.
2. Klik op `Beveiligingsstandaarden beheren`.
3. Stel in op `Ingeschakeld`.

**Optie B: Conditional Access gebruiken (aanbevolen voor grotere organisaties)**

1. Ga naar [Entra ID](https://entra.microsoft.com) > `Beveiliging` > `Conditional Access`.
2. Klik op `+ Nieuw beleid`.
3. Geef het de naam: "MFA vereisen voor beheerders".
4. Onder `Gebruikers`: selecteer `Directoryrollen` en kies alle beheerdersrollen (Global Administrator, Security Administrator, enz.).
5. Onder `Verlenen`: selecteer `Meervoudige verificatie vereisen`.
6. Stel het beleid in op `Aan` en sla op.

Na het aanmaken van het beleid krijgt elke beheerder bij de volgende inlog gevraagd om MFA in te stellen.

## Shadow Admin-gebruikers

**Ernst: Laag**

### Wat het betekent

Een "Shadow Admin" is een gebruiker die beheerdersrechten heeft zonder een duidelijke beheerder te zijn. Ze hebben rollen zoals "Password Administrator" of "Helpdesk Administrator" die hen aanzienlijke machtigingen geven (bijv. iemands wachtwoord resetten, toepassingen beheren), maar ze vallen mogelijk niet onder dezelfde beveiligingscontroles (MFA, toegangsbeoordelingen) als de officieel erkende beheerders.

Het risico is dat deze accounts onder de radar blijven: ze verschijnen niet in de lijst "Global Administrators", maar een aanvaller die er een compromitteert kan nog steeds ernstige schade aanrichten, zoals het resetten van het wachtwoord van een Global Admin en het overnemen van de volledige tenant.

### Wat de scan controleert

De scan identificeert gebruikers die aan een van deze Entra ID-rollen zijn toegewezen:

* Application Administrator
* Authentication Administrator
* Cloud Application Administrator
* Helpdesk Administrator
* Password Administrator
* Privileged Authentication Administrator
* Privileged Role Administrator
* User Account Administrator

Gebruikers die ook de rol Global Administrator hebben, worden uitgesloten (zij zijn al zichtbaar als volledige beheerders).

### Hoe je het oplost

1. Ga naar [Entra ID](https://entra.microsoft.com) > `Rollen en beheerders`.
2. Klik op elk van de hierboven vermelde rollen.
3. Controleer de lijst met toegewezen gebruikers. Vraag voor elke gebruiker:
   * **Heeft deze persoon deze rol echt nodig?** Zo niet, verwijder deze dan.
   * **Is dit een permanente toewijzing?** Overweeg het gebruik van [Privileged Identity Management (PIM)](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/) voor just-in-time toegang in plaats van permanente rolinstellingen.
   * **Is MFA ingeschakeld voor deze gebruiker?** Shadow admins moeten dezelfde MFA-vereisten hebben als volledige beheerders.

## Hoog percentage bevoorrechte gebruikers

**Ernst: Medium**

### Wat het betekent

Meer dan **10% van je gebruikers** heeft beheerdersrollen in Entra ID. Dit is een teken dat beheerdersrechten te ruim zijn toegekend, mogelijk uit gemak, of omdat tijdelijke toegang nooit is ingetrokken.

Elk beheerdersaccount is een mogelijk toegangspunt voor een aanvaller. Het verminderen van het aantal beheerders beperkt de impact als één account wordt gecompromitteerd.

### Wat de scan controleert

De scan telt het totale aantal gebruikers met een beheerdersrol en vergelijkt dit met het totale aantal ingeschakelde gebruikers. De waarschuwing wordt geactiveerd als de verhouding hoger is dan 10%.

### Hoe je het oplost

1. Ga naar [Entra ID](https://entra.microsoft.com) > `Rollen en beheerders`.
2. Bekijk voor elke beheerdersrol wie is toegewezen.
3. Verwijder gebruikers die geen beheerders-toegang meer nodig hebben.
4. Gebruik voor gebruikers die slechts af en toe beheerders-toegang nodig hebben **Privileged Identity Management (PIM)** voor just-in-time verhoging.

## Gebruikers met uitgeschakelde MFA

**Ernst: Hoog**

### Wat het betekent

Sommige gebruikers in je organisatie hebben MFA niet ingeschakeld. Zonder MFA is een gestolen of geraden wachtwoord alles wat een aanvaller nodig heeft om toegang te krijgen tot hun mailbox, bestanden en alle toepassingen waartoe ze toegang hebben.

Zo vinden de meeste business email compromise (BEC)-aanvallen plaats: een aanvaller phisht het wachtwoord van een gebruiker, logt in zonder MFA en verstuurt vervolgens frauduleuze e-mails of steelt gevoelige gegevens.

### Wat de scan controleert

De scan controleert de MFA-registratiestatus van alle ingeschakelde gebruikers. Elke gebruiker met `isMfaRegistered = false` activeert de waarschuwing.

### Hoe je het oplost

De meest effectieve aanpak is om MFA voor alle gebruikers af te dwingen via Conditional Access of Security Defaults (zie "Privileged Users with MFA Disabled" hierboven voor stapsgewijze instructies).

Om te controleren welke gebruikers MFA missen:

1. Ga naar [Entra ID](https://entra.microsoft.com) > `Beveiliging` > `Authenticatiemethoden` > `Gebruikersregistratiegegevens`.
2. Filter op "MFA capable = No" om te zien wie zich niet heeft geregistreerd.

## Geen beveiligingscontact ingesteld

**Ernst: Medium**

### Wat het betekent

Microsoft Defender for Cloud kan beveiligingsdreigingen in je Azure-omgeving detecteren (verdachte inlogpogingen, malware, blootgestelde services, enz.). Maar als er geen e-mailadres is geconfigureerd, hebben deze waarschuwingen nergens heen te gaan: niemand wordt op de hoogte gebracht en aanvallen kunnen onopgemerkt blijven.

### Wat de scan controleert

De scan controleert of er ten minste één e-mailadres voor een beveiligingscontact is geconfigureerd in de meldingsinstellingen van Microsoft Defender for Cloud.

### Hoe je het oplost

1. Ga naar de [Azure Portal](https://portal.azure.com).
2. Navigeer naar `Microsoft Defender for Cloud` > `Omgevingsinstellingen`.
3. Selecteer je abonnement.
4. Klik op `E-mailmeldingen`.
5. Vul in:
   * **Aanvullende e-mailadressen:** voeg een distributielijst toe (bijv. `security@yourcompany.com`), gebruik liever niet het e-mailadres van één persoon.
   * **Meldingstypen:** minstens waarschuwingen van "Hoge ernst".
6. Klik op `Opslaan`.

## Geen rol voor het beheren van resourcelocks

**Ernst: Laag**

### Wat het betekent

Azure **Resourcelocks** beschermen kritieke resources (databases, virtuele netwerken, opslagaccounts) tegen onbedoeld verwijderen of wijzigen. Zelfs een beheerder met volledige machtigingen kan een vergrendelde resource niet verwijderen zonder eerst de lock op te heffen.

Deze bevinding betekent dat niemand in je organisatie een rol heeft gekregen die specifiek bedoeld is voor het beheren van deze locks. Zonder iemand die verantwoordelijk is, worden locks mogelijk niet consistent gebruikt, of blijven kritieke resources onbeschermd.

### Wat de scan controleert

De scan zoekt naar een aangepaste RBAC-rol met machtigingen om resourcelocks te beheren (`Microsoft.Authorization/locks/*`). Als zo'n rol niet bestaat of niemand eraan is toegewezen, wordt de waarschuwing geactiveerd.

### Hoe je het oplost

1. Ga naar de [Azure Portal](https://portal.azure.com) > `Abonnementen` > selecteer je abonnement.
2. Ga naar `Toegangsbeheer (IAM)` > `Rollen` > `+ Toevoegen` > `Aangepaste rol toevoegen`.
3. Maak een rol met de volgende machtigingen:

```
Microsoft.Authorization/locks/read
Microsoft.Authorization/locks/write
Microsoft.Authorization/locks/delete
```

4. Wijs deze rol toe aan een vertrouwde beheerder.
5. Laat die beheerder **Locks verwijderen** toepassen op kritieke resources (databases, opslagaccounts, key vaults).

## Key Vault niet herstelbaar

**Ernst: Hoog**

### Wat het betekent

Azure Key Vault bewaart je geheimen, encryptiesleutels en certificaten. Als iemand per ongeluk (of kwaadwillig) een Key Vault verwijdert, raak je al deze kwijt. Zonder **soft-delete** en **purge protection** ingeschakeld, is een verwijderde Key Vault voorgoed weg: er is geen herstel mogelijk.

### Wat de scan controleert

De scan controleert of beide beveiligingen zijn ingeschakeld:

* **Soft-delete:** verwijderde key vaults worden gedurende een bewaartermijn bewaard (standaard 90 dagen) en kunnen worden hersteld.
* **Purge protection:** zelfs na soft-delete kan de vault tijdens de bewaartermijn niet permanent worden gewist.

### Hoe je het oplost

1. Ga naar de [Azure Portal](https://portal.azure.com) > `Key vaults` > selecteer je vault.
2. Ga naar `Eigenschappen`.
3. Inschakelen `Soft-delete` (opmerking: dit is nu standaard ingeschakeld op nieuwe vaults en kan niet worden uitgeschakeld).
4. Inschakelen `Purge protection`.
5. Klik op `Opslaan`.

Voor bestaande vaults via Azure CLI:

```bash
az keyvault update --name <vault-name> --enable-purge-protection true
```

## HTTPS niet afgedwongen op App Service

**Ernst: Hoog**

### Wat het betekent

Je Azure App Service (website of API) accepteert ongecodeerd HTTP-verkeer. Dit betekent dat gegevens die tussen gebruikers en je toepassing worden verzonden, waaronder inloggegevens, persoonlijke informatie en sessietokens, kunnen worden onderschept door iedereen op het netwerkpad.

### Wat de scan controleert

De scan controleert de `HTTPS Only` instelling op elke App Service. Als deze is ingesteld op `Uit`, wordt de waarschuwing geactiveerd.

### Hoe je het oplost

1. Ga naar de [Azure Portal](https://portal.azure.com) > `App Services` > selecteer je app.
2. Ga naar `Instellingen` > `Configuratie` > `Algemene instellingen`.
3. Stel `HTTPS Only` in op `Aan`.
4. Klik op `Opslaan`.

## Onveilige TLS-versie op App Service

**Ernst: Hoog**

### Wat het betekent

Je App Service accepteert verbindingen met TLS 1.0 of 1.1, verouderde versleutelingsprotocollen met bekende kwetsbaarheden. Moderne browsers en beveiligingsnormen vereisen TLS 1.2 of hoger.

### Wat de scan controleert

De minimale TLS-versie die op de App Service is geconfigureerd. De waarschuwing wordt geactiveerd als deze lager is dan 1.2.

### Hoe je het oplost

1. Ga naar de [Azure Portal](https://portal.azure.com) > `App Services` > selecteer je app.
2. Ga naar `Instellingen` > `Configuratie` > `Algemene instellingen`.
3. Stel `Minimale TLS-versie` in op `1.2`.
4. Klik op `Opslaan`.

## SQL / PostgreSQL / MySQL: SSL-afdwinging uitgeschakeld

**Ernst: Hoog**

### Wat het betekent

Je databaseserver accepteert ongecodeerde verbindingen. Zonder SSL/TLS-afdwinging kunnen inloggegevens en gegevens die tussen je toepassing en de database worden verzonden, op het netwerk worden onderschept.

### Hoe je het oplost

**Voor Azure Database voor MySQL:**

1. Ga naar [Azure Portal](https://portal.azure.com) > `Azure Database voor MySQL` > selecteer je server.
2. Ga naar `Verbindingsbeveiliging`.
3. Stel `SSL-verbinding afdwingen` in op `INGESCHAKELD`.
4. Klik op `Opslaan`.

**Voor Azure Database voor PostgreSQL:**

1. Ga naar [Azure Portal](https://portal.azure.com) > `Azure Database voor PostgreSQL` > selecteer je server.
2. Ga naar `Verbindingsbeveiliging`.
3. Stel `SSL-verbinding afdwingen` in op `INGESCHAKELD`.
4. Klik op `Opslaan`.

## Openbare blob-container

**Ernst: Hoog**

### Wat het betekent

Een of meer van je Azure Storage-blobcontainers is geconfigureerd voor **openbare toegang**, wat betekent dat iedereen op internet de bestanden erin kan lezen zonder authenticatie. Dit is een veelvoorkomende oorzaak van datalekken.

### Hoe je het oplost

1. Ga naar [Azure Portal](https://portal.azure.com) > `Storage-accounts` > selecteer het account.
2. Ga naar `Configuratie`.
3. Stel `Openbare Blob-toegang toestaan` in op `Uitgeschakeld`.
4. Of, om afzonderlijke containers te herstellen: ga naar `Containers`, selecteer de container en wijzig `Openbaar toegangsniveau` in op `Privé`.

## Schijven van virtuele machines niet versleuteld

**Ernst: Hoog**

### Wat het betekent

De schijven van je virtuele machine zijn niet versleuteld. Als de onderliggende fysieke hardware gecompromitteerd, buiten gebruik gesteld of onjuist afgevoerd wordt, kunnen de gegevens op die schijven in leesbare tekst worden uitgelezen.

### Hoe je het oplost

1. Ga naar [Azure Portal](https://portal.azure.com) > `Virtuele machines` > selecteer de VM.
2. Ga naar `Schijven` > `Aanvullende instellingen`.
3. Inschakelen `Azure Disk Encryption` (ADE) of `Server-Side Encryption met door de klant beheerde sleutels`.
4. Schakel voor nieuwe VM's versleuteling in tijdens het aanmaken.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.stoik.io/cyber-best-practices/nl/handleidingen-voor-het-verhelpen-van-kwetsbaarheden/cloud-scan/microsoft-azure-entra-id-microsoft-365.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
