Toen één bug 16 miljoen websites platlegde: wat we kunnen leren van de .de-dns-storing

Toen één bug 16 miljoen websites platlegde: wat we kunnen leren van de .de-dns-storing

Jun 18, 2026 dns dnssec infrastructure devops incident-response system-design cloud-hosting domain-registrar

Toen Één Bug 16 Miljoen Domeinen Ten Val Bracht: Lessen van de .de DNS-Uitval

Laten we eerlijk zijn: de meesten van ons denken niet aan DNS tot het kapotgaat. En wanneer dat gebeurt? Dan gaat alles kapot.

Op 5 mei 2026 leerde het Duitse domain registry DENIC deze les op de harde manier tijdens een routine DNSSEC-sleutelwisseling. Gedurende ongeveer drie uur werd het opzoeken van .de-domeinen een russische roulette—sommige werkten, de meeste niet, en validerende resolvers over de hele wereld gooiden met "bogus"-fouten alsof het confetti was op een kapot feest.

De technische hoofdoorzaak? Eén fout in custom rollover-software. Maar het waarom achter deze uitval wordt pas echt interessant—en daar zou elke developer en infrastructuur-engineer goed naar moeten luisteren.

Wat Er Eigenlijk Gebeurde

De DNSSEC-tekeninfrastructuur voor .de-domeinen draait op een combinatie van standaardsoftware (Knot resolver) en custom ontwikkelingen, allemaal verwerkt door Hardware Security Modules (HSMs). Stel HSMs voor als superveilige cryptografische kluizen die de private keys genereren en opslaan die de DNS-zone beschermen.

Tijdens een routine sleutelwisseling in mei 2026 ging de custom "rollover agent"—software die verantwoordelijk is voor het genereren van sleutelmateriaal en dit distribueert naar alle HSMs—stuk op een subtiele maar catastrofale manier.

Hier zit het probleem: in plaats van één sleutelpaar te genereren en dit te distribueren naar alle verbonden HSMs, produceerde de buggy code drie aparte sleutelparen—één voor elke HSM. Het ergste? Alle drie de paren kregen identieke metadata, inclusief dezelfde key tag (33834).

Het resultaat? Toen de zone werd gepubliceerd, had slechts één van de drie HSMs de private key die overeenkwam met het publieke DNSKEY-record. Dit betekende dat slechts ongeveer één derde van de DNSSEC-handtekeningen kon worden gevalideerd. De rest? Ongeldig. En in DNSSEC betekent een ongeldige handtekening niet "waarschijnlijk oké"—het betekent "verdacht."

Waarom Testing Dit Niet Ving

Hier wordt het verhaal pas echt waardevol voor iedereen die infrastructuurcode schrijft.

De bug in de rollover agent manifesteert zich alleen wanneer meerdere HSMs zijn verbonden. Hier komt het: de testomgeving bestond uit slechts één HSM op één locatie.

Wanneer je maar één HSM hebt in je testopstelling, produceert "één sleutelpaar per HSM" en "één sleutelpaar voor alle HSMs" identieke resultaten. De foutieve code slaagde voor elke test omdat de testomgeving niet overeenkwam met de productierealiteit.

Dit is een klassiek geval van environment parity failure—een fenomeen dat elke developer in theorie kent maar dat in de praktijk nog steeds voorkomt. De testomgeving was "goed genoeg" totdat dat niet meer zo was.

De Monitoring Paradox

Hier komt het frustrerende deel: DENIC's monitorsystemen detecteerden het probleem daadwerkelijk.

Drie aparte validatietools draaiden continu, controleerden op ontbrekende of niet-valideerbare handtekeningen. Deze systemen deden precies wat ze hoorden te doen—ze identificeerden de anomalieën.

Maar de gegenereerde alerts werden niet correct verwerkt. De notificaties werden verstuurd, de mensen ontvingen ze niet op tijd (of handelden er niet op), en de kapotte zone werd drie kritieke urenlang gepubliceerd.

Dit is een patroon dat we keer op keer zien: monitoring die problemen detecteert is alleen zo waardevol als het incident response-proces dat op die detecties reageert. Je kunt de beste observability-stack ter wereld hebben, maar als alerts stilzwijgend falen of response playbooks onduidelijk zijn, vlieg je nog steeds blind.

