Inhaltssicherheitsrichtlinie (CSP) erklärt

Veröffentlicht: 2023-04-18

Angesichts der rasanten Entwicklung von Cybersicherheitsbedrohungen reicht es nicht mehr aus, sich auf eine einzige Verteidigungsebene zu verlassen, um Ihre Online-Präsenz zu schützen. Aus diesem Grund ist es für Website-Besitzer unerlässlich, einen mehrschichtigen Sicherheitsansatz zu verfolgen, der am besten durch das Konzept der Tiefenverteidigung repräsentiert wird.

In Websites und Webanwendungen kann eine Tiefenverteidigung durch die Verwendung von HTTP-Sicherheitsantwortheadern implementiert werden, die speziell entwickelt wurden, um zusätzliche Sicherheitskontrollen auf der Clientseite durchzusetzen. HTTP-Response-Header sind eine wichtige zweite Verteidigungslinie gegen Cyberangriffe auf Webanwendungen.

Als einer der wichtigsten HTTP-Sicherheitsantwort-Header kann die Content Security Policy (CSP) Ihre Website und ihre Besucher effektiv vor den verheerenden Folgen von Cross-Site-Scripting (XSS) und Dateneinschleusungsangriffen schützen.

In diesem Leitfaden erfahren Sie, warum die Content Security Policy ein wichtiger HTTP-Sicherheitsheader ist und wie Sie eine umfassende Abwehr auf Ihrer Website implementieren, um eine Vielzahl von ausgeklügelten Cyberangriffen auf WordPress erfolgreich abzuwehren.

Inhaltssicherheitsrichtlinie

Was sind HTTP-Antwort-Header?

HTTP-Antwortheader sind eine Reihe von Steuerelementen, die in Websites und Webanwendungen implementiert sind und definieren, wie der Browser mit den angeforderten Inhalten interagiert. Die Implementierung von HTTP-Antwort-Headern kann Website-Eigentümern dabei helfen, die Benutzererfahrung erheblich zu verbessern sowie die Funktionalität, Leistung und Sicherheit ihrer Websites zu verbessern.

Da kleine Informationseinheiten zusammen mit den von Website-Besuchern angeforderten Inhalten gesendet werden, ändern HTTP-Antwort-Header, wie Browser die vom Webserver empfangene Antwort interpretieren und verarbeiten. Und während der Inhalt und die Funktionalität der Website unverändert bleiben, kann die Implementierung von HTTP-Antwort-Headern die Wahrnehmung der Benutzer verändern.

HTTP Security Response Header als zweite Verteidigungsebene gegen Sicherheitsbedrohungen

Einer der Schlüsselbereiche, in denen HTTP-Antwortheader wie Content Security Policy verwendet werden, ist die Website-Sicherheit. Die leistungsstarke Funktionalität, die HTTP-Response-Header bieten, macht sie zu einer wichtigen zweiten Verteidigungslinie gegen viele Cyberangriffe, die auf dynamische Webanwendungen wie WordPress abzielen.

Die erste Verteidigungslinie gegen Cyberangriffe besteht aus einer Reihe codebasierter und serverseitiger Sicherheitsmaßnahmen, die die Angriffsfläche reduzieren und Schwachstellen auf Anwendungsebene beseitigen. Dies umfasst die Verwendung sicherer Codierungspraktiken, die Einrichtung strenger Zugriffskontrollrichtlinien und die Implementierung einer Firewall für Webanwendungen, um eingehende Anfragen zu überprüfen und schädlichen Datenverkehr herauszufiltern.

Und obwohl eine starke erste Verteidigungslinie absolut unerlässlich ist, kann das Vertrauen auf eine einzige Sicherheitsebene Ihre Website dennoch anfällig für immer raffiniertere Angriffe machen. Eine einzelne Sicherheitskontrolle kann leicht umgangen werden, insbesondere wenn ein Angreifer in der Lage ist, eine nicht gepatchte Schwachstelle zu identifizieren und auszunutzen.

Inhaltssicherheitsrichtlinie und andere Sicherheitsantwort-Header bieten eine zusätzliche Schutzebene, indem sie den Schaden reduzieren, den böswillige Angriffe verursachen. Wenn es einem böswilligen Hacker gelingt, eine Schwachstelle auf Ihrer Website zu identifizieren, wird eine starke zweite Verteidigungslinie es dem Angreifer erheblich erschweren, sie auszunutzen.

Was ist Inhaltssicherheitsrichtlinie?

Content Security Policy (CSP) ist ein Sicherheitsmechanismus, der verwendet wird, um eine Liste vertrauenswürdiger Quellen für Inhalte zu definieren, die eine Website oder eine bestimmte Webseite laden darf, sowie das Protokoll, das dafür verwendet wird. Dies kann Skripte, Stylesheets, Bilder und andere Arten von Inhalten umfassen, die in eine Webseite eingebettet werden können.

Die Inhaltssicherheitsrichtlinie ist eine leistungsstarke tiefgreifende Sicherheitskontrolle, die dazu beiträgt, nicht autorisierte Anforderungen für Inhalte zu blockieren, die sich außerhalb der aktuellen Website befinden. Darüber hinaus verhindert CSP erfolgreich die Ausführung von Inline-Skripten und schränkt die Ausführung von unsicherem dynamischem Code ein.

Als HTTP-Sicherheitsantwortheader leitet CSP die vom Websitebesitzer konfigurierten Anweisungen an den Browser des Besuchers weiter. Der Browser muss dann den Anweisungen folgen und die Bereitstellung von Inhalten blockieren, die nicht durch die Regeln der Inhaltssicherheitsrichtlinie autorisiert wurden. Auf diese Weise sieht der Browser, dass bestimmte Inhalte von einer Webseite referenziert wurden, weigert sich jedoch, sie zu laden.

Warum ist die Inhaltssicherheitsrichtlinie so wichtig?

Als zweite Verteidigungslinie hindert die Content Security Policy den Angreifer in den meisten Fällen nicht daran, eine Website zu kompromittieren. Dennoch wird es dazu beitragen, die verheerenden Folgen der Malware-Infektion zu mildern und die Versuche des Hackers, es auszunutzen, blockieren.

Selbst wenn Malware in Ihre Website eingeschleust wird, um vertrauliche Informationen zu stehlen oder andere böswillige Aktivitäten durchzuführen, schützt eine robuste CSP-Richtlinie Sie und Ihre Kunden. Der böswillige Akteur kann das Vertrauen Ihrer Kunden in Ihre Website einfach nicht ausnutzen, da der Browser die Ausführung von bösartigem Code von vornherein blockiert.

Die Fähigkeit, die Versuche von Hackern zu unterbinden, Ihre Website auszunutzen, während Sie die volle Kontrolle über sie zurückgewinnen und eine Malware-Bereinigung durchführen, nachdem sie kompromittiert wurde, macht die Implementierung von Content Security Policy zu einem leistungsstarken Tool zum Schutz moderner Websites und Webanwendungen.

Wovor schützt CSP?

Die Content Security Policy schützt eine Website und ihre Besucher vor einer Reihe von Cyberangriffen, die durch Malware-Infektionen erleichtert werden, sowie vor Eindringversuchen, die auf bösartigen Skripten beruhen, die auf den vom Angreifer kontrollierten Ressourcen gehostet werden. Dazu gehören Cross-Site-Scripting (XSS), File-Inclusion-Angriffe und Clickjacking als die drei wichtigsten Angriffsvektoren, die durch die Content Security Policy entschärft werden.

Cross-Site-Scripting (XSS)

Cross-Site-Scripting (XSS) ist ein Injektionsangriff, bei dem bösartiger Code in eine Webseite eingefügt wird. Der Code wird dann vom Browser ausgeführt, wenn die Webseite geladen wird, was es dem Angreifer ermöglicht, sensible Informationen zu stehlen, Benutzersitzungen zu kapern oder Malware zu verteilen.

Um Cross-Site-Scripting-Angriffe durchzuführen, können Hacker Malware als Inline-Skript injizieren, das in HTML eingebettet wird, oder indem sie auf ein externes Skript verweisen, das normalerweise auf einer vom Angreifer kontrollierten Website gehostet wird. Während des Renderns von Inhalten wird der bösartige Code in den Browser des Benutzers geladen und ohne dessen Wissen oder Zustimmung ausgeführt.

Ein gutes Beispiel für Cross-Site-Scripting-Angriffe, die WordPress-Site-Besitzer betreffen, ist das Einschleusen von Karten-Skimming-Malware in die WooCommerce-Kasse, die die Zahlungsinformationen des Käufers stiehlt. Card Skimmer und andere Arten von JavaScript-Sniffern, die zur Durchführung von Cross-Site-Scripting-Angriffen verwendet werden, sehen im Quellcode einer Webseite typischerweise so aus:

 <script type="text/javascript" src="https://hackerswebsite/evil.js"></script>

Im Fall eines Inline-Skripts sehen Sie schädlichen Code, der in die Skript-Tags eingebettet oder sogar als Stylesheet getarnt ist, indem Sie die Style-Tags verwenden.

Die Minderung von Cross-Site-Scripting ist das Hauptziel der Implementierung der Inhaltssicherheitsrichtlinie. Durch das Verhindern der Ausführung von Inline-Skripten, das Einschleusen von unsicherem Javascript mithilfe der Bewertungsfunktion und das Blockieren von Skripts, die aus nicht vertrauenswürdigen Quellen geladen werden, mindert die Content Security Policy (CSP) effektiv das Risiko der Ausführung willkürlichen Codes auf einer Website.

Dateieinschluss-Angriffe

File-Inclusion-Angriffe sind eine weitere Art von Injection-Angriffen, die Content Security Policy entschärfen kann. Als Einbruchstechnik ermöglichen Remote-File-Inclusion-Angriffe dem Hacker, eine schlechte Eingabevalidierung in verschiedenen Website-Bereichen auszunutzen, um bösartigen Code auszuführen, der auf einer externen Ressource gehostet wird.

Remote File Inclusion-Angriffe nutzen oft nicht gepatchte Schwachstellen in WordPress-Plugins und -Themes aus, um durch die Installation einer Web-Shell-Hintertür in eine Website einzudringen. Ähnlich wie bei der Abwehr von Cross-Site-Scripting verhindert die Content Security Policy effektiv, dass alle verdächtigen externen Skripts in die Website eingeschleust werden, wodurch es für den Angreifer fast unmöglich wird, Schwachstellen im Bereich Remote File Inclusion (RFI) auszunutzen.

Clickjacking

Abgesehen davon, dass Website-Eigentümer eine Liste vertrauenswürdiger Ressourcen zum Laden von Inhalten definieren können, kann die Inhaltssicherheitsrichtlinie dazu beitragen, die Liste der Websites einzuschränken, die berechtigt sind, Inhalte von der Website in Frames einzubetten. Dies trägt dazu bei, Angriffe auf die Benutzeroberfläche (UI) wie Clickjacking abzuschwächen, denen Ihre Kunden zum Opfer fallen können, indem sie verdächtige Links öffnen, die ihnen bei einem Spear-Phishing-Angriff gesendet werden.

Die frame-ancestors Direktive der Content Security Policy hat erfolgreich den X-Frame-Options Header ersetzt, der inzwischen von den meisten modernen Browsern als veraltet markiert wurde. Diese und andere CSP-Anweisungen sind für die WordPress-Sicherheit absolut unerlässlich.

Richtlinien zur Inhaltssicherheit

Die Inhaltssicherheitsrichtlinie hilft Ihnen, eine Reihe von Regeln festzulegen, die als Anweisungen bezeichnet werden, um die Inhaltsquellen zu steuern, die Ihre Website laden kann. Inhaltssicherheitsrichtlinien sind eine Liste von Anweisungen, die im HTTP-Header einer angeforderten Webseite enthalten sind und die Arten von Inhalten definieren, die ein Browser auf dieser Seite laden darf, zusammen mit der Liste vertrauenswürdiger Quellen, aus denen sie geladen werden können.

Unter den verschiedenen verfügbaren Richtlinien zur Inhaltssicherheit werden die folgenden Regeln am häufigsten angewendet, um Websites vor Cross-Site-Scripting (XSS), Clickjacking und Dateneinschleusungsangriffen zu schützen. Alle folgenden CSP-Anweisungen, mit Ausnahme von frame-ancestors , form-action und upgrade-insecure-requests , sind Abrufanweisungen, die die Liste der Ressourcen angeben, aus denen Inhalte geladen werden sollen. Frame-ancestors und form-action sind Navigationsanweisungen, die definieren, wie andere Ressourcen den Inhalt der Website verwenden können, für die die Inhaltssicherheitsrichtlinie konfiguriert ist.

  • default-src definiert die Richtlinie zum Laden aller Ressourcentypen, die der Browser standardmäßig verwendet, wenn keine zusätzlichen Regeln für einen bestimmten Inhaltstyp angegeben sind.
  • script-src gibt die vertrauenswürdigen Quellen von JavaScript-Dateien an, die von der Website geladen werden können.
  • style-src definiert die Liste gültiger Stylesheet-Quellen (CSS).
  • img-src Whitelists der Ressourcen, von denen Bilder geladen werden können.
  • media-src gibt die vertrauenswürdigen Quellen von Audio- und Videodateien an, die in die HTML-Elemente <audio> und <video> eingebettet sind
  • connect-src bietet Kontrolle über XMLHttpRequest -, EventSource - und WebSocket Verbindungen.
  • child-src definiert die Inhaltsquellen, die über Frames in eine Webseite eingebunden werden können.
  • frame-ancestors ist eine Navigationsdirektive, die hilft, Clickjacking-Angriffe abzuschwächen, indem sie die Liste der Ressourcen angibt, die den Inhalt einer Website in Frames einbetten dürfen.
  • form-action schränkt die Ressourcen ein, an die Webformulare Informationen senden können, und verhindert so die Datenexfiltration an externe Ressourcen, die vom Angreifer kontrolliert werden.
  • upgrade-insecure-requests weist den Browser an, alle unsicheren Anfragen auf HTTPS zu aktualisieren, um sichere Verbindungen zu gewährleisten.

