Skanska ei korjannut haavoittuvuuttaan

Kirjoitin viikko sitten XSS-haavoittuvuuksien tämänhetkisestä tilasta:

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ä.

Viikko kului, eikä vastausta kuulunut, saatika aukkoa korjattu. Tulkoon tässä sitten tietoon, miltä sivustolta haavoittuvuus löytyi: Skanskan hakukenttä ei tarkista saamiaan syötteitä riittävällä tasolla, joten on mahdollista upottaa HTML-elementtejä hakuun ja ne ajetaan sellaisenaan Viimeisimmät haut-listaan. En tässä yhteydessä ala sen suurempia käyttöohjeita antamaan, mutta kovin monimutkaista tuollaisen haavoittuvuuden käyttö ei olisi.

Kovin suuresta riskistä ei voida puhua, mutta kuitenkin XSS-haavoittuvuus on kyseessä. Mielestäni Skanska osoittaa suurta välinpitämättömyyttä asiakkaitaan kohtaan, kun se ei ole ryhtynyt mihinkään toimenpiteisiin aukon korjaamiseksi tai edes minulle vastaamiseksi. Skanskalta vastattiin, kts. postauksen loppu ja kommentit.En kuitenkaan kiellä ketään vetämästä omia johtopäätöksiään vapaasti.

Päivitys 25.11.10:  Skanskan verkkopäätoimittaja Sari Perento oikaisi kommenteissa 22.11. sen verran, että he eivät ”suinkaan jättäneet reagoimatta viestii[ni] –”, vaan tekevät töitä aukon korjaamiseksi. Tätä päivitystä kirjoittaessa aukko on yhä hyödynnettävissä.

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.

Tilannepäivitystä (Joomlaa, Yleä ja Giganttia)

Aivan aluksi, muistetaan päivittää ne Joomla!:t, 1.5.10:ssä on XSS-haavoittuvuus, jonka 1.5.11 korjaa.

Yleltä ei ole kuulunut mitään Euroviisu-äänestykseen liittyen, ja jos piakkoin ei ala mitään tapahtumaan, täytynee huomauttaa että odotan edelleen heidän vastaustaan.

Mitä puhelimen tilaukseen taas tulee, ryhdyin eilen ihmettelemään sähköpostitse Gigantin asiakaspalvelulle, onko tilaukseni todella myös rekisteröitynyt (heillä kun on ollut hieman ongelmia sillä saralla). He kertoivat että:

Tilauksenne on rekisteröitynyt, ja tilaamanne puhelin on lähetetty teille tänä aamuna. Saanette sen siis viimeistään huomenna, torstaina.

Mielenkiintoista on, ettei Gigantti ole missään vaiheessa lähettänyt seurantakoodia tuolle paketille. He käyttävät Matkahuoltoa, mutta kyllä silläkin omat seurantakoodinsa on, ja Gigantin sivuilla myös on seurantamahdollisuus. Lisäksi Gigantin ostoehdoissa lukee:

Kun tilaus on käsitelty ja lähtövalmiina keskusvarastoltamme, lähtee siitä asiakkaalle automaattisesti sähköpostiviesti joka pitää sisällään lähetystunnus linkin jonka kautta asiakas pystyy milloin tahansa tarkistamaan lähetyksensä sijainnin.

Laitoin asiasta tiedustelua vielä heille, mutta nähtäväksi jää, ehtivätkö vastata ennen kuin luuri on kädessäni.

Mainitsin viestissäni myös siitä, että heidän sivujensa kautta ei voi tarkkailla tilauksen etenemistä ennen toimitukseen lähtemistä. Esimerkiksi Verkkokauppa.comin sivuilta näkee, onko tuote varastossa odottamassa postitusta, lähetetty vai jotain muuta.

Päivitys 4.6.@1:01: Illemmalla, kuuden jälkeen sain Matkahuollon seurantakoodin sähköpostiini, automaattisena viestinä.

XSS ja suomalaiset web-sivut

Viime päivinä olen käyttänyt resurssejani suomalaisten (eli .fi-) sivustojen läpikäymiseen XSS-aukkojen varalta, ja voi pojat niitä on löytynytkin. Tätä kirjoittaessa ilmoitin juuri neljännenkymmenennen aukon sivuston omistajalle aukosta.

Tämä aukkojen etsiminen alkaa saada sellaiset mittasuhteet, että käynnistin oikein projektin aukkojen etsimiselle: KServerXSS-haavoittuvuusprojekti. Sillä on oma web-sivu osoitteessa http://xss.kserver.dy.fi/ , josta löytyy myös lisää tietoa tästä projektista.

Nopeasti kun mietin niin niistä sivuista, joilla jonkinlainen hakukenttä on ollut, ehkä jotakuinkin 30-40 % on ollut haavoittuvaisia jollain tavoin. Se tarkoittaa pelottavaa määrää aukkoja suomalaisissa web-sivuissa!

