Was ist die Azure Web Application Firewall?

Abgeschlossen

Hier lernen Sie die Grundlagen von Azure Web Application Firewall kennen. Mithilfe dieser Übersicht können Sie bewerten, ob es sich bei Azure Web Application Firewall um ein nützliches Tool für die insgesamte Netzwerksicherheitsstrategie von Contoso handelt.

Übersicht über Azure Web Application Firewall

Sie glauben vielleicht, dass böswillige Benutzer*innen sich nicht für Ihre Web-Apps interessieren. Tests haben jedoch ergeben, dass Bots oder böswillige Akteure innerhalb von Minuten nach der Bereitstellung Schwachstellen in Web-Apps ermitteln können. Wenn Sie eine App im Web platzieren, müssen Sie davon ausgehen, dass böswillige Akteure die App nahezu sofort auf Sicherheitsrisiken testen. Sie können ebenso annehmen, dass solche Tests über die Lebensdauer der App fortgesetzt werden.

Die meisten schädlichen Tests von Web-Apps überprüfen, ob mindestens ein gängiges Sicherheitsrisiko vorhanden ist. Wenn ein Bedrohungsakteur ermittelt wird, kann er diese Sicherheitsrisiken ausnutzen, um Angriffe wie die folgenden Exploits auszuführen:

  • Einschleusung von SQL-Befehlen
  • Cross-Site-Scripting
  • Lokale und remote Dateieinbindung
  • HTTP/HTTPS-Überflutung
  • Böswillige Botangriffe

Eine häufige Aufgabe im Entwicklungszeitraum von Web-Apps umfasst das Schreiben von Code, um die gängigsten Sicherheitslücken zu schließen. Das Schreiben des Sicherheitscodes erfordert Zeit, Fachwissen und Tests.

Azure Web Application Firewall ist ein Azure-Dienst, der zentralisierten Schutz von in Azure gehosteten Web-Apps ermöglicht. Azure Web Application Firewall schützt Web-Apps vor häufigen Bedrohungen wie der Einschleusung von SQL-Befehlen und Cross-Site Scripting.

Diagram of an Azure virtual network with Azure Web Application Firewall. Bots and threats are blocked from a web app; legitimate requests are allowed.

Azure Web Application Firewall kann in wenigen Minuten bereitgestellt werden. Ihre Web-Apps erhalten sofort leistungsstarken Schutz vor bekannten Bedrohungen, ohne dass eine einzige Zeile von Sicherheitscode geschrieben werden muss.

Wichtige Features des Azure-Web Application Firewall-Diensts

Nachfolgend finden Sie einige wichtige Features, die Ihnen bei der Evaluierung von Azure Web Application Firewall helfen können:

  • Verwaltete Regeln: Die Regeln, die Azure Web Application Firewall zum Erkennen und Verhindern häufig auftretender Exploits verwendet, werden vom Sicherheitsteam von Microsoft erstellt, verwaltet und aktualisiert. Wenn eine Regel oder ein Regelsatz (siehe folgende Beschreibung) geändert wird, aktualisiert Microsoft den Azure Web Application Firewall-Dienst automatisch und nahtlos.

    Hinweis

    Die von Azure Web Application Firewall verwalteten Regeln können nicht geändert oder gelöscht werden. Wenn jedoch eine bestimmte Regel für Ihre Umgebung problematisch ist, also wenn sie beispielsweise legitimen Datenverkehr an Ihre Web-App blockiert, dann können Sie Ausschlüsse definieren oder die Regel bzw. den Regelsatz deaktivieren. Sie können auch benutzerdefinierte Regeln erstellen, um das Standardverhalten zu überschreiben.

  • Botregeln: Botregeln identifizieren gute Bots und schützen vor schlechten Bots. Schlechte Bots werden basierend auf Microsoft Threat Intelligence erkannt.

  • Benutzerdefinierte Regeln: Wenn die von Azure Web Application Firewall bereitgestellten verwalteten Regeln eine bestimmte Bedrohung für Ihre Webanwendung nicht abdecken, können Sie eine benutzerdefinierte Regel erstellen.

  • Modi: Azure Web Application Firewall kann in einem von zwei Modi betrieben werden. Der Erkennungsmodus protokolliert nur Anforderungen, die gegen eine Regel verstoßen, während der Präventionsmodus Anforderungen, die gegen eine Regel verstoßen, sowohl protokolliert als auch blockiert.

  • Ausschlusslisten: Sie können Azure Web Application Firewall so konfigurieren, dass bestimmte Attribute beim Überprüfen von Anforderungen ignoriert werden.

  • Richtlinien: Sie können mehrere verwaltete Regeln, benutzerdefinierte Regeln, Ausschlüsse und weitere Einstellungen von Azure Web Application Firewall in einem einzelnen Element kombinieren, das als Azure Web Application Firewall-Richtlinie bezeichnet wird. Anschließend können Sie diese Richtlinie auf mehrere Web-Apps anwenden, um die Verwaltung und Wartung zu vereinfachen.

  • Anforderungsgrößengrenzwerte: Sie können Azure Web Application Firewall so konfigurieren, dass zu kleine oder zu große Anforderungen gekennzeichnet werden.

  • Warnungen: Azure Web Application Firewall ist mit Azure Monitor integriert. Mit dieser Integration erhalten Sie Warnungen in nahezu Echtzeit, wenn die WAF eine Bedrohung erkennt.

