Politica de securitate a conținutului (CSP) explicată

Publicat: 2023-04-18

Odată cu evoluția rapidă a amenințărilor de securitate cibernetică, bazarea pe un singur strat de apărare nu mai este suficientă pentru a vă proteja prezența online. Acest lucru face imperativ ca proprietarii de site-uri web să aibă o abordare de securitate pe mai multe straturi, care este cel mai bine reprezentată de conceptul de apărare în profunzime.

În site-uri web și aplicații web, apărarea în profunzime poate fi implementată prin utilizarea antetelor de răspuns de securitate HTTP, concepute special pentru a impune controale de securitate suplimentare pe partea clientului. Antetele de răspuns HTTP reprezintă o a doua linie importantă de apărare împotriva atacurilor cibernetice care vizează aplicațiile web.

Fiind unul dintre anteturile cheie de răspuns de securitate HTTP, Politica de securitate a conținutului (CSP) poate proteja eficient site-ul dvs. și vizitatorii acestuia de consecințele devastatoare ale atacurilor de tip cross-site scripting (XSS) și injecție de date.

În acest ghid, veți afla de ce Politica de securitate a conținutului este un antet cheie de securitate HTTP și cum să implementați apărarea în profunzime pe site-ul dvs. pentru a atenua cu succes o gamă largă de atacuri cibernetice sofisticate care vizează WordPress.

politica de securitate a conținutului

Ce sunt anteturile de răspuns HTTP?

Antetele de răspuns HTTP sunt un set de controale implementate în site-uri web și aplicații web care definesc modul în care browserul interacționează cu conținutul solicitat. Implementarea antetelor de răspuns HTTP poate ajuta proprietarii de site-uri web să îmbunătățească considerabil experiența utilizatorului, precum și să îmbunătățească funcționalitatea, performanța și securitatea site-urilor lor web.

Pe măsură ce bucăți mici de informații sunt trimise împreună cu conținutul solicitat de vizitatorii site-ului web, anteturile de răspuns HTTP modifică modul în care browserele interpretează și procesează răspunsul primit de la serverul web. Și în timp ce conținutul și funcționalitatea site-ului web rămân neschimbate, implementarea antetelor de răspuns HTTP poate modifica modul în care utilizatorii îl percep.

Antetele de răspuns de securitate HTTP ca al doilea strat de apărare împotriva amenințărilor de securitate

Unul dintre domeniile cheie în care sunt utilizate anteturile de răspuns HTTP, cum ar fi Politica de securitate a conținutului, este securitatea site-ului web. Funcționalitatea puternică oferită de anteturile de răspuns HTTP le face o a doua linie de apărare importantă împotriva multor atacuri cibernetice care vizează aplicații web dinamice precum WordPress.

Prima linie de apărare împotriva atacurilor cibernetice constă într-o serie de măsuri de securitate bazate pe cod și pe partea de server care reduc suprafața de atac și elimină vulnerabilitățile la nivel de aplicație. Aceasta include utilizarea practicilor de codificare sigure, stabilirea unor politici puternice de control al accesului și implementarea unui firewall pentru aplicații web pentru a inspecta solicitările primite și a filtra traficul rău intenționat.

Și, în timp ce ai o primă linie de apărare puternică este absolut esențială, baza pe un singur strat de securitate poate face totuși site-ul tău vulnerabil la atacuri din ce în ce mai sofisticate. Un singur control al securității poate fi ocolit cu ușurință, mai ales dacă un atacator este capabil să identifice și să exploateze o vulnerabilitate rămasă nepatchată.

Politica de securitate a conținutului și alte anteturi de răspuns de securitate oferă un nivel suplimentar de protecție prin reducerea daunelor cauzate de atacurile rău intenționate. Dacă un hacker rău intenționat este capabil să identifice cu succes o vulnerabilitate de pe site-ul dvs., o a doua linie puternică de apărare va face mult mai dificilă pentru atacator să o exploateze.

