I over et år har angripere hatt muligheten til å krasje Bitcoin Ubegrenset og Bitcoin Classic noder. I går gjorde noen det faktisk. I følge nettsteder som Coin Dance, antall Bitcoin Unlimited noder falt kraftig fra nesten 800 til mindre enn 250 i løpet av noen timer. Bitcoin Classic ble truffet kort tid etter.

En dag tidligere hadde sikkerhetsforskeren som fant sårbarheten nådd ut Bitcoin Magazine.

“Jeg er ganske ved siden av meg selv på hvordan et prosjekt som tar sikte på å drive et nettverk på 20 milliarder dollar kan gjøre nybegynnerfeil som dette.”

Sårbarhetene

Bitcoin Unlimited og Bitcoin Classic er gafler av Bitcoin Core som har til hensikt å øke Bitcoins grense for blokkstørrelse. Begge ble lansert i 2015 og har blitt vedlikeholdt av sine egne utviklingsteam siden. Mens Bitcoin Classic var et relativt populært alternativ til Bitcoin Core i fjor, har Bitcoin Unlimited fått grep i det siste. Verdens største gruvebasseng – AntPool kunngjort det ville byttet til Bitcoin Unlimited, i likhet med flere mindre bassenger.

Men ikke alle tror det er en god idé.

“Jeg er ganske forferdet over det dårlige nivået av kodekvalitet i Bitcoin Unlimited, og jeg mistenker at det [er] en rekke andre problemer,” sa en sikkerhetsforsker seg bare som “Charlotte Gardner”. Bitcoin Magazine på mandag.

Gardner sa at hun kommuniserte via e-post og sa at hun reviderte programvaren for eget bruk, men kom raskt til den konklusjonen at det er veldig utrygt: “Det som bekymrer meg er at denne programvaren nå blir brukt av en stor del av Bitcoin-gruvedriftens økosystem.”

Gardner avslørte at hun hadde sendt inn to sårbarheter – “kritiske sårbarheter for ekstern krasj” for å være nøyaktig – til Bitcoin Unlimited-utviklingsteamet.

Den første er kjent som en “NULL pekereferanse,”Den andre a“tilgjengelig påstand.”I begge tilfeller kan angripere sende spesielt utformede meldinger til Bitcoin Unlimited eller Bitcoin Classic-noder for å få disse nodene til å krasje. På et åpent peer-to-peer-nettverk som Bitcoin, betyr dette at en angriper kan få en liste over Bitcoin Unlimited og Bitcoin Classic-noder fra offentlig tilgjengelige kilder, som Bitnoder, og bare banke hver eneste av dem offline.

“Jeg er overrasket over at ingen har lagt merke til dem ennå,” sa Gardner Bitcoin Magazine en dag før angrepet fant sted. Jeg antar at ikke mange bruker faktisk Bitcoin Unlimited-programvaren. Men med sin ‘oppgang’ kan angripere interessere seg mer. “

Avsløringen

Ved kontakt Bitcoin Magazine mandag ønsket ikke Gardner umiddelbart å gjøre sårbarhetene offentlige. Det ville ha vært uansvarlig, forklarte hun, da feilene fortsatt kunne utnyttes før Bitcoin Unlimited-utviklingsteamet hadde sjansen til å fikse det..

Men hun overga også sårbarhetene til Mitres Common Vulnerabilities and Exposures (CVE) -database. Dette sikrer at Mitre avslører feilene om en måned fra nå, noe som presser utviklerne til å faktisk løse problemet i tide.

Selv etter denne ansvarlige avsløringen, trodde Gardner imidlertid at det var en risiko for at sårbarhetene ville bli misbrukt så snart de ble løst i Bitcoin Unlimited-kodelageret. Tross alt, på det tidspunktet er ikke problemet løst: Alle som kjører den utgitte Bitcoin Unlimited-programvaren er fortsatt sårbare til de laster ned og kjører den nye, reviderte versjonen. Dette åpner et vindu for angripere.

“Problemet er at feilene er så åpenbare at når det løses, vil det være lett å legge merke til for alle som ser utviklingsprosessen deres,” sa hun.