Häufige durch Azure Web Application Firewall verhinderte Angriffe

In der folgenden Tabelle werden die häufigsten Arten von böswilligen Bedrohungen beschrieben, vor die Azure Web Application Firewall schützt.

Bedrohung BESCHREIBUNG
Cross-Site-Scripting Ein Bedrohungsakteur verwendet eine Webanwendung, um bösartigen Code an den Webbrowser eines Benutzers zu senden. Der Browser führt den Code aus, wodurch das Skript Zugriff auf die Sitzungsdaten des Benutzers sowie auf Cookies und andere vertrauliche Informationen erhält.
Local File Inclusion Ein Angreifer nutzt Sicherheitsrisiken bei der Verarbeitung von include-Anweisungen durch den Server aus, meistens in PHP-Skripts. Wenn ein speziell konfigurierter Text an die include-Anweisung eines Skripts übergeben wird, kann der Angreifer Dateien einschleusen, die lokal auf dem Server vorhanden sind. Der Angreifer kann dann möglicherweise auf vertrauliche Informationen zugreifen und Serverbefehle ausführen.
PHP-Injektion: Der Angreifer fügt speziell konfigurierten Text ein, um den Server zum Ausführen von PHP-Befehlen zu verleiten. Mit diesen Befehlen können Angreifer lokalen oder remoten PHP-Code ausführen. Der Angreifer kann dann möglicherweise auf vertrauliche Daten zugreifen und Befehle auf dem Server ausführen.
Protokollangriffe Ein Angreifer fügt speziell konfigurierten Text in einen HTTP/HTTPS-Anforderungsheader ein. Abhängig von dem spezifischen Text, der in den Header eingefügt wird, kann der Angreifer den Server täuschen, damit vertrauliche Daten angezeigt werden oder Code ausgeführt wird.
Remotebefehlsausführung Der Angreifer veranlasst, dass ein Server Befehle ausführt, die mit dem Betriebssystem des Servers verknüpft sind. Auf einem UNIX-System könnte der Angreifer beispielsweise den Server dazu bewegen, ls auszuführen, um eine Verzeichnisauflistung zu erhalten.
Remote File Inclusion Dies ist das gleiche Prinzip wie die lokale Dateieinbindung, mit der Ausnahme, dass der Angreifer speziell konfigurierten Text an den Server sendet, der eine Remotedatei an die include-Skriptanweisung übergibt, also eine Datei auf einem Remoteserver, der vom Angreifer gesteuert wird.
Session Fixation Ein Angreifer nutzt eine Web-App-Schwachstelle aus, durch die er eine gültige Sitzungs-ID abrufen kann. Der Angreifer bringt einen Benutzer dazu, eine neue Sitzung mit dieser ID zu authentifizieren. Der Angreifer übernimmt dann diese vom Benutzer validierte Sitzung.
Einschleusung von SQL-Befehlen Der Angreifer fügt bzw. „schleust“ Text in ein Webformularfeld ein, der speziell dafür konfiguriert ist, den Server so zu manipulieren, dass dieser SQL-Befehle ausführt. Diese Befehle ermöglichen dem Angreifer den Zugriff auf sensible Daten, das Einfügen, Aktualisieren oder Löschen von Daten oder das Ausführen von SQL-Vorgängen.

