
П’ятирічна вада Coldcard у генерації сид-фраз відновила заклики до незалежного тестування прошивки апаратних гаманців після того, як ймовірні атаки вивели майже 90 мільйонів доларів США в біткоїнах з тисяч гаманців.
Нік Перкоко, директор з безпеки Kraken, заявив у дописі на X у неділю, що цей інцидент має слугувати попередженням для індустрії апаратних гаманців, стверджуючи, що виробники не повинні бути єдиними сторонами, які перевіряють, як генеруються сид-фрази гаманців.
Він сказав, що виробнича прошивка повинна пройти незалежне тестування, щоб підтвердити, що затверджене джерело випадковості фактично використовується під час створення секретів гаманця.
Згідно з останнім блокчейн-аналізом від Galaxy Research, підозрювані зловмисники вже вивели понад 1800 BTC з понад 5200 потенційних адрес жертв протягом чотирьох виявлених хвиль атак, хоча фірма підкреслила, що ці цифри є ончейн-оцінками, а не підтвердженими втратами. Coinkite не перевіряла кожен постраждалий гаманець, і самі по собі дані блокчейну не можуть визначити, чи всі атаки були здійснені одним актором.
Coinkite у четвер повідомила, що вразливість датується березнем 2021 року, коли компанія мігрувала частину своєї прошивки під час інтеграції нової криптографічної бібліотеки.
Замість використання призначеного апаратного істинного генератора випадкових чисел Coldcard для створення насіння гаманця, оновлена прошивка випадково викликала слабший детермінований псевдовипадковий генератор, наданий MicroPython.
Згідно з посмертним аналізом Coinkite, призначений генератор випадкових чисел залишався активним в інших частинах прошивки, що дозволяло перевірці коду підтвердити його наявність, не виявляючи, що створення гаманця покладалося на інше джерело ентропії.
Компанія заявила, що не знала про існування генератора MicroPython у відповідному коді до початку розслідування. Хоча апаратний генератор випадкових чисел продовжував працювати для інших функцій, він більше не відповідав за генерацію нових секретів гаманця.
Команда інженерів та безпеки біткоїнів Block незалежно дійшла того ж висновку під час свого технічного огляду. Компанія заявила, що постраждала прошивка викликала детермінований резервний варіант MicroPython замість апаратного генератора випадкових чисел STM32 під час створення сид-фраз гаманців. Хоча Block заявила, що не завершила повне емпіричне тестування кожного пристрою, вона вирішила оприлюднити свої висновки, оскільки повідомлення про активні крадіжки вже з'явилися.
Coinkite оцінює, що сид-фрази, створені на постраждалих пристроях Mk2 та Mk3, можуть містити близько 40 біт ефективної ентропії, тоді як постраждалі моделі Mk4, Mk5 та Q можуть містити близько 72 біт замість запланованих 128 біт.
Використовуючи інцидент з Coldcard як приклад, Перкоко стверджував, що сертифікація апаратних гаманців ігнорувала одну з найважливіших частин безпеки гаманців.
Він сказав, що користувачі наразі повинні довіряти тому, що виробники правильно впроваджують генерацію насіння, оскільки жоден незалежний процес не перевіряє, чи виробнича прошивка фактично викликає затверджене джерело ентропії. Існуючі сертифікації, включаючи оцінки Common Criteria для захищених елементів, огляди CSPN та аудити, спонсоровані постачальниками, систематично не перевіряють цей зв'язок, за словами Перкоко.
Щоб проілюструвати прогалину, він вказав на NIST SP 800-90B, стандарт США, що регулює розробку та валідацію істинних генераторів випадкових чисел, які використовуються в криптографічних системах, а також на німецьку рамкову програму BSI AIS-31, яка встановлює подібні вимоги до тестування. Він стверджував, що порівнянна наскрізна верифікація наразі не існує для апаратних гаманців.
Перкоко також порівняв цей сектор з безпекою платежів, зазначивши, що пристрої для введення PIN-коду не можуть бути відправлені без незалежного лабораторного тестування, тоді як криптографічні модулі уряду США вимагають валідації джерела ентропії перед затвердженням.
Оскільки активність атак продовжувалася протягом вихідних, Coinkite заявила, що зупинила всі відвантаження після підтвердження вразливості та знищила всі пристрої, що залишилися на її об'єктах, які містили постраждалу прошивку.
Тим не менш, компанія порадила клієнтам не викидати постраждалі пристрої, оскільки вони можуть стати важливими, якщо викрадені кошти будуть врешті-решт повернуті через судові процеси. Coinkite додала, що її юридична команда координуватиме свої дії з правоохоронними органами у кількох юрисдикціях, де це доречно.
Оновлення прошивки вже були випущені для кожної постраждалої моделі, включаючи версію 4.2.0 для Mk2 та Mk3, версію 5.6.0 для Mk4 та Mk5, версію 1.5.0Q для Coldcard Q, та версії 6.6.0X і 6.6.0QX для Edge-релізів. За словами компанії, встановлення оновленої прошивки виправляє лише майбутнє створення гаманців і не посилює сид-фрази, згенеровані до виправлення.
З цієї причини користувачам, яких стосується це попередження, доручається створити абсолютно нові сид-фрази після оновлення своїх пристроїв, перевірити адресу одержувача, надіслати невелику тестову транзакцію та мігрувати залишок балансу лише після підтвердження успішної передачі.
Coinkite заявила, що гаманці, створені з використанням щонайменше 50 чесних, приватних кидків кубиків, не вважаються схильними до впливу лише вади генерації випадкових чисел. Компанія додала, що сильна та унікальна BIP-39 парольна фраза надає додатковий рівень захисту, але не усуває слабкість з уже постраждалого насіння, що означає, що міграція залишається рекомендованим курсом дій.
Окремий блокчейн-аналіз від Galaxy Research вказує на те, що атаки тривали з моменту оприлюднення вразливості.
Алекс Торн, керівник відділу досліджень у Galaxy, виявив ймовірну четверту скоординовану хвилю атак 3 серпня, довівши загальну кількість, зафіксовану фірмою, до близько 1815.75 BTC з 5294 потенційних адрес жертв, якщо жодна з груп адрес не перетинається. Торн описав гаманці як «ймовірних жертв Coldcard» і підкреслив, що ці цифри отримані з блокчейн-аналізу, а не з підтверджених записів пристроїв або висновків правоохоронних органів.
Galaxy також повідомила, що активність атак досягла 13.8 виведень коштів з гаманців за блок під час останньої хвилі, порівняно з базовим показником у 0.3 виведення за блок до інциденту. Фірма зазначила, що більшість балансів жертв були відправлені на новостворені адреси замість одного збірного гаманця, тоді як деякі кошти вже пройшли через транзакції другого порядку, що ускладнює відстеження вкрадених біткоїнів.
За даними Galaxy, користувачі, чиї вкрадені кошти залишаються в непідтверджених транзакціях Біткоїна, все ще можуть мати невелику можливість здійснити транзакцію заміщення з вищою комісією до того, як майнери підтвердять початковий переказ.
Посилаючись на документацію Bitcoin Core, дослідницька фірма зазначила, що Replace-by-Fee (заміна за комісію) може бути здійснена лише доки транзакція залишається непідтвердженою і не гарантує повернення коштів, навіть якщо законний власник все ще контролює постраждалі ключі.





