BitCoin

Soļa attālumā no katastrofas. Bitkoina pēdējās kļūdas anatomija

Ievainojamība CVE-2018-1744

Ievainojamības kriptovalūtu programmatūrā vienmēr ir bijušas un joprojām ir viens no galvenajiem tos attīstības draudiem: ne tik sen – gandrīz uzreiz pēc palaišanas – EOS tīklā tika konstatēta nopietna kļūda, bet kriptovalūtas Verge hešēšanas algoritmu un viena bitkoina forka nepilnības izraisīja uzbrukumu 51% realizāciju. Šķiet, ka tādas kļūdas var būt tikai altkoiniem – un nekādā gadījumā bitkoinam. Jo kas gan var būt sliktāks par pašas galvenās kriptovalūtas ievainojamību, kuras diennakts apgrozījums ir 4,5 mljrd. $. Iespējams – tikai pastāvošo draudu nezināšana.

“Viskatastrofālākā kļūda”

18. septembrī Bitcoin Core izstrādātāji paziņoja par atjauninājuma izlaidi ievainojamības pret DDoS uzbrukumiem novēršanai. Izrādījās, ka tādu uzbrukumu varēja realizēt caur trafika flood vai nosūtot pilnām nodēm informāciju, kas spēj izraisīt tīkla darbības pārtraukumus.

Ievainojamības CVE-2018-1744 labojums sākotnēji bija adresēts vairākiem izstrādātājiem, kas bija saistīti gan ar Bitcoin Core, gan arī ar citiem kriptovalūtu projektiem. Kļūdu aprakstīja Bitcoin Cash izstrādātājs, kas zināms kā Awemany. Savā postā Medium viņš paziņoja, ka CVE-2018-17144 ir “viskatastrofālākā kļūda pēdējo gadu laikā un, protams, viena no viskatastrofālākajām kļūdām bitkoinā”. ASV Nacionālajā ievainojamību datu bāzē (NVD) problēma tiek aprakstīta šādi:

Bitcoin Core 0.14.x līdz 0.14.3, 0.15.x līdz 0.15.2 un 0.16.x līdz 0.16.3 un bitkoina mezglu 0.14.x līdz 0.16.x līdz 0.16.3 ļauj attālināti atteikties sniegt pakalpojumu (lietojumprogrammas traucējumi), ko var ļaunprātīgi izmantot maineri, dublējot ieeju (input). Uzbrucējs var realizēt bitcoind vai Bitcoin-Qt traucējumu.

Tomēr ievainojamība izrādījās nopietnāka, nekā apgalvoja Bitcoin Core izstrādātāji, jo varēja ļaut ļaunprātīgiem maineriem mākslīgi palielināt bitkoinu izlaidi, izmantojot divkāršu ieeju.

Maineri varētu sadalīt bloku ķēdīti gadījumā, ja mēģinātu pārbaudīt transakciju saturošo bloku, kura tiecas divreiz izmantot vienu un to pašu ieeju. Tas izraisītu visas bitkoina infrastruktūras darbības traucējumus. Turklāt ļaunprātīgie maineri, kuri ignorētu atlīdzību par bloku 12,5 BTC apmērā (aptuveni 80 000$), teorētiski varētu izraisīt visas ekosistēmas sabrukumu.

Balti meli vai vienkārši nezināšana?

Iespējams, ka iespējamo katastrofālo seku dēļ izstrādātāji ir nolēmuši saglabāt kļūdu noslēpumā, lai iegūtu laiku tās labošanai.

20.septembrī sastādītajā pārskatā izstrādātāji paskaidroja, ka komanda ir veikusi visus nepieciešamos pasākumus, lai nekavējoties veicinātu programmatūras atjaunināšanu un paaugstinātu ieinteresēto dalībnieku kompetenci, tostarp atliekot pilnīgas informācijas publicēšanu par ievainojamībām, lai iegūtu laiku sistēmu modernizācijai. Bitcoin Core izstrādātāji nolēma atklāt ievainojamības mērogu tikai pēc tam, kad liela daļa bitkoina hashrate bija atjaunināts līdz programmatūras jaunajai versijai. Bitcoin Core paziņojumā teikts:

Mēs nezinām ne par kādiem mēģinājumiem izmantot šo ievainojamību. Tomēr joprojām ir kritiski svarīgi, lai lietotāji izmantotu pēdējos patches lielu reorganizāciju iespējamības, nederīgu bloku maininga vai nederīgu transakciju apstiprināšanas novēršanai.

Kurš atklāja kļūdu?

Viens no tiem, kas palīdzēja novērst šo kritisko kļūdu, bija Bitcoin Core izstrādātājs Korī Filds, kurš gada sākumā konstatēja vienu no nopietnākajām Bitcoin Cash ievainojamībām – tik graujošu, ka, pēc Korī sacītā, tā varēja padarīt neiespējamas drošas transakcijas Bitcoin Cash tīklā. Tas pilnībā sagrautu kriptovalūtas funkcionalitāti (un tātad – cenu).

Kopienas reakcija

Bitkoina lietotāji asi kritizēja Bitcoin Core izstrādātāju komandu par to, kādā veidā tā laida klajā patches un “karsto” kļūdas ziņojumu. Lēmums publicēt paziņojumu, nekonsultējoties ar altkoinu tīklu dalībniekiem, lika vilties daudziem bitkoina piekritējiem. Starp tiem, kas publiski kritizēja komandu, bija arī tā dēvētais Bitcoin Core “slepenais aģents” Džons Karvalgo, kurš tvītu sērijā aprakstīja komandas lēmuma pieņemšanas procesu “aiz slēgtām durvīm”.

Notikums bija vēl viens iemesls strīdiem starp bitkoina un Bitcoin Cash piekritējiem. Tomēr daudzi bitkoina lietotāji pateicās izstrādātājiem par viņu smago brīvprātīgo darbu.

Iespējamās sekas

Neraugoties uz to, ka kļūda ir izlabota, paliek jautājums: kas notiktu, ja to laikus nenovērstu? Daudzi jautāja, vai kādam izdevās izmantot ievainojamību, lai izveidotu “kaudzi viltus bitkoinu”. Kāds pat atklāja, ka testnetā ievainojamības rezultātā ir izveidots 0,1 bitkoins.

Atbildes uz šiem jautājumiem Bitcoin Core komanda sniedza tās pēdējā paziņojumā:

Uzglabātie līdzekļi nav pakļauti un nekad nav tikuši pakļauti riskam. Pat ja kāds pilnā mērā izmantotu šo kļūdu, teorētiskais kaitējums uzglabātajiem līdzekļiem nebija iespējams. Tomēr šobrīd joprojām ir neliels blockchain šķelšanās risks. Tādas šķelšanās gadījumā transakcijas var tikt atceltas pēc to pilnīgas apstiprināšanas. Tāpēc nākamās nedēļas laikā vai aptuveni tad jums jāņem vērā, ka ir neliela iespēja atcelt jebkuru transakciju, kurai ir mazāk par 200 apstiprinājumiem.

Viens no Bitcoin izstrādātājiem – Pīters Vils apgalvojis, ka, ja šo kļūdu kāds būtu izmantojis, tad tā jau būtu pamanīta ar jebkuru jaunu mezglu.

Vēlāk viņš piebilda, ka gadījumā, ja tādu kļūdu kāds būtu izmantojis pēc atjauninājumu izlaides, tad “visos versijas 0.14.0 mezglos rastos kļūme – un visi, kas būtu veikuši atjauninājumus, redzētu brīdinājumu par to, ka viņi neatrodas galvenajā blockchain”.

Viss ir labs, kas labi beidzas

Tādējādi bitkoina decentralizācija un caurredzamība tiek samazināta līdz minimumam, uz to norāda aprakstītā situācija ar ievainojamību CVR-2018-1744, kad atbildīgus lēmumus pieņēma mazākums. Bet ko tik nedarīsi, baidoties zaudēt miljardiem dolāru.

Visas sistēmas atteices iespējamība bija augsta. Ne velti dažādos avotos ievainojamība tiek aprakstīta kā “ļoti briesmīga”, “galvenā”, “katastrofiska” un viena no trim no četrām visnopietnākajām kļūdām, kas kādreiz atrastas bitkoina kodā.

Click to comment

Leave a Reply

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *

Lasītākas ziņas

To Top