ADCS Hardening
AD Zonder Eeuwige Adminrechten
In netwerkbeveiliging wint structuur van improvisatie: duidelijke paden, minder privileges en expliciete trust-grenzen.
Bij ADCS Hardening levert privilege-opruiming en trust-hygiene de grootste reductie van impact op.
Zo beperk je niet alleen de kans op incidenten, maar vooral ook de omvang en duur als er iets misgaat.
Directe maatregelen (15 minuten)
Waarom dit telt
De kern van ADCS Hardening is risicoreductie in de praktijk. Technische context ondersteunt de maatregelkeuze, maar implementatie en borging staan centraal.
Verdediging
Template hardening
De belangrijkste maatregel is het controleren van elke certificate template:
# Audit alle templates op bekende kwetsbaarheden
.\Certify.exe find /vulnerable
# Of vanuit Linux
certipy find -u admin@domain.local -p 'Password!' -dc-ip 10.0.0.1 -vulnerableVoor elke template, controleer:
- Is
ENROLLEE_SUPPLIES_SUBJECTnodig? In 95% van de gevallen niet. Schakel het uit. - Wie heeft enrollment-rechten? Beperk tot specifieke
groepen, niet
Authenticated UsersofDomain Users. - Is Manager Approval ingeschakeld? Voor gevoelige templates zou elke aanvraag handmatig goedgekeurd moeten worden.
- Is de EKU beperkt? Geen
Any Purpose. Alleen de specifieke key usages die nodig zijn.
CA hardening
# Check of ESC6 flag actief is
certutil -config "dc01.domain.local\domain-CA" -getreg "policy\EditFlags"
# Verwijder de ESC6 flag als deze actief is
certutil -config "dc01.domain.local\domain-CA" -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJECTALTNAME2
# Herstart de CA service
net stop certsvc && net start certsvcConfigureer Enrollment Agent Restrictions om te beperken welke templates en doelaccounts Enrollment Agents mogen gebruiken.
Monitoring
Certificate enrollment events zijn een goudmijn voor detectie, als je ze inschakelt:
| Event ID | Beschrijving | Belang |
|---|---|---|
| 4886 | Certificate request ontvangen | Wie vraagt wat aan? |
| 4887 | Certificate request goedgekeurd en uitgegeven | Welke SAN? Welke template? |
| 4888 | Certificate request geweigerd | Iemand probeert iets ongewoons |
| 4889 | Certificate request pending | Manager approval actief |
Monitor specifiek op: - Certificaataanvragen met een SAN die afwijkt van de aanvrager - Gebruik van templates die normaal niet worden gebruikt - Enrollment Agent-certificaataanvragen - Wijzigingen aan template-configuratie
Remediation checklist
Een praktische checklist voor het beveiligen van je ADCS-omgeving:
[ ] Voer Certify.exe find /vulnerable of certipy find -vulnerable uit
[ ] Documenteer alle gevonden kwetsbare templates
[ ] Per template:
[ ] Is ENROLLEE_SUPPLIES_SUBJECT nodig? Zo nee, uitschakelen
[ ] Zijn de enrollment-rechten beperkt tot de juiste groepen?
[ ] Is Manager Approval ingeschakeld voor gevoelige templates?
[ ] Is de EKU beperkt tot wat nodig is?
[ ] Is msPKI-RA-Signature > 0 waar nodig?
[ ] CA-level:
[ ] Is EDITF_ATTRIBUTESUBJECTALTNAME2 uitgeschakeld?
[ ] Zijn Enrollment Agent Restrictions geconfigureerd?
[ ] Heeft de CA Web Enrollment HTTPS + EPA?
[ ] Is de CA-key in een HSM opgeslagen?
[ ] Monitoring:
[ ] Zijn Event IDs 4886-4889 ingeschakeld?
[ ] Is er alerting op certificaten met afwijkende SAN?
[ ] Is er alerting op ongebruikelijke template-aanvragen?
[ ] Organisatorisch:
[ ] Is er een eigenaar aangewezen voor de PKI-infrastructuur?
[ ] Worden templates periodiek gereviewed?
[ ] Is er een procedure voor het intrekken van certificaten?
PKI best practices samengevat
- Audit je templates — regelmatig, niet eenmalig. Templates worden gekopieerd, aangepast, vergeten.
- Minimale rechten — enrollment alleen voor wie het nodig heeft.
- Manager Approval — voor templates die identiteiten uitgeven.
- Geen EDITF_ATTRIBUTESUBJECTALTNAME2 — tenzij je een heel goede reden hebt, en “het was makkelijker zo” is geen goede reden.
- Separeer CA-rollen — de CA-beheerder zou niet dezelfde persoon moeten zijn als de domain admin.
- CRL/OCSP — zorg dat revocatie daadwerkelijk werkt en gecontroleerd wordt.
- HSM — bewaar de CA private key in een Hardware Security Module, niet op de harde schijf van de server.
- Tier-model — de CA hoort in Tier 0, net als de domain controllers. Behandel hem ook zo.
- Geen Web Enrollment zonder EPA — als je Certificate Enrollment Web Services aanbiedt, gebruik HTTPS en schakel Extended Protection for Authentication in.
- Documentatie — documenteer elke template: wie heeft hem gemaakt, waarom bestaat hij, wie mag enrollen, en wanneer is hij voor het laatst gereviewd.
Praktische validatie van ADCS-hardening
Valideer ADCS-hardening uitsluitend in een geautoriseerde testomgeving met defensieve controles: template-audits, permissiecontrole, issuance-beperkingen en loggingverificatie.
De ware waanzin
Laten we even stilstaan bij wat we hier zien. Active Directory Certificate Services is een fundamenteel onderdeel van de identiteitsinfrastructuur van vrijwel elke grote organisatie ter wereld. Het is ontworpen om vertrouwen te beheren. En het is zo complex, zo slecht gedocumenteerd, en zo makkelijk verkeerd te configureren dat een enkele checkbox in een template-wizard — een checkbox die standaard aanstaat bij bepaalde template types — voldoende is om een aanvaller van helpdesk-medewerker naar domain admin te promoveren.
Niemand begrijpt PKI. Dat is geen grap — het is een observatie. Ik heb het gevraagd aan systeembeheerders, security officers, zelfs aan mensen die de CA beheren. “Hoe werken je certificate templates?” wordt beantwoord met een blik die varieert van milde paniek tot existentiële crisis. Ze hebben het opgezet. Het werkt. Raken. We. Het. Niet. Aan.
En dat is precies het probleem. PKI is het fundament waarop authenticatie, encryptie en vertrouwen gebouwd zijn. Maar omdat niemand het begrijpt, controleert niemand het. Omdat niemand het controleert, wordt het niet gepatcht. En omdat het niet gepatcht wordt, is het jarenlang kwetsbaar. De “Certified Pre-Owned” paper beschreef kwetsbaarheden die al bestonden sinds de introductie van ADCS. Niet maanden. Jaren. Soms decennia.
Het is als een land dat zijn grondwet niet begrijpt maar er wel op vertrouwt. Iedereen gaat ervan uit dat iemand anders het in de gaten houdt. Maar niemand doet het. En op een dag komt er iemand langs die de grondwet daadwerkelijk leest, en ontdekt dat er een clausule in staat die zegt: “Wie dit leest, mag het land hebben.”
In het volgende hoofdstuk behandelen we persistentie — de kunst om te blijven, zelfs wanneer de verdedigers denken dat ze je eruit hebben gegooid. Want het enige dat erger is dan een inbreker in je huis, is een inbreker die er nooit meer weggaat.
Verder lezen in de kennisbank
Deze artikelen in het portaal geven je meer achtergrond en praktische context:
- Firewalls — de uitsmijter die niet alles tegenhoudt
- Netwerksegmentatie — waarom je niet alles aan alles moet knopen
- DNS — het telefoonboek dat het internet bij elkaar houdt
- Logging en monitoring — de bewakingscamera's van je IT-omgeving
- Zero Trust — vertrouw niemand, ook jezelf niet
Je hebt een account nodig om de kennisbank te openen. Inloggen of registreren.
Gerelateerde securitymaatregelen
Deze artikelen bieden aanvullende context en verdieping: