Im Kontext des WAF-Angriffsscores, der eine von Cloudflare entwickelte, maschinelles Lernen (ML) basierende Schicht auf dem Web Application Firewall (WAF) ist, hat die Popularität dieser Funktion die Notwendigkeit von Leistungsverbesserungen hervorgerufen. Das Ziel dieser Funktion ist es, das WAF zu ergänzen und Angriffsbypasses zu erkennen, die zuvor noch nicht aufgetreten sind, um Zero-Day-Schwachstellen zu entdecken und Kunden besser vor aufkommenden und unbekannten Bedrohungen zu schützen.
Um die Leistung des WAF-ML-Modells zu optimieren, wurden mehrere Schritte unternommen. Zunächst wurde die Vorbearbeitungsphase optimiert, indem Aho-Corasick DFA für Hash-Map-Lookups eingesetzt wurden, was die Latenz um 47,84 % auf 1,64x reduzierte. Danach wurde ein match-basierter Ansatz implementiert, der die Latenz weiter um 53,45 % auf 2,15x reduzierte. Als nächstes wurde eine neue Buchstaben-Ersetzung-Implementierung entwickelt, die die Vorbearbeitungsgeschwindigkeit verdoppelte und sie vier bis fünf Mal schneller machte als die Originalversion.
Anschließend wurde ein branchenloses N-Gram-Lookup implementiert, der die Latenz um 91,33 % auf 11,54x reduzierte. Dies wurde erreicht, indem Offset-Lookup-Tabellen vorberechnet und verwendet wurden, um Vergleichsoperationen mit direkten Speicherzugriffen zu ersetzen, die viel schneller sind und keine Verzweigungen beinhalten.
Schließlich wurde die Modellinferenz optimiert, indem SIMD-Matrix-Multiplikation und XNNPack aktiviert wurden, was die Latenz um 77,17 % auf 4,38x reduzierte. Darüber hinaus wurde ein LRU-Cache implementiert, um redundanten Ausführungen zu vermeiden und die Latenz weiter zu reduzieren. Insgesamt reduzierten die Optimierungen die Ausführungszeit des WAF-ML um etwa 81,90 %, von 1519 auf 275 Mikrosekunden, oder 5,5x schneller.
blog.cloudflare.com
Making WAF ML models go brrr: saving decades of processing time
Create attached notes ...