Kun Jani, 11, löysi Instagramista pahan haavoittuvuuden, sitä epäiltiin yksinkertaiseksi sql-injektioksi. Oikeasti hyökkäys oli monimutkaisempi.

Helsingin Ruoholahdessa F-Securen tutkimusjohtaja Mikko Hyppönen esittelee paikkoja hieman erilaisille vieraille. Hyppösen seurana on 11-vuotias Jani, joka toukokuussa nousi uutisotsikoihin löydettyään yhteisöpalvelu Instagramista vakavan haavoittuvuuden.

Instagram maksoi Janille bugipalkkio-ohjelmansa mukaisesti runsaan 9 000 euron korvauksen.

Jani on tullut F-Securelle tutustumaan unelma-ammattiinsa eli tietoturva-asiantuntijan töihin. Seurue istahtaa pöydän ääreen F-Securen laboratoriossa, jossa myös oikeat tietoturva-ammattilaiset purkavat ja analysoivat haittaohjelmia tai testaavat nettipalveluiden tietoturvaa aukkojen varalta.

Nimenomaan nettipalveluiden tietoturva kiinnostaa Janiakin, vaikka kaveripiirissä ei ole muita tietoturvasta kiinnostuneita. Kaverit lähinnä pelaavat.

Justin Bieberin kommentit hallussa

Pelit ja erityisesti niiden ohjelmointi innostivat Janin opiskelemaan tietotekniikkaa. Vaikka tietoturva vei myöhemmin Janin mukanaan ja peliohjelmointi on jäänyt vähemmälle, teknisestä osaamisesta on ollut hyötyä.

”Html5, css, javascript, python ja peleissä c++ ”, Jani listaa käyttämiään tekniikoita.

Pöydän toiselta puolelta Hyppönen kehottaa vain puoliksi vitsaillen jättämään php:n väliin, ja Jani on samaa mieltä.

”Olen kuullut, että sen tietoturva ei ole kovin hyvä”, hän sanoo.

Jani on tietotekniikan suhteen itseoppinut. Tietoa on kaivettu lähinnä kaksoisveljen kanssa netistä. Koulussa ei tietotekniikkaa ole opetettu.

Nettiohjeiden kautta Janin työkalupakkiin on päätynyt joukko ammattilaistenkin käyttämiä tietoturvatestaustyökaluja kuten http-proxy Burp Suite. Se on ohjelmisto, jolla voi monitoroida esimerkiksi selaimen ja nettipalvelun välillä liikkuvaa liikennettä ja halutessaan muokata lähetettyä dataa. Lisää työkaluja löytyy penetraatiotestaukseen tarkoitetusta linux-jakelu Kali Linuxista, jota Jani myös käyttää.

Burp Suiten avulla löytyi myös Janin julkisuuteen nostanut Instagram-aukko. Janin löytämässä haavoittuvuudessa oli kyse siitä, että kuka tahansa kykeni poistamaan Instagramista minkä tahansa kommentin. Vaikka Justin Bieberin tililtä, kuten Jani toukokuussa totesi.

Hieno hyökkäys

Kun ensimmäinen uutinen Janin saavutuksesta tuli ulos, esimerkiksi Twitter-keskusteluissa oletettiin hieman väheksyvään sävyyn, että kyse olisi ollut vain sql-injektiosta. Sql-injektio on yksinkertainen, mutta mahdollisesti vakaviin seurauksiin johtava hyökkäys, jossa tekstikenttien tai selaimen osoiterivin kautta voidaan syöttää tietokantaan vaikuttavia komentoja, jotka esimerkiksi poistavat dataa.

Janin hyökkäys oli kuitenkin hienostuneempi. Se alkoi samalla tavalla kuin aina uuteen palveluun tutustuessa eli perustoimintoja testailemalla ja lähdekoodia tutkimalla. Sen jälkeen avuksi voi ottaa Burp Suiten, kokeilla poistaa palvelusta vaikka itse lähettämänsä kommentin ja seurata verkkoliikenteen sisältöä.

Burp Suite paljasti, että kun kommentin poisti, selaimelta palvelimelle kulkevan liikenteen seassa siirtyi myös poistettavan kommentin numero.

Yllätyksekseen Jani huomasi, että muokkaamalla palvelimelle lähetettyä id-numeroa Instagram poisti id-numeroa vastaavan kommentin, riippumatta siitä mihin käyttäjätiliin se kuuluu. Instagramissa oli siis looginen haavoittuvuus. Oikeasti palvelun olisi pitänyt ennen hyväksymistä tarkastaa, että käyttäjällä on oikeus kommentin poistamiseen.

”Ei mitään rikollista”

Mikko Hyppönenkin hämmästelee Janin hyökkäystekniikkaa. Hän kertoo aluksi arvelleensa, että ehkä Jani syötti Instagramin kommenttikenttään jotain javascript-koodia tai vaihtoi osoitteen mukana syötettyjä parametrejä. Todellisuudessa Jani kuitenkin teki Instagramiin taitavan man-in-the-middle-hyökkäyksen.

”Muokkaus tapahtui protokollan sisällä, ei siis mikään osoitemuutos”, Hyppönen kehuu.

Janin saamaa haavoittuvuuden löytöpalkkiota Hyppönen pitää perusteltuna korvauksena, jossa ei ole annettu ylimääräistä ikälisää.

”Se reikä oli juuri sellainen, jonka he halusivat löytää, eivätkä he selvästi kyenneet löytämään sitä itse.”

Instagram ei valikoitunut Janin tietoturvatestauksen kohteeksi sattumalta. Jani kertoo valitsevansa sellaisia palveluita, jotka tarjoavat bug bountyja eli palkkiota tietoturva-aukkojen löytämiseksi. Sopivia kohteita löytyy esimerkiksi suomalaisen Mårten Mickosin perustamasta Hacker One -palvelusta, joka on alusta vapaaehtoisten tietoturvatestaajien värväämiseen.

Ei ilman lupaa. Mikko Hyppönen korostaa, että F-Secure tutkijat hyökkäävät tietojärjestelmiin ainoastaan omistajan luvalla.

Hyppönen pitää lähestymistapaa hyvänä, sillä jos palvelussa on bug bounty, silloin hyökkääminen on luvallista.

Hyppönen painottaa tapaamisen aikana useaan kertaan sitä, että F-Securella penetraatiotestausta eli tietojärjestelmiin murtautumista tehdään aina luvan kanssa. ”Me ollaan niitä hyviksiä”, Hyppönen selventää.

Janille asia on jo selvä: ”Olen lukenut, miten valkohattuhakkerit toimivat, ja olen toiminut sillä tavalla, että en ole tehnyt mitään rikollista.”

Uraputki edessä?

Tulevaisuudessa Jani haluaisi liittyä hyvisten joukkoon ja tehdä tietoturvatestaamisesta ammatin. Se oli selvillä jo ennen julkisuuteen noussutta Instagram-tapausta. Uravalinta vaikuttaa entistäkin selvemmältä, kun Hyppönen kertoo tietoturva-asiantuntijan työstä.

”Aika hienolta kuulosti. Haluaisin tehdä sellaista”, Jani toteaa.

Töiden alkuun voisi päästä vaikka F-Securella, jonne Hyppönen toivottaa nuoren hakkerin tervetulleeksi aluksi koulun tet-harjoitteluun.

Juttu julkaistu alun perin Mikrobitti-lehden numerossa 8/2016.

Lue myös: