perjantai 11. huhtikuuta 2014

Heartbleed, tietoturvan kohuviikon huipennus

NSA-kirjan valmistumisen jälkeen on taas enemmän aikaa bloggaamiselle.

Tämä viikko (7-13.4.2014) on ollut tietoturvan kohuviikko. Ensin kaiken huomion sai Windows XP:n tuen loppuminen ja siitä seuraavat tietoturvariskit. Samana päivänä (8.4.) tulivat julki tiedot suomalaisten ja Googlen löytämästä ns. Heartbleed-aukosta, jonka vaikutukset ovat moninkertaisesti suuremmat kuin vanhan XP:n riskit.

Heartbleed on mielenkiintoinen monellakin tavalla. Onnittelut oululaiselle Codenomiconille sen löytämisestä ja eritoten hyvästä viestinnästä. Heartbleedistä tuli it-historian ensimmäinen brändätty turva-aukko. Codenomiconin ansiosta bugi sai kuvaavan logon ja helposti muistettavan nimen. Suomalaiset ovat aina olleet hyviä tekniikasta, mutta nyt näköjään kansainvälinen viestintäkin on hallinnassa. Tämä on kerrassaan loistava juttu! Codenomicon toi monta näkyvää sulkaa Suomen tietoturvaosaamisen hattuun. Kansainvälinen tietoturvamaine on muutakin kuin urkintaa tai sen puutetta.

Bugi on ollut avoimessa koodissa kaksi vuotta kenenkään huomaamatta. Usko siihen, että avoin koodi olisi automaattisesti turvallista koska niin moni voi tarkistaa sen, osoittautui vääräksi. Itse asiassa NSA tai kuka tahansa voi lisätä kriittiseen koodiin tahallisia turva-aukkoja ja hyödyntää niitä pitkään, ennen kuin asia paljastuu.

OpenSSL-aukko olisi hyvin voinut olla NSA:n työtä. Ilmeisesti virheen tehnyt ohjelmoija on kuitenkin saksalainen, eikä hänellä ole NSA-yhteyksiä. Mutta kuka tietää, mitä kulissien takana oikeasti on tapahtunut?

Turva-aukot saavat paljon huomiota mediassa, ovathan ongelmat ja riskit aina uutisen arvoisia. Median mukaan kyseessä on nettihistorian suurin ja vakavin turva-aukko. Ihmisiä kehotetaan jälleen vaihtamaan salasanat Facebookiin, Twitteriin ja kaikkiin tärkeisiin palveluihin. Uutisoinnin pohjanoteeraus on tämä Voicen artikkeli, jossa aukkoa kutsutaan virukseksi. Sen sijaan hyvä artikkeli löytyy Washington Postista.

Heartbleed on siinä mielessä loistava turva-aukko, että kerrankin käyttäjän ei tarvitse päivittää mitään. Kaikki työ jää web-palveluiden ylläpidon vastuulle. Älypuhelimista tai työasemista Heartbleedin käyttö olisi erittäin vaikeaa.

Missään en ole nähnyt tarkkaa kuvausta siitä, miten Heartbleed-bugia oikeasti voi hyödyntää. Voi olla, että OpenSSL-kirjastoa käytetään 66 % nettipalveluista, mutta kyse on vasta teknisestä haavoittuvuudesta. Riski syntyy siitä, miten helppo Heartbleediä on hyödyntää ja miten vakavaa vahinkoa sillä voi saada aikaan.

Heartbleedin avulla palvelimen muistin sisältöä voidaan "lypsää" sitä sopivasti kysyvälle ohjelmalle. Tulokset ovat satunnaisia. Voi olla, että hyökkääjä saa pelkkää bittiroskaa. Toisaalta hän voi saada edellisten käyttäjien tunnuksia, salasanoja ja jopa palvelimen omat salausavaimet. Pahinta on, ettei tästä jää mitään merkkejä palvelimen lokiin. Ylläpidon on siis mahdotonta tietää, onko heiltä lypsetty salaista tietoa. Havainnollinen kuva asiasta on täällä, hyvä selitys suomeksi myös täällä.