Ce este politica de securitate a conținutului?

Politica de securitate a conținutului (CSP) este un mecanism de securitate utilizat pentru a defini o listă de surse de încredere pentru conținutul pe care un site web sau o anumită pagină web poate să le încarce, precum și ce protocol va fi utilizat pentru aceasta. Acestea pot include scripturi, foi de stil, imagini și alte tipuri de conținut care pot fi încorporate într-o pagină web.

Politica de securitate a conținutului este o apărare puternică în controlul securității în profunzime, care ajută la blocarea solicitărilor neautorizate de conținut aflat în afara site-ului web actual. În plus, CSP previne cu succes execuția scripturilor inline și restricționează execuția nesigură a codului dinamic.

Ca antet de răspuns de securitate HTTP, CSP transmite instrucțiunile configurate de proprietarul site-ului web browserului vizitatorului. Browserul trebuie să urmeze instrucțiunile și să blocheze livrarea de conținut care nu a fost autorizat de regulile Politicii de securitate a conținutului. În acest fel, browserul va vedea că un anumit conținut a fost referit de o pagină web, dar va refuza să îl încarce.

De ce este atât de importantă politica de securitate a conținutului?

Ca a doua linie de apărare, Politica de securitate a conținutului nu împiedică atacatorul să compromită un site web în majoritatea cazurilor. Totuși, va ajuta la atenuarea consecințelor devastatoare ale infecției cu malware, blocând încercările hackerului de a-l exploata.

Chiar dacă programele malware sunt injectate în site-ul dvs. cu scopul de a fura informații sensibile sau de a efectua alte activități rău intenționate, o politică CSP robustă vă va menține pe dvs. și clienții dvs. în siguranță. Actorul rău intenționat pur și simplu nu va putea exploata încrederea clienților dvs. în site-ul dvs., deoarece browserul va bloca în primul rând executarea oricărui cod rău intenționat.

Capacitatea de a anula eforturile hackerilor de a exploata site-ul dvs. web în timp ce redobândiți controlul deplin asupra acestuia și efectuați o curățare a programelor malware după ce acesta a fost compromis este ceea ce face ca implementarea Politicii de securitate a conținutului să fie un instrument puternic pentru securizarea site-urilor web și a aplicațiilor web moderne.

De ce protejează CSP?

Politica de securitate a conținutului protejează un site web și vizitatorii acestuia de o serie de atacuri cibernetice facilitate de infecții cu programe malware, precum și de încercări de intruziune care se bazează pe scripturi rău intenționate găzduite pe resursele controlate de atacator. Acestea includ scripturi încrucișate (XSS), atacuri de includere de fișiere și clickjacking ca primii trei vectori de atac atenuați de Politica de securitate a conținutului.

Cross-site Scripting (XSS)

Cross-site scripting (XSS) este un atac de injecție care implică inserarea de cod rău intenționat într-o pagină web. Codul va fi apoi executat de browser atunci când pagina web este încărcată, permițând atacatorului să fure informații sensibile, să deturneze sesiunile utilizatorilor sau să distribuie malware.

Pentru a efectua atacuri cu scripturi între site-uri, hackerii pot injecta malware ca script inline, care este încorporat în HTML, sau prin referire la un script extern, găzduit de obicei pe un site web controlat de atacator. În timpul procesului de redare a conținutului, codul rău intenționat va fi încărcat în browserul utilizatorului și executat fără știrea sau acordul acestuia.

Un bun exemplu de atacuri de scripturi între site-uri care îi afectează pe proprietarii de site-uri WordPress este injectarea de programe malware de skimming de carduri în finalizarea WooCommerce, care va fura informațiile de plată ale cumpărătorului. Skimmer-urile de carduri și alte tipuri de sniffer JavaScript utilizate pentru a efectua atacuri cu scripturi între site-uri vor arăta de obicei astfel în codul sursă al unei pagini web:

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

În cazul unui script inline, veți vedea cod rău intenționat încorporat în etichetele de script sau chiar deghizat ca o foaie de stil prin utilizarea etichetelor de stil.

Atenuarea scripturilor între site-uri este obiectivul principal al implementării Politicii de securitate a conținutului. Prin prevenirea execuției de scripturi inline, Javascript nesigur injectat folosind funcția eval și blocarea scripturilor încărcate din surse nesigure, Politica de securitate a conținutului (CSP) atenuează în mod eficient riscul executării unui cod arbitrar pe un site web.

Atacurile de includere a fișierelor

Atacurile cu includerea fișierelor sunt un alt tip de atac de injecție pe care Politica de securitate a conținutului îl poate atenua. Ca tehnică de intruziune, atacurile de includere de fișiere de la distanță permit hackerului să exploateze validarea slabă a intrării în diferite zone ale site-ului web pentru a executa cod rău intenționat găzduit pe o resursă externă.

Atacurile de includere a fișierelor de la distanță exploatează adesea vulnerabilitățile nepatificate în pluginurile și temele WordPress, cu scopul de a pătrunde într-un site web prin instalarea unei uși de backdoor web shell. Similar cu atenuarea scripturilor între site-uri, Politica de securitate a conținutului va bloca efectiv toate scripturile externe suspecte de a fi injectate în site-ul web, făcând astfel aproape imposibil ca atacatorul să exploateze vulnerabilitățile de includere a fișierelor de la distanță (RFI).

Clickjacking

Pe lângă faptul că le permite proprietarilor de site-uri web să definească o listă de resurse de încredere din care să încarce conținut, Politica de securitate a conținutului poate ajuta la limitarea listei de site-uri web autorizate să încorporeze conținut de pe site-ul web în cadrul unor cadre. Acest lucru ajută la atenuarea atacurilor de remediere a interfeței cu utilizatorul (UI), cum ar fi clickjacking-ul, la care clienții dvs. pot cădea victime prin deschiderea de linkuri suspecte care le sunt trimise într-un atac de tip spear phishing.

Directiva privind politica de securitate a conținutului frame-ancestors a înlocuit cu succes antetul X-Frame-Options , care a fost acum depreciat de majoritatea browserelor moderne. Aceasta și alte directive CSP sunt absolut esențiale în securitatea WordPress.

Directive privind politica de securitate a conținutului

Politica de securitate a conținutului vă ajută să specificați un set de reguli, cunoscute sub numele de directive, pentru a controla sursele de conținut pe care le poate încărca site-ul dvs. Directivele privind politica de securitate a conținutului sunt o listă de instrucțiuni incluse în antetul HTTP al unei pagini web solicitate care definesc tipurile de conținut pe care un browser are permisiunea să le încarce pe pagina respectivă, împreună cu lista surselor de încredere din care poate fi încărcat.

Dintre diferitele directive disponibile privind politica de securitate a conținutului, regulile de mai jos sunt cele mai frecvent aplicate site-urilor web securizate împotriva atacurilor de tip cross-site scripting (XSS), clickjacking și injectare de date. Toate următoarele directive CSP, cu excepția frame-ancestors , form-action și upgrade-insecure-requests , sunt directive de preluare care specifică lista de resurse din care să se încarce conținut. Frame-ancestors și form-action sunt directive de navigare care definesc modul în care alte resurse pot utiliza conținutul site-ului pentru care este configurată Politica de securitate a conținutului.

  • default-src definește politica pentru încărcarea tuturor tipurilor de resurse pe care browserul le va folosi implicit dacă nu sunt specificate reguli suplimentare pentru un anumit tip de conținut.
  • script-src specifică sursele de încredere ale fișierelor JavaScript care pot fi încărcate de pe site.
  • style-src definește lista de surse valide de foi de stil (CSS).
  • img-src pune pe lista albă resursele din care pot fi încărcate imaginile.
  • media-src specifică sursele de încredere ale fișierelor audio și video încorporate în elementele HTML <audio> și <video>
  • connect-src oferă control asupra conexiunilor XMLHttpRequest , EventSource și WebSocket .
  • child-src definește sursele de conținut care pot fi incluse într-o pagină web prin intermediul cadrelor.
  • frame-ancestors este o directivă de navigare care ajută la atenuarea atacurilor de tip clickjacking prin specificarea listei de resurse cărora li se permite să încorporeze conținutul unui site web în cadre.
  • form-action restricționează resursele către care formularele web le pot trimite informații, prevenind exfiltrarea datelor către resurse externe controlate de atacator.
  • upgrade-insecure-requests indică browserului să actualizeze toate solicitările nesigure la HTTPS , asigurând conexiuni sigure.

