
Duplájára hízott fájl okozott lavinát
Konkrétabban egy kiemelten fontos konfigurációs fájl mérete szinte egyik pillanatról a másikra a duplájára nőtt, és emiatt a Cloudflare hálózatán futó alapvető szoftverek működése leállt. Ezek a programok olvassák ki a fájl tartalmát, hogy a cég gépi tanulásos botkezelő rendszerét naprakészen tartsák, ezzel is védve az internetet a különféle kiberfenyegetésektől. Lényeges hangsúlyozni, hogy a hiba következtében nemcsak a tartalomszolgáltató rendszer (CDN), hanem szinte az összes fő Cloudflare-szolgáltatás érintetté vált.
A mérnökök először tévesen gondolták, hogy kívülről támadják őket, de gyorsan kiderült: a rendszerbe egy korábbi, jó változat visszatöltésével és a hibás fájl terjesztésének leállításával néhány órán belül visszaállt a forgalom. Azonban további két és fél órába telt, mire az egész hálózat leterheltsége is normál szintre csökkent, miután az internetes forgalom egyszerre tért vissza az összes szolgáltatásra.
Így működik a Cloudflare botvédelme
A Cloudflare botkezelője minden egyes érkező kéréshez külön gépi tanulásos pontszámot rendel, így szűri, hogy a forgalom valódi látogatóktól vagy automatizált botoktól származik-e. A rendszer naponta frissül, az adatokat tartalmazó konfigurációs fájl ötpercenként generálódik egy ClickHouse-adatbázisból. Az új veszélyekhez és forgalmi szokásokhoz igazodva a Cloudflare így gyorsan reagálhat. Az is kulcsfontosságú, hogy ez a fájl gyorsan, folyamatosan terjedjen a szerverparkban, mivel a támadók is gyorsan váltanak taktikát.
Adatbázis-hiba indította el a láncreakciót
A hibát egy adatbázis-beállítás idézte elő: a ClickHouse rendszerben egyik nap az engedélyeket módosították, ettől a szokásos lekérdezés a kelleténél több oszlopot adott vissza, ráadásul duplán. A konfigurációs fájl sorainak száma ezáltal több mint kétszeresére nőtt. A Cloudflare proxy-szoftverei szigorú korlátokkal dolgoznak, hiszen a túl nagy konfigurációk megterhelik a szervert. Ha egy konfiguráció több mint 200 gépi tanulási jellemzőt tartalmaz, a rendszer hibát jelez, mivel a tényleges szám jóval ez alatt szokott lenni.
A robbanásszerűen megnőtt, hibás fájl pár perc alatt végigsöpört a Cloudflare szerverein, a határ elérésével pedig tömeges hibák jelentkeztek több fronton is. Ezzel párhuzamosan kilőttek az 5xx-es hibakódok, amelyek általában a teljes hálózati hiba egyértelmű jelei.
Miért volt ennyire szokatlan ez a leállás?
A problémát az tette igazán nehezen beazonosíthatóvá, hogy a sérült konfigurációs állomány ötpercenként frissült. A hálózat egyes részei korábban, más részei később kaptak rossz vagy jó verziót, így a hibák és a helyreálló szakaszok váltogatták egymást. Emiatt kezdetben a mérnökök arra gyanakodtak, hogy kibertámadás alatt állnak. Végül, amikor a teljes klaszter már csak hibás fájlt generált, a hiba folyamatos lett.
A Cloudflare szakemberei úgy állították helyre a működést, hogy leállították a hibás fájl generálását és terjedését, aztán kézzel helyettesítették egy ismerten jó verzióval, majd újraindították a főbb proxyrendszereket. A visszatérő forgalom utáni helyreállítás további órákat vett igénybe.
Tanultak az esetből, de nincs garancia a jövőre
Ez a leállás volt a Cloudflare történetében a legsúlyosabb 2019 óta. A cég most új, eddig csak felhasználói adatfeldolgozásnál használt biztonsági eljárásokkal igyekszik védeni a konfigurációs állományokat is. Több vészleállító kapcsolót (kill switch), memóriakezelési és hibajelentési limitációkat, valamint minden fő proxy modulnál részletes hibakezelést vezetnek be.
Bár teljesen kizárni nem lehet hasonló hibákat, minden ilyen incidens egyre megbízhatóbbá teszi az internet gerincét adó Cloudflare rendszereit.