Miksi tällaisia aukkoja sitten on näin paljon? Todennäköisesti siksi, että sivustoa tehdessä on sivustontuotantoon panostettu liian vähän rahaa, aikaa tai koulutusta. Silloin syntyy tällaisia ikäviä ongelmia.

En sano, etteikö KServerilläkin jossain noita aukkoja olisi, sillä oma lehmä ojassa on aina paras huudella. Nyt käyn suomalaisten kuntien ja kaupunkien verkkosivuja läpi.

Sananen XSS:stä

Viime päivinä on Sampo pankin verkkosivu-uudistuksen takia tai ansiosta näkynyt paljon löydettyjä XSS- eli Cross-site scripting-haavoittuvuuksia verkkosivuilla. Tämä siksi, että hakkerit ovat kiinnostuneet ottamaan aiheen asiakseen ja kokeilemaan.

Mainittakoon tähän väliin se, että termillä hakkeri tarkoitan tietotekniikasta kiinnostunutta henkilöä, jota kiinnostaa tietää miten tietojärjestelmiä käytetään niinkuin niitä ei ole suunniteltu. Ja kokeilemallahan se parhaiten selviää. Hakkerilla ei ole tarkoituksena tuottaa vahinkoa kohteelleen, vaan ainoastaan tutustua asiaan siksi koska se on mahdollista. Hakkereilla on usein moraali, ja he noudattavat tiettyjä sanattomia käytössääntöjä, joihin palaan myöhemmin.

Mediat ja maallikot valitettavan usein kuitenkin mieltävät hakkerit krakkereiksi, jotka taas ovat ihan oma porukkansa. Nämä haluavat aiheuttaa vahinkoa, varastaa tietoja ja myydä niitä esim. kilpailijayrityksille. Krakkerit ovat IT-maailman murhaajia ja varkaita, ja itse en ainakaan moista menoa tue.

Mutta XSS:ään palatakseni kerron senkin, että haavoittuvuuksien keräämiseen on olemassa jo oma verkkosivustonsa, josta löytyy lista olemassaolevista ja korjatuista haavoittuvuuksista sekä muutenkin tietoa XSS:stä. Listalta löytyy myös oma kontribuutioni, SFS:n sivuilta löytynyt haavoittuvuus (näyttäisi olevan nyt korjattu).

Mutta aukkolistan alussa on tärkeä ohje, jota muutenkin haavoittuvuuksia löydettäessä tulisi pitää arvossaan: asiasta tulee ilmoittaa aina asianomaiselle. Itse ilmoitin SFS:lle eilisiltana ja nyt, alle vuorokautta myöhemmin, aukko on jo korjattu.

Tämä oli ihan oikea vastaus, mutta tiedän eräänkin verkkosivuston ylläpitäjän, jonka kanssa juttelin samalla vilkaisten heidän sivustonsa PHP-lähdekoodia. Sivusto luottaa käyttäjän syötteeseen sataprosenttisesti, ja toimintaperiaate sivujen näyttämiseen on include($_GET[’sivu’]); . Jos et tajunnut, ei se mitään.

Kerroin tietenkin tälle ylläpitäjälle asiasta. Hän ei ilmeisesti aikaisemmin ollut kuullut XSS:stä, joten selitin asian pähkinänkuoressa jotakuinkin näin: ”Tämä haavoittuvuus mahdollistaa sen, että pahantahtoisella kolmannella osapuolella on mahdollisuus käyttää sivustoa väärin, saada luottamuksellisia tietoja jne”. Tähän tämä admin totesi että ”Hakkerithan pääsee minne tahansa tekemään mitä tahansa kuitenkin”.

Tyrmistyin tämän kuullessani ja totesin edes alkeellisen suojaamisen olevan hyväksi maineen ja tietoturvan kannalta, johon sain kuulla tiukkaan sävyyn: ”sinua ei ole pyydetty neuvomaan tässä asiassa eikä se sinulle kuulu, enkä usko että ketään tämä asia kiinnostaakaan.”. No, onneksi minun tietojani ei ole tuossa järjestelmässä – eikä tule olemaankaan.

Mietinpähän vaan että kuinka monta nettisivuja pitävää PK-yritystä Suomenkin rajojen sisältä mahtaa löytyä joilla asenne tietoturvaan on lähinnä tuollainen EV(V)VK. Siltikin kannustan jokaista kynnelle kykenevää etsimään haavoittuvuuksia verkkosivuista ja muistamaan tärkeysjärjestyksen:

  1. Löydä aukko
  2. Ilmoita aukosta asianomaiselle
  3. Ilmoita aukosta Cert.fi:lle
  4. Naureskele aukolle ja ota kuvakaappauksia tyhmistä sivuista upotettuna tähän uhrisivustoon
  5. ?????
  6. PROFIT!

Mutta siinä kaikki tältä kertaa. Ja niin, jos KServeriltä löytyy noita aukkoja niin sopii ilmoitella vaikkapa sähköpostitse.