GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine Einführung in Web Application Firewalls für Linux-Systemadministratoren

Firewalls gibt es in der einen oder anderen Form seit den Anfängen der Vernetzung. Die ersten Firewalls wurden nicht einmal als Firewalls identifiziert; Sie waren nichts weiter als physische Barrieren zwischen Netzwerken. Erst in den 1980er Jahren wurde das erste Gerät, das speziell als Firewall konzipiert (und benannt) wurde, von DEC entwickelt. Seitdem haben sich Firewalls zu unzähligen Formen entwickelt.

Aber was ist eine Firewall? Im Kern ist eine Firewall ein Gerät, das darauf ausgelegt ist, Datenverkehr basierend auf einer Reihe von Regeln zuzulassen oder zu verweigern. Diese Regeln können so einfach sein wie „HTTP zulassen und alles andere blockieren“, oder sie können unendlich viel komplexer sein, einschließlich Protokolle, Ports, Adressen und sogar Fingerabdrücke von Anwendungen. Einige moderne Firewalls haben sogar maschinelles Lernen in den Mix integriert.

Einführung der WAF

Wie bei anderen Technologien wurden im Zuge der Weiterentwicklung von Firewalls einige Nischennutzungen identifiziert.

Web Application Firewalls (WAFs) sind eine dieser Nischenanwendungen. Eine WAF ist eine Firewall, die speziell für die Verarbeitung von „Web“-Datenverkehr entwickelt wurde. das heißt, Datenverkehr über das HTTP-Protokoll. Im Allgemeinen besteht die Rolle einer WAF darin, den gesamten für einen Webserver bestimmten HTTP-Verkehr zu untersuchen, „schlechte“ Anfragen zu verwerfen und „guten“ Verkehr weiterzuleiten. Die Details, wie das funktioniert, sind, wie Sie vielleicht vermuten, etwas komplizierter.

Ähnlich wie bei „normalen“ Firewalls wird von einer WAF erwartet, dass sie bestimmte Arten von Datenverkehr blockiert. Dazu müssen Sie der WAF eine Liste mit den zu blockierenden Inhalten zur Verfügung stellen. Daher sind frühe WAF-Produkte anderen Produkten wie Antivirensoftware, IDS/IPS-Produkten und anderen sehr ähnlich. Dies wird als signaturbasierte Erkennung bezeichnet. Signaturen identifizieren normalerweise ein bestimmtes Merkmal eines HTTP-Pakets, das Sie zulassen oder ablehnen möchten.

WAF-Beispiele

Beispielsweise werden WAFs häufig verwendet, um SQL-Injection-Angriffe zu blockieren. Eine sehr vereinfachte Signatur sucht möglicherweise nur nach Schlüsselelementen, die einen typischen SQL-Injection-Angriff identifizieren. Es kann beispielsweise nach etwas wie ' AND 1=1 aussehen als Teil der GET- oder POST-Anforderung enthalten. Wenn dies mit einem eingehenden Paket übereinstimmt, markiert die WAF dies als fehlerhaft und verwirft es.

Signaturen funktionieren ziemlich gut, erfordern jedoch viel Wartung, um sicherzustellen, dass Fehlalarme auf ein Minimum reduziert werden. Darüber hinaus ist das Schreiben von Signaturen oft eher eine Kunstform als eine einfache Programmieraufgabe. Und das Schreiben von Unterschriften kann auch ziemlich kompliziert sein. Sie versuchen oft, ein allgemeines Angriffsmuster abzugleichen, ohne auch legitimen Datenverkehr abzugleichen. Um ehrlich zu sein, kann dies ziemlich nervenaufreibend sein.

Ins WAF-Unkraut

Um dies etwas mehr zu veranschaulichen, schauen wir uns ModSecurity an. Das ModSecurity-Projekt ist ein Open-Source-WAF-Projekt, das als Modul für den Apache-Webserver begann, sich aber seitdem zu einem modularen Paket entwickelt hat, das mit IIS, Nginx und anderen funktioniert. ModSecurity ist eine signaturbasierte WAF und wird häufig mit einem Standardsatz von Signaturen ausgeliefert, der als OWASP ModSecurity Core Rule Set bekannt ist.

