Гаманці Coldcard постраждали від вразливості сіда, мільйони bitcoin вкрадено

iconBitcoin.com
Поділитися
AI summary iconКороткий зміст
Новина про вразливість з’явилася, коли було виявлено, що апаратні гаманці Coldcard згенерували слабкі сіди, що призвело до крадіжки близько 70 мільйонів доларів США в bitcoin з сотень адрес 30 липня. Coinkite підтвердила, що вразливий Mk3 прошивка використовувала лише 40 біт ентропії замість 128. Цей недолік виник через оновлення програмного забезпечення 2021 року, яке перейшло на слабший генератор випадкових чисел. Користувачам рекомендується встановити виправлену прошивку та згенерувати нові сіди. Пізніші моделі, такі як Mk4, Q і Mk5, також були вплинуті, але з трохи більшою ентропією. Генеральний директор Coinkite Родольфо Новак вибачився та взяв на себе повну відповідальність. Новини про bitcoin продовжують підкреслювати ризики безпеки в криптовалютному просторі.

Зловмисник використав слабкі сіди, згенеровані деякими апаратними гаманцями Coldcard, щоб вкрасти bitcoin на суму близько десятків мільйонів з сотень адрес 30 липня.

Основні висновки

  • Крадіжки, пов’язані з Coldcard, вивели bitcoin з сотень гаманців 30 липня.
  • Coinkite стверджує, що сіди Mk3 мали близько 40 біт ентропії замість 128.
  • Користувачі Coldcard повинні встановити виправлену прошивку та створити нові ключі перед переказом коштів.

За глибоким аналізом від Galaxy Research, основне викрадення відбулося у щільно координованому випадку тривалістю близько 25 хвилин, тоді як більш широкий аналіз пізніше пов’язав приблизно 1 196 адрес та до 1 083 bitcoin, що мають вартість майже 70 мільйонів доларів США, з діяльністю, що тривала приблизно 41 хвилину. Остаточні цифри можуть змінитися, оскільки слідчі продовжують відстежувати транзакції у публічному блокчейні Bitcoin.

Помилка, що існувала 5 років, досягла bitcoin-гаманців по всьому світу

Захищені гаманці належали переважно тривалим утримувачам, які створили свої ключі відновлення за допомогою Coldcard, що працюють на вразливому прошивці, випущені з березня 2021 року. Coldcard — це армійський апаратний гаманець від канадського виробника Coinkite, розроблений для ізоляції ключів bitcoin (BTC) від пристроїв, підключених до інтернету.

Багато з порожніх адрес протягом років залишалися неактивними. Зловмисник швидко перемістив кошти, сплатив підвищені фіксовані комісії за транзакції та не залишив жодних вихідних даних про зміну, що означає, що кожна адреса була повністю опорожнена. Такий шаблон свідчив про автоматизовану операцію з використанням заздалегідь підготовленого списку приватних ключів, а не про те, що клієнти самостійно переміщували свої кошти.

Крадіжка не була спричинена фішингом, шкідливим ПЗ на комп’ютері користувача, фізичним викраденням пристрою чи звичайним віддаленим вторгненням. Натомість помилка прошивки зменшила випадковість, яка використовувалася при створенні посівних ключів деяких пристроїв Coldcard. Ці посівні ключі виглядали нормально, але були отримані з набагато меншого діапазону можливих комбінацій, ніж обіцяли користувачам.

Генератор випадкових чисел Coldcard тихо не працював

Сід гаманця bitcoin — це секрет, який зазвичай відображається у вигляді 12 або 24 слів, з якого гаманець генерує свої адреси та приватні ключі. Правильно згенерований 12-слівний сід містить 128 біт ентропії — технічну міру, яка описує надзвичайно велику кількість можливих комбінацій, що робить вгадування сіда практично неможливим.

Пристрої Coldcard мали отримувати цю випадковість з апаратного генератора випадкових чисел, вбудованого у мікроконтролер пристрою. Компонент використовує фізичний електричний шум, який зовнішній спостерігач не повинен бути здатний передбачити.

Проте під час міграції програмної бібліотеки у 2021 році Coinkite розкрила, що дві функції генерації випадкових чисел зі спільним інтерфейсом заплуталися. Одна з них зверталася до правильного апаратного генератора пристрою. Інша була слабким програмним запасним варіантом, призначеним для плат без відповідного апаратного забезпечення.

Налаштування вимкнуло стандартний апаратний шлях MicroPython, оскільки Coinkite надала власний апаратний обгортку. Програмне забезпечення перевіряло лише наявність цього налаштування, а не те, чи воно увімкнене. Оскільки налаштування було присутнім, але мали значення нуль, збірка завершилася успішно, тоді як генерація посіву безшумно перейшла на слабший програмний генератор.

