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 Dienstleistungen 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 zum Imageverlust führen.
Verbindung zwischen HTTP und TCP
HTTP läuft über das Transmission Control Protocol (TCP). In der Folge kann ein Webserver 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-Angriff (DDoS-Angriff) verwendet heute mehrere Vektoren, um den 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) aus versendet werden. Ein DDoS-Angriff funktioniert ähnlich wie die Überflutung von Briefkästen mit Briefen. Statt von einer einzelnen Person werden sie jedoch 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 Tätigkeiten 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): Bei XSS-Angriffen wird bösartiger JavaScript-Code in Webseiten oder Webanwendungen eingefügt, 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 sowohl Server als auch Anwendungen heute konfrontiert sind. Eine 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 erweiterter Sicherheitsabfragen (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.
Wer versucht, eine Website zu besuchen, muss an der WAF vorbei. Ähnlich, wie ein Sicherheitsdienst die Identität und Absichten von Personen überprüft, prüft die WAF den eingehenden Datenverkehr auf der Website. Sie beurteilt, ob die Anfragen von echten Usern kommen oder ob es sich um böswillige Angriffe handelt, wie etwa Versuche, die Website lahmzulegen oder auf vertrauliche Daten zuzugreifen.
Wie funktioniert eine WAF?
Eine WAF schützt Webanwendungen, indem sie jeglichen bösartigen HTTP/S-Traffic, der über die Webanwendung läuft, filtert, überwacht, blockiert und verhindert, dass unbefugte Daten die Anwendung verlassen. Dies geschieht durch die Beachtung 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 Traffic von der WAF durchgelassen wird. Alles andere wird blockiert.
- Blocklisting: Eine «Blockierliste», basierend auf aktuellen Signaturen gegen bekannte Schwachstellen, die definieren, welcher Traffic 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 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 eingebunden werden. Diese Lösung ist günstiger als eine netzwerkbasierte WAF und bietet mehr Anpassungsmöglichkeiten. Die Nachteile einer hostbasierten WAF bestehen jedoch in der Beanspruchung lokaler Serverressourcen, der komplexen Implementation 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. Ihre Installation ist in der Regel unkompliziert. Dazu muss nur eine DNS-Änderung durchgeführt werden, um den Verkehr umzuleiten. Außerdem bestehen keine oder nur geringe anfängliche Kosten für cloudbasierte WAFs, da Benutzende monatlich oder jährlich für Security as a Service bezahlen. Cloudbasierte WAFs werden kontinuierlich aktualisiert, um vor den neuesten Bedrohungen zu schützen, ohne zusätzliche Arbeit oder Kosten für den User zu verursachen. Der Nachteil einer cloudbasierten WAF besteht darin, dass Benutzende die Verantwortung an einen Drittanbieter übergeben, sodass ihnen einige Funktionen der WAF undurchsichtig erscheinen können.
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 etwa DoS, Injection, XSS, CSRF, SYN-Flut und GET-Flut. Eine WAF stellt eine umfassende Lösung dar, 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