XSS-haavoittuvuudet suomalaisilla sivuilla vuonna 2010: 5%

Vuonna 2008 kirjoitin blogiini cross-site scripting (XSS-) -haavoittuvuuksista. Nyt, reilun kahden vuoden jälkeen, lienee hyvä hetki tarkastella asian kulkua.

Testasin muutamalla ”pahantahtoisella” hakulauseella 20 verkkosivun hakukenttiä, ja niistä vain yksi oli lievästi XSS-haavoittuvainen. Sivut oli valittu Googlen haulla ja rajattu vain suomalaisiin .fi-verkko-osoitteisiin. Läpi menivät seuraavat verkkosivut:

thl.fi, kommunportalet.fi, ruokatieto.fi, varastokirjasto.fi, tampere.fi, environment.fi, st1.fi, lieksa.fi, itameriportaali.fi, stat.fi, luontoon.fi, cimo.fi, minedu.fi, mediakasvatus.fi, yrittajat.fi, tekes.fi, hse.fi, terve.fi ja lahtienergia.fi.

Se, että käyttämäni hakulauseet eivät saaneet sivuja näyttämään mitään hassua, ei tarkoita sitä, etteivätkö ne voisi olla muuten haavoittuvaisia. En esimerkiksi kokeillut SQL-injektioita lainkaan, enkä lähtenyt jokaista sivuston kenttää kokeilemaan.

Mitä sitten  on tehty, että nykyään verkkosivut eivät ole yhtä reikäisiä kuin ennen? Moni sivu näytti vuonna 2008 hakukentässä tai muualla hakusanat, ja tässä oli iskun paikka. Nykyään noita tietoja ei käyttäjälle enää juurikaan näytetä. Ei ehkä käyttäjäystävällisin ratkaisu, mutta tässä suhteessa pomminvarma.

Osa sivuista oli toteuttanut asian ”oikealla” tavalla, ja muutti HTML:n pahat merkit niiden entiteettimuotoihin. Mutta nämä sivut jäivät selkeästi vähemmistöön.

Yhdeltä ainoalta sivustolta 20:stä löytyi jonkinasteinen aukko, mutta siinäkin tietynasteista syötteentarkastusta oli havaittavissa. Tämän sivuston ylläpitäjää on informoitu asiasta, ja tulen kertomaan sivuston nimenkin tässä yhteydessä sitten, kun kohtuullisena pitämäni viikon korjausmahdollisuusaika on umpeutunut. Mikäli sivusto korjataan ennen sitä, kerron myös siitä.

Selkeästi vuoden 2008 mediamylläkkä sai verkkosivujen ylläpitäjät hereille tällaisista aukoista, sillä nykyinen 5 %:n taso on varsin positiivista. Työtä tosin riittää, ja muunkinlaisia haavoittuvuuksia löytyy verkkosivuista joka hetki. Laput silmillä ei siis kannata kulkea nykyäänkään.

Pikakuvakehaavoittuvuus, kaikki Windowsit haavoittuvaisia

Hetken aikaa jo IT-uutisissa pyörinyt tieto on nyt saanut Microsoftilta vahvistuksen: sen Windows-käyttöjärjestelmissä (XP, Vista, 7) on kriittinen haavoittuvuus, joka mahdollistaa 3. osapuolen koodin ajamisen, kun pikakuvake esitetään. Syy tähän on puutteelliset tarkistukset kuvakkeen tietoja ladattaessa. Myös XP:n SP2 on haavoittuvainen, vaikkei sitä suoranaisesti listassa näykään, mutta sen tuki on jo päättynyt. SP2:n omistajat siis kipin kapin päivittämään SP3:een.

Haavoittuvuus levinnee pääsääntöisesti verkko- ja ulkoisten levyjen välityksellä, mutta ei liene mitään syytä, miksei myös Internetiin voisi pian ilmestyä pahantahtoisia .lnk-tiedostoja esimerkiksi muuten kelvollisten tiedostojen kanssa samaan pakettiin. Ilmeisesti haavoittuvuutta ei vielä laajalti hyväksikäytetä, mutta se on vain ajan kysymys. Microsoft ei ole toistaiseksi kertonut ajankohtaa, jolloin tämä haavoittuvuus korjataan.

Microsoftin artikkelissa on myös workaround haavoittuvuuden väliaikaiseksi paikkaamiseksi, ja suosittelenkin että sitä mahdollisimman moni käyttäisi. Varoituksen sanana mainittakoon, että toimenpiteiden seurauksena kaikki pikakuvakkeet vaihtuvat Windowsin oletuskuvakkeeksi, mikä saattaa haitata käytettävyyttä, mutta on kuitenkin pienempi paha.

Workaround voidaan ottaa käyttöön automaattisesti tai käsin. Automaattiset korjaussovellukset ovat ladattavissa toisesta Microsoftin tätä haavoittuvuutta koskevasta artikkelista.

