In de context van de WAF Aanval Score, Cloudflare's machine learning (ML)-laag gebouwd bovenop hun Web Application Firewall (WAF), heeft de populariteit van de functie de noodzaak voor prestatieverbeteringen gestimuleerd. Het doel van de functie is om de WAF te complementen en aanvalsbypasses te detecteren die nog nooit eerder zijn gezien, zero-day vulnerabilities te vangen en de klant te beschermen tegen opkomende en onbekende dreigingen.
Om de prestaties van de WAF ML-model te optimaliseren, werden verschillende stappen genomen. Eerst werd de pre-processing fase geoptimaliseerd door Aho-Corasick DFA te gebruiken om hash map lookups te vervangen, wat de latentie met 47,84% tot 1,64x verminderde. Vervolgens werd een match-based approach gebruikt, wat de latentie met 53,45% tot 2,15x verminderde. Daarna werd een nieuwe letters replacement implementatie ontwikkeld, wat de verwerkingssnelheid verdubbelde en vier tot vijf keer sneller maakte dan de originele versie.
Hierna werd een branchless ngram lookup geïmplementeerd, wat de latentie met 91,33% tot 11,54x verminderde. Dit werd bereikt door offset lookup-tabels vooraf te berekenen en deze te gebruiken om vergelijkingen te vervangen door directe geheugentoegangen, die veel sneller zijn en geen branching betreffen.
Ten slotte werd de model inference geoptimaliseerd door SIMD matrix-vermenigvuldiging in te schakelen en XNNPack te gebruiken, wat de latentie met 77,17% tot 4,38x verminderde. Bovendien werd een LRU-cache geïmplementeerd om overbodige uitvoeringen over te slaan en de latentie verder te verminderen. Al met al verminderden de optimalisaties de WAF ML-uitvoertijd met ~81,90%, van 1519 naar 275 microseconden, ofwel 5,5 keer sneller.
blog.cloudflare.com
Making WAF ML models go brrr: saving decades of processing time
Create attached notes ...