Slik klarte hackeren å stjele Ethereum verdt 250.000.000 kroner denne uken

Blant historiens største kryptovaluta-ran.

Gjennom tre transaksjoner klarte hackeren å stjele med seg store verdier.
Gjennom tre transaksjoner klarte hackeren å stjele med seg store verdier. Bilde: Skjermdump
21. juli 2017 - 13:00

Nye detaljer har kommet frem etter onsdagens angrep på Parity - en populær lommebok-tjeneste for Ethereum.

I løpet av få minutter klarte en hacker å stjele Ethereum verdt 31 millioner dollar - en kvart milliard kroner. 

Men det kunne blitt enda mer.

En gruppe godsinnede hackere klarte i løpet av kort tid å identifisere feilen den opprinnelige hackeren benyttet seg av. 

De svarte raskt med å benytte feilen til å «stjele» til seg resten av verdiene i tjenesten før hackeren rakk å gjøre det det. Totalt reddet de ut verdier for 77 millioner dollar, som skal gis tilbake til sine opprinnelige eiere.

Satte seg selv som wallet-eier

I en redegjørelse av angrepet kaller bloggeren Haseeb Qureshi angrepet «så simpelt at det er til å le av». Han beskriver feilen slik:

«Hackerne fant en feil i koden som lot dem re-initialisere lommeboken. Det blir omtrent som å trykke på «gjenopprett fabrikkinstillinger». Etter det var gjort kunne de registrere seg selv som nye eiere av lommeboken, og gjøre hva de ville med innholdet».

For lesere med programmeringsbakgrunn anbefaler vi å lese blogginnlegget i sin helhet - særlig del 2. Her beskrives feilen i detalj. 

I korte trekk klarte hackeren med manuelle metodekall å overskrive eierne av tre av tjenestens største lommebøker. 

De godsinnede hackerne som stoppet angrepet benyttet seg av script for å tømme resten av verdiene i tjenesten, og skal på den måten ha kommet i forkant av Ethereum-tyven.

Tjenestens kode er skrevet i Solidity, et språk hvis syntaks er laget for å ligne på Javascript. En av årsakene til at feilen kunne skje, var at enkelte metoder ikke var merket med «internal». Dette tilsvarer «private» i Java.

Parity har nå sendt et forslag til Solidity om å gjøre «internal» til standard for alle metoder hvor skopet ikke er spesifisert. 

Prisen på Ethereum falt ikke nevneverdig på grunn av hendelsen

Kodefeil slapp gjennom tre ledd

Ifølge bloggen ble koden som skapte sikkerhetshullet skrevet av Gavin Wood - en av Ethereums grunnleggere. Han er forøvrig grunnleggeren av språket koden er skrevet i. Han anses som en sentral skikkelse i Ethereum-miljøet. 

I en pressemelding sluppet av Parity, kalt «The multi-sig hack: A post mortem», forklarer de at det hele var en ren menneskelig feil. I tillegg sviktet rutinene som var laget for å fange opp slike feil.

Organisasjonen benytter seg av et system der man kan merke kode som enten kjerne-kode, eller som ren brukergrensesnitt-kode. I dette tilfellet skal koden til Woods feilaktig ha blitt merket som kode for brukergrensesnitt. Dette førte til at koden kun ble sett gjennom én gang, i motsetning til flere ganger. 

Kildekoden er åpen, og feilen kunne blitt oppdaget tidligere, men Parity forklarer at det «var ingen incentiver for å forsikre seg om at flere godsinnede utviklere inspiserte koden».

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.