Julkaistu

Tietoturva on monesti kilpajuoksua verkkorikollisia vastaan. Ns. script kiddiet ja ammattimaisemmat toimijat skannaavat tauotta läpi internetiä bottiarmeijat aseinaan löytääkseen haavoittuvaisia kohteita: reitittimiä, tulostimia, www-palvelimia ja jääkaappeja. Kohteen tyypillä ei ole väliä, kaikki kelpaa. Kun bottiverkko löytää sopivan kohteen, on vuorossa automatisoitu tietoturva-aukkojen etsintä: kohdejärjestelmille lähetään erilaisia syötteitä ja yritetään saada järjestelmä palauttamaan sensitiivistä tietoa, tai muuttamaan toimintaansa hyökkääjän toiveiden mukaiseksi.

WordPress -sivustojen osalta hyökkääjät yleensä keskittyvät kaivamaan esiin heikkoja salasanoja sekä haavoittuvaisia lisäosia. Yksi yleisimmistä haavoittuvuustyypeistä on Cross-Site Scripting, eli XSS. Käytännössä kyseessä on tilanne, jossa käyttäjä onnistuu syöttämään sivulle omavalintaista koodia, esimerkiksi sivustolle upotetun yhteydenottolomakkeen avulla. Haavoittuvuustyyppi on mukana mm. OWASP TOP10 -listauksessa, joka on ajantasainen listaus vakavimmista verkkopalveluita koskevista uhkaluokista.

Pieni virhe sivuston koodissa voikin johtaa sivuston kaappaamiseen. Mikä siis avuksi? Yksi keino on Content Security Policy (CSP), tietoturvastandardi ja -tekniikka, jossa sivusto kertoo vierailijan verkkoselaimelle, mitkä ovat sallittuja resursseja kyseisellä sivustolla, sekä toisaalta voidaan pyytää selainta raportoimaan 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 25+ ,Edge 14+, Firefox 23+, IE 10+, Opera 15+, Safari 7+).

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 tai protokollia. Kokonainen HTTP-otsake voi näyttää esimerkiksi seuraavalta (esimerkin sisältö on muotoiltu helpommin luettavaksi, tarkempi tekninen kuvaus löytyy Mozillan kehittäjädokumentaatiosta):

content-security-policy:
default-src 'self';
script-src 'self' https://www.google-analytics.com https://code.jquery.com https://www.gstatic.com https://www.google.com/recaptcha/api.js https://v2.zopim.com https://platform.twitter.com https://cdn.syndication.twimg.com https://www.googletagmanager.com;
  style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https:;
font-src 'self' data: https://fonts.gstatic.com https://use.fontawesome.com https://v2.zopim.com/widget/fonts/zopim.ttf https://*.bootstrapcdn.com;
frame-src https://www.slideshare.net https://www.google.com https://platform.twitter.com https://syndication.twitter.com https://www.youtube.com;
connect-src 'self' wss://*.zopim.com;
upgrade-insecure-requests;
report-uri https://seravo-cspreports.seravo.fi/receive.php;

Yksinkertaistetusti ilmaistuna CSP-otsakkeen avulla verkkopalvelu käytännössä 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 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.

CSP:n käyttöönotto on monivaiheinen prosessi, jossa on tärkeää huolehtia siitä, että koko kehitystyössä otetaan huomioon tekniikan vaikutukset mm. uusien ominaisuuksien käyttöönottoon. Toiminnon 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 vielä tällä hetkellä muutamia tiedossa olevia CSP-tekniikan kanssa yhteensopivuutta 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. Mikäli tekniikan käyttöönotto kiinnostaa, hyvä tapa päästä aiheessa eteenpäin on tutustua Firefox -selainta kehittävän Mozilla-säätiön kehittäjädokumentaatioon aiheesta.

Kommentoi

Lue lisää

Kategoriassa: Tietoturva

WordPress-tietokannan suojaukset Seravolla

Viime viikkoina tietoturva on ollut otsikoissa Suomessa. Lue Seravon blogista miten kaikkea Seravo tekee tietokannan suojaamiseksi WordPress-sivustoillamme.

9.11.2020

Tiedote: Seravo löysi WP File Manager -lisäosasta vakavan nollapäivähaavoittuvuuden

Seravo löysi WordPressistä vakavan nollapäivähaavoittuvuuden – aukko koskettaa yli 700 000 verkkosivua, paljon hyökkäyksiä havaittu

2.9.2020

Paranna tietoturvaasi kaksivaiheisella tunnistautumisella

Tässä artikkelissa esittelen TOTP-sovelluksen käyttöä kaksivaiheiseen tunnistautumiseen ja miksi TOTP on monia muita vaihtoehtoja parempi menetelmä.

14.5.2020

Salasanahygienia on puoli tietoturvaa

Huolehdimme Seravolla paitsi WordPress-sivustojen toimivuudesta ja suorituskyvystä, myös niiden tietoturvasta. WP-palvelussa ylläpidossa olevalle sivustolle tehdään toistuvasti automaattisia tarkistuksia haittakoodin varalta, […]

7.5.2020

TLS 1.1 ja 1.0 historiaan maaliskuussa

Seravon WP-palvelussa on vuoden 2020 alusta ollut ensisijaisena HTTPS-liikenteen salausprotokollana käytössä TLS 1.3, jonka lisäksi käytössä on TLS 1.2. Sen […]

10.3.2020

Nopeuta WordPressiä kevätsiivouksella

Ajan myötä jopa huolellisesti ylläpidetyille WordPress-sivustoille tapaa kertyä ylimääräistä roskaa: ylimääräisiä tiedostoja, käytöstä poistettuja lisäosia, tarpeetonta tietokantasisältöä ja vanhoja lokitiedostoja. […]

21.2.2020