Abhängig von der Art der Website und der spezifischen Funktionalität, die sie bietet, müssen Websitebesitzer möglicherweise mehrere Anweisungen konfigurieren, um alle extern abgerufenen Inhaltsquellen zu steuern.

Der Industriestandard zur Gewährleistung eines ausreichenden Schutzes vor Cross-Scripting- und Injection-Angriffen unter Verwendung der Content Security Policy als zweite Verteidigungslinie besteht darin, die gültigen Quellen externer Inhalte auf die aktuelle Website nur durch die Richtlinie default-src zu beschränken. Gezieltere Anweisungen können dann verwendet werden, um Ressourcen für bestimmte Arten von Inhalten auf die Whitelist zu setzen, aber das Ablehnen aller anderen Ressourcen ist der empfohlene Ansatz.

Richtlinienrichtlinien für Inhaltssicherheit konfigurieren

Jede Richtlinie zur Inhaltssicherheit akzeptiert eine Liste von Werten, die durch einen Uniform Resource Locator (URL) dargestellt werden, der die gültige Webadresse mit vorangestelltem Protokoll, einen Domänennamen, einen Platzhalter oder bestimmte Werte wie 'self' oder 'none' enthalten sollte 'none' vom HTTP-Antwortheader bereitgestellt.

Hier sind einige Instanzen von Werten, die Inhaltssicherheitsrichtlinien-Anweisungen zugewiesen werden können:

Richtwert Beispiel Definition
* media-src* Platzhalter, der verwendet wird, um das Laden von Inhalten aus allen Ressourcen zuzulassen.
'self' default-src 'self'
frame-ancestors 'self';
Setzt die aktuelle Website als einzige gültige Quelle für bestimmte Inhalte auf die Whitelist. Definiert die strenge Sicherheitsrichtlinie desselben Ursprungs, die empfohlene standardmäßige Inhaltssicherheitsrichtlinie.

Verwendet mit der frame-ancestors-Direktive, verbietet Content-Framing auf anderen Ressourcen als der Website selbst.
'none' media-src 'none' Verbietet das Laden von Ressourcen aus beliebigen Quellen, einschließlich derselben Website.
domain.com
*.domain.com
img-sr *.domain.com Ermöglicht das Laden von Inhalten von jeder Subdomain unter domain.com.
https://domain.com default-src 'https://domain.com' Ermöglicht das Abrufen von Inhalten nur über HTTPS vom angegebenen Domänennamen.

Unabhängig von den angegebenen Regeln blockiert die Inhaltssicherheitsrichtlinie standardmäßig die Ausführung von Inline-Skripts und verhindert, dass Webseiten Text-zu-JavaScript-Funktionen wie eval ausführen, die häufig von böswilligen Hackern verwendet werden. Das Hinzufügen der Werte 'unsafe-inline' und 'unsafe-eval' zur Richtlinie script-src Content Security Policy kann Website-Eigentümern helfen, die Einschränkungen zu umgehen, aber dies kann die Website erheblichen Sicherheitsrisiken aussetzen und den durch andere Richtlinien auferlegten Schutz untergraben .

Die folgende Content Security Policy-Header-Konfiguration verhindert effektiv, dass die Website Inhalte von externen Ressourcen lädt, und verhindert die Ausführung von Inline-Skripten und unsicherem JavaScript:

Content-Security-Policy "default-src 'self' https://mywebsite.com; frame-ancestors 'self'"

Angesichts des 'self' -Werts mildert die frame-ancestors-Direktive Clickjacking-Angriffe, indem sie Content-Framing blockiert.

Inhaltssicherheitsrichtlinie und Content Delivery Networks (CDN)

