Wyjaśnienie zasad bezpieczeństwa treści (CSP).

Opublikowany: 2023-04-18

Wraz z szybką ewolucją zagrożeń dla cyberbezpieczeństwa poleganie na pojedynczej warstwie ochrony nie wystarcza już do ochrony Twojej obecności w Internecie. To sprawia, że ​​właściciele stron internetowych muszą stosować wielowarstwowe podejście do bezpieczeństwa, co najlepiej odzwierciedla koncepcja dogłębnej obrony.

W witrynach internetowych i aplikacjach internetowych głęboką obronę można wdrożyć za pomocą nagłówków odpowiedzi bezpieczeństwa HTTP, zaprojektowanych specjalnie w celu wymuszenia dodatkowych kontroli bezpieczeństwa po stronie klienta. Nagłówki odpowiedzi HTTP są ważną drugą linią obrony przed cyberatakami wymierzonymi w aplikacje internetowe.

Jako jeden z kluczowych nagłówków odpowiedzi bezpieczeństwa HTTP, polityka bezpieczeństwa treści (CSP) może skutecznie chronić Twoją witrynę internetową i odwiedzających ją przed niszczycielskimi konsekwencjami ataków cross-site scripting (XSS) i wstrzykiwania danych.

Z tego przewodnika dowiesz się, dlaczego polityka bezpieczeństwa treści jest kluczowym nagłówkiem bezpieczeństwa HTTP i jak wdrożyć głęboką obronę w swojej witrynie, aby skutecznie ograniczyć szeroką gamę wyrafinowanych ataków cybernetycznych wymierzonych w WordPress.

polityka bezpieczeństwa treści

Co to są nagłówki odpowiedzi HTTP?

Nagłówki odpowiedzi HTTP to zestaw elementów sterujących zaimplementowanych w witrynach internetowych i aplikacjach internetowych, które określają sposób interakcji przeglądarki z żądaną treścią. Implementacja nagłówków odpowiedzi HTTP może pomóc właścicielom witryn znacznie poprawić komfort użytkowania, a także poprawić funkcjonalność, wydajność i bezpieczeństwo ich witryn.

Ponieważ małe fragmenty informacji są wysyłane wraz z treścią żądaną przez odwiedzających witrynę, nagłówki odpowiedzi HTTP modyfikują sposób, w jaki przeglądarki interpretują i przetwarzają odpowiedź otrzymaną z serwera WWW. I chociaż treść i funkcjonalność witryny pozostają niezmienione, wdrożenie nagłówków odpowiedzi HTTP może zmienić sposób, w jaki użytkownicy ją postrzegają.

Nagłówki odpowiedzi bezpieczeństwa HTTP jako druga warstwa obrony przed zagrożeniami bezpieczeństwa

Jednym z kluczowych obszarów, w których wykorzystywane są nagłówki odpowiedzi HTTP, takie jak Content Security Policy, jest bezpieczeństwo witryn internetowych. Potężna funkcjonalność, jaką zapewniają nagłówki odpowiedzi HTTP, czyni je ważną drugą linią obrony przed wieloma cyberatakami wymierzonymi w dynamiczne aplikacje internetowe, takie jak WordPress.

Pierwsza linia obrony przed cyberatakami składa się z szeregu środków bezpieczeństwa opartych na kodzie i po stronie serwera, które zmniejszają powierzchnię ataku i eliminują luki w zabezpieczeniach na poziomie aplikacji. Obejmuje to stosowanie bezpiecznych praktyk kodowania, ustanowienie silnych zasad kontroli dostępu i wdrożenie zapory aplikacji sieci Web w celu sprawdzania przychodzących żądań i filtrowania złośliwego ruchu.

I chociaż posiadanie silnej pierwszej linii obrony jest absolutnie niezbędne, poleganie na pojedynczej warstwie zabezpieczeń może nadal narażać witrynę na coraz bardziej wyrafinowane ataki. Pojedynczą kontrolę bezpieczeństwa można łatwo obejść, zwłaszcza jeśli atakujący jest w stanie zidentyfikować i wykorzystać niezałataną lukę w zabezpieczeniach.

Polityka bezpieczeństwa treści i inne nagłówki odpowiedzi dotyczące bezpieczeństwa zapewniają dodatkową warstwę ochrony, zmniejszając szkody wyrządzane przez złośliwe ataki. Jeśli złośliwemu hakerowi uda się zidentyfikować lukę w Twojej witrynie, silna druga linia obrony znacznie utrudni atakującemu jej wykorzystanie.