Das Core Rule Set (CRS) ist ein hervorragender Ausgangspunkt für die Bereitstellung einer signaturbasierten WAF. Es enthält Signaturen für alle OWASP-Top-Ten-Sicherheitsrisiken für Webanwendungen sowie für eine Vielzahl anderer Angriffe. Die Entwickler haben ihr Bestes getan, um sicherzustellen, dass das CRS nur wenige Fehlalarme enthält, aber jeder, der das CRS einsetzt, muss die Regeln zwangsläufig optimieren. Dazu gehört das Erlernen der Regelsprache und ein tiefes Verständnis des HTTP-Protokolls.

Die Technologie entwickelt sich jedoch weiter und neuere WAF-Anbieter verwenden andere Ansätze, um schlechten Datenverkehr zu blockieren. Es gab eine ziemlich weit verbreitete Bewegung von statischen Konfigurationsansätzen wie Zulassungs- und Sperrlisten zu dynamischeren Methoden mit APIs und maschinellem Lernen. Dieser Schritt erstreckte sich über mehrere Technologien, darunter herkömmliche Firewalls, Antivirensoftware und, Sie haben es erraten, WAFs.

[ Netzwerk gerät außer Kontrolle? Sehen Sie sich Netzwerkautomatisierung für alle an, ein kostenloses Buch von Red Hat. ]

Eine WAF kann lernen

In der schönen neuen Welt der dynamischen Regelsätze verwenden WAFs intelligentere Ansätze, um guten und schlechten Datenverkehr zu identifizieren. Eine der „einfacheren“ Methoden besteht darin, die WAF in den „Lernmodus“ zu versetzen, damit sie den Datenverkehr zum und vom geschützten Webserver überwachen kann. Das Ziel hier ist, die WAF zu "trainieren", um zu erkennen, wie guter Verkehr aussieht. Dies kann Datenverkehr umfassen, der mit Mustern übereinstimmt, die als schlecht gekennzeichnet wurden, als Signaturen verwendet wurden. Nachdem die WAF trainiert wurde, wechselt sie in den Erzwingungsmodus.

Das Trainieren einer WAF auf diese Weise ähnelt dem, was passiert, wenn Sie ein E-Mail-System trainieren, um Spam zu erkennen. E-Mail-Systeme verwenden häufig einen Bayes'schen Filteralgorithmus, um Spam zu identifizieren. Diese Algorithmen funktionieren relativ gut, können aber vergiftet werden, um Spam zuzulassen. Ähnliche Probleme bestehen mit Algorithmen, die von WAF-Anbietern verwendet werden, insbesondere wenn sich die WAF im Lernmodus befindet.

Fortgeschrittenere WAF-Anbieter verwenden proprietäre Techniken, um Datenverkehr zuzulassen und zu blockieren. Zu diesen Techniken gehören Algorithmen, die erkennen können, ob bestimmte Angriffe gegen das Zielsystem funktionieren, und nur diejenigen blockieren, die schädlich wären. Fortgeschrittene Techniken wie diese finden sich jedoch normalerweise nur bei WAF-SaaS-Anbietern und nicht in eigenständigen WAF-Appliances.

[ Benötigen Sie mehr Netzwerksicherheit? VLANs für Systemadministratoren:Die Grundlagen ]

Abschluss

WAFs und Firewalls im Allgemeinen haben sich im Laufe der Jahre stark weiterentwickelt und sich von statischen zu dynamischen Methoden zum Identifizieren und Blockieren von Datenverkehr entwickelt. Diese Techniken werden in Zukunft nur noch besser werden. Es gibt eine Vielzahl von Lösungen, von Open Source bis hin zu kommerziellen Anbietern. Ganz gleich, welche Anforderungen Sie haben, es gibt eine WAF für Sie.


Linux
  1. Meine Lieblings-Linux-Befehle zum Optimieren von Webbildern

  2. 30 Übungen zu Linux-Prozessen für Systemadministratoren

  3. Linux – Welche Anwendung für einen Kalender verwenden?

  4. ForeverNote – Ein Evernote-Webclient für Linux

  5. Einschränken des Syscall-Zugriffs für eine Linux-Anwendung

Terminal Velocity – Eine CLI-Notizanwendung für Linux

Eine Einführung in Cockpit, ein browserbasiertes Verwaltungstool für Linux

Kurzanleitung zu Ansible für Linux-Systemadministratoren

30 Übungen zu Linux-Berechtigungen für Systemadministratoren

40 nützliche Linux-Netzwerkbefehle für moderne SysAdmins

Was ist eine WAF (Web Application Firewall)? Arten von WAFs