// Security / WebApplicationFirewall (WAF)

naxsi-learning Eine WebApplicationFirewall (WAF) ist eine Sicherheitseinrichtung, die Webanwendungen vor Angriffen via HTTP-Requests schützen soll. Gegenüber klassischen Firewalls und Intrusion-Detection-Systemen (IDS) untersucht eine WAF die Kommunikation auf der Anwendungsebene, eine Änderung an der zu schützenden Webanwendung ist nicht notwendig.

WAFs sind einfacher zu implementieren als IDS, da sie vor bestehende Webanwendungen installiert werden und nur den HTTP(S) - Verkehr analysieren, während ein IDS den gesamten Netzwerkverkehr untersuchen muss.

MARE system verfügt über langjährige Erfahrung im Umgang mit WAFs; wir tragen mit den gewonnenen Erkenntnissen aktiv zur Weiterentwicklung und mit eigenen Signaturen zum Schutz von Webanwendungen in einer internationalen Community bei.

Für komplexe Umgebungen unterstützen wir Sie bei Konzeption, Installation und Tuning von WAFs bei Ihnen Inhouse. Sie können den WAF-Schutz von uns als Service mieten, dann übernehmen wir Signatur-Updates, Analysen und Alarmierung bei erkannten Einbruchsversuchen für Sie.

Beim Einsatz von WAFs sollte man immer bedenken: Sichere WebApplikationen sind die Grundlage von Server- und Datensicherheit. Wenn unsichere und ungepatchte Software verwendet wird oder Grundsätze der Datensicherheit nicht beachtet, kann eine WAF allenfalls den illegalen Zugriff erschweren; verhindern kann sie ihn in diesem Fall nur bedingt. Die beste, merhfach gesicherte Stahltür ist gegen Einbrecher nutzlos, wenn ein Kellerfenster offen steht.

Einsatzszenarien

WAFs werden vielfach vor Webanwendungen mit schützenswerten Daten, aber auch vor ECommerce-Systemen eingesetzt und eignen sich hervorragend, um automatisierte Angriffe und Exploitversuche abzuwehren. Des weiteren lassen sich RESTful APIs mit einer WAF schützen. Anbindungen an Firewalls, um Angreifer bei wiederholten Versuchen komplett zu blocken, sind mit Naxsi möglich.

Folgende Angriffe lassen sich blocken:

Eine WAF kann Standalone betrieben werden oder als Teil eines Frontends mit weiteren Funktionalitäten wie ReverseProxy, StaticServer, Loadbalancer oder Webcache.

MARE system setzt NAXSI auf Basis von Nginx und ModSecurity auf Basis von Apache als integrierte WAF-Lösungen ein und bietet für Naxsi aktuelle und regelmäßig aktualisierte Regelsätze an (Doxi-Rules & Doxi-Tools). Informatione dazu und zu den Optionen, die eine Naxsi-basierte WAF bieten, finden Sie weiter unten unter "Naxsi + Doxi".

Naxsi + Doxi

Seit 2011 gibt es ein Modul, mitdem Nginx zu einer WebApplicationFirewall erweitert werden kann: Naxsi. Das Projekt ist noch in der Entwicklung, wird aber bereits produktiv eingesetzt und bietet jetzt schon vielversprechende Funktionen, um Webserver vor Scriptkiddies, Scannern und sonstigen automatisierten Tools, die 24/7 auf der Suche nach dankbaren Opfern sind, zu schützen. Mit Nginx als Grundlage lässt sich Naxsi als hochperformante Standalone-WAF betreiben.

Naxsi bringt ein eigenes Core-Ruleset mit, und kann durch eigene Regelsätze erweitert werden. Durch Scores für einzelne Regel und anpassbare Grenzwerte für Block-Aktionen lässt sich die WAF an unterschiedliche Umgebungen und Webapplikationen anpassen.

Naxsi kann verschiedene Werte wie URLs, Request-Parameter, Cookies, Header oder den Post-Body einzeln oder in Kombination überprüfen und lässt sich auf Location-Level an- oder abschalten.

Durch automagische Whitelisterstellung lässt sich die WAF vor beliebigen Applikationen einsetzen und False-Positives zu 100% ausschliessen.