Co to jest Polityka bezpieczeństwa treści?

Polityka bezpieczeństwa treści (CSP) to mechanizm bezpieczeństwa używany do definiowania listy zaufanych źródeł treści, które witryna internetowa lub określona strona internetowa może ładować, a także jaki protokół będzie do tego używany. Może to obejmować skrypty, arkusze stylów, obrazy i inne rodzaje treści, które można osadzić na stronie internetowej.

Polityka bezpieczeństwa treści to potężna ochrona dogłębna kontrola bezpieczeństwa, która pomaga blokować nieautoryzowane żądania dotyczące treści znajdujących się poza bieżącą witryną. Oprócz tego CSP skutecznie zapobiega wykonywaniu wbudowanych skryptów i ogranicza wykonywanie niebezpiecznego kodu dynamicznego.

Jako nagłówek odpowiedzi bezpieczeństwa HTTP, CSP przekazuje instrukcje skonfigurowane przez właściciela witryny do przeglądarki odwiedzającego. Przeglądarka musi więc postępować zgodnie z instrukcjami i blokować dostarczanie treści, które nie zostały autoryzowane przez zasady Polityki bezpieczeństwa treści. W ten sposób przeglądarka zobaczy, że strona internetowa odwołuje się do określonej treści, ale odmówi jej załadowania.

Dlaczego polityka bezpieczeństwa treści jest tak ważna?

Jako druga linia obrony, Polityka bezpieczeństwa treści w większości przypadków nie uniemożliwia atakującemu naruszenia bezpieczeństwa witryny. Mimo to pomoże złagodzić niszczycielskie skutki infekcji złośliwym oprogramowaniem, blokując próby wykorzystania go przez hakera.

Nawet jeśli złośliwe oprogramowanie zostanie wstrzyknięte do Twojej witryny w celu kradzieży poufnych informacji lub wykonywania innych złośliwych działań, solidna polityka CSP zapewni bezpieczeństwo Tobie i Twoim klientom. Złośliwy aktor po prostu nie będzie w stanie wykorzystać zaufania klientów do Twojej witryny, ponieważ przeglądarka w pierwszej kolejności zablokuje wykonanie złośliwego kodu.

Możliwość zanegowania wysiłków hakerów w celu wykorzystania Twojej witryny, podczas gdy Ty odzyskujesz nad nią pełną kontrolę i przeprowadzasz czyszczenie złośliwego oprogramowania po jej naruszeniu, sprawia, że ​​wdrożenie Polityki bezpieczeństwa treści jest potężnym narzędziem do zabezpieczania nowoczesnych witryn i aplikacji internetowych.

Przed czym chroni CSP?

Polityka bezpieczeństwa treści chroni witrynę internetową i osoby ją odwiedzające przed szeregiem cyberataków wspieranych przez infekcje złośliwym oprogramowaniem, a także próbami włamań polegającymi na złośliwych skryptach hostowanych na zasobach kontrolowanych przez osobę atakującą. Obejmuje to cross-site scripting (XSS), ataki polegające na włączaniu plików i przechwytywanie kliknięć jako trzy główne wektory ataków ograniczane przez Politykę bezpieczeństwa treści.

Skrypty międzywitrynowe (XSS)

Cross-site scripting (XSS) to atak polegający na wstawieniu złośliwego kodu na stronę internetową. Kod zostanie następnie wykonany przez przeglądarkę podczas ładowania strony internetowej, umożliwiając atakującemu kradzież poufnych informacji, przejęcie sesji użytkownika lub dystrybucję złośliwego oprogramowania.

Aby przeprowadzać ataki typu cross-site scripting, hakerzy mogą wstrzykiwać złośliwe oprogramowanie jako wbudowany skrypt, który jest osadzony w kodzie HTML lub odwołując się do zewnętrznego skryptu, zwykle hostowanego na stronie internetowej kontrolowanej przez osobę atakującą. Podczas procesu renderowania treści szkodliwy kod zostanie załadowany do przeglądarki użytkownika i wykonany bez jego wiedzy i zgody.

Dobrym przykładem ataków typu cross-site scripting, które mają wpływ na właścicieli witryn WordPress, jest wstrzykiwanie złośliwego oprogramowania służącego do skimmingu kart do kasy WooCommerce, które kradnie informacje o płatności kupującego. Skimmery kart i inne typy snifferów JavaScript wykorzystywane do przeprowadzania ataków typu cross-site scripting zazwyczaj wyglądają w kodzie źródłowym strony internetowej tak:

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

W przypadku skryptu wbudowanego zobaczysz złośliwy kod osadzony w znacznikach skryptu lub nawet zamaskowany jako arkusz stylów przy użyciu znaczników stylów.

Łagodzenie skryptów między witrynami jest głównym celem wdrażania Polityki bezpieczeństwa treści. Zapobiegając wykonywaniu wbudowanych skryptów, wstrzykiwaniu niebezpiecznego kodu JavaScript za pomocą funkcji eval oraz blokowaniu skryptów ładowanych z niezaufanych źródeł, polityka bezpieczeństwa treści (CSP) skutecznie ogranicza ryzyko wykonania dowolnego kodu na stronie internetowej.

Ataki na włączanie plików

Ataki polegające na dołączaniu plików to inny rodzaj ataku polegającego na wstrzykiwaniu, który może złagodzić Polityka bezpieczeństwa treści. Jako technika włamań, zdalne włączanie plików umożliwia hakerowi wykorzystanie słabej weryfikacji danych wejściowych w różnych obszarach witryny w celu wykonania złośliwego kodu hostowanego w zasobie zewnętrznym.

Ataki polegające na zdalnym dołączaniu plików często wykorzystują niezałatane luki w zabezpieczeniach wtyczek i motywów WordPress w celu włamania się na stronę internetową poprzez zainstalowanie backdoora powłoki internetowej. Podobnie jak w przypadku łagodzenia skutków ataków typu cross-site scripting, polityka bezpieczeństwa treści skutecznie zablokuje wprowadzanie do witryny wszystkich podejrzanych skryptów zewnętrznych, co prawie uniemożliwi atakującemu wykorzystanie luk w zabezpieczeniach zdalnego włączania plików (RFI).

Przechwytywanie kliknięć

Oprócz umożliwienia właścicielom witryn zdefiniowania listy zaufanych zasobów, z których mają być ładowane treści, polityka bezpieczeństwa treści może pomóc ograniczyć listę witryn internetowych uprawnionych do osadzania treści z witryny w ramach ramek. Pomaga to złagodzić ataki polegające na naprawianiu interfejsu użytkownika (UI), takie jak przechwytywanie kliknięć, których ofiarą mogą paść Twoi klienci, otwierając podejrzane łącza wysłane do nich w ramach ataku spear phishing.

Dyrektywa Content Security Policy frame-ancestors z powodzeniem zastąpiła nagłówek X-Frame-Options , który został wycofany przez większość nowoczesnych przeglądarek. Ta i inne dyrektywy CSP są absolutnie niezbędne w bezpieczeństwie WordPressa.

Dyrektywy dotyczące zasad bezpieczeństwa treści

Zasady bezpieczeństwa treści pomagają określić zestaw reguł, zwanych dyrektywami, służących do kontrolowania źródeł treści, które mogą być ładowane w witrynie. Dyrektywy zasad bezpieczeństwa treści to lista instrukcji zawartych w nagłówku HTTP żądanej strony internetowej, które określają typy treści, które przeglądarka może załadować na tej stronie, wraz z listą zaufanych źródeł, z których można je załadować.

Spośród różnych dostępnych dyrektyw Polityki bezpieczeństwa treści, poniższe reguły są najczęściej stosowane do zabezpieczania witryn internetowych przed atakami typu cross-site scripting (XSS), przechwytywaniem kliknięć i wstrzykiwaniem danych. Wszystkie poniższe dyrektywy CSP, z wyjątkiem frame-ancestors , form-action i upgrade-insecure-requests , są dyrektywami pobierania, które określają listę zasobów, z których ma zostać załadowana zawartość. Frame-ancestors i form-action to dyrektywy nawigacyjne, które określają, w jaki sposób inne zasoby mogą korzystać z zawartości witryny sieci Web, dla której skonfigurowano Politykę bezpieczeństwa treści.

  • default-src definiuje zasady ładowania wszystkich typów zasobów, które przeglądarka zastosuje domyślnie, jeśli nie określono żadnych dodatkowych reguł dla określonego typu treści.
  • script-src określa zaufane źródła plików JavaScript, które można załadować ze strony internetowej.
  • style-src definiuje listę prawidłowych źródeł arkuszy stylów (CSS).
  • img-src umieszcza na białej liście zasoby, z których można ładować obrazy.
  • media-src określa zaufane źródła plików audio i wideo osadzonych w elementach HTML <audio> i <video>
  • connect-src zapewnia kontrolę nad połączeniami XMLHttpRequest , EventSource i WebSocket .
  • child-src definiuje źródła treści, które mogą być zawarte na stronie internetowej za pomocą ramek.
  • frame-ancestors to dyrektywa nawigacyjna, która pomaga złagodzić ataki polegające na przechwytywaniu kliknięć, określając listę zasobów, które mogą osadzać zawartość witryny w ramkach.
  • form-action ogranicza zasoby, do których formularze internetowe mogą przesyłać informacje, zapobiegając eksfiltracji danych do zewnętrznych zasobów kontrolowanych przez atakującego.
  • upgrade-insecure-requests instruuje przeglądarkę, aby uaktualniła wszystkie niezabezpieczone żądania do HTTPS , zapewniając bezpieczne połączenia.

W zależności od typu witryny internetowej i określonych funkcji, jakie zapewnia, właściciele witryn mogą potrzebować skonfigurować wiele dyrektyw, aby kontrolować wszystkie źródła treści pobieranych z zewnątrz.

Standardem branżowym zapewniającym wystarczającą ochronę przed atakami typu cross-scripting i injection przy użyciu Polityki bezpieczeństwa treści jako drugiej linii obrony jest ograniczenie prawidłowych źródeł zawartości zewnętrznej do bieżącej witryny internetowej wyłącznie za pomocą dyrektywy default-src . Bardziej ukierunkowane dyrektywy mogą być następnie użyte do umieszczania na białej liście zasobów dla określonych typów treści, ale zalecanym podejściem jest odrzucanie wszystkich innych zasobów.

Konfigurowanie dyrektyw zasad bezpieczeństwa treści

Każda dyrektywa Content Security Policy akceptuje listę wartości reprezentowanych przez Uniform Resource Locator (URL), która powinna zawierać prawidłowy adres internetowy poprzedzony protokołem, nazwą domeny, symbolem wieloznacznym lub określonymi wartościami, takimi jak 'self' lub 'none' . 'none' dostarczane przez nagłówek odpowiedzi HTTP.

Oto kilka przypadków wartości, które można przypisać do dyrektyw Polityki bezpieczeństwa treści:

Wartość dyrektywy Przykład Definicja
* media-src* Symbol wieloznaczny, używany do zezwalania na ładowanie zawartości ze wszystkich zasobów.
'self' default-src 'self'
frame-ancestors 'self';
Dodaje bieżącą witrynę internetową do białej listy jako jedyne prawidłowe źródło określonych treści. Definiuje ścisłą politykę bezpieczeństwa tego samego pochodzenia, zalecaną domyślną Politykę bezpieczeństwa treści.

Używany z dyrektywą frame-ancestors, uniemożliwia kadrowanie zawartości w zasobach innych niż sama witryna.
'none' media-src 'none' Nie zezwala na ładowanie zasobów z dowolnego źródła, w tym z tej samej witryny.
domain.com
*.domain.com
img-sr c *.domain.com Umożliwia ładowanie treści z dowolnej subdomeny w domenie domain.com.
https://domain.com default-src 'https://domain.com' Zezwala na pobieranie treści tylko przez HTTPS z określonej nazwy domeny.

Domyślnie, niezależnie od określonych reguł, polityka bezpieczeństwa treści blokuje wykonywanie wbudowanych skryptów i uniemożliwia stronom internetowym wykonywanie funkcji zamiany tekstu na JavaScript, takich jak eval, często używanych przez złośliwych hakerów. Dodanie wartości 'unsafe-inline' i 'unsafe-eval' do dyrektywy script-src Content Security Policy może pomóc właścicielom witryn ominąć ograniczenia, ale może to narazić witrynę na poważne zagrożenia bezpieczeństwa i osłabić zabezpieczenia nałożone przez inne dyrektywy .

Następująca konfiguracja nagłówka Polityki bezpieczeństwa treści skutecznie zapobiega ładowaniu treści z zasobów zewnętrznych przez witrynę i uniemożliwia wykonywanie wbudowanych skryptów i niebezpiecznego kodu JavaScript:

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

Biorąc pod uwagę wartość 'self' , dyrektywa frame-ancestors łagodzi ataki typu „clickjacking”, blokując kadrowanie treści.

Polityka bezpieczeństwa treści i sieci dostarczania treści (CDN)

Ponieważ większość sieci dostarczania treści, takich jak Cloudflare, jest w pełni kompatybilna z Polityką bezpieczeństwa treści i nie modyfikuje nagłówków CPS z serwera źródłowego. Nie musisz umieszczać na białej liście żadnych dodatkowych zasobów w konfigurowanych regułach bezpieczeństwa.

Wdrażanie Polityki Bezpieczeństwa Treści dla WordPress

WordPress oferuje różne wtyczki do dodawania nagłówków odpowiedzi HTTP, co może być dobrą opcją dla użytkowników nietechnicznych. Chociaż może to być wygodna opcja, konfigurowanie nagłówków odpowiedzi bezpieczeństwa, takich jak Polityka bezpieczeństwa treści dla witryny WordPress, jest prostym procesem, który nie wymaga instalowania żadnego oprogramowania innych firm.

Moduł mod_headers Apache i moduł ngx_http_headers_module Nginx umożliwiają skonfigurowanie nagłówków odpowiedzi HTTP dla Twojej witryny. Jeśli używasz Nginx, możesz dołączyć dyrektywę add_header do bloku server {} swojej witryny, aby skonfigurować nagłówki odpowiedzi HTTP.

Podobnie, jeśli używasz Apache jako serwera WWW, możesz użyć instrukcji „Zestaw nagłówków” i „Dołącz nagłówek”, aby skonfigurować zasady bezpieczeństwa w lokalnym pliku .htaccess Twojej witryny, znajdującym się w katalogu głównym dokumentu. W ten sposób konfiguracja określona w pliku .htaccess w katalogu głównym Twojej witryny zostanie zastosowana do wszystkich stron w witrynie.

Należy zauważyć, że używając Apache, możesz skonfigurować nagłówki odpowiedzi HTTP zarówno lokalnie – w pliku .htaccess – jak i globalnie dla wszystkich witryn na serwerze. Możliwe, że Twój dostawca usług hostingowych może globalnie skonfigurować niektóre nagłówki odpowiedzi, zwłaszcza jeśli korzystasz z planu hostingu współdzielonego. Użycie metody „Zestaw nagłówków” do skonfigurowania Polityki bezpieczeństwa treści całkowicie nadpisze istniejące reguły globalne, podczas gdy użycie „Dołącz nagłówek” spowoduje scalenie nowej polityki z istniejącym nagłówkiem odpowiedzi zamiast zastępowania całej konfiguracji.

Możesz dodać konfigurację Polityki bezpieczeństwa treści poniżej, aby wymusić ścisłe kontrole bezpieczeństwa w swojej witrynie WordPress

Dla Apache'a:

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

Dla Nginxa:

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

Opracowanie konfiguracji Polityki bezpieczeństwa treści, która spełni wymagania bezpieczeństwa Twojej witryny, może wymagać pewnych testów, a także dogłębnego zrozumienia funkcjonalności witryny. Ponadto wdrożenie nowych protokołów bezpieczeństwa w witrynie WordPress może potencjalnie spowodować utratę funkcjonalności, dlatego ważne jest, aby dokładnie rozważyć wpływ wszelkich zmian. Możesz skontaktować się ze swoim dostawcą usług hostingowych lub programistą, aby upewnić się, że nagłówki zabezpieczeń są prawidłowo skonfigurowane i nie spowodują żadnych negatywnych konsekwencji.

Zaimplementuj dogłębną obronę dzięki iThemes Security Pro

W dzisiejszym krajobrazie zagrożeń przyjęcie dogłębnej strategii obronnej ma kluczowe znaczenie. W przypadku nowoczesnych dynamicznych aplikacji internetowych, takich jak WordPress, nagłówek Content Security Policy jest sercem głębokiej obrony, zapewniając krytyczną warstwę ochrony przed skryptami krzyżowymi (XSS), atakami polegającymi na dołączaniu plików, przechwytywaniem kliknięć i innymi atakami internetowymi.

Wdrożenie kompleksowego rozwiązania do obrony w głąb zawsze stanowiło wyzwanie. Ale dzięki iThemes Security Pro, solidnej i niezawodnej wtyczce zabezpieczającej, możesz zabezpieczyć swoją witrynę WordPress. Dzięki funkcjom, takim jak monitorowanie integralności plików, skanowanie pod kątem luk w zabezpieczeniach, automatyczne aktualizacje oprogramowania i uwierzytelnianie bez hasła, możesz mieć pewność, że wszystkie krytyczne części Twojej witryny WordPress są chronione przed stale ewoluującymi zagrożeniami bezpieczeństwa.