Content-Security-Policy (CSP) | Sicherheitschance Webserver-Kopfzeilen
05.05.2020 | 17:30 Uhr
Die Kopfzeilen der Webserver bieten aber auch Chancen. Richtig eingesetzt erhöhen sie im Zusammenspiel mit aktuellen Browsern deutlich die Sicherheit.
Mit der Kopfzeile Strict-Transport-Security kann ein Webserver dem Browser beispielsweise mitteilen, die Website ausschließlich verschlüsselt (per TLS) aufzurufen. Per Feature-Policy wird dem Browser mitgeteilt, welche besondere Funktionen (Kamerazugriff z.B.) er zulassen darf oder nicht.
Eine der wichtigsten Kopfzeilen ist ist die Content-Security-Policy (CSP). Sie ermöglicht Inhaltsbeschränkungen durch den Browser.
Der Webserver teilt per CSP dem Browser sehr genau mit, welche Inhalte und von wo er darstellen darf. Meist dürfen die Inhalte dabei nur vom eigenen Server kommen. Zudem kann man über Prüfsummen sehr genau definieren, welche Bilder oder Programme die Seite beinhalten darf. Stimmen diese Werte nicht oder soll Inhalt von einem unbekannten Server geladen werden, blockiert der Browser automatisch den Aufruf oder die Integration.
Schafft es ein Hacker beispielsweise, über eine Kommentarfunktion eines Blogs schädlichen Code in die Seite zu integrieren, so kann dieser über eine gut hinterlegte Inhaltsdefinition am Ausführen im Browser des Opfers gehindert werden.
Insbesondere Websites, die viele interaktive Elemente haben und Besuchern die Möglichkeit geben, eigene Inhalte auf dem Webserver zu positionieren, sollten solche Definitionen hinterlegen. So wird man auch im Falle eines ungewollten Hacks nicht zum Mittäter.
Bis auf den veralteten Internet-Explorer unterstützen alle modernen Browser diese Kopfzeile. Definieren kann man per CSP beispielsweise:
- img-src Bilder
- media-src Videos
- frame-src externe Inhalte mittels Inhaltsfenster
- script-src Interaktion (Javascript)
- style-src Design
- font-src Schriftarten
Für eine optimale Sicherheit sollte eine Website sämtliche Darstellungsinformationen (CSS) und interaktiven Elemente (Javascript) nicht im Quellcode definieren. Mit externen Dateien schafft man so die Möglichkeit, per Inhaltsbeschränkung diesen so genannten Inline-Code auszuschließen. Eine Quelltextänderung durch einen Angreifer würde so nicht angezeigt. Der Nachteil dieser Maßnahme liegt allerdings bei der Performance einer Website. Denn zum schnellen Darstellen einer Seite ist es meist erforderlich, die wichtigsten Darstellungsinformationen bereits mit dem HTML-Quellcode auszuliefern. Hier gibt es daher die Option, per Prüfsumme diese Darstellungsinformationen festzulegen. Bei sich ständig ändernden Seiten sind diese Definitionen aber nur mit viel Aufwand zu pflegen. Bei jeder einzelnen Website ist daher zwischen optimaler Sicherheit und idealer Geschwindigkeit und Darstellung abzuwägen.