Alle in der vorherigen Tabelle aufgeführten Exploits sind nur möglich, wenn der Server der empfangenen Eingabe vertraut. Das Schreiben von Code, der nur diese Exploits überprüft und bereinigt, wäre schwierig und zeitaufwändig. Es ist nur ein kleiner Bruchteil der möglichen Exploits, gegen die sich eine Web-App schützen kann, in der vorherigen Tabelle dargestellt. Azure Web Application Firewall ist so konzipiert, dass diese Angriffe und vieles mehr verhindert werden.

Bereinigen von Eingaben

Die Bedrohungen, denen sich moderne Web-Apps stellen müssen, sind alle verschieden und komplex. In den meisten Fällen liegt der Grund, warum Exploits möglich sind, bei der Web-App, und dass diese implizit der empfangenen Eingabe vertraut.

Angenommen, ein Webformular ermöglicht einem autorisierten Web-App-Benutzer das Anmelden beim Konto des Benutzers. Das Formular besteht aus nur drei Elementen:

  • Dem Textfeld Benutzername
  • Dem Textfeld Kennwort
  • Der Schaltfläche Anmelden

Wenn ein autorisierter Benutzer das Formular ausfüllt und Anmelden auswählt, speichert ein Web-App-Skript den Benutzernamen und das Kennwort in Variablen. Angenommen, diese Variablen werden als userName und userPassword bezeichnet. Das Skript würde dann die folgende Anweisung ausführen:

sql = "SELECT * FROM users WHERE username='" + userName + "' AND password='" + userPassword + "'"

Wenn der Benutzername beispielsweise support und das Kennwort 1234ABCD ist, weist die sql-Variable den folgenden Wert auf:

SELECT * FROM users WHERE username='support' AND password='1234ABCD'

Die Web-App führt diese SQL-Anweisung aus. Wenn ein Datensatz von der Abfrage zurückgegeben wird, meldet die Web-App den Benutzer an.

Nehmen Sie nun an, dass ein Angreifer admin'-- im Feld Benutzername eingibt und das Feld Kennwort leer lässt. In diesem Fall lautet die resultierende SQL-Anweisung wie folgt:

SELECT * FROM users WHERE username='admin'--' AND password=''

Bei vielen SQL-Systemen kennzeichnen die doppelten Bindestriche (--) den Anfang eines Kommentars. Alles nach dem -- wird ignoriert, sodass die vorherige Anweisung dem folgenden Code entspricht:

SELECT * FROM users WHERE username='admin'

Wenn ein Benutzer mit dem Namen admin vorhanden ist, meldet dieser Befehl den Angreifer als Administratorbenutzer an, was eine schwerwiegende Sicherheitsverletzung darstellt!

Network diagram depicting two sign-in attempts, with Azure Web Application Firewall allowing the authorized sign-in and denying the unauthorized sign-in.

Das vorherige Beispiel ist eine Instanz eines Exploits namens Einschleusung von SQL-Befehlen. Angreifer können die Vorteile der Einschleusung von SQL-Befehlen und weitere Exploits in Web-Apps nutzen, die alle Eingaben als vertrauenswürdig einstufen.

Azure Web Application Firewall erstellt eine Barriere für nicht vertrauenswürdige Eingaben zwischen einer Web-App und den Benutzereingaben. Der Azure Web Application Firewall-Dienst geht davon aus, dass alle Eingaben potenziell schädlich sind, weshalb er diese Eingabe bereinigt.

Das Bereinigen der Eingabe bedeutet je nach Kontext verschiedene Dinge. Das Bereinigen der Eingabe kann beispielsweise bedeuten, dass eindeutig gefährliche Textelemente entfernt werden, wie z. B. SQL-Kommentarindikatoren. Wenn eine Bereinigung durchgeführt wird, ist das Ergebnis eine Eingabe, die keine Schäden an der Web-App oder den Back-End-Daten verursachen kann.