HTTP Security Header – Zur Verbesserung der Website-Sicherheit

Das World Wide Web steckt voller Möglichkeiten. Die nächste Shop-Bestellung ist nur einen Klick entfernt. Ebenso die praktische Web-Anwendung, mit der man täglich arbeitet. Das Online Banking. Oder auch einfach nur ein informativer Blogartikel.

Doch wer im Internet surft, setzt sich immer auch Risiken aus. Hacker und Datenspione lauern überall. Und nicht nur dort, wo man sie üblicherweise vermutet.

Sicherlich ist man beim Download eines Programms vorsichtig – man wurde für die Möglichkeit, sich einen Virus oder Trojaner zu installieren, sensibilisiert. Ebenso wissen die meisten User, dass nicht jede E-Mail von einem vertrauenswürdigen Absender stammt und daher durchaus eine Gefahr darstellen kann. Etwa wenn der Mail ein Anhang beigefügt ist, den man laut Absender unbedingt öffnen soll. Oder auch, wenn ein dubioser Link in der Mail genannt ist, der geklickt werden soll.

In diesen Momenten wissen wir: ‚Moment, man sollte vorsichtig sein.‘ Doch es gibt auch Situationen, in denen die Gefahr nicht wirklich bewusst ist.

Die Gefahr lauert bereits beim ‘einfachen’ Surfen

Tatsächlich kann bereits der Besuch einer ganz normalen Website eine Gefahr darstellen. So etwa beim Clickjacking. Bei dieser Betrugsmethode wird versucht, den User zu einem Klick auf einen Button zu bewegen, auf den man gar nicht klicken wollte. Der Klick wird quasi entführt und dazu genutzt, eine Aktion durchzuführen, die vom User nicht intendiert war. Hierzu wird eine überlagernde Website-Oberfläche eingerichtet, die den User weg von der eigentlichen Website ziehen soll. Ein falscher Klick und schon wird eine Situation ausgelöst, die man nicht auslösen wollte.

Eine ähnliche Gefahr geht vom Cross-Site-Scripting aus. Hierbei nutzen die Cyberkriminellen Sicherheitslücken in Webanwendungen aus, um sich Zugriff auf das Programm zu verschaffen und dabei die Rolle ihres Opfers einzunehmen. So ist es dem Angreifer möglich, innerhalb der Anwendung die gleichen Schritte durchzuführen, die sonst nur dem befugten User möglich sind. Der Cyberkriminelle übernimmt also die Kontrolle über das Benutzerkonto des Opfers.

Das kann man gegen Angriffe auf eine Website oder Webanwendung tun

Eine der einfachsten und zugleich effektivsten Methoden, eine Website bzw. browser-basierte Anwendung vor einem Hackerangriff zu schützen, ist der Einsatz von HTTP Security Headern. Doch was können diese Header und wie funktionieren sie?

Was sind HTTP Security Header?

Das World Wild Web basiert auf dem HTTP-Protokoll. HTTP kann als die Sprache verstanden werden, mittels der der Browser mit einem Server kommuniziert. Das kann man sich etwa so vorstellen: Man gibt eine Website-Adresse in die Adresszeile des Browsers ein und bestätigt die Anfrage. Daraufhin fragt der Browser bei einem Server die angeforderten Inhalte ab. Der Server antwortet. Unter anderem mit allgemeinen Informationen, die im Kopf- bzw. Head-Bereich der Antwort zu finden sind.

Cache-Header geben etwa an, ob und wie lange eine Datei im Browser-Cache abgelegt werden darf. Der Content-Type teilt dem Webbrowser mit, welche Art von Daten übertragen werden. Und die Content-Length verrät dem Browser, wie groß z.B. die übermittelte Datei ist.

Soweit zu den Informationen im Header. Doch was hat das nun mit Sicherheit bzw. HTTP Security Headern zu tun?

Website-Betreiber können HTTP Security Header einsetzen, um die Besucher ihrer Domain vor Cyber-Angriffen zu schützen. Sie geben dem Browser des Users zusätzliche Sicherheitsanweisungen, die die bereits aktiven Sicherheitsfunktionen ergänzen.

Schutz vor Clickjacking, Cross-Site-Scripting und anderen Angriffen

Moderne Browser wie Google Chrome, Firefox oder Safari verfügen bereits über eine Vielzahl an Sicherheitsfunktionen, die ihre AnwenderInnen schützen. Allerdings gibt es auch Webfunktionen, die eine Sicherheitslücke darstellen, die in den gängigen Schutzfunktionen nicht berücksichtigt sind.

