Ledger pataisė kritines pasirašymo klaidas praėjus mėnesiams po pataisymų parašymo
Kripto piniginės gamintojas „Ledger“ ragina savo „Ethereum“ programos vartotojus atnaujinti dar kartą, kai ankstesniame saugos leidime liko du pasirašymo trūkumai.
Aparatinės įrangos piniginės gamintojas rugpjūčio 25 d. paskelbė Ethereum programos versiją 1.22.3, pašalindamas spragas, kurios gali paslėpti operacijas nuo įrenginio peržiūros arba įgalioti žetonų patvirtinimą vietoje numatomo mokėjimo.
Atnaujinimas vyksta po ginčų dėl atskiro „Ethereum“ pasirašymo trūkumo, kurį atkartojo konkuruojantis piniginių gamintojas „OneKey“. Ši problema, stebima kaip LSB-023, paveikė senesnes versijas ir leido pažeistam pagrindiniam kompiuteriui įterpti komandas, kad operacijos parametrai galėtų pasikeisti po to, kai jie buvo rodomi, bet prieš pasirašant.
Ledger teigė, kad „OneKey“ pademonstravo 1.22.1 versijos klaidą po to, kai įmonė ją jau ištaisė „Ethereum“ programėlėje 1.22.2, išleistoje rugpjūčio 13 d.
„Nė vienas „Ledger“ vartotojas nebuvo nulaužtas“, – sakė „Ledger“ saugos komanda, apibūdindama demonstraciją kaip laboratorinį atkūrimą, kuriame naudojama pasenusi programinė įranga. Bendrovė teigė, kad nerado jokių išnaudojimo laukinėje gamtoje įrodymų.
„Ledger“ vyriausiasis technologijų pareigūnas Charlesas Guillemetas padarė tą patį skirtumą, sakydamas, kad jau užtaisyto trūkumo atkūrimas nėra „nulaužimas Ledger“.
Tačiau 1.22.2 versija nepašalino visų žinomų „Ethereum“ programos „Ledger“ spragų. Vietoj to, du atskiri trūkumai, LSB-024 ir LSB-025, išliko iki 1.22.3 išleidimo.
Du papildomi pasirašymo keliai liko atviri
LSB-024 paveikė tai, kaip Ethereum programa apdorojo operacijų masyvus aiškaus pasirašymo metu.
Programa nuskaitė operacijų skaičių naudodama 16 bitų reikšmę, bet likusį skaičių išsaugojo 8 bitų lauke. „Ledger“ koncepcijos įrodyme masyvas, kuriame buvo 257 operacijos, skaitiklį grąžino į vieną, todėl įrenginys rodydavo tik galutinę operaciją, nors jo parašas leido atlikti visą partiją.
Išnaudojimui reikėjo pažeisto pagrindinio kompiuterio ir neįprastai didelio užpuoliko valdomo operacijų masyvo. Ledger išbandė scenarijų privačiame tinklo šakute ir nepranešė apie realių vartotojų nuostolius.
Antrasis pažeidžiamumas, LSB-025, paveikė žetonų mokėjimo kelią, kurį naudoja Ledger’s Exchange programa apsikeitimo sandorių metu.
„Ledger“ programa patikrino žetoną, kiekį ir paskirties vietą, bet nepatikrino, ar prašomas veiksmas iš tikrųjų buvo mokėjimas. Todėl kenkėjiškas ar pažeistas apsikeitimo paslaugų teikėjas gali pakeisti prieigos rakto patvirtinimą, atitinkantį tuos pačius parametrus, ir pasirašyti jį be papildomo įrenginio raginimo.
Dėl defekto nepavyko sukurti neriboto patvirtinimo, perjungti į kitą prieigos raktą arba suteikti leidimo savavališku adresu. Patvirtinimas taip pat neperveda lėšų, todėl, kad patvirtintas turtas būtų galima perkelti, reikia atlikti tolesnę operaciją.
Ledger teigė nerado jokių įrodymų, kad apsikeitimo pažeidžiamumas buvo išnaudotas.
Išleidimo istorija kelia atskirą klausimą. „Ledger“ įrašai rodo, kad masyvo skaičiaus problemos sprendimas buvo sujungtas gegužės 5 d., o apsikeitimo patvirtinimo pataisa – gegužės 25 d., likus mėnesiams iki 1.22.2 versijos išleidimo. Jos saugos biuleteniuose nepaaiškinama, kodėl tų pakeitimų nebuvo tame naujinime.
„Ledger“ gynė savo platesnį požiūrį, nurodydamas, kad atnaujinamumas yra esminis aparatinės piniginės saugumo aspektas. Jos saugos komanda teigė, kad ji nuolat nustato pažeidžiamumus, atlikdama vidinius tyrimus ir išorines klaidų mažinimo programas, tada pataiso jas leisdama programinę įrangą.
Vartotojams svarbu atskirti tris pažeidžiamumus. 1.22.2 versija ištaisė komandų perpylimo trūkumą, kurią vėliau atkūrė OneKey, o 1.22.3 versija reikalinga dviem papildomoms pasirašymo klaidoms, atskleistoms rugpjūčio 27 d., pašalinti.
„Ledger“ rekomenduoja įdiegti „Ethereum“ programą 1.22.3 ar naujesnę versiją per „Ledger Live“ ir patikrinti įrenginio versiją. Vien tik aparatinės įrangos piniginės programinės įrangos atnaujinimas nepakeičia paveiktos „Ethereum“ programos.