Фабричні дані та таймінг замінили справжню випадковість

Цей запасний варіант суттєво залежав від передбачуваної інформації про пристрій, включаючи ідентифікатор чіпа, подібний до серійного номера, та внутрішніх значень годинника, пов’язаних із часом запуску. Зловмисник, який зміг би звузити ці вхідні дані, мав би значно менший діапазон пошуку, ніж 128-бітний, який очікується від безпечно згенерованого посіву.

Coinkite оцінив ефективний простір пошуку для вразливих ключів Mk3 у приблизно 40 біт за поточних припущень. Це все ще велика кількість можливостей, але її можна перебрати за допомогою спеціалізованого обчислювального обладнання, особливо коли атакуючий може порівнювати кандидатські ключі з bitcoin-адресами, видимими у блокчейні.

Скріншот моделі Coldcard Mk3.
Знімок моделі Coldcard Mk3.

Пізніші моделі Coldcard, включаючи Mk4, Q і Mk5, додали деяку випадковість із безпечного елемента. Однак лише обмежена частина досягла впливового генератора, залишивши приблизно 72 біти ефективної ентропії у ключах, створених до встановлення виправленої прошивки. Це було сильніше, ніж у Mk3, але все ще нижче бажаного стандарту в 128 біт.

Різниця подібна до заміни справді випадкового коду замка на код, отриманий з серійного номера замка та часу його першого ввімкнення. Отриманий код може виглядати випадково, але людина, яка знає формулу і може оцінити початкові дані, зможе його відтворити. Багато користувачів мігрують, не тільки з пристроїв Mk3, але й з Mk4, Q та Mk5.

Coinkite просить користувачів створити абсолютно нові ключі

Coinkite опублікувала попередження щодо безпеки та виправила прошивку після того, як дізналася про активну загрозу. Компанія повідомила, що користувачі, які створювали ключі на вразливій прошивці, повинні створити абсолютно новий ключ за допомогою виправленої версії та переказати свої bitcoin на адреси, що знаходяться під контролем цього ключа.

Встановлення оновлення саме по собі недостатнє. Сід, створений за допомогою несправної системи, залишається слабким назавжди, оскільки оновлення прошивки не може додати випадковість до слів, які вже існують.

Coinkite рекомендувала користувачам оновити пристрій, створити новий seed, перевірити резервну копію та відбиток гаманця, підтвердити адресу отримання, надіслати невелику тестову транзакцію, а потім перемістити залишок балансу. Користувачі повинні зберігати стару резервну копію до підтвердження переказу, але більше не повинні вважати старий seed безпечним.

Компанія визначила фіксовані випуски, включаючи Mk3 версії 4.2.0 або пізніше, Mk4 та Mk5 версії 5.6.0 або пізніше, та Q версії 1.5.0Q або пізніше, разом із відповідними версіями Edge. Продукти Tapsigner, Opendime та Satscard використовують інший код і, як повідомляється, не були вплинуті.

Додано безпеку, що захистила деяких власників Coldcard

Користувачі, які додали достатню кількість незалежних кидків кубика під час генерації посіву, були значно захищені, оскільки їхня власна випадковість перекрила дефектний вхід програмного забезпечення. Coinkite зазначила, що принаймні 50 приватних кидків справедливого кубика забезпечують достатню захист від цієї проблеми, хоча додаткові кидки можуть забезпечити більший запас межі.

Сильний пароль BIP-39 також створює окремий гаманець, який не можна відновити лише за допомогою слів-сідів. Багатопідписні гаманці, які вимагають ключів з кількох пристроїв або місць, перш ніж bitcoin може бути переміщений, були частково або повністю захищені, коли вразливий сід Coldcard представляв лише одну частину угоди підпису.

Тим не менш, ці заходи були необов’язковими. Багато жертв, схоже, дотримувалися стандартних рекомендацій з безпеки, доступних на той час: купити відомий апаратний гаманець, згенерувати сем’я офлайн, захистити резервну копію і ніколи не вводити її на пристрій, підключений до інтернету.

Coinkite приймає вину, поки дискусія переходить до ШІ

Генеральний директор Coinkite Родольфо Новак, відомий як NVK, публічно вибачився 31 липня і сказав, що компанія приймає повну відповідальність за невдачу прошивки. «Мені шкода, і я розбитий. Наша команда засмучена новинами вчора», — написав Новак. Він визнав, що гаряча виправка забезпечує безпеку новостворених ключів, але не може відновити ключі, згенеровані під вразливою програмною реалізацією.