Hyökkäyksen kohdistaminen tiettyyn käyttäjään on kuitenkin vaikeaa. Hyökkääjän pitäisi ensin saada uhri ottamaan yhteyttä omaan koneeseensa ja sen jälkeen jatkaa Man-in-the-middle-tekniikalla suojatulle palvelimelle. Ei kovin helppoa.

Lisäksi on mahdollista hyökätä OpenSSL:ää käyttäviä kuormanjakopalvelimia vastaan ja saada -- jälleen kerran satunnaisten -- ihmisten tunnuksia. Toisaalta kaikki OpenSSL:ää käyttävät ohjelmistot eivät hyödynnä kirjaston Heartbeat-ominaisuutta, joten niissä vaaraa ei ole.

Vaikka haavoittuvuus on vakava, sen hyödyntäminen on jossain määrin onnen kauppaa ja vaatii sen verran yritystä, että tuskin kukaan jaksaa nähdä vaivaa Facebookin tai Twitterin salasanojen vuoksi. Pankkipalvelut ovat sitten toinen juttu.

Pahinta, mitä hyökkääjä voi Heartbleedin avulla saada, on palvelimen oma SSL-avain. Sillä pystyisi avaamaan kaikki aiemmat (jos niiden salattu liikenne on kaapattu ja tallennettu) sekä tulevat SSL-salatut yhteydet. En pysty arvioimaan tämän riskin suuruutta, oletan sen aika pieneksi. Lisäksi PFS-tekniikkaa (Perfect Forward Secrecy) käyttävät avaintenvaihtoprotokollat ovat suojassa. Niitä käyttävät mm. Facebook ja Nordea palveluissaan.

Lisäys klo 18.15: SSL-avaimen vuotaminen saattaa olla jopa kokonaan mahdotonta.

Lisäys klo 23.30: Onpa muuten hassua, että kerrankin Microsoft ei liity mitenkään tietoturvariskiin. Itse asiassa juuri sen web-palvelimet ovat niitä turvallisia, ja asiakaspään käyttöjärjestelmällä ei ole merkitystä. (Oliko vain sattumaa, että Codenomicon julkisti haavoittuvuuden juuri XP:n tuen päättymispäivänä, kysyy tämä sivusto).

Ja ihan toinen juttu -- em. Vergen lukijapalautteista poimin seuraavan: "Look, I don’t want to say heartbleed is not dangerous and might have caused a lot of harms, we simply don’t know yet. The media did a lot of fear mongering and took it to the extreme. The final nails in the coffin was when my wife (a nurse) a non-technical person came home the other day hysterically about how everything was compromised and some news network advised people emptying out their accounts until everything was fixed to protect themselves. Needless to say, I was pretty upset about the whole thing and the damaged those folks caused. It took hours of convincing to stop her from going to the bank the next morning to do exactly that. What a mess."

Lisäys 12.4.14 klo 8: Iltalypsy kannattaa - suomalainen Ilkka Mattila oli toinen, joka osoitti salaisen avaimen hankkimisen mahdolliseksi: https://www.cloudflarechallenge.com/heartbleed Jälleen yksi sulka myös Suomen tietoturvaosaamisen hattuun. Hienoa!

10 kommenttia:

Anonyymi kirjoitti...

Käyttäjän pitää myös päivittää OpenSSL, mitenkenköhän mahtaa käydä kun client pään haavoittuva asiakas ottaa yhteyttä serveriin joka lypsää asiakaslaitteen (prosessin) muistin itselleen.

Antti Alestalo kirjoitti...

Riippuu pitkälti asiakasohjelmasta. Teoriassa esimerkiksi VPN-sovellus, voisi vuotaa edellisen VPN-yhteyden tietoja. Joitakin sovelluksia on jo testattu tämän varalta, esim. Ciscon iOS VPN-sovellus on ilmeisesti haavoittuvainen. Myös nginx proxy-tilassa vuotaa tietoja. Useimmiten tämä ei ole kuitenkaan yhtä vakavaa, kuin palvelinpään vuoto.