În funcție de tipul de site web și de funcționalitatea specifică pe care o oferă, proprietarii de site-uri web ar putea avea nevoie să configureze mai multe directive pentru a controla toate sursele de conținut preluate extern.

Standardul din industrie pentru asigurarea unei protecții suficiente împotriva atacurilor cu scripturi încrucișate și prin injecție folosind Politica de securitate a conținutului ca a doua linie de apărare este de a limita sursele valide de conținut extern la site-ul actual numai prin directiva default-src . Mai multe directive direcționate pot fi apoi utilizate pentru a lista resurse pentru anumite tipuri de conținut, dar refuzul tuturor celorlalte resurse este abordarea recomandată.

Configurarea directivelor privind politica de securitate a conținutului

Fiecare directivă de politică de securitate a conținutului acceptă o listă de valori reprezentate de un URL (Uniform Resource Locator), care ar trebui să includă adresa web validă precedată de un protocol, un nume de domeniu, un metacar sau valori specifice, cum ar fi 'self' sau 'none' . 'none' furnizat de antetul răspunsului HTTP.

Iată câteva exemple de valori care pot fi atribuite directivelor privind politica de securitate a conținutului:

Valoarea directivei Exemplu Definiție
* media-src* Wildcard, folosit pentru a permite încărcarea întregului conținut din toate resursele.
'self' default-src 'self'
frame-ancestors 'self';
Afișează site-ul web actual pe lista albă ca singura sursă validă de conținut specific. Definește politica de securitate strictă de aceeași origine, politica implicită de securitate a conținutului recomandată.

Folosit împreună cu directiva Frame-Astors, nu permite încadrarea conținutului pe alte resurse decât site-ul web în sine.
'none' media-src 'none' Nu permite încărcarea resurselor din orice sursă, inclusiv din același site web.
domain.com
*.domain.com
img-sr c *.domain.com Permite încărcarea conținutului din orice subdomeniu sub domain.com.
https://domain.com default-src 'https://domain.com' Permite preluarea conținutului numai prin HTTPS de la numele de domeniu specificat.

În mod implicit, indiferent de regulile specificate, Politica de securitate a conținutului va bloca execuția scripturilor inline și va împiedica paginile web să execute funcții text-to-JavaScript, cum ar fi eval, utilizate în mod obișnuit de hackeri rău intenționați. Adăugarea valorilor 'unsafe-inline' și 'unsafe-eval' la directiva privind politica de securitate a conținutului script-src poate ajuta proprietarii de site-uri web să evite restricțiile, dar acest lucru poate supune site-ul la riscuri de securitate semnificative și poate submina protecția impusă de alte directive. .

Următoarea configurație a antetului Politicii de securitate a conținutului previne în mod eficient site-ul web să încarce conținut din resurse externe și nu permite execuția de scripturi inline și JavaScript nesigur:

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

Având în vedere valoarea 'self' , directiva frame-ancestors atenuează atacurile de tip clickjacking prin blocarea încadrării conținutului.

Politica de securitate a conținutului și rețelele de livrare a conținutului (CDN)

