Content Security Policy (CSP)

Mikä on CSP?

Content Security Policy (CSP) on tietoturvastandardi ja -tekniikka, jolla sivusto kertoo HTTP-otsakkeilla vierailijan verkkoselaimelle, mitkä ovat sallittuja resursseja kyseisellä sivustolla. Selainta voidaan myös pyytää raportoimaan ylläpitäjälle tietoturvapoikkeamista sivustolle upotetuissa sisällöissä. CSP:n tavoitteena on rajoittaa vieraan koodin ja muiden komponenttien sisällyttämistä sivustolle ja näin ehkäistä muun muassa Cross Site Scripting ja Clickjacking-tyyppisiä hyökkäyksiä. Edellytyksenä CSP:n käytölle on, että kävijällä on käytössään moderni verkkoselain (Chrome versio 25 ja ylöspäin, Edge 14+, Firefox 23+, IE 10+, Opera 15+, Safari 7+).

CSP:llä ehkäistäviä hyökkäyksiä

Ottamalla käyttöön CSP voidaan ehkäistä mm. seuraavantyyppisiä hyökkäyksiä:

Cross Site Scripting (XSS)

Hyökkääjä pääsee lisäämään haittakoodia sivustolle, päästen käsiksi sivuston käsittelemiin tietoihin. Käyttäjän selain suorittaa haittakoodia, mikäli selain ei varmenna koodin olevan peräisin sieltä mistä kuuluukin. Lisätietoja (Wikipedia).

Clickjacking

Hyökkääjä muuttaa sivustolla näkyviä elementtejä (esim. painikkeita) haluamansa mukaisiksi, vaikuttaen sivuston toiminnallisuksiin. Lisätietoja (Wikipedia).

Miten CSP toimii

Tieto sallituista resursseista välitetään palvelimelta selaimelle HTTP-otsakkeena Content-Security-Policy. Sen avulla voidaan määritellä sallitut lähteet esimerkiksi skripteille, tyylitiedostoille, upotetuille fonteille, kehyksille ja muille sisältötyypeille. CSP-säännöllä voidaan sallia joko yksittäisiä tiedostoja tai kokonaisia verkkotunnuksia ja protokollia. Käytännössä HTTP-otsake kertoo käyttäjän selaimelle, että ”skriptejä voit lukea ainoastaan palvelimilta A ja B, tyylisivuja palvelimilta A ja C, sekä kuvia palvelimilta A, B, D”. Selain ei suostu tällöin avamaan mitään muita resursseja, jolloin esimerkiksi hyökkääjän sivustolle injektoima JavaScript -haittakoodi ei käynnistykään. Mikäli sivusto yrittää tarjota muita resursseja, selain osaa raportoida asiasta sivuston ylläpitäjälle, joka voi välittömästi ryhtyä toimenpiteisiin hyökkääjää vastaan.

Kuinka ottaa CSP käyttöön

Kaikkein tiukimmat CSP-määritykset eivät ole oletusarvoisesti käytössä Seravon WP-palvelussa. CSP:n on monivaiheinen prosessi, jossa on tärkeää huolehtia siitä, että koko kehitystyössä otetaan huomioon tekniikan vaikutukset sivuston toiminnan kannalta. On tärkeää huomioida miten uusia ominaisuuksia voidaan implementoida, mikäli CSP on käytössä. Sen tuottamia raportteja on tärkeää seurata aktiivisesti, jotta mahdolliset poikkeamat voidaan havaita. Virheellinen toteutus voi helposti tarkoittaa rikkinäistä verkkosivustoa. Lisähaasteen tekniikan käyttöönottoon tuo WordPress, jonka ytimessä on käytössä vielä muutamia CSP-tekniikan kanssa yhteensopivuutta tiedettävästi heikentäviä tekijöitä. Oikein käytettynä CSP tuo kuitenkin huomattavan lisäsuojan hyökkäysyrityksiä vastaan, ja voi toimia pelastavana tekijänä murtoyrityksen osuessa omalle kohdalle.

CSP:stä on oma lukunsa Seravon kehittäjädokumentaatiossa (englanniksi).

Lisää CSP:stä

Voit lukea lisää CSP:stä ja sen käyttöönotosta esimerkiksi Mozilla-säätlön kehittäjädokumentaatiosta (englanniksi).

Tutustu myös alkuperäiseen blogikirjoitukseen WP-palvelun nettisivuilla!

Vastasiko tämä kysymykseesi? Kiitos palautteesta. Palautteen lähettämisessä oli ongelma. Yritä uudelleen myöhemmin.