Angriffe über HTTP und wie man sich davor schützt

Artem Galan Apr 18, 2024
Angriffe über HTTP und wie man sich davor schützt

Was ist HTTP?

HTTP, das Hypertext Transfer Protocol, ist die «Sprache», die dein Webbrowser und die Webseiten miteinander sprechen, wenn du das Internet benutzt. Es wird hauptsächlich eingesetzt, um Webseiten aus dem Internet in einen Webbrowser zu laden. 

Der Server erhält die entsprechende Anfrage und schickt dann die Webseite zurück an deinen Browser. Das geschieht über eine HTTP-Antwort. Es ist, als würdest du einen Brief an jemanden schreiben und dann eine Antwort mit der gewünschten Information erhalten.

Angriffe über HTTP

Mit zunehmender Beliebtheit von HTTP steigen die Sicherheitsrisiken und wie jedes Protokoll ist auch HTTP anfällig für Angriffe. Angreifende nutzen beispielsweise Denial-of-Service (DoS) - Angriffstechniken, um die Erreichbarkeit einer Webseite einzuschränken. Ein DoS-Angriff kann mit einer Überflutung eines Briefkastens mit irrelevanten Briefen verglichen werden, sodass echte, relevante Briefe nicht mehr zugestellt werden können. In der Welt des Internets bedeutet das, dass eine Webseite oder ein Onlinedienst mit so vielen Anfragen bombardiert wird, dass er nicht mehr in der Lage ist, legitime Anfragen zu bearbeiten. Dies führt dazu, dass die Webseite oder der Dienst für normale User nicht mehr verfügbar ist. Ein solcher unterbrochener Dienst kann schwerwiegende Folgen haben, da er den Benutzenden den Zugang zu wichtigen Ressourcen oder Diensten verwehrt. Dies kann zu Umsatzeinbussen führen, insbesondere für Unternehmen, die auf ihre Onlinepräsenz angewiesen sind, um Produkte zu verkaufen oder Dienstleistungen anzubieten. Überdies kann ein unterbrochener Dienst das Vertrauen der User beeinträchtigen und zu einem Imageverlust führen. 

Verbindung zwischen HTTP und TCP

HTTP läuft über das Transmission Control Protocol (TCP). Als Ergebnis kann ein Webserver auch vielen TCP-bezogenen Angriffen ausgesetzt sein. Bei der Planung eines Schutzes für HTTP-Dienste ist es deshalb wichtig zu beachten, dass die Angriffsfläche viel breiter ist als nur über das HTTP-Protokoll. Jeder Distributed Denial-of-Service (DDoS) - Angriff verwendet heute mehrere Vektoren, um einen Denial-of-Service zu erzeugen. Um dies zu verhindern, sollte der Server in der Lage sein, sich vor all diesen Vektoren zu schützen. DDoS-Attacken ähneln DoS-Angriffen, mit der Ausnahme, dass die Anfragen von verschiedenen Quellen (Vektoren) versandt werden. Ein DDoS-Angriff funktioniert ähnlich wie die Überflutung von Briefkästen mit Briefen. Statt von einer einzelnen Person, werden sie von vielen verschiedenen Absendern gleichzeitig überhäuft. Diese «Briefe» sind in Wirklichkeit Datenpakete, die an Computer oder Websites gesendet werden. Durch die grosse Anzahl an Paketen wird die Internetverbindung oder Website überlastet, sodass sie für normale Benutzer unzugänglich wird.

Diese Angriffe können auf verschiedene Dienste und Protokolle abzielen, nicht nur auf HTTP.  Aufgrund seiner Bedeutung für die Wirtschaft und der Verbreitung von HTTP wird das Protokoll aber häufig für DoS-Angriffe verwendet.