Da die meisten Content-Delivery-Netzwerke wie Cloudflare vollständig mit der Content Security Policy kompatibel sind und die CPS-Header vom Ursprungsserver nicht ändern. Sie müssen keine zusätzlichen Ressourcen in den von Ihnen konfigurierten Sicherheitsregeln auf die Whitelist setzen.

Implementieren der Inhaltssicherheitsrichtlinie für WordPress

WordPress bietet verschiedene Plugins zum Hinzufügen von HTTP-Antwort-Headern, was eine gute Option für technisch nicht versierte Benutzer sein kann. Dies kann zwar eine praktische Option sein, aber das Einrichten von Sicherheitsantwort-Headern wie Content Security Policy für Ihre WordPress-Website ist ein unkomplizierter Prozess, der keine Installation von Drittanbietersoftware erfordert.

Mit dem Apache-Modul mod_headers und dem Nginx ngx_http_headers_module können Sie HTTP-Antwort-Header für Ihre Website konfigurieren. Wenn Sie Nginx verwenden, können Sie die add_header Direktive in den Server-{}-Block Ihrer Website einfügen, um HTTP-Antwort-Header zu konfigurieren.

Wenn Sie Apache als Webserver verwenden, können Sie in ähnlicher Weise die Anweisungen „Header set“ und „Header append“ verwenden, um Sicherheitsrichtlinien in der lokalen .htaccess Datei Ihrer Website zu konfigurieren, die sich im Dokumentenstamm befindet. Auf diese Weise wird die in der .htaccess-Datei im Stammverzeichnis Ihrer Website angegebene Konfiguration auf alle Webseiten der Website angewendet.

Es ist wichtig zu beachten, dass Sie mit Apache HTTP-Antwortheader sowohl lokal – in einer .htaccess Datei – als auch global für alle Websites auf dem Server konfigurieren können. Es ist möglich, dass Ihr Hosting-Provider bestimmte Antwort-Header global konfiguriert, insbesondere wenn Sie einen Shared-Hosting-Plan haben. Die Verwendung der Methode „Header set“ zur Konfiguration der Content Security Policy überschreibt die vorhandenen globalen Regeln vollständig, während die Verwendung von „Header append“ Ihre neue Richtlinie mit einem vorhandenen Antwortheader zusammenführt, anstatt die gesamte Konfiguration zu ersetzen.

Sie können die Konfiguration der Inhaltssicherheitsrichtlinie unten hinzufügen, um strenge Sicherheitskontrollen auf Ihrer WordPress-Website durchzusetzen

Für Apache:

 Header set Content-Security-Policy "default-src 'self' https://mywebsite.com; frame-ancestors 'self';"

Für Nginx:

 add_header Content-Security-Policy "default-src 'self' https://mywebsite.com; frame-ancestors 'self';"

Die Ausarbeitung einer Content Security Policy-Konfiguration, die den Sicherheitsanforderungen Ihrer Website entspricht, erfordert möglicherweise einige Tests sowie ein gründliches Verständnis der Funktionalität der Website. Darüber hinaus kann die Implementierung neuer Sicherheitsprotokolle auf Ihrer WordPress-Seite möglicherweise zu einem Funktionsverlust führen, daher ist es wichtig, die Auswirkungen von Änderungen sorgfältig zu berücksichtigen. Sie können sich an Ihren Hostinganbieter wenden oder sich an Ihren Entwickler wenden, um sicherzustellen, dass die Sicherheitsheader ordnungsgemäß konfiguriert sind und keine negativen Folgen haben.

Implementieren Sie Defense-in-Depth mit iThemes Security Pro

In der heutigen Bedrohungslandschaft ist die Einführung einer umfassenden Verteidigungsstrategie von entscheidender Bedeutung. In Bezug auf moderne dynamische Webanwendungen wie WordPress ist der Header der Content Security Policy das Herzstück der tiefgreifenden Verteidigung und bietet eine wichtige Schutzebene gegen Cross-Site-Scripting (XSS), File-Inclusion-Angriffe, Clickjacking und andere webbasierte Angriffe.

Die Implementierung einer umfassenden Defense-in-Depth-Lösung war schon immer eine Herausforderung. Aber mit iThemes Security Pro, einem robusten und zuverlässigen Sicherheits-Plugin, können Sie Ihre WordPress-Website schützen. Mit Funktionen wie Dateiintegritätsüberwachung, Schwachstellen-Scanning, automatischen Software-Updates und passwortloser Authentifizierung können Sie sicher sein, dass alle kritischen Teile Ihrer WordPress-Website vor sich ständig weiterentwickelnden Sicherheitsbedrohungen geschützt sind.