Het ene securityteam zweert bij Web Application Firewalls. Het andere team vraagt zich af WAFs de snelle veranderingen in het cybercrimelandschap wel bij kunnen houden. Is het einde van het WAF-tijdperk in zicht en moeten we massaal overstappen op RASP-oplossingen? Of is het juist raadzaam zowel een Web Application Firewall als Runtime Application Self-Protection in te zetten?
Wat is een Web Application Firewall (WAF)?
Een Web Application Firewall (WAF) is een beveiligingstool die specifiek bedoeld is voor web applicaties en services. Een WAF bevindt zich voor de webapplicatie en analyseert al het inkomende HTTP-verkeer. Lijkt verkeer op een aanval of bedreiging? Dan blokkeert een WAF deze automatisch. Een WAF kwalificeert interacties aan de hand van netwerk informatie. False positives en false negatives komen redelijk vaak voor bij een WAF.
n.v.d.r: dit artikel is geschreven in 2020. De WAF blijft in ontwikkeling en wordt dankzij Machine Learning steeds slimmer en accurater.
Wat is Runtime Application Self-Protection (RASP)?
Een RASP oplossing gebruikt runtime instrumentation. Dit houdt in dat het in de applicatie zit en van binnenuit bescherming biedt tegen aanvallen. Het detecteert en blokkeert bedreigingen vanuit de contextuele informatie die het uit de applicatie haalt. Dat betekent dat een RASP vaak niet alleen weet of een HTTP request een aanval bevat, maar ook ziet wat jouw applicatie met deze mogelijke kwaadwillende invoer doet. Doordat een RASP-oplossingen elke interactie binnen een context beoordeelt, is de kans op een false positive of false negative klein.
Hetzelfde doel, andere uitvoering
Een RASP en WAF zijn wat betreft doel gelijk aan elkaar. Beiden streven ze ernaar bedreigingen buiten een applicatie te houden. Het grootste verschil? Een RASP zit dus in de applicatie verwerkt, terwijl een WAF ervoor zit (als een soort schild).
WAF versus RASP
Hoe doen WAFs en RASPs het op het gebied van gebruiksgemak?
Een Web Application Firewall is vaak de eerste AppSec oplossing waar aan wordt gedacht en al jarenlang de betere opvolger van een traditionele webapplicatie Firewall geweest. Toch zijn WAF-frustraties ondertussen ook een welbekend fenomeen binnen security teams. Vraag een engineer naar zijn werk en gegarandeerd dat ‘ie begint over: 1. alle tijd die verloren raakt aan false positives en 2. de weken dat een WAF moet draaien in een testomgeving om de app te leren kennen.
Zoals we al eerder benoemden, heeft een RASP veel minder last van false positives. Dat scheelt in gebruik een hoop tijd. Ook is het draaien in een testomgeving om de applicatie te leren kennen bij een RASP niet nodig. Doordat een RASP dankzij de application runtime omgeving binnenin de applicatie zit, weet een RASP meteen wat wel en niet normaal is. RASP-technologie heeft het instellen van parameters en verder afstemming niet nodig om goed te functioneren.
Waartegen bieden ze bescherming?
In basis is een WAF in staat onder anderen kwetsbaarheden die kunnen leiden tot SQL injections, Cross-Site Scripting en Security Misconfriguration te voorkomen. Een RASP richt zich op precies hetzelfde als een WAF. En meer. Denk aan datalekken, method call failure, unhandled exception, etc.
Hoe veilig zijn de oplossingen?
Recent is een behoorlijk interessant onderzoek gepubliceerd die de bescherming van verschillende WAF oplossingen naast elkaar legt. Wat blijkt? 3 van de 4 geteste WAFs presteerden dramatisch. Azure scoorde daarin tegen relatief hoog: vooral op het gebied van SSI Injections:
Hoe zit dat bij een RASP? Voor RASP-technologie is nog geen benchmark uitgevoerd zoals voor WAFs. Toch valt te stellen dat in de praktijk een RASP veelal accurater werkt. RASP-technologie monitort de applicatie continu van binnenuit en weet daardoor – zoals we eerder benoemden – alles binnen de context te beoordelen. Daarbij heeft het ook de nodige rechten om in actie te komen wanneer er bepaalde “security conditions” bereikt zijn.
Over-blocking WAFs en het doorlaten van aanvallen
Ook goed om te weten: WAFs staan bekend om te over-blocken. Terwijl ze onschuldig verkeer blokkeren, laten ze aanvallen soms juist wel weer door. Security teams zijn dan ook continu bezig met het managen van false positives en false negatives. Hoe dat kan? In basis weet Web Application Firewall bar weinig over de applicatie die hij probeert te beschermen.
Een WAF werkt namelijk nooit zonder goede afstemming. Dat draaien in een testomgeving is dus essentieel om een WAF veilig te laten werken. Als dat niet het geval is, blokkeert een WAF alles wat ook maar een klein beetje verdacht lijkt. Om de veiligheid te waarborgen, is het belangrijk dit afstemmen in een testomgeving regelmatig plaats te laten vinden.
Hoe een RASP over-blocking voorkomt
Bij RASPs zit vaak nog een stap tussen het signaleren van activiteit en het daadwerkelijk blokkeren ervan. Een RASP kijkt namelijk eerst naar de code van de applicatie. Is de code niet kwetsbaar? Dan is de gesignaleerde verdachte activiteit ook geen bedreiging en is een alarm niet nodig. Tenslotte is de app in dit geval niet kwetsbaar: de code biedt voldoende bescherming.
Het fijne is dat dit allemaal real-time gebeurt, zonder dat tussentijdse afstemming niet nodig is. Een RASP heeft alle context die nodig is om zuivere beslissingen te nemen hierin.
Wat heeft een moderne applicatie nodig?
Het kan lijken alsof we alles behalve nog enthousiast zijn over WAFs. En eerlijk? Ja, die liefde is ook een beetje bekoeld. Maar dat komt vooral door de context waarin we Web Application Firewall bekijken. Het is namelijk lang een goede oplossing geweest, zeker toen webapplicaties nog wat simpeler in elkaar zaten. Maar dat oplossingen in het verleden effectief waren, wil niet zeggen dat ze ook naadloos aansluiten op onze huidige software.
Ja, een WAF kijkt enkel naar HTTP verkeer en is daardoor te koppelen aan elke webapplicatie, in tegenstelling tot een RASP die niet direct op elke applicatie past. Simpelweg doordat het de taal en framework waarin een applicatie is geprogrammeerd moet ondersteunen. Maar is een RASP eenmaal geïntegreerd? Dan bent u verzekerd van een secure en krachtige oplossing!
Moderne software vraagt tenslotte om een moderne aanpak en daar sluiten RASP-oplossingen op dit moment het beste bij aan. Het is amper bij te houden hoeveel code er tegenwoordig wordt geproduceerd voor applicaties. De beveiliging ervan is net zo moeilijk bij te houden. RASP-oplossingen zoals Contrast Security zijn dankzij de integratie in de applicatie in staat ook secure coding advies te geven.
Op die manier heb je (zoals bij een WAF) niet een schild van buitenaf, maar is de applicatie op een nog dieper niveau beschermd.
Moeten we meteen overstappen op RASP?
Wanneer we écht diep op de stof in gaan, valt te concluderen dat een WAF en een RASP samen een winning team zijn. In dit geval is beiden altijd beter dan één van de twee. Helaas hebben maar weinig organisaties de luxe om twee oplossingen die hetzelfde doel hebben te implementeren. In dat geval is wat ons betreft is Runtime Application Self-Protection een beter alternatief dan de traditionele WAF.
Dus merkt u dat u tegen WAF-problemen aan loopt? Onderzoek dan zeker of een RASP-oplossing niet een beter alternatief is. Neem zeker contact met ons op om samen de afweging te maken.