Illustrasjonsfoto (Bilde: GlebStock / Shutterstock, Øystein W. Høie)

Denne linjen blottla en hel verdens passord

– Jeg gjorde det ikke med vilje, sier den uheldige koderen som forårsaket Heartbleed-krisen.

Mens resten av verden feiret nyttårsaften 2012, satt tyskeren Robin Seggelmann og programmerte. I etterpåklokskapens lys burde han kanskje heller tatt seg en pause og kost seg litt, for rett før klokken 23:00 skjedde feilen som har fått ringvirkninger for en hel verden.

Seggelmann brukte en standard funksjon i koden for å hente ut noe av det tjeneren jobber med i minnet, samt hvor mange tegn innholdet skal være på. Men den tyske programmeren skulle gjøre én fatal feil – han glemte å sjekke at brukeren som spør faktisk snakker sant om lengden.

Tegneserien Xkcd har forklart feilen på en enkel måte:.
Tegneserien XKCD har laget en forenklet forklaring av hvordan Heartbleed-feilen fungerer: .Foto: XKCD

Dette er den lille snutten med kode som ikke tar høyde for at brukeren kan lyge:

/* Read type and payload length first */
hbtype = *p++;
n2s(p, payload);
pl = p;

Når Seggelmann senere kjører funksjonen memcpy, risikerer han hver gang å hente ut og sende avgårde mye mer data enn han skal.

Sikkerhetshullet åpner for at ondsinnede angripere kan hente ut tilfeldige biter av arbeidsminnet som de ikke skal ha tilgang til – helt opp til 64 KB med bokstaver, tegn, bilder, tall og verdier. 

Disse bitene kan være helt uskyldige, eller det kan være passord, kredittkortdata, personopplysninger og annet tjeneren jobber med.

Angriperne kan dessuten spørre på ny og ny, helt til de har fått dataene de ønsker seg. Og det legges ikke igjen et eneste spor som kan vise hva som har skjedd. 

Det er altså ikke så rart at verdens sikkerhetseksperter nå river seg i håret.

Vil du vite mer? Gizmodo har laget en lengre forklaring av hvordan feilen fungerer.

– Det var ikke med vilje

Seggelmann understreker at feilen overhodet ikke var med overlegg. Samtidig utelukker han ikke at noen kan ha utnyttet seg av sikkerhetshullet.

– Jeg jobbet med å forbedre OpenSSL, og sendte inn en rekke med feilrettinger og nye funksjoner. I en av de nye funksjonene glemte jeg dessverre å validere en variabel. Det sa Robin Seggelmann til den australske avisen Sydney Morning Herald.

Heller ikke vedkommende som så over koden til Seggelmann, Dr. Stephen Henson, oppdaget feilen.

Dermed var det som skulle bli kjent som Heartbleed-feilen var skapt, og rundt to tredjedeler av Internett er rammet.

Brukes av store deler av nettet

Feilen i seg selv er altså liten og nærmest ubetydelig, men slik den fikk stå ble den til det gigantiske sikkerhetshullet som vi ikke har sett maken til på lengre tid. Grunnen til det er utbredelsen til OpenSSL. OpenSSL er rett og slett en svært populær sikkerhetsteknologi som gjør at du kan bruke en nettside, og trygt sende over sensitive opplysninger som kredittkortinformasjon og passord.

Siden teknologien er gratis har den vært i bruk over store deler av Internett. Du kjenner den igjen vet at nettadressen din har fått en ekstra S etter HTTP, altså HTTPS. I tillegg vil nettleserne gjerne vise en sikker tilkobling ved å ha et hengelåssymbol på adresselinjen.

Kodefeil skjer hele tiden, og det er ikke uvanlig med et par – tre kodefeil for hver tusende linje med kode. Det er tross alt snakk om mennesker som sitter og skriver denne koden, og vi mennesker gjør dessverre feil fra tid til annen. Men det er altså sjelden det får konsekvenser som dette.

Usikker på hva du skal gjøre i etterkant av Heartbleed? 
Her er stedene du må skifte passord

Derfor er Heartbleed nettets største sikkerhetsfeil »

Norges beste mobilabonnement

Juni 2017

Kåret av Tek-redaksjonen

Jeg bruker lite data:

Ice Mobil 1 GB


Jeg bruker middels mye data:

Telio Go 5 GB


Jeg bruker mye data:

Komplett Maxiflex 12 GB


Jeg er superbruker:

Komplett Megaflex 30 GB


Finn billigste abonnement i vår mobilkalkulator

Forsiden akkurat nå

Til toppen