Ein Beispiel sind sogenannte iFrames. Sie lassen die Einbettung mehrerer Websites ineinander zu. An sich eine tolle Funktion, die allerdings das Clickjacking – wie oben bereits erklärt – zulässt.

Clickjacking, Cross-Site-Scripting und andere Angriffe dieser Art laufen browser-seitig ab. Der User muss in diesen Fällen fähig sein, die Gefahr eigenständig zu erkennen. Tut er das nicht, ist er den Cyberkriminellen schutzlos ausgeliefert. Durch die aktivierten HTTP Security Header entfällt für den User diese Verantwortung.

Aktiviert ein Website-Betreiber die HTTP Security Header, bietet er seinen Website-Besuchern somit zusätzlichen Schutz.

Welche HTTP Security Header gibt es?

Es gibt verschiedene sicherheitsrelevante HTTP Security Header. Dazu gehören:

Strict-Transport-Security

Startet der User eine Anfrage über seinen Browser an einen Server, ist es einem Angreifer möglich, den Datenverkehr über sich umzuleiten, mitzulesen und zu manipulieren. Die Lösung: HTTPS-Verschlüsselung.

Immer mehr Websites sind bereits über HTTPS geschützt. Sollte dennoch einmal der Aufruf einer Website über einen http-Link erfolgen, ist der HTTP Strict-Transport-Security Header die Lösung. Er sorgt dafür, dass der Browser die Website dennoch über eine HTTPS-Verbindung aufruft.

Referrer-Policy

Üblicherweise ist es Website-Betreibenden möglich, nachzuvollziehen, von welcher Seite aus der User auf die eigene Website gelangt ist. Klickt man etwa auf einen Link auf der Website domain1.com, der auf domain2.com führt, wird an domain2.com die Info übergeben, dass der geklickte Link von domain1.com stammt.

Im Sinne des Datenschutzes sollte hier der Referrer-Policy Header aktiviert sein. Über ihn wird die Herkunftsseite des Website-Besuchers nicht preisgegeben.

X-Frame-Options

Der X-Frame-Options Header legt fest, ob eine Website in einen Frame eingebettet werden darf. Dadurch wird nicht die Nutzung von iFrames unterbunden, aber die besuchte Website wird nicht geladen, sollte sie in eine nicht-vertrauenswürdige Website eingebettet worden sein.

X-Content-Type-Options

Üblicherweise wird dem Browser durch das das Ende eines Links – etwa ‚.html‘ – die Info mitgeteilt, was für ein Objekt geladen werden muss. Fehlt diese Dateiendung in der Website-Adresse, nutzt der Browser den Content-Type Header, um zu erfahren, wie er die übermittelten Daten zu interpretieren hat.

Allerdings kann es vorkommen, dass nicht nur die Dateiendung fehlt, sondern eben auch der Content-Type Header. In diesem Fall versucht der Browser, den Typ des abgerufenen Inhalts zu erraten. Eine Sicherheitslücke entsteht. Denn: Cyberkriminelle können bösartigen Code etwa als Bild tarnen und auf die besuchte Website hochladen. Wird das Bild von dem Browser als HTML-Text interpretiert, wird der bösartige Code ausgeführt. Ist allerdings der X-Content-Type-Options Header aktiviert, wird die Ratefunktion des Browsers unterbunden.

Content-Security-Policy

Die Content-Security-Policy – kurz: CSP – steuert, welche Datentypen auf einer Website verwendet werden und aus welcher Quelle diese stammen dürfen.

Mit diesem Header wird das Cross-Site-Scripting unterbunden – ebenso wie andere Cyberattacken, bei denen fremde Daten in eine Website eingeschleust werden.

Permissions-Policy

Die Permissions-Policy gibt einer Website die Möglichkeit, die Verwendung von Browserfunktionen in ihrem eigenen Frame oder in darin eingebetteten iFrames zuzulassen oder zu blockieren.

Fazit: HTTP Security Header erhöhen die Sicherheit

Wer seine eigene Website und deren BesucherInnen schützen möchte, der setzt auf HTTP Security Header. Im besten Fall nutzt man alle oben genannten Header, um ein sicheres Surf-Erlebnis zu ermöglichen.

Übrigens: Hier kann man die Header für seine Website prüfen lassen: securityheaders.com