Welche Arten von Angriffen gibt es?

  • Injection-Angriffe: Bei Injection-Angriffen fügen Angreifende bösartige Skripte oder Befehle in HTTP-Anfragen ein, um unerwünschte Aktionen auf dem Server auszulösen. Zum Beispiel können SQL-Injection-Angriffe dazu verwendet werden, Datenbankabfragen zu manipulieren und auf vertrauliche Informationen zuzugreifen.
  • Cross-Site Scripting (XSS): XSS-Angriffe beinhalten das Einfügen von bösartigem JavaScript-Code in Webseiten oder Webanwendungen, die von anderen Benutzenden angesehen werden. Dies ermöglicht es Angreifenden, User auf betrügerische Websites umzuleiten, Cookies zu stehlen oder Benutzersitzungen zu übernehmen.
  • Cross-Site Request Forgery (CSRF): Bei CSRF-Angriffen wird ein User dazu verleitet, ungewollte Aktionen auf einer Website auszuführen, auf der er bereits eingeloggt ist. Dies geschieht oft durch das Einbetten von bösartigen Anfragen in legitime HTTP-Anfragen, die dann ohne Wissen des Users ausgeführt werden.

Methoden zur Eindämmung solcher Angriffe

HTTP-Flutangriffe von normalem Traffic zu unterscheiden, ist sehr aufwändig, da sie Standard-URL-Anfragen verwenden. Dies macht sie zu einer der anspruchsvollsten nicht schwachstellenbasierten Sicherheitsherausforderungen, mit denen Server und Anwendungen heute konfrontiert sind. Traditionelle ratenbasierte Erkennung ist bei HTTP-Flutangriffen unwirksam, da das Datenverkehrsvolumen bei HTTP-Fluten oft unter den Erkennungsschwellen liegt.

Die wirkungsvollsten Mechanismen zur Eindämmung beruhen auf einer Kombination von Traffic-Profiling-Methoden, darunter die Identifizierung von IP-Reputation, die Überwachung von abnormalem Verhalten und die Verwendung fortschrittlicher Sicherheitsherausforderungen (zum Beispiel Aufforderungen zum Parsen von JavaScript).

Web application firewall (WAF) - eine Lösung für solche Angriffe

Wie eine WAF einen Angriff von einem kompromittierten Host blockiert. Bildquelle: https://www.cloudflare.com/de-de/learning/ddos/glossary/web-application-firewall-waf/

Eine WAF, oder «Web Application Firewall» (Webanwendungs-Firewall), ist wie ein Sicherheitsdienst für eine Website oder eine Onlineanwendung. Stell dir vor, deine Website ist ein Haus und die WAF ist ein Sicherheitsdienst, der an der Tür steht und alle eintretenden Personen überprüft, um sicherzustellen, dass sie keine Gefahr darstellen.

Wenn jemand versucht, deine Website zu besuchen, muss er an der WAF vorbei. Ähnlich, wie ein Sicherheitsdienst die Identität und Absichten von Personen überprüft, überprüft die WAF den eingehenden Datenverkehr auf deiner Website. Sie prüft, ob die Anfragen von echten Usern kommen oder ob es sich um böswillige Angriffe handelt, wie Versuche, die Website lahmzulegen oder auf vertrauliche Daten zuzugreifen.

Wie funktioniert eine WAF?

Eine WAF schützt deine Webanwendungen, indem sie jeglichen bösartigen HTTP/S-Verkehr, der über die Webanwendung läuft, filtert, überwacht, blockiert und verhindert, dass unbefugte Daten die Anwendung verlassen. Dies geschieht durch die Einhaltung eines Satzes von Richtlinien, die dabei helfen zu bestimmen, welcher Verkehr bösartig ist und welcher sicher. Genau wie ein Proxyserver als Vermittler fungiert, um die Identität eines Clients zu schützen, arbeitet eine WAF in ähnlicher Weise, jedoch umgekehrt – als sogenannter Reverse-Proxy – und fungiert als vermittelnde Partei, die den Webanwendungsserver vor einem potenziell bösartigen Client schützt.

WAF-Sicherheitsmodelle

Es gibt drei Ansätze zur Sicherheit, die WAFs typischerweise verfolgen:

  • Allowlisting: Eine «Erlaubnisliste», die maschinelles Lernen und Verhaltensmodellierungsalgorithmen verwendet, um zu definieren, welcher Verkehr von der WAF durchgelassen wird. Alles andere wird blockiert.
  • Blocklisting: Eine «Blockierliste», basierend auf aktuellen Signaturen gegen bekannte Schwachstellen, die definieren, welcher Verkehr von der WAF abgelehnt wird. Der Rest wird akzeptiert.
  • Hybridansatz: Die WAF stützt sich auf eine Kombination aus positiven und negativen Sicherheitsmodellen: eine Kombination aus Erlaubnis- und Blockierlisten, die bestimmt, was durchgelassen wird.

Was sind netzwerkbasierte, hostbasierte und cloudbasierte WAFs?

Eine WAF kann auf eine von drei verschiedene Arten implementiert werden, von denen jede ihre eigenen Vor- und Nachteile hat:

  • Eine netzwerkbasierte WAF ist im Allgemeinen hardwarebasiert. Da sie lokal installiert ist, minimiert sie die Latenz, aber netzwerkbasierte WAFs sind die teuerste Option und erfordern die Speicherung und Wartung von physischer Hardware.
  • Eine hostbasierte WAF kann vollständig in die Software einer Anwendung integriert sein. Diese Lösung ist günstiger als eine netzwerkbasierte WAF und bietet mehr Anpassungsmöglichkeiten. Der Nachteil einer hostbasierten WAF besteht jedoch in der Beanspruchung lokaler Serverressourcen, der Implementationskomplexität und den Wartungskosten. Diese Komponenten erfordern in der Regel Engineering-Zeit und können kostspielig sein.
  • Cloudbasierte WAFs bieten eine erschwingliche Option, die sehr einfach zu implementieren ist; sie bieten in der Regel eine fertige Installation, die so einfach ist wie eine Änderung des DNS, um den Verkehr umzuleiten. Cloudbasierte WAFs haben auch keine oder nur minimale anfängliche Kosten, da Benutzende monatlich oder jährlich für Sicherheit als Dienstleistung bezahlen. Cloudbasierte WAFs können auch eine Lösung bieten, die kontinuierlich aktualisiert wird, um vor den neuesten Bedrohungen zu schützen, ohne zusätzliche Arbeit oder Kosten für den User. Der Nachteil einer cloudbasierten WAF besteht darin, dass Benutzende die Verantwortung an einen Drittanbieter übergeben, daher können einige Funktionen der WAF für sie undurchsichtig sein.

Wie wir unsere Kundschaft vor HTTP- und DDoS-Angriffen schützen

  • Wir bieten Cloudflare als CDN/WAF-Lösung an.
  • Wir helfen, Schutzmassnahmen für den Angriffsfall zusammenzustellen.
  • Wenn die Attacke erst einmal läuft, haben wir nur begrenzte Möglichkeiten, das Opfer zu unterstützen. Wir müssen uns darauf konzentrieren, weitere Kunden vor den Auswirkungen des Angriffs zu schützen.
  • Das heisst, dass wir den Datenverkehr einem Null Routing zuweisen, sodass das Opfer unerreichbar wird. Dies reduziert die Netzwerklast und andere Kunden sind weiterhin erreichbar.

Fazit

HTTP kann verschiedenen Angriffen ausgesetzt sein, wie DoS, Injection, XSS, CSRF, SYN-Flut und GET-Flut. Eine WAF ist eine umfassende Lösung, um Webanwendungen vor solchen Angriffen zu schützen. Sie kann netzwerk-, host- oder cloudbasiert sein. Bei der Auswahl ist eine gute Vorbereitung wichtig und bei Nine helfen wir gerne dabei, geeignete Schutzmassnahmen zu finden und umzusetzen.

Titelbild: Wie der Botnet-Controller bei einem Angriff auf einen Server kompromittierte Hosts steuert. Bildquelle: https://www.wallarm.com/what/website-security-and-prevention-of-a-http-flood-attack