Um die eigene Infrastruktur vor Skirptkiddies und Exploitscanner zu schützen wurden die Doxi-Rules für Naxsi entwickelt,
die den Ansatz verfolgen, bekannte, unerwünschte Zugriffe zu blocken. Die Doxi-Regeln erkennen eine Vielzahl an Scans nach aktuellen oder älteren Lücken wie der Wordpress-TimThump-RFI und bieten einen guten Schutz gegen automatisierte Angriffstools.

Dazu wurden 200 Webserver - spezifische Regeln aus den Emerging-Threats-Rulesets in das Naxsi-Format konvertiert und sind via Git-Repo frei verfügbar.

Angelehnt an ET werden folgende Regelsätze bereitgestellt:

Ähnlich zu ET werden Signaturen eingepflegt, wenn neue Sicherheitslücken in populären Apps oder Servern auftreten, bekanntgegeben werden Updates via Naxsi-Mailingliste und das Doxi-Blog.

Beispiele und Reports einer WAF im Einsatz

Die folgenden Screenshots und Reports kommen aus verschiedenen WAF-Installationen. Für jede Webseite, die wir mit einer WAF schützen, verzeichnen wir im Schnitt 200 Angriffe je Tag; vielfach auch Brute-Force-Exploitversuche gegen nicht vorhandene Software, die wir unterbinden können. Bei wiederholten Versuchen blocken wir die Angreifer-IP für 1-24 Stunden.

Naxsi-Report, kummuliert nach Angriffsarten

naxsi-wi

Naxsi-Report einer angegriffenen Webseite

naxsi

Doxi-Report nach einzelnen Angriffen (eine Webseite)

> global result | 21671 events / 60 Days 
       ID |  Count 
------------------------------------
     1008 |     4203 | ; in stuff
     1005 |     3309 | mysql keyword (|)
     1000 |     3169 | sql keywords
     1010 |     1504 | parenthesis, probable sql/xss
     1100 |     1341 | http:// scheme
     1402 |      749 | Content is neither mulipart/x-www-form..
 42000122 |      568 | DN SCAN WP Timthumb - Access
 42000089 |      439 | DN WEB_APPS XMLRPC - Access detected (misc Wordpress/Magento-Vulns)
 42000227 |      377 | DN SCAN Scanner ZmEu exploit scanner
 42000059 |      350 | DN WEB_APPS Possible unwanted Upload / Access To mm-forms-community upload dir
 42000082 |      292 | DN WEB_SERVER Tomcat - Manager - Access
 42000071 |      287 | DN WEB_APPS PHPMYADMIN setup.php - Access
 42000261 |      282 | DN WEB_SERVER possible WP-Scan (wp-login)
 42000210 |      272 | DN APP_SERVER Tomcat Auth Brute Force attempt (admin)
 42000244 |      212 | DN SCAN PHPMyAdmin - Scanner (2)
 42000181 |      162 | DN SCAN Scanner webster pro
 42000145 |      130 | DN SCAN Scanner morfeus
     1003 |       95 | mysql comment (/*)
     1006 |       92 | mysql keyword (&&)
 42000032 |       89 | DN WEB_SERVER PHP-EVAL - Attempt
 42000033 |       78 | DN WEB_SERVER Base64Decode in URI
 42000243 |       77 | DN SCAN PHPMyAdmin - Scanner
 42000169 |       62 | DN SCAN Scanner Nmap
 42000262 |       52 | DN WEB_SERVER possible WP-Scan (wp-admin)
 42000216 |       47 | DN APP_SERVER Tomcat admin-admin login credentials
 42000065 |       27 | DN WEB_APPS Magento XMLRPC-Exploit Attempt
 42000222 |       21 | DN SCAN Open-Proxy ScannerBot (webcollage-UA)
 42000031 |       13 | DN SCAN Muieblackcat scanner
 42000126 |       12 | DN WEB_APPS WordPress Uploadify-Access
 42000229 |       12 | DN APP_SERVER ColdFusion - Vuln-URL-Access administrator
 42000230 |       12 | DN APP_SERVER ColdFusion - Vuln-URL-Access adminapi
 42000248 |       11 | DN SCAN SQL-Injection Scanner CZxt2s

You code … we platform.