Anonyymi kirjoitti...

Kaikki asikaspään ohjelmat jotka käyttävät OpenSSL:ää ovat aivan yhtä rikki kuin palvelinpään ohjelmat.

Tosin nopealla googletuksella selaimet eivät taida käyttää OpenSSL:ää. Paitsi ehkä android chrome.

anonym 765 kirjoitti...

Tuohon 18.15 lisäykseen sopii vasta-argumentti www.heartbleed.com 'sta(bugin löytäjiltä):

We attacked ourselves from outside, without leaving a trace. Without using any privileged information or credentials we were able steal from ourselves the secret keys used for our X.509 certificates, user names and passwords, instant messages, emails and business critical documents and communication.

Sanovat siis saaneensa certificaatin salaisen eli yksityisen avaimen. Tuo on kaikista pahin scenaario.

Anonyymi kirjoitti...

Sanovat siis saaneensa certificaatin salaisen eli yksityisen avaimen. Tuo on kaikista pahin scenaario.

Mikä tämän käytännön merkitys sitten on? Voi tehdä feikkisivuston, joka näyttää ja tuntuu aidolta?

anonym 765 kirjoitti...

Tuossa Vergen skeptisessä jutussa mainitaan Cloudfaren Heartbleed Challenge, jossa haastetaan hakkeroimaan Heartbleedin avulla tuo himoittu yksityinen avain Cloudfaren palvelimelta.

Cloudfare on ilmoittanut, että hakkeri on onnistunut samaan avaimen selville, myös Vergen jutun loppuun on lisätty varmistus asiasta.

Joku kysyi mitä merkitystä yksityisellä avaimella on? Järvisen blogin tekstiä: "Pahinta, mitä hyökkääjä voi Heartbleedin avulla saada, on palvelimen oma SSL-avain. Sillä pystyisi avaamaan kaikki aiemmat (jos niiden salattu liikenne on kaapattu ja tallennettu) sekä tulevat SSL-salatut yhteydet."

anonym 765 kirjoitti...

Mielenkiintoista on, että 2 henkilöä sai tuon yksityisen avaimen selville ja toisena aikajärjestyksessä oli Suomen NCSC-FI'n edustaja Ilkka Mattila.

https://www.cloudflarechallenge.com/heartbleed

Antti Alestalo kirjoitti...

Joku kertoi tänään, että Ilkalta oli mennyt 100 000 requestia, ennen kuin kaivattu tieto osui haaviin. Joku toinen oli kuulemma tehnyt 4 miljoonaa requestia ennen onnistumista. Tämän exploittaaminen vaatii siis oikeasti aikaa ajaa iso kasa pyyntöjä. Skriptaamalla saa toki nopeutettua paljon.

Anonyymi kirjoitti...

>Tämän exploittaaminen vaatii siis oikeasti aikaa ajaa iso kasa pyyntöjä. Skriptaamalla saa toki nopeutettua paljon.

Eikös jonkin botnetin voisi valjastaa Heratbleed-pyyntöjen tehtailuun?

Anonyymi kirjoitti...

Blogistilla oli hiljattain kirjoitus HS:ssa kontaktittomista maksukorteista. Aiheesta voisi ehkä blogahtaakin?

Käväisinpä tässä Lontoossa hiljattain ja metroasemilla pyöri kuulutus tästä aiheesta:
Avoid card clash

If you keep your Oyster card in your wallet/purse with your bank cards, you might occasionally see a red light when you touch it on a card reader at stations and on buses. The red light means you haven't paid for your journey and if you're at a ticket gate, it might not open. This can happen even you've got enough pay as you go credit or a valid Travelcard on your Oyster card because you could be experiencing 'card clash'.


...eli ongelmia luvassa, jos lompakossa on useampia erilaisia mutta samaa teknologiaa käyttäviä kortteja.