Скріншот статті Родольфо Новака, генерального директора Coinkite.
Стаття з вибаченнями генерального директора Coinkite Родольфо Новака. Джерело зображення: X.

Новак пояснив, що Coinkite опублікує повний технічний звіт після перевірки деталей та допоможе користувачам, які звертаються за поліцейськими звітами, клеймами страхування чи незалежними розслідуваннями. Він також попередив розробників, що штучний інтелект (AI) інструменти зараз можуть швидше сканувати старий публічний код на приховані слабкості, ніж традиційні процеси огляду можуть виявити.

Coinkite підкреслила, що має припустити, що нападник використав ШІ для аналізу відкритого вихідного коду програмного забезпечення, хоча жодних доказів не встановлено, як було виявлено цю вразливість. Компанія також визнала, що недавній огляд, проведений за допомогою провідної моделі ШІ, не зміг виявити проблему. Кілька виробників апаратних гаманців-конкурентів звернулися до соціальних мереж, щоб зазначити, що їхні продукти не страждають.

«Ledger не страждає від недавньо опублікованого попередження щодо Coldcard Mk3», — повідомила компанія користувачам X після інциденту з Coldcard. «Пристрої Ledger використовують сертифікований генератор справжніх випадкових чисел (TRNG), вбудований безпосередньо в наш чіп Secure Element, що генерує повні 256 біт ентропії для кожного 24-слівного секретного відновлювального фрази».

«Користувачі Trezor: ваші кошти в безпеці», — пояснив у п’ятницю виробник апаратних гаманців Trezor. «Останній інцидент із Coldcard обмежується їхнім власним кастомним прошивкою та тим, як деякі з їхніх пристроїв генерували випадковість. Trezor не використовує цей код.»

Акаунт Trezor X додано:

Ми завжди поєднували кілька незалежних джерел випадковості (апаратне забезпечення пристрою + хост + безпечні елементи на новіших моделях). Ми щиро вибачаємося перед усіма, хто втратив bitcoin.

Що повинні дивитися користувачі Coldcard далі

Особа нападника залишається невідомою, і вкрадений bitcoin може бути переміщений зі своїх консолідаційних адрес в будь-який момент. Слідчі продовжують визначати, скільки вразливих ключів було насправді згенеровано, яка кількість bitcoin залишається вразливою, і чи були додаткові гаманці з високою вартістю вже виявлені нападником. Однак Coinkite може не мати багато інформації про власників з давніх часів.

«Цікавий двосторонній меч: Coinkite видаляє всі дані клієнтів через 120 днів, щоб захиститися від витоків даних», — повідомив на X співзасновник Casa Джеймсон Лопп. «Що означає, що вони не можуть зв’язатися з клієнтами, які купили вразливі Coldcard протягом останніх 5 років, щоб попередити їх про цю вразливість».

Знімок екрана X псевдонімного відкритого розробника bitcoin під ім’ям calle.
Псевдонімний розробник bitcoin з відкритим кодом, відомий як calle, поділився думками щодо цієї справи. «Я дійсно засмучений за всіх, хто постраждав, особливо тих, хто може втратити свої заощадження. Найгірше те, що вони зробили все правильно», — сказав calle на X.

Інцидент також перевірить, чи зможе Coinkite відновити довіру до Coldcard, чи приймуть виробники апаратних гаманців більш суворі незалежні перевірки генерації seed. Для користувачів негайний пріоритет простіший: будь-хто, хто створив seed на вразливій прошивці без сильного незалежного ентропійного джерела на основі кубиків, паролю або захисту мультипідпису, повинен вважати його скомпрометованим і обережно перевести кошти до нового згенерованого гаманця.

Поза руйнівним крадіжкою біткінерами по всьому співтоваристві попереджають та закликають інших поширювати цю інформацію, перш ніж будуть опорожнені ще більш вразливі гаманці.

Відмова від відповідальності: Інформація на цій сторінці може бути отримана від третіх осіб і не обов'язково відображає погляди або думки KuCoin. Цей контент надається лише для загального інформування, без будь-яких запевнень або гарантій, а також не може розглядатися як фінансова або інвестиційна порада. KuCoin не несе відповідальності за будь-які помилки або упущення, а також за будь-які результати, отримані в результаті використання цієї інформації. Інвестиції в цифрові активи можуть бути ризикованими. Будь ласка, ретельно оцініть ризики продукту та свою толерантність до ризику, виходячи з ваших власних фінансових обставин. Для отримання додаткової інформації, будь ласка, зверніться до наших Умов використання та Розкриття інформації про ризики.