Mikä on Heartbleed-haavoittuvuus?

Yksi 2010-luvun puolivälin tunnetuimmista haavoittuvuuksista oli nimeltään "Heartbleed". Heartbleed oli erityisen vakava, koska se vaikutti ohjelmistoon "OpenSSL", joka on erittäin laajalti käytettyjen HTTPS-yhteyksien tärkein salauskirjasto. Asiaa pahensi se, että haavoittuvuus oli ollut OpenSSL: ssä yli kaksi vuotta aiemmin se löydettiin, julkistettiin ja korjattiin, mikä tarkoitti, että monet ihmiset käyttivät haavoittuvia versio.

Heartbleed oli tietovuodon haavoittuvuus heartbeat-laajennuksessa, joka vuotanut tietoja RAM-muistista palvelimelta asiakkaalle, kun sitä hyödynnettiin. Heartbeat-laajennusta käytetään ylläpitämään yhteyttä verkkopalvelimen ja asiakkaan välillä ilman normaalia sivupyyntöä.

OpenSSL: n tapauksessa asiakas lähettää viestin palvelimelle ja ilmoittaa palvelimelle viestin pituuden, enintään 64 kt. Palvelimen oletetaan sitten toistavan saman viestin takaisin. Ratkaisevaa on kuitenkin, että palvelin ei itse asiassa tarkistanut, että viesti oli niin pitkä kuin asiakas väitti sen olevan. Tämä tarkoitti, että asiakas saattoi lähettää 10 kt: n viestin, väittää sen olevan 64 kt ja saada 64 kt: n vastauksen. Ylimääräiset 54 kt koostuivat seuraavasta 54 kt: n RAM-muistista riippumatta siitä, mitä tietoja sinne oli tallennettu. Tämän prosessin visualisoi hyvin

XKCD-sarjakuva #1354.

Kuva: xkcd.com.

Tekemällä paljon pieniä sykepyyntöjä ja väittämällä niiden olevan suuria, hyökkääjä pystyi rakentamaan kuvan suurimmasta osasta palvelimen RAM-muistia yhdistämällä vastaukset. RAM-muistiin tallennettuja tietoja, jotka voivat vuotaa, ovat salausavaimet, HTTPS-sertifikaatit sekä salaamattomat POST-tiedot, kuten käyttäjätunnukset ja salasanat.

Huomautus: Se on vähemmän tunnettu, mutta heartbeat-protokolla ja hyväksikäyttö toimivat myös toiseen suuntaan. Haitallinen palvelin olisi voitu määrittää lukemaan jopa 64 kt käyttäjämuistia sykepyyntöä kohden.

Useat tietoturvatutkijat havaitsivat ongelman itsenäisesti huhtikuun 1. päivänä 2014, ja se paljastettiin yksityisesti OpenSSL: lle, jotta korjaustiedosto voitaisiin luoda. Virhe julkistettiin, kun korjaustiedosto julkaistiin 7. huhtikuuta 2014. Paras ratkaisu ongelman ratkaisemiseen oli asentaa korjaustiedosto, mutta ongelma oli myös mahdollista korjata poistamalla sykelaajennus käytöstä, jos korjaus välittömästi ei ollut vaihtoehto.

Valitettavasti huolimatta siitä, että hyväksikäyttö oli julkinen ja yleisesti tunnettu, monet verkkosivustot eivät silti päivittyneet heti, ja haavoittuvuus löydettiin ajoittain jopa vuosia myöhemmin. Tämä johti useisiin tapauksiin, joissa hyväksikäyttöä käytettiin tilien pääsyyn tai tietojen vuotamiseen.