Det ser ut til at det er akkurat det som har skjedd. Mens Bitcoin Unlimited-utviklerne faktisk løste problemet kort tid etter at det ble påpekt dem, gjorde de det med en altfor iøynefallende GitHub begå melding, Fortalte Gardner Bitcoin Magazine når det så ut til, så virket feilene løst og før angrepene begynte.

“Forpliktelsesmeldingen deres ringer alarmklokker. Jeg er ikke sikker på om noen vil legge merke til det, men de burde sannsynligvis ha skjult beskjeden litt mer. Ordlyden kan tiltrekke seg nærmere gransking. Men hvis det gikk ubemerket så lenge, vil det kanskje gå ubemerket. ”

Det gjorde det tydeligvis ikke.

Som Gardner advarte, tok det ikke lang tid før angripere utnyttet en av sårbarhetene: de første angrepene skjedde kort tid etter at feilene ble løst. Litt senere tok brukeren “shinobimonkey” problemet Reddit, Bitcoin Core-utvikler Peter Todd twitret om feilen og sosiale medier sprengte.

Noen publiserte da til og med utnytte kode for alle å bruke, og kort tid var de fleste Bitcoin Unlimited noder nede, for å bli fulgt av mange Bitcoin Classic noder.

“Dette er nøyaktig hvorfor det skal være en” ansvarlig avsløring “-protokoll, sa Gardner Bitcoin Magazine etter at angrepene fant sted. “Men det hjelper ikke hvis programvareprosjektet ikke er diskret om å løse kritiske problemer som dette.”

Kodekvalitet

Dette er ikke første gang kodekvaliteten til Bitcoin Unlimited eller Bitcoin Classic blir undersøkt.

Som det mest kjente eksemplet, er bitcoin.com gruvedrift basseng, som driver Bitcoin Unlimited, utvunnet en ugyldig blokk forårsaket av en feil i januar i fjor. All energi investert for å produsere blokken ble bortkastet, mens gruvebassenger som spionerte som ble utvunnet på toppen av den ugyldige blokken, også kastet bort litt energi.

Før det hadde Bitcoin Core-utviklere allerede advart om buggy-kode ved flere anledninger. På adresselisten til Bitcoin-utvikling, Matt Corallo sa at han hadde funnet Bitcoin Classic’s fleksible transaksjonskodebase å være “full av åpenbare og massive sikkerhetshull.” På Reddit, Gregory Maxwell pekte ut at Bitcoin Unlimited noder krasjet fordi utviklingsteamet fjernet kode som ikke burde ha blitt fjernet.

Adressering av Bitcoin Unlimited hovedutvikler Andrew Stone som svar på gårsdagens begivenheter, Maxwell foreslått det er flere problemer med Bitcoin Unlimiteds kodebase som ennå ikke har blitt misbrukt:

“Det er sårbarheter i Unlimited som har blitt rapportert privat til deg i Unlimited av Bitcoin Core-folk som du dessverre ikke har handlet etter. Mer alvorlig enn denne, faktisk. ”

Kanskje det største problemet for Bitcoin Unlimited, som pekte ut av informasjonssikkerhetsekspert Andreas Antonopoulos, er at det mangler et betydelig utviklingssamfunn for å utføre riktig kvalitetsanalyse. Antall utviklere som jobber med Bitcoin Unlimited og Bitcoin Classic er relativt lite, og koden som inkluderte det utnyttede sårbarheten ble slått sammen etter å ha blitt vurdert av bare en person – ikke mye for sikkerhetskritisk kode som beskytter folks penger.

Gardner var enig i denne vurderingen:

“I dette tilfellet er sårbarhetene så åpenbare at det er klart at ingen har revidert koden sin fordi disse stikker ut som en sår tommel,” sa hun. “Jeg er forbauset over at gruveindustrien kjører denne programvaren. Men siden de er det, og mange mennesker kan bli skadet, er det beste jeg kan gjøre, bortsett fra å anbefale at de ikke bruker Bitcoin Unlimited, å avsløre problemene og håpe at de er kompetente nok til å fikse det. “

Bitcoin Magazine nådde ut til Bitcoin Unlimited-utviklerne Andrew Stone og Andrea Suisani, men mottok ikke noe svar på tidspunktet for publiseringen.