Sommige grote resolver-operators begrepen wat er aan de hand was en schakelden tijdelijk DNSSEC-validatie uit voor .de-domeinen—kortweg hun resolvers vertellend om "te vertrouwen maar niet te verifiëren" voor Duitse domeinen. Dit beperkte de schade voor hun gebruikers, maar liet zien hoe fragiel onze validatie-aannames kunnen zijn.

Het Domino-effect: Waarom Ook Niet-gevalideerde Domeinen Kapotgingen

Hier zit een nuance die dit incident bijzonder leerzaam maakt: de domeinen die braken gebruikten niet per se zelf DNSSEC.

DNSSEC-validatie werkt recursief. Wanneer een resolver een .de-domein opvraagt, bevat het antwoord NSEC3-records die bewijzen dat bepaalde records niet bestaan in de zone. Deze NSEC3-records moeten worden getekend—en als die handtekeningen ongeldig zijn, wordt het hele antwoord als verdacht gemarkeerd.

Dus zelfs als jouw Duitse startup-domein helemaal geen DNSSEC gebruikt, de delegatieketen die bewijst dat jouw domein bestaat vereist nog steeds geldige handtekeningen. Toen die validatiefouten zich opstapelden, werden domeinen met nul DNSSEC-configuratie zelf onoplosbaar.

DNSSEC is alleen zo sterk als zijn zwakste zone. Het falen van de .de-zone-handtekeningen betekende dat de hele TLD er gecompromitteerd uitzag voor validerende resolvers.

Wat Infrastructuurteams Moeten Meenemen

1. Test in Productie-achtige Omgevingen

Dit klinkt очевид. Het is очевид. En toch gebeurt het. Als jouw code anders werkt met één HSM versus drie, dan heeft je testomgeving drie HSMs nodig. Ja, het is duurder. Ja, het is complexer. Het is nog steeds noodzakelijk.

2. Faalmodi Moeten Worden Getest, Niet Alleen Happy Paths

Het codereview-proces miste dit omdat de testscenario's alleen happy paths dekten. Wat gebeurt er bij netwerkpartities? Wanneer HSMs worden toegevoegd of verwijderd? Wanneer sleutels uit sync raken? Adversarial testing tegen je eigen aannames is geen optie.

3. Monitoring Zonder Runbooks Is Gewoon Ruis

Alerts die niemand weet hoe te verwerken—of die om 3 uur 's nachts afgaan zonder duidelijke escalatiepaden—voorkomen geen uitval. Ze documenteren ze. Elke alert moet een bijbehorende runbook hebben. Elke runbook moet elk kwartaal worden getest.

4. Redundantie Is Niet Alleen Voor Hardware

DENIC's infrastructuur had HSMs verspreid over twee geografisch gescheiden datacenters. Maar de software-architectuur ging ervan uit dat alle HSMs identiek zouden werken. Echte redundantie betekent ontwerpen voor het falen van je aannames, niet alleen van je componenten.

5. Denk Aan de Blast Radius

Bij het ontwerpen van kritieke infrastructuur, vraag jezelf af: wat gebeurt er wanneer dit breekt, en hoe ver spreidt de schade? Het .de-incident trof domeinen die niets met DNSSEC te maken hadden. Dat is een herinnering dat in gedistribueerde systemen afhankelijkheden in onverwachte richtingen lopen.

Het Goede Nieuws

DENIC ging hier admirably transparent mee om. Het eindrapport legde exact uit wat er misging, waarom bestaande veiligheidsmaatregelen faalden, en concrete maatregelen die worden geïmplementeerd—inclusief verbeterde codereview-processen en versterkte incident response-protocollen.

Het DNSSEC-ecosysteem leert van deze incidenten. Elke grote uitval—elke .de, elke Dyn, elke Cloudflare-hickup—leert ons iets over het bouwen van veerkrachtigere infrastructuur. De sleutel is om die lessen daadwerkelijk toe te passen.


Conclusie: DNS is de onbezongen held van het internet totdat het dat niet meer is. De .de-uitval van mei 2026 is een herinnering dat zelfs volwassen, goed gefinancierde operaties met meerdere beschermingslagen kunnen worden vernederd door één bug op de verkeerde plek op het verkeerde moment.

Voor developers en infrastructuurteams gaat het niet om angst—het gaat om waakzaamheid. Test wat je uitrolt. Monitor wat je test. En ga er nooit van uit dat je testomgeving perfect overeenkomt met productie.

Want wanneer DNS breekt, breekt alles. En de les kost altijd meer hoe verder in de stack je hem leert.

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB HU IT FR ES DE DA ZH-HANS EN