Mikä on API?
API (Application Programming Interface) on ohjelmointirajapinta, eräänlainen liitäntä, jonka kautta kaksi erilaista sovellusta voivat jutella keskenään. APIt ovat käytössä kaikkialla. Kun lataat päivitystä Instagramiin tai kirjaudut sisään suoratoistopalveluun, juttelet samalla APIen kanssa. Ne kääntävät esimerkiksi uutispalveluissa hakusanasi sellaiseen muotoon, että tietokanta ymmärtää, mitä haluat löytää ja palauttavat tietokannasta tulevan vastauksen sellaisessa muodossa, että siitä saadaan muotoiltua teksti, jota sinun on miellyttävä lukea.
APIen nopean tiedonkäsittelyn ja keveyden ansiosta kehityksestä on tullut ketterämpää ja kustannustehokkaampaa. Tässä piilee kuitenkin myös vaaroja. Pienestä API projektista kasvaa salakavalasti API-hirviö, jonka kattava tietoturvatestaaminen on työläs projekti. APIen tietoturvahaasteet on tiedostettu laajalti ja yhä useampi organisaatio pyrkiikin keskittämään voimavaroja niiden testaamiseen - ja alkuun pääsee yllättävän helposti.
APIen tietoturvatestaus
APIen tietoturvatestaus on melko suoraviivaista, mutta mitä pidemmälle siinä etenee, sitä enemmän saa käyttää luovuuttakin. Se sopii siis ihan kaiken tasoisille hakkereille. APIen haavoittuvuudet ovat monesti pienistä asioista kiinni. ID:tä vaihtamalla voi nähdä toisen asiakkaan tietoja, autentikaatiotokenin poistamalla voi päästä käsiksi ylläpitäjän oikeuksiin tai vaikkapa tekemään ajanvarauksia naapurin nimissä.
Esimerkkejä API:en tietoturvatestauksesta. Etsitään vanhoja tai keskeneräisiä versioita, jotka voivat olla haavoittuvia, kokeillaan uusia metodeja, muutellaan parametreja ja annetaan yllättäviä syötteitä.
Koska APIt käsittelevät arvokasta ja usein hyvin henkilökohtaistakin tietoa, olisi tärkeää, että APIen tietoturvasta huolehdittaisiin jo kehityksen aikana. Kehityksen alkuvaiheessa havaitut ongelmat on helpompi korjata kuin valmiista tuotteesta löydetyt viat.
Miten alkuun?
APIen testaamisessa pääsee alkuun ilman kalliita työkaluja. Etsimällä vaikkapa hakusanoilla "Top 10 API-vulnerabilities" löytyy runsaasti esimerkkejä ja ohjeita haavoittuvuuksien löytämiseen. Esimerkkien ymmärtäminen vaatii hieman teknistä taustaa, mutta tämä on myös sellainen aihepiiri, jossa tekemällä oppii nopeasti.
APIen tietoturvatestauksessa on etua siitä, että tietää miten API on rakennettu ja mihin kaikkeen se pystyy. Jos kehitystiimissä on joku, jota tietoturva kiinnostaa ja jolla on aikaa katsoa, että edes pahimmilta uhkaskenaarioilta vältytään, päästään jo todella pitkälle. Voisitko se olla sinä? Tai jos et sinä, niin joku jonka tunnet? Jos kehityksen aikana löydettäisiin edes osa yleisimpiin API-haavoittuvuuksiin kuuluvista vioista, tietomme olisivat paljon paremmassa turvassa. Meiltäkin saa tukea hirviöiden kesyttämiseen, mutta parhaaseen lopputulokseen päästään aina yhdessä tekemällä.
Luitko jo blogisarjan ensimmäisen osan oletustunnuksista?
Digitaalisen Suomen tietoturvahaasteita, osa 1 oletustunnuksetBlogisarjan viimeisessä osassa perehdytään vielä salasanan palautukseen!
Digitaalisen Suomen tietoturvahaasteita, osa 3: salasanan palautusAnne Hautakangas
Kirjoittaja työskentelee Instassa kyberturvallisuuden asiantuntijana.