Deoarece majoritatea rețelelor de livrare de conținut, cum ar fi Cloudflare, sunt pe deplin compatibile cu Politica de securitate a conținutului și nu modifică anteturile CPS de pe serverul de origine. Nu trebuie să puneți pe lista albă resurse suplimentare în regulile de securitate pe care le configurați.

Implementarea politicii de securitate a conținutului pentru WordPress

WordPress oferă diverse plugin-uri pentru adăugarea antetelor de răspuns HTTP, care pot fi o opțiune bună pentru utilizatorii non-tehnici. Deși aceasta poate fi o opțiune convenabilă, configurarea antetelor de răspuns de securitate, cum ar fi Politica de securitate a conținutului pentru site-ul dvs. WordPress, este un proces simplu care nu necesită instalarea unui software terță parte.

Modulul mod_headers Apache și modulul ngx_http_headers_module Nginx vă permit să configurați antetele de răspuns HTTP pentru site-ul dvs. web. Dacă utilizați Nginx, puteți include directiva add_header în blocul de server {} al site-ului dvs. web pentru a configura antetele de răspuns HTTP.

În mod similar, dacă utilizați Apache ca server web, puteți utiliza instrucțiunile „Set antet” și „Adăugați antet” pentru a configura politicile de securitate în fișierul local .htaccess al site-ului dvs., găsit în rădăcina documentului. În acest fel, configurația specificată în fișierul .htaccess din directorul rădăcină al site-ului dvs. este aplicată tuturor paginilor web de pe site.

Este important de reținut că, utilizând Apache, puteți configura antetele de răspuns HTTP atât local – într-un fișier .htaccess – cât și global pentru toate site-urile web de pe server. Este posibil ca furnizorul dvs. de găzduire să configureze anumite antete de răspuns la nivel global, mai ales dacă aveți un plan de găzduire partajată. Folosirea metodei „Set antet” pentru a configura Politica de securitate a conținutului va suprascrie complet regulile globale existente, în timp ce utilizarea „Adăugați antet” va îmbina noua politică cu un antet de răspuns existent în loc să înlocuiască întreaga configurație.

Puteți adăuga configurația Politicii de securitate a conținutului de mai jos pentru a aplica controale stricte de securitate pe site-ul dvs. WordPress

Pentru Apache:

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

Pentru Nginx:

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

Elaborarea unei configurații de politică de securitate a conținutului care să răspundă nevoilor de securitate ale site-ului dvs. web poate necesita unele teste, precum și o înțelegere aprofundată a funcționalității site-ului web. În plus, implementarea noilor protocoale de securitate pe site-ul dvs. WordPress poate cauza o pierdere a funcționalității, așa că este important să luați în considerare cu atenție impactul oricăror modificări. Puteți contacta furnizorul dvs. de găzduire sau puteți contacta dezvoltatorul pentru a vă asigura că anteturile de securitate sunt configurate corect și nu vor cauza consecințe negative.

Implementați apărarea în profunzime cu iThemes Security Pro

În peisajul amenințărilor actuale, adoptarea unei strategii de apărare aprofundate este esențială. În ceea ce privește aplicațiile web dinamice moderne, cum ar fi WordPress, antetul Politicii de securitate a conținutului se află în centrul apărării în profunzime, oferind un nivel critic de protecție împotriva scripturilor încrucișate (XSS), atacurilor de includere a fișierelor, clickjacking și alte atacuri bazate pe web.

Implementarea unei soluții cuprinzătoare de apărare în profunzime a fost întotdeauna o provocare. Dar cu iThemes Security Pro, un plugin de securitate robust și de încredere, vă puteți proteja site-ul WordPress. Cu funcții precum monitorizarea integrității fișierelor, scanarea vulnerabilităților, actualizări automate de software și autentificare fără parolă, puteți fi siguri că toate părțile critice ale site-ului dvs. WordPress sunt protejate de amenințările de securitate în continuă evoluție.