
A WAF szabályai és a naplózás szerepe
A WAF elsődleges célja az alkalmazásszintű (7-es réteg) támadások kiszűrése, ehhez szabályalapú motorokat alkalmaz. Léteznek menedzselt szabályok, amelyeket maga a Cloudflare szakértői csapata ír az ismert sebezhetőségek (CVE-k), OWASP-kockázatok és például a Log4Shell típusú hibák kivédésére. Ezek mellett egyéni szabályokat is létrehozhatnak az ügyfelek, illetve rendelkezésre áll a feltöltött állományok észlelése, valamint a kiszivárgott jelszavak észlelése is.
Az egyes szabályok log-, vagyis naplózási műveletet is végezhetnek, ami bizonyítja, hogy egy adott feltétel teljesült, és rögzíti ezt az eseményt. Így ellenőrizhető, hogy a szabály a vártnak megfelelően működött-e. Ez azonban nem mindig ad választ arra, pontosan melyik feltétel vagy mező váltotta ki a találatot, főleg bonyolultabb szabálykifejezéseknél – mert kódtranszformációk, például a Base64- vagy URL-kódolások tovább bonyolíthatják a helyzetet.
Átláthatóbbá válik, hogy pontosan mi váltja ki a találatot
Nem elhanyagolható tényező, hogy a menedzselt szabálykészletek pontos logikája sokszor nem nyilvános, így csak a cím és leírás alapján lehet gyanítani, mit ellenőriznek. Emiatt kritikus kérdés lehet, hogy egy WAF-riasztás valóban jogos-e, avagy téves pozitív.
Ezután lépnek színre az új, payload-szintű naplózási funkciók. Ezek képesek pontosan megmutatni, hogy egy adott szabály miért lépett életbe: konkrétan melyik kérési mező mit tartalmazott – adott esetben átalakítás után –, és miért ítélte a rendszer problémásnak. Ehhez a Wirefilter-alapú motor minden releváns mezőt és annak értékét eltárolja, amely befolyásolta a döntést.
Hogyan működik a payload naplózás?
A naplózás motorja Rust nyelven készült, és minden kifejezés értékelése után a valóban felhasznált mezőket és azok értékeit egy strukturált JSON-ben menti el, például:
{ http.host: cloudflare.com, http.method: get, http.user_agent: mozilla }
Nem elhanyagolható tényező, hogy ezek az adatok a kliens által adott nyilvános kulccsal titkosítva kerülnek átadásra, így garantált a biztonság. A dekódolás és megtekintés történhet API-n keresztül, de akár egyedi Workerrel, vagy a Cloudflare admin felületén is.
Nagyságrendekkel csökken a zaj, nő az értékes információ
A Wirefilterben bizonyos mezők, például a fejlécnevek, tömbként, azaz több értékként jelennek meg. Korábban, ha egy szabálykifejezés bármelyik ilyen mezőn egyezést talált, a rendszer az összes elemet naplózta (például minden HTTP-fejlécet) – akár tízezres méretben is. Az új rendszer csak a ténylegesen egyező indexeket és azok környezetét menti, például:
http.request.headers.names[0,1] = [content-type, content-length]
Részletesebb lett a napló tartalma is: minden, részben egyező mezőhöz rövid környezetet is mellékel, vagyis a lényegi talált karakterek előtti és utáni szöveget is megmutatja (például 15–15 bájtos mintát). Ez nemcsak átláthatóbbá teszi a hibakeresést, hanem jelentősen csökkenti a napló méretét is.
Optimalizáció és gyorsulás
Nem elhanyagolható tényező, hogy a szabálykészletek erősen támaszkodnak reguláris kifejezésekre, amelyek lefordítása és tárolása óriási erőforrást igényelne, ha ezt minden kérésnél elölről kellene kezdeni. A belső gyorsítótár és a kis memóriájú adatszerkezetek alkalmazása révén jelentős CPU-órák takaríthatók meg. Emellett a naplók átlagmérete is 1500 bájtról 500 bájtra csökkent, ami 67%-os méretcsökkenést jelent, így véget vetve a túl hosszú és emiatt levágott naplók korszakának.
Kihívások és a következő lépések
A jelenlegi megvalósítás mellett előfordulhat, hogy néhány speciális karakterlánc (például médiafájlokban) lejegyzésekor az adatok pontatlanul értelmeződnek, és Unicode-helyettesítő karakterekkel (U+FFFD) jelennek meg. A tervezett változtatások között szerepel, hogy a jövőben bináris formátumokat is vizsgálnak a teljesítmény javítása és a visszafelé kompatibilitás megtartása érdekében.
Bár jelenleg csak a menedzselt WAF-szabályokkal működik, a payload-naplózást hamarosan bevezetik saját szabályokhoz, pontérték-alapú támadásfelismeréshez, tartalomellenőrzéshez, illetve az MI-alapú tűzfalhoz is. Így például a rendszer azonnal kiszúrhatja, ha egy MI-nek elküldött kérésben személyes adat is szerepel.
Miért fog mindez érdekelni?
Azonnali, részletes visszajelzés kapható arról, hogy mely WAF-szabályok működnek valóban a vártnak megfelelően, illetve a téves riasztások is könnyen tetten érhetők. Az új payload-naplózás bevezetése egyszerűbbé teszi a szabályok finomhangolását, csökkenti az elemzendő adatmennyiséget és gyorsítja az adatfeldolgozást. Ez elengedhetetlen a modern, nagy forgalmú webalkalmazások védelméhez.
