Атака на ланцюг постачання Ledger: через CryptoBilis викрадено мнемонічні фрази користувачів

Автор: Gu Yu, ChainCatcher Людина переказала 80 біткоїнів на щойно придбаний пристрій Ledger, куплений в офіційного авторизованого дилера. Мнемонічну фразу вона написала від руки й поклала в сейф. Монети надійшли 29 вересня; ціна купівлі — близько $5,2 млн, а пік нереалізованого прибутку сягав $1,38 млн. 9 жовтня о 05:54 (UTC) усі 80 BTC вийшли однією транзакцією. Він зробив усе, як велить інструкція. Того ж ранку в X і Reddit почали з’являтися схожі повідомлення: із Ledger Stax одного користувача зникло майже 100 000 USDT, а мнемонічна фраза так само була написана від руки й замкнена в сейфі. Спільним для всіх постраждалих було одне — пристрої вони купили у південноазійського дистриб’ютора CryptoBilis. 9 жовтня о 13:32 (UTC) Ledger підтвердила, що веде розслідування, і попросила CryptoBilis призупинити всі продажі та відвантаження пристроїв Ledger. Тим, хто купив пристрій через цей канал за останні 90 днів, не варто його ініціалізувати, якщо це ще не зроблено; тим, хто вже ініціалізував, — негайно перевести активи на новий пристрій, створений із новою мнемонічною фразою. I. Збитки можуть перевищити $90 млн Обсяг втрат наразі оцінюють лише за даними блокчейну. Дослідник Specter першим оприлюднив десять зведених адрес о 12:24 — біткоїн, Ethereum і TRON — та оцінив збитки понад $86 млн. Інший дослідник, tanuki42, перелічив вісім із них з оцінкою понад $72 млн. MistTrack зі SlowMist називає цифру «близько $90 млн». Bitquery охопив 311 гаманців і оцінює втрати приблизно в $92,9 млн, зокрема близько $42 млн в Ethereum, $17,6 млн у біткоїнах і $16,5 млн в USDT. Arkham позначив ці адреси як «Ledger Theft»; станом на другу половину п’ятниці на них залишалося близько $71,5 млн, а найбільші позиції — приблизно $29,4 млн в ETH, $17,5 млн у BTC, $13,6 млн в USDD і $10,8 млн в USDT. Показовіший за загальну суму — портрет жертв. Lookonchain зафіксував, що одна адреса внесла 7 млн USDT за три тижні після купівлі обладнання, а всі кошти вивели приблизно за десять годин до публікації звіту — ймовірно, найбільша одинична транзакція цього інциденту. Ще три позначені біткоїн-адреси о 13:44 (UTC) сумарно утримували близько 211 BTC, і на той момент вихідних переказів не було. За даними Chain INK, інцидент зачепив близько 98 гаманців — у середньому приблизно $890 000 на гаманець. Це не роздрібний інвестор, який втратив кілька сотень доларів. Це гаманець, у який людина поклала все, що мала. Порівняння з іншим інцидентом цього року робить розподіл втрат промовистішим за саму суму. У липні Coldcard втратив близько $111 млн через дефект генератора випадкових чисел у прошивці, який дозволяв підбирати мнемонічні фрази, але збитки тоді розподілилися між понад 5 200 гаманцями — у середньому близько $21 000 на гаманець. Інцидент із CryptoBilis, який менш ніж за добу піднявся на друге місце (близько $87 млн), охопив лише близько 98 гаманців із середніми майже $890 000 на гаманець. Попередній випадок був широкою сіттю; цей — точковим збором урожаю. Сам розподіл підтверджує версію «модифікованого модуля»: атакуючі мають мнемонічні фрази, згенеровані на кожному скомпрометованому пристрої, тож можуть чекати — чекати, поки надійдуть кошти, і бити саме по тих, по кому варто. Ті 80 BTC, які відстежив Lookonchain, спокійно лежали в пристрої десять днів, перш ніж їх вивели однією транзакцією. II. Розібраний пристрій: мікроконтролер на шлейфі екрана Ledger досі не розкрила механізм атаки, але дехто вже розібрав пристрій. Найдетальніший опис дав Марк Карпелес, колишній CEO Mt. Gox. Він розповів, що отримав пристрій, відправлений з Малайзії: на Amazon він коштував половину ціни й ішов з Малайзії, а не з Японії, де Карпелес планував замовляти, — і це була перша тривожна ознака. Усередині замість прокладки екрана він виявив прихований модуль: одну жилку антени, скорочену або зовсім прибрану батарею, щоб звільнити місце, LTE-модуль з eSIM і мікроконтролер, під’єднаний до шини SPI пристрою. Його висновок: цей мікроконтролер розпізнає шрифт, який Ledger використовує на екрані 128×64, блокує інтерфейс налаштування мнемонічної фрази, перехоплює слова, що з’являються на екрані, поки користувач їх переписує, і передає їх через LTE. 23pds, директор з інформаційної безпеки SlowMist, окреслив технічний підхід: атакуючі встановлюють мікроконтролер усередині пристрою й під’єднують його до ліній передачі даних SPI екрана; після того як мнемонічна фраза генерується в захищеному елементі й висвічується на екрані, щоб користувач її переписав, шкідливий модуль одночасно фіксує кожен показаний символ і передає його через вбудований LTE або eSIM. Він наголосив: захищений елемент покликаний не давати прямо прочитати чи експортувати приватні ключі, але він не контролює те, що показує екран. Ті кілька секунд, протягом яких мнемонічна фраза висить на екрані, і є вікном атаки. Це пояснює найконтрінтуїтивнішу рису всієї історії: такі пристрої проходять перевірку справжності Ledger. Захищений елемент справжній, він коректно генерує мнемонічну фразу й належно підписує транзакції — за ним просто стежать. Прошивка теж нічого не помічає, бо впроваджений модуль слухає лише під час оновлення екрана. Інакше кажучи, єдиний спосіб його виявити — фізично розібрати пристрій. Можливі й два інші сценарії. Перший — заздалегідь підготовлені фрази відновлення: атакуючі заздалегідь вмикають пристрій, налаштовують його, копіюють фразу й запечатують назад, тож користувач думає, що «налаштовує новий пристрій», а насправді користується набором слів, уже відомим атакуючому. Другий — фішинг. Розробник 0xQuit вважає, що частина жертв могла потрапити на фішинг, і твердити просто «Ledger зламали» безвідповідально. III. «Офіційна авторизація» підтверджує право продавати, а не цілісність ланцюга постачання CryptoBilis — не вуличний торговець. Компанію засновано 2020 року в Куала-Лумпурі, вона є офіційним авторизованим дистриб’ютором і внесена до офіційного списку дилерів Ledger, обслуговує Малайзію, Індонезію та Філіппіни. Крім Ledger, продає Trezor, OneKey, Tangem і SafePal. Проблема саме в цьому. Користувачі дотримуються правил безпеки, яких навчила їх індустрія: якщо не можеш купити напряму на офіційному сайті, знайди «офіційного авторизованого дистриб’ютора». Але авторизація засвідчує лише право компанії продавати — не недоторканність кожного пристрою на її складі й не доброчесність кожного працівника, що його приймає та сортує. Від заводу через логістику, склад, сортування, дистриб’ютора і до вашого порога будь-яка ланка цього ланцюга може бути перехоплена, розкрита й запакована заново. Термозбіжна плівка на пристрої Карпелеса була цілою. Після того як пристрій виходить з-під контролю Ledger, слово «авторизований» не дає жодного фізичного захисту. Ще тонше питання — хронологія. Нові корпоративні документи показують, що CryptoBilis придбали в березні цього року, а з 3 серпня 100% компанії належить особі на ім’я «Jiaming» із зареєстрованою адресою в провінції Хейлунцзян, Китай. Колишні співзасновники підтвердили продаж у березні, заявивши, що тоді ж вийшли з усіх операційних, управлінських та адміністративних ролей і після передачі справ втратили видимість реальної діяльності компанії. Вони закликали нинішнє керівництво діяти прозоро. За даними DeepChain TechFlow, угода про конфіденційність, підписана покупцем і колишнім керівництвом, забороняє їм розкривати деталі транзакції та діє до 19 жовтня. Коли 9 жовтня спалахнув інцидент, колишні керівники юридично не мали права розповідати про деталі придбання. Прямих доказів зв’язку між зміною власника й крадіжками з пристроїв поки немає, і Ledger лише призупинила продажі, не висуваючи жодних звинувачень. 10 жовтня CryptoBilis оголосила про призупинення продажів і відвантажень усіх брендових апаратних гаманців через свої фізичні магазини й онлайн-канали в Малайзії, на Філіппінах та в Індонезії, і нагадала користувачам: мнемонічну фразу має генерувати сам пристрій під час ініціалізації, а користувач — записувати її від руки; будь-який пристрій, до якого додається надрукована чи вже записана картка з мнемонічною фразою, слід вважати небезпечним. CryptoBilis — не єдиний канал, що мав проблеми цього року. У вересні Trezor визнала, що її логістичного провайдера ShipMonk зламали, через що розкрилися справжні імена, телефони й домашні адреси приблизно 81 000 клієнтів у США. У січні Ledger повідомила, що її платіжний процесор Globale злив імена та контактні дані частини покупців з офіційного сайту. Прямих втрат коштів ці інциденти не завдали, але раз за разом передавали атакуючим списки з даними про те, хто й коли отримав апаратний гаманець. За останні три місяці найслабша ланка холодного зберігання перемістилася з коду в логістику. IV. Повернення коштів, самодопомога і найдешевша порада Вікно для повернення коштів закривається. За даними MistTrack, Tether заморозив великий обсяг USDT на відповідних адресах; у відповідь атакуючі почали конвертувати USDT в USDD — стейблкоїн на базі Tron, який Tether заморозити не може. За даними Onchain Lens, 430,2 ETH (близько $1,07 млн) уже зайшли в Tornado Cash через чотири гаманці. У біткоїна й Ethereum немає перемикача заморозки — коли кошти пішли, єдина перепона, що лишається, це біржа. SlowMist і Security Alliance відкрили канали допомоги; остання закликає користувачів, чиї кошти пішли на відповідні адреси, звертатися до своєї групи екстреного реагування SEAL 911. Найпрактичнішу пораду дав CZ. Визнавши це «атакою на ланцюг постачання, обмеженою одним дистриб’ютором», він запропонував конкретне й дієве рішення: після купівлі апаратного гаманця (або завантаження нового програмного) зачекайте кілька тижнів, перш ніж переказувати туди значні суми. Протягом цього часу стежте за новинами… пристрій могли підмінити, а офіційний сайт програмного гаманця — зламати. Самозберігання означає додаткову відповідальність. Логіка цього «періоду ізоляції» не технічна, а інформаційна: якщо партію пристроїв підмінили ще до передачі дистриб’ютору, аналітикам потрібен час, щоб виявити перші вкрадені пристрої та попередити решту. Ці два тижні — буфер, який користувач купує собі сам. Але цей інцидент насправді перевизначив межі терміна «самозберігання». Останні десять років індустрія будувала майже всю розповідь про безпеку самозберігання на криптографії та залізі: захищені елементи, EAL5+, стирання PIN, відкриті аудити. Ніщо з цього не було скомпрометовано. Скомпрометовано шлях від заводу до вашого порога — шлях, що складається з логістичних провайдерів, складів, дистриб’юторів і кур’єрів, де жоден крок користувач не може перевірити. Апаратні гаманці обіцяють, що «приватний ключ ніколи не залишає пристрій». Іронія в тому, що приватний ключ справді не залишив пристрій — просто за ті кілька секунд, поки його показували користувачеві, хтось підглянув його надто близько. А коли межа безпеки тягнеться від чипа до пакунка на вашому порозі, остання лінія оборони, яка в користувача справді є, звучить так: не поспішайте заводити гроші.