Ohessa toimintaohjeet suomeksi käännettynä käsin tehtävään vaihtoehtoon:

  1. Klikkaa Käynnistä, klikkaa Suorita, kirjoita regedit Avaa-laatikkoon ja klikkaa OK.
  2. Etsi seuraava rekisteriavain ja sitten klikkaa sitä: HKEY_CLASSES_ROOTlnkfileshellexIconHandler
  3. Klikkaa Tiedosto-valikkoa ja valitse Vie.
  4. Vie rekisteritiedosto -ikkunassa kirjoita LNK_Icon_Varmuuskopio.reg ja klikkaa Tallenna. Huom: tämä tekee varmuuskopion rekisteriavaimesta ja tallentaa sen oletuksena Omiin tiedostoihin.
  5. Valitse arvo (Default) Rekisterieditorin oikeanpuoleisesta ikkunasta. Paina Enter muuttaaksesi avaimen arvoa. Poista arvo niin, että arvo-kohta jää tyhjäksi, ja paina Enter.
  6. Etsi seuraava rekisteriavain ja sitten klikkaa sitä: HKEY_CLASSES_ROOTpiffileshellexIconHandler
  7. Klikkaa Tiedosto-valikkoa ja valitse Vie.
  8. Vie rekisteritiedosto -ikkunassa kirjoita PIF_Icon_Varmuuskopio.reg ja klikkaa Tallenna. Huom: tämä tekee varmuuskopion rekisteriavaimesta ja tallentaa sen oletuksena Omiin tiedostoihin.
  9. Valitse arvo (Default) Rekisterieditorin oikeanpuoleisesta ikkunasta. Paina Enter muuttaaksesi avaimen arvoa. Poista arvo niin, että arvo-kohta jää tyhjäksi, ja paina Enter.
  10. Kirjaa kaikki käyttäjät ulos ja takaisin sisään tai käynnistä tietokone uudelleen.

Kiintolevy käyttöön

Posti-Pate toi kotiovelle saakka paketin, jossa oli mainitsemani Transcendin StoreJet 320GB. Laitehan pääsi saman tien tulille, eikä Linuxilla (Ubuntu 9.04) ollut mitään vaikeuksia tunnistaa sitä. Laitteen pakkauskin lupaa tuen niin Windows 2k/XP/Vistalle, Mac OS 9/X:lle kuin Linux-kernelille 2.4:sta eteenpäin (käytössäni on 2.6.28-11-generic), joskaan hyödyttömistä JetStore Elite -bonuksista en nyt pääse nauttimaan.

Ensimmäiseksi eteen tuli laitteen uudelleenosiointi:

  1. 500 Mt TrueCrypt-ohjelmistoja varten (ext4)
  2. 200 Gt alustamatonta tilaa
  3. 100 Gt alustamatonta tilaa

Noista kaksi jälkimmäistä tulevat käyttöön vasta kun TrueCrypt saa ne salattua. Ensimmäinen tulee siis varmuuskopiointiin ja toinen datan yleiseen siirtoon, ja molemmissa on käytössä kaskadoitu AES-Twofish -salaus. TrueCrypt ottaa kylläkin aikansa osioiden salaamiseen, ja ensimmäisen osion salauksen olen jo potkaissut käyntiin, aika-arviona kaksi päivää. Toisen osalta arvelisin siis pääseväni noin vuorokaudella.

Miksi suojaamattoman WLAN:in käyttö pitäisi sallia

Oikeuden päätöksen mukaan on laitonta käyttää ”naapurin wlania” eli suojaamatonta langatonta verkkoa, joka sattuu kuulumaan omalle käyttöalueelle. Ymmärrän, että suojatun WLAN:in käyttö ilman lupaa pitäisi kieltää, mutta suojaamattoman yhteyden käytön kieltäminen ei vain omaan maalaisjärkeeni mahdu. Kerronpa vertauskuvallisesti, mitä tapahtuu.

A. Suojattu WLAN:

  1. Aapeli ei pääse Bertan pihaan, sillä portti on lukossa. Toki portin yli pääsisi, mutta se ei olisi hirveän laillista toimintaa enää. (Salattu yhteys)

B. Suojaamaton WLAN:

  1. Aapeli menee Bertan pihan – jota tässä yhteydessä siis ei ole aidattu – kautta Bertan talon ovelle (aloittaa yhdistämisen WLAN-verkkoon) ja koputtaa (lähettää DHCP-kyselyn).
  2. Bertta vastaa ”Sisään” (vastaa DHCP-kyselyyn verkon tiedoilla).
  3. Aapeli avaa oven ja menee sisään (ottaa verkon asetukset käyttöön).
  4. Keijo Keskusrikospoliisi tulee ja pidättää Aapelin sanoin ”Sinun olisi pitänyt tietää, että Bertta vastaa koputuksiin aina ’Sisään’, vaikka ei vieraita haluaisikaan. Tästä tuli nyt POLIISIASIA!”
  5. Aapeli istuu seuraavat 20 vuotta vankilassa miettimässä ”Mikä hel*etti tässä yhteiskunnassa on vikana?”.

Lenten-korteista vastausta

Kirjoitin jokin aika sitten eräässä oppilaitoksessa käytettävistä Lentenin Reborn-korteista, ja tiedustelin tähän asiaan liittyvistä seikoista järjestelmistä vastaavalta, ja sain vastauksen. Valitettavasti ko. henkilö toivoi, ettei hänen vastauksiaan suoraan käytetä, joten referoin vastausta.

Hänen kantansa asiaan oli, että uudelleenkäynnistyksen kautta tietokoneet ovat luultavasti puhtaat, eikä suurempia toimenpiteitä näin ollen tarvita niin haittaohjelmien kuin päivitystenkään osalta.

Haittaohjelmien kohdalla olen samaa mieltä, jos tietokoneet todella käynnistettäisiin uudelleen ennen jokaista uutta käyttäjää. Näin ei valitettavasti kuitenkaan tapahdu – ehkä laiskuuden, ehkä tietämättömyyden takia. Tuntematta oppilaitosten politiikkaa siitä, miten opiskelijoita opetetaan käyttämään tietokoneita, en voi arvioida kummasta on kyse.

Kuitenkin päivitysten osalta järjestelmistä vastaavan kanta on hieman outo, sillä esimerkiksi vanhoissa Firefoxin versioissa oleva aukko mahdollistaa XSS-kikkailun. Luonnollisestikin käyttäjien pitää itse huolehtia siitä, ettei anna mitään luottamuksellisia tietoja, mutta tästä asiasta voisi mielestäni paremminkin tiedottaa esim. ATK-luokan seinällä.