I over et år har angribere haft evnen til at gå ned Bitcoin Ubegrænset og Bitcoin Classic noder. I går gjorde nogen det faktisk. Ifølge websteder som Møntdans, antallet af Bitcoin Unlimited noder faldt kraftigt fra næsten 800 til mindre end 250 i løbet af få timer. Bitcoin Classic blev ramt kort tid efter.
En dag tidligere havde sikkerhedsforskeren, der fandt sårbarheden, nået ud til Bitcoin Magazine.
“Jeg er ganske ved siden af mig selv, hvordan et projekt, der sigter mod at drive et netværk på 20 milliarder dollars, kan begynder fejl som denne.”
Sårbarhederne
Bitcoin Unlimited og Bitcoin Classic er gafler af Bitcoin Core der agter at øge Bitcoins begrænsning af blokstørrelse. Begge blev lanceret i 2015 og har været vedligeholdt af deres egne udviklingsteam siden. Mens Bitcoin Classic var et relativt populært alternativ til Bitcoin Core sidste år, har Bitcoin Unlimited fået trækkraft på det seneste. Verdens største minepool – AntPool – annonceret det ville skifte til Bitcoin Unlimited, ligesom flere mindre puljer har.
Men ikke alle tror, det er en god idé.
“Jeg er temmelig forfærdet over det dårlige niveau af kodekvalitet i Bitcoin Unlimited, og jeg formoder, at der [er] en række andre problemer,” en sikkerhedsforsker, der kun identificerede sig selv som “Charlotte Gardner” fortalte Bitcoin Magazine på mandag.
Ved kommunikation via e-mail sagde Gardner, at hun reviderede softwaren til eget brug, men kom hurtigt til den konklusion, at det er meget usikkert: “Det, der bekymrer mig, er, at denne software nu bruges af en stor del af Bitcoin-minedriftens økosystem.”
Gardner afslørede, at hun havde sendt to sårbarheder – “kritiske sårbarheder i fjernstyrt nedbrud” for at være nøjagtige – til Bitcoin Unlimited-udviklingsteamet.
Den første er kendt som en “NULL-markering derference,”Den anden en“tilgængelig påstand.”I begge tilfælde kan angribere sende særligt udformede beskeder til Bitcoin Unlimited eller Bitcoin Classic noder for at få disse noder til at gå ned. På et åbent peer-to-peer-netværk som Bitcoins betyder det, at en angriber kan få en liste over Bitcoin Unlimited- og Bitcoin Classic-noder fra offentligt tilgængelige kilder, som f.eks. Bitnoder, og bare banke hver eneste af dem offline.
”Jeg er overrasket over, at ingen har bemærket dem endnu,” fortalte Gardner Bitcoin Magazine en dag før angrebet fandt sted. ”Jeg antager, at ikke mange bruger faktisk Bitcoin Unlimited-softwaren. Men med deres ‘stigning’ kan angribere være mere interesserede. “
Offentliggørelsen
Når du kontakter Bitcoin Magazine mandag ville Gardner ikke straks offentliggøre sårbarhederne. Det ville have været uansvarligt, forklarede hun, da fejlene stadig kunne udnyttes, før Bitcoin Unlimited-udviklingsteamet havde chancen for at ordne det..
Men hun indsendte også sårbarhederne for Mitres Common Vulnerabilities and Exposures (CVE) database. Dette sikrer, at Mitre afslører fejlene om en måned fra nu, hvilket presser udviklerne til faktisk at løse problemet i tide.
Selv efter denne ansvarlige offentliggørelse troede Gardner imidlertid, at der var en risiko for, at sårbarhederne ville blive misbrugt, så snart de blev rettet i Bitcoin Unlimited-kodelageret. Når alt kommer til alt, er problemet ikke rigtig løst på det tidspunkt: Enhver, der kører den frigivne Bitcoin Unlimited-software, er stadig sårbar, indtil de downloader og kører den nye, reviderede version. Dette åbner et vindue for angribere.
“Problemet er, at bugs er så åbenlyst åbenlyse, at når det løses, vil det være let at bemærke for alle, der ser deres udviklingsproces,” sagde hun.
Det ser nu ud til, at det er præcis, hvad der er sket. Mens Bitcoin Unlimited-udviklerne faktisk løste problemet kort efter, at det blev påpeget dem, gjorde de det med en alt for iøjnefaldende GitHub begå besked, Fortalte Gardner Bitcoin Magazine når det først så ud, syntes bugsene løst, og inden angrebene begyndte.
”Deres begå besked ringer alarmklokker. Jeg er ikke sikker på, om nogen vil bemærke det, men de burde sandsynligvis have skjult beskeden lidt mere. Formuleringen kan tiltrække nærmere kontrol. Men hvis det gik ubemærket så længe, vil det måske gå ubemærket hen. ”
Det gjorde det klart ikke.
Som Gardner advarede, tog det ikke lang tid for angribere at udnytte en af sårbarhederne: de første angreb sket kort efter bugs blev rettet. Lidt senere tog brugeren “shinobimonkey” problemet Reddit, Bitcoin Core-udvikler Peter Todd tweeted om fejlen og sociale medier sprængte.
Nogen offentliggjorde derefter endda udnytte kode for alle at bruge, og inden længe var de fleste Bitcoin Unlimited noder nede, efterfulgt af mange Bitcoin Classic noder.
”Dette er nøjagtigt grunden til, at der formodes at være en protokol med ansvarlig afsløring,” fortalte Gardner Bitcoin Magazine efter angrebene fandt sted. “Men så hjælper det ikke, hvis softwareprojektet ikke er diskret med at løse kritiske problemer som dette.”
Kodekvalitet
Dette er ikke første gang kodekvaliteten af Bitcoin Unlimited eller Bitcoin Classic er undersøgt.
Som det mest kendte eksempel er bitcoin.com minedrift, der kører Bitcoin Unlimited, udvindes en ugyldig blok forårsaget af en fejl i januar sidste år. Al energi, der blev investeret i at producere blokken, blev spildt, mens minedriftspuljer, der spionerer, der blev udvundet oven på den ugyldige blok, også spildte noget energi.
Før det havde Bitcoin Core-udviklere allerede advaret om buggy-kode ved flere lejligheder. På postlisten til Bitcoin-udvikling, Matt Corallo sagde at han havde fundet Bitcoin Classic’s fleksible transaktionskodebase at være “fyldt med åbenlyse og massive sikkerhedshuller.” På Reddit, Gregory Maxwell påpegede at Bitcoin Unlimited noder var ved at gå ned, fordi udviklingsteamet fjernede kode, der ikke skulle have været fjernet.
Adressering af Bitcoin Unlimited hovedudvikler Andrew Stone som svar på gårsdagens begivenheder, Maxwell foreslået der er flere problemer med Bitcoin Unlimited’s codebase, der endnu ikke er blevet misbrugt:
”Der er sårbarheder i Unlimited, som er blevet rapporteret privat til dig i Unlimited af Bitcoin Core-folk, som du desværre ikke har handlet på. Mere alvorlig end denne, faktisk. ”
Måske det største problem for Bitcoin Unlimited, som påpegede af informationssikkerhedsekspert Andreas Antonopoulos, er, at det mangler et vigtigt udviklingssamfund til at udføre korrekt kvalitetsanalyse. Antallet af udviklere, der arbejder på Bitcoin Unlimited og Bitcoin Classic, er relativt lille, og koden, der omfattede den udnyttede sårbarhed, blev flettet efter kun at være gennemgået af en person – ikke meget for sikkerhedskritisk kode, der beskytter folks penge.
Gardner var enig i denne vurdering:
”I dette tilfælde er sårbarhederne så åbenlyst åbenlyse, at det er klart, at ingen har revideret deres kode, fordi disse stikker ud som en øm tommelfinger,” sagde hun. ”Jeg er forbløffet over, at minesektoren kører denne software. Men da de er det, og mange mennesker kan blive skadet, er det bedste, jeg kan gøre, bortset fra at anbefale, at de ikke bruger Bitcoin Unlimited, at afsløre problemerne og håbe, at de er kompetente nok til at løse det. ”
Bitcoin Magazine nåede ud til Bitcoin Unlimited-udviklerne Andrew Stone og Andrea Suisani, men modtog intet svar på offentliggørelsestidspunktet.