7min Security

Cloudflare biedt excuses aan na wereldwijde storing, wat ging er mis?

Een eigen update, geen DDoS-aanval

Cloudflare biedt excuses aan na wereldwijde storing, wat ging er mis?

Geen staatshacker of DDOS-aanval door een botnet, maar een doodgewoon bestand dat zich als een virus in hoog tempo door het wereldwijde Cloudflare-netwerk verspreidde. Waarom legde dit de dienstverlening van het bedrijf plat? En hoe uniek was dit probleem?

De storing van 18 november was de grootste bij Cloudflare sinds 2019. Diensten in alle soorten en maten, van ChatGPT tot X, Spotify, Canva, Authy en de IKEA-website, gingen offline gisteren. Technisch gezien was er niets mis met de diensten zelf of de verbinding van eindgebruikers, zoals de 500-foutmelding regelmatig liet zien. Het online pad naar deze diensten liep bij getroffen sites via ten minste één Cloudflare-dienst. De boosdoener bevond zich in het Bot Management-systeem van de CDN-provider, een apart in te kopen dienst die zonder CAPTCHA’s malafide bots tegenhoudt. Als alles in orde is, haalt het frictie weg uit de gebruikerservaring. Via verschillende signalen merkt Cloudflare dat je een reguliere gebruiker bent, waardoor je (zonder ooit te merken dat deze dienst actief is) toegang krijgt tot de website.

Geen kwaad

Het personeel bij Cloudflare dacht aanvankelijk aan een “hyper-scale DDoS”-aanval, vertelt CEO Matthew Prince. Zo gek is dat niet: record op record wordt gevestigd door massale botnets die door onder meer Cloudflare en Microsoft worden geweerd. Het record was in januari nog ‘slechts’ 5,6 Tbps, ofwel 700 gigabytes per seconde, afgevuurd door circa 13.000 IoT-apparaten. In september was dit alweer 22,2 Tbps.

Echter ging het om een zogeheten ‘feature file’, een bestand dat aan Cloudflare-software vertelt welk malafide gedrag bots vertonen. Dat gedrag verandert continu in een kat-en-muisspel met leveranciers zoals Cloudflare. Het Bot Management-systeem ontvangt deze feature file, dat maximaal 200 features mag bevatten. Dat is ruimschoots onder het werkelijke aantal features dat het systeem op runtime gebruikt, aldus Prince. Het blijft doorgaans bij zo’n 60 als het systeem draait.

Om de cybervijand voor te blijven, verspreidt de feature file zich razendsnel door het wereldwijde netwerk. Deze keer was het echter twee keer zo groot als de bedoeling is, voorbij de bestandslimiet binnen de Cloudflare-software voor de feature file. Het bevatte daardoor meer dan 200 features, waardoor het systeem “in paniek” raakte, in de verwoording van Prince. Die overvloed aan features ontstond door een foutieve wijziging in de permissies van een database-systeem. Er verschenen meerdere entries in de database voor de nu beruchte feature file, met alle gevolgen van dien.

Gele gebiedsgrafiek met het aantal aanvragen per seconde per antwoordstatuscode in de loop van de tijd, met scherpe pieken rond 11:30-12:00 uur en een aanhoudend hoog volume van 12:00 tot 15:00 uur, geleidelijk afnemend na 15:00 uur.
Bron: Cloudflare

De gevolgen waren direct merkbaar om 11:20 Nederlandse tijd, maar de storing was uiterst ongewoon in haar gedrag. Normaliter verwacht je bij een generiek probleem bij een DNS-leverancier dat er een piek te zien is, veelal lokaal van aard door bijvoorbeeld stroomuitval in een datacenter. Wereldwijd konden gebruikers echter soms wel en soms weer niet toegang verkrijgen tot de opgevraagde internetdiensten. Sterker nog: die toegang verliep volgens een cadans van vijf minuten omdat een ClickHouse database cluster in die frequentie een query draait om een nieuwe feature file te genereren.

Kortom, een ongewone situatie dat rook naar een opzettelijke aanval. Dat bleek niet het geval. Het kostte Cloudflare ruim drie uur om erachter te komen waar de fout precies zat en om deze op te lossen. Zodra elke ClickHouse-node echter een foutief configuratiebestand genereerde, was alle toegang geweigerd tot websites die afhankelijk waren van de bot-werende module. Dat gebeurde rond 13:00. Anderhalf uur later had de remediatie van Cloudflare effect en kort na 17:00 was het aantal foutmeldingen teruggedrongen tot het reguliere, lage niveau.

Complexe werking

Websites onthullen niet altijd welke reverse proxy ze gebruiken, maar vier of de vijf waarvan dat wel bekend is, gebruikt Cloudflare hiervoor. Zelf constateert het bedrijf dat het 20 procent van het wereldwijde web via het eigen netwerk laat vloeien. Aangezien het internet per definitie innig met zichzelf verbonden is, maakt ook die resterende 80 procent veelal indirect gebruik van Cloudflare. Met andere woorden: klik op een link en de kans is groot dat Cloudflare in the mix van het netwerkverkeer te vinden is.

Dit brengt een grote verantwoordelijkheid met zich mee. Het bedrijf, maar net twintig jaar oud, heeft haar succes te danken aan een mengelmoes van gebruikersgemak en de bereidheid om cyberdreigingen te lijf te gaan. Allerlei pijnpunten van netwerkverkeer werden dankzij Cloudflare met slechts een enkele muisklik oplosbaar. Dankzij een freemium-prijsmodel kunnen klanten voordelig en snel de randvoorwaarden voor het draaien van een website afdekken. Dit alles was alleen niet genoeg geweest voor het internet van vandaag. Zoals eerder vermeld behalen DDoS-aanvallen nieuwe records, maar veel belangrijker is de algemene constatering dat botverkeer continu websites onderuit kan halen. Cloudflare weet dit doorgaans ongemerkt te voorkomen op een veel kleinere schaal per doelwit, maar voortdurend en wereldwijd. Dat pleit het bedrijf niet vrij, maar het verdient gezegd te worden dat die taak een hels karwei is.

Echo’s van CrowdStrike

Wie de omschrijving van het probleem hierboven leest, heeft wellicht al de connectie gelegd met een andere wereldwijde storing, namelijk die van CrowdStrike op 19 juli 2024. Daar leidde een foutieve update tot blue screens of death, geannuleerde vluchten, onbereikbare sites en ziekenhuizen waarbij het werk moest worden neergelegd. De parallellen zijn veelvuldig met het Cloudflare-probleem: zelfs de fout in de problematische bestanden komen grofweg overeen. Bij CrowdStrike werden 21 input-velden verstuurd via een update aan de Falcon-securitysensor in plaats van de verwachte 20. In het geval van Cloudflare groeide een bestand tot twee keer haar normale formaat. Kortom: de software, hoe verschillend ook, was niet in staat om te compenseren voor data dat niet in het gebruikelijke formaat past.

De vraag is of dergelijke softwarefouten ooit helemaal te voorkomen zijn. Cloudflare benadrukt dat het limieten plaatst op het formaat van bestanden om prestaties te verbeteren en geheugen toe te wijzen. Bestanden die op een wereldwijde schaal in zeer korte tijd verspreid moeten worden, dienen compact te zijn. Logica om foutieve database-informatie te kunnen corrigeren, leidt mogelijk tot een tragere uitrol.

De algemene parallel tussen de incidenten bij Cloudflare en CrowdStrike is dat het hier gaat om bedrijven die zo snel mogelijk klanten willen voorzien van de meest recente bescherming. Dat gaat, in beide gevallen, zo goed als altijd goed. Wanneer het echter misgaat, kan een groot deel van het internet of een groot aantal kritieke apparaten uitvallen. Ook kun je niet van klanten verwachten dat ze allemaal een alternatief op de plank hebben liggen om online te blijven.

Conclusie: een harde les, maar een ‘freak incident’

CEO Matthew Prince is er duidelijk over. “Een uitval zoals die van vandaag is onacceptabel.” Het bedrijf zal dus niet ervan uitgaan dat dit ‘freak incident’ (naar onze inschatting) nooit meer plaats kan vinden. De duidelijke suggestie van Prince is dat Cloudflare net als bij eerdere storingen zal zoeken naar manieren om weerbaardere systemen te bouwen. Dat kan vanzelfsprekend niet ten koste gaan van de DDoS-werende functies die het Bot Management-systeem verzorgt.

De kans bestaat dat Cloudflare haar controle op snelle updates versterkt, bijvoorbeeld door de bestandsgrootte voortaan te verifiëren. Een probleem als deze lijkt echter altijd een basale, doch unieke oorzaak te hebben. Net als andere vendoren weet Cloudflare niet wat het niet weet, hoe doodeenvoudig dat ook klinkt.

Wereldwijd actieve securitybedrijven, waaronder we Cloudflare door haar anti-botmaatregelen kunnen scharen, dragen een verantwoordelijkheid waar klanten zich bewust van moeten zijn. Stilstaan bij de controle die je weggeeft voor gemak gaat niet vanzelf. Downtime is alleen de grote boeman voor ondernemingen en kan ze failliet laten gaan. In principe moet geen enkel bedrijf volledig afhankelijk zijn van een ander voor haar voortbestaan. In het geval van Cloudflare-uitval moet het voor het gros van websites wel erg langdurig zijn om daadwerkelijk te leiden tot een existentiële crisis. De meeste storingen zijn van korte duur. Maar weet dat ze dermate serieus kunnen zijn dat je er een werkdag of meer aan beschikbaarheid verliest. Wat je dan precies doet, kun je het beste vooraf uitvogelen.

Lees ook: Cloudflare brengt 50.000 LLM’s binnen handbereik met Replicate-overname