Логотип ШифрыШифры
ГлавнаяЖурналЛотыУзел ИИВойти
ГлавнаяЖурналЛотыУзел ИИ
Войти
Логотип ШифрыШифры2К26Версияъ1
EmailMAX
Назад к логу

Сид-фраза утекает из Ledger Nano X по сотовой сети в обход защищённого чипа

24 октября 2026 г.
#атаки#железо#крипта

У защищённого чипа в Ledger Nano X есть ровно одна секунда, когда секрет выходит наружу, – и заложена она в конструкцию, а не в ошибку. Secure element генерирует seed в кремнии, который не вскрыть и в лаборатории, подписывает транзакции, не отдавая ключ, и сам доказывает Ledger Live, что устройство подлинное. Всё, что он стережёт, остаётся внутри – кроме той самой секунды.

А секунда эта – первая настройка, когда кошелёк обязан показать владельцу 24 слова. Показать – значит отправить их на экран. Не в чип, из чипа: по обычной шине к дисплею, открытым текстом, тремя проводами. Крепость сама распахивает окно и выставляет в него секрет.

Имплант ждёт ровно у этого окна. Это второй, крохотный компьютер, припаянный к настоящему Ledger Nano X и подключённый к линиям данных дисплея. Он не ломает secure element – он смотрит, как мимо бегут пиксели, узнаёт в них буквы, складывает слова и сохраняет их. Сотовый модем с собственной SIM и антенной выдаёт их наружу. Кошелёк ничего не замечает, а проверка «genuine device» проходит – потому что secure element действительно подлинный.

Снаружи не видно ничего. Корпус, упаковка, поведение – штатные. На первых известных экземплярах имплант ещё выдавал себя при вскрытии: болтающиеся провода, ужатая батарея. Новейшие собраны так, чтобы пережить и вскрытие, и установку на конвейере.

Три незашифрованных провода между чипом и экраном

OLED подключён к secure element по SPI. Джо Гранд (Grand Idea Studio), первым разобравший имплант и показавший реверс на hardwear.io USA 2026, снял эту шину на старте устройства: тактовый SCLK, данные MOSI и линия команда/данные DC – три сигнала. Декодированные байты воспроизводят экран с точностью до пикселя: в его захвате логотип Ledger отрисовывается во втором батче на отметке 734,6 мс. По этим же трём проводам, ровно так же, идут и 24 слова. Шифрования на шине нет.

Вот где вся соль хода. Secure element спроектирован держать удар лаборатории: вскрытие кристалла, инъекция сбоев, зондирование – дорого, ненадёжно и делается под каждый экземпляр заново. Шина дисплея – единственное место, где секрет обязан появиться в открытом виде, потому что его обязан увидеть глаз человека. Атаковать крепость там, где она сама обязана показать содержимое, – дёшево, тихо и в придачу не ломает аттестацию: устройство остаётся подлинным, а имплант висит на нём лишним грузом. На месте того, кто это придумал, ошибкой был бы любой заход на сам SE – он сжигает бюджет об стойкий кремний, тогда как цель висит в сантиметре, на голой шине.

Контраст с другим провалом аппаратного кошелька тут жёсткий. Coldcard мы уже разбирали: там дырой была сама генерация ключей – предсказуемый ГПСЧ, с которого вынесли 1 367 биткоинов. Здесь генерация безупречна, ключ не покидает чип ни на бит. Атакующий просто дождался, пока кошелёк сам покажет владельцу то, что тот обязан один раз увидеть.

Импланты в кошельках были и раньше, но не такие тихие

Гранд в своём разборе ставит находку в ряд: аппаратный шпионаж через канал сбыта – известный класс. Поддельные Trezor One и Model T всплывали на российском маркетплейсе с подменённым мозгом: штатный заблокированный STM32 заменяли разлоченным, с вредоносной прошивкой, и генерация seed переставала быть случайной – устройство выдавало фразу из заранее заготовленного набора. Атакующий знает твой seed раньше тебя. А сам Ledger уже попадал под удар: после утечки клиентской базы в июне 2020 года покупателям рассылали подменённые Nano X с USB-флешкой, припаянной к тест-падам, – фишинг recovery-фразы через малварь на хосте.

Оба хода громкие. Один меняет мозг, другой доваривает к плате хранилище и требует, чтобы жертва воткнула устройство и что-то запустила. Экранный имплант Nano X – тихая эволюция того же класса: он ничего не подменяет, ничего не исполняет на хосте и не ждёт от владельца ни одного действия сверх того, которого кошелёк требует сам, – показа 24 слов.

Прототип выдавал себя пучком медных проводов

Началось с треда на Reddit в августе 2025 года: предупреждение, что некий «Nano X» продают, чтобы красть крипту. Гранд купил устройство, вскрыл и выложил полный разбор. Имплант был откровенным прототипом – зелёная плата-нашлёпка, вклеенная в корпус (маркировка V05), и пучок эмалированных медных проводов, тянущихся от SPI-линий OLED к ней. Плата заняла место, которое раньше занимала часть батареи.

Чтобы освободить объём, батарею ужали до 70 мА·ч. Родной NTC-термистор батареи заменили фиксированным резистором на 10 кОм, а резистор топливного датчика обошли – заряд всегда показывает 100 %. Грубо, но достаточно: владелец не видит ни пропавшей ёмкости, ни чужой платы, пока не вскроет корпус.

Прошивка, которая узнаёт буквы по шаблону

Мозг прототипа – немаркированный ARM Cortex-M0+ в корпусе QFN-20, 3×3 мм. Марок на кристалле нет, поэтому семейство Гранд подтвердил физически: JTAGulator нащупал интерфейс отладки, по SWD вышел на ядро. А дальше – прошивка, и в ней весь метод целиком.

Добраться до неё помогла собственная отладочная обвязка импланта. Тест-пады линий USB (DP/DM) Гранд вывел на обычный разъём Type-A; стоит при включении подтянуть вывод BOOT к питанию – и MCU на 15 секунд уходит в загрузчик, поднимая три последовательных порта USB CDC-ACM и сетевой интерфейс RNDIS. Чистый загрузчик с таким набором интерфейсов – признак не одноразовой поделки, а изделия, задуманного под перепрошивку.

Имплант не распознаёт текст в привычном смысле. Он хранит растровые шаблоны глифов a–z по адресам 0x4D00–0x4E40 и гоняет функции template-matcher по трафику SPI, сопоставляя то, что рисуется на экран, со своими образцами. Узнанные слова он пишет во флеш по адресу 0x7000 – и потом выгружает их через сотовый модуль.

flash-карта импланта
0x4D00–0x4E40   растровые глифы a–z (шаблоны)
0x7000          перехваченный seed / бэкап кошелька

Формат записи минималистичен до предела: индекс слова, длина, дальше коды букв по одному байту на символ.

struct record {
    uint8_t word;        // порядковый номер слова (1..24)
    uint8_t length;      // длина слова в буквах
    uint8_t payload[];   // коды букв: 0x01=A, 0x02=B, ..., 0x1A=Z
};

На дампе Гранда это читается глазами без инструментов – байты раскладываются в слова один в один:

01 05  07 12 01 10 05           1: GRAPE
02 06  13 0F 15 12 03 05        2: SOURCE
03 07  16 09 03 09 0F 15 13     3: VICIOUS
04 04  09 04 05 01              4: IDEA
05 06  05 18 10 05 03 14        5: EXPECT
06 05  13 08 01 06 14           6: SHAFT

Выбор именно шаблонного сопоставления, а не распознавания символов в общем виде, под эту задачу точен. Имплант знает ровно один шрифт – тот, которым Nano X рисует экран, – поэтому пиксельное сличение с заранее снятыми растрами глифов даёт полное совпадение даром: ни модели, ни обучения, почти без вычислений. Cortex-M0+ без блока плавающей точки и с крохотной памятью такое тянет, а полноценный OCR на нём бы не поехал. Цена – хрупкость по входу: сдвинь Ledger отрисовку шрифта на дисплее хоть на пиксель, и шаблоны промахнутся, пока атакующий не снимет и не зашьёт новый набор. Но ставка верная – производитель не трогает рендеринг seed-экрана годами, и имплант закладывается ровно на это.

Здесь важно, что именно вскрыто и для какого поколения. Прошивку дампил Гранд и только с прототипа. Для двух более поздних экземпляров, которые разбирала Tibane Labs, механизм тот же не потому, что кто-то снял их флеш, а потому, что из деталей следует паритет: тот же тап на ту же шину, тот же набор функций на плате. Чипы gen 2 и gen 3 не дампили – это честный разрыв, и он отмечен прямо.

eSIM с профилем «DATA ONLY» и роумингом в двух странах

Радиотракт прототипа – модем Luat Air700E. Гранд вышел на его отладочный UART (MAIN_TXD/RXD к MCU на 115,2 кбит/с, 8N1; DBG сначала 115,2 кбит/с, затем 6 Мбит/с) и снял загрузочный баннер – стоковая прошивка китайского модуля со сборкой начала 2024 года:

(E) Welcome to EiGENCOM D-Fota Time!
(C) Copyright 2020, All Rights Reserved.
(V) Version(2.5), Built @Jan 22 2024 17:20:56
bootloader flashXIPLimit(0x809978), try normal boot system start!

Дальше – eSIM в корпусе MFF2 (DFN-8, 5×6 мм). Гранд вычитал её как обычную карту (Microchip SEC1110, переходник DFN-в-DIP, PySim) и достал профиль:

ICCID:  89314404001365967271
IMSI:   082940401738767429
MCC/MNC: 204 / 04  (Vodafone NL)
EF.SPN:  "DATA ONLY"
EF.EPSLOCI  -> Philippines (Smart, 515-03)
EF.LOCIGPRS -> USA (T-Mobile, 310-260)

Это решение стоит разобрать отдельно. Профиль – дата-онли M2M-eSIM голландского Vodafone, с роуминговыми записями на Филиппины и США. Для канала эксфильтрации выбор аккуратный: такая eSIM оформляется без привязки к личности, молчит на голосе, работает через границы – ровно то, что нужно устройству, которое само уедет по цепочке перепродаж в любую страну. Альтернатива – локальная физическая SIM – привязала бы имплант к одной стране и к точке покупки. Цена дата-онли профиля в другом: ICCID и IMSI зашиты в каждый экземпляр поколения, поэтому один изъятый имплант отдаёт следователю не только свой номер, но и оператора, у которого провижинилась вся партия. Антенна под этот модем – кустарная: 8 см намотанного вручную провода, четвертьволновый отрезок под частоту около 937 МГц. На прототипе это ещё видно невооружённым глазом.

Kapton-flex, севший на заводские тест-пады Ledger

В сентябре 2026 года Tibane Labs получила два имплантированных Nano X по двум разным каналам – два более поздних поколения. Первый, специмен A, куплен на Yahoo! Auctions в Японии; как он туда попал, доподлинно неизвестно (вероятнее всего, через тэнбайя, 転売屋 – перекупщика, возящего дешёвые кошельки из-за рубежа, скорее всего без понимания, что внутри).

Пучка проводов больше нет. Вместо него – гибкая плата из полиимида (Kapton) с настоящим шелкографическим маркингом от U1–U4 к R14 и C14, уложенная плашмя на тыл зелёной платы Nano X. Flex раскроен так, чтобы растечься по плате Ledger и сесть на её заводские тест-пады: GND, VBAT и линии дисплейного SPI. Это разом питание от батареи кошелька и обзор всего, что уходит на экран. Часть паек – не соединения, а якоря: они только держат flex на месте и ни к чему не подключены. Тот, кто это проектировал, держал в руках распиновку тест-падов Nano X.

Мозг сменился на маркированный: ST STM32G431KBU6 (Cortex-M4, 128 КБ флеша, UFQFPN-32), марки на месте, в отличие от gen 1. И маркировка выдаёт возраст: хвост партии CHN 551 по обычной для ST схеме «год-неделя» читается как неделя 51 2025 года. Если так – имплант собран не раньше конца декабря 2025-го, на месяцы позже первого публичного сообщения о прототипе в августе 2025-го. Это не старая находка, а свежая сборка.

Снятый с Ledger, flex оказывается цельным и трёхчастным: широкий слой-тап, вырезанный по контуру платы Nano X, с металлизированными отверстиями под её тест-пады; длинный хвост, кончающийся двумя лепестками с меткой + под сменную батарею; и модульная зона с MCU, обвязкой и экранированным LTE-модулем, с шелкографией, пронумерованной до U6. eSIM здесь ужата до крохотного корпуса 2×2 мм – против 5×6 мм у прототипа; её посадочное место хранит стандартную разводку SIM: питание, земля и три линии ISO 7816 (тактирование, сброс, данные) к модему. Это заказная панелизованная плата из нормального board house, а не кустарщина.

Оранжевый flex, перекрашенный в цвет платы

Второй экземпляр Tibane, специмен B, куплен на Amazon Japan у стороннего продавца из Китая; посылка пришла из Малайзии. Это самый продвинутый имплант из виденных. При вскрытом корпусе и ещё не снятом экране устройство выглядит обычным Nano X: родная батарея, родные края платы и кнопки, нормальный OLED. Единственная зацепка – тонкий чёрный провод антенны вдоль верхней кромки.

Снимаешь экран – и под ним открывается то, что он прятал: сотовый модуль, микроконтроллер и eSIM, тот же набор, что у специмена A, упакованный в пространство под OLED. Каждая улика прежних поколений закрыта по отдельности, и это уже не одно решение, а выверенный набор.

Во-первых, цвет. Flex здесь оранжевый полиимид, но целиком покрыт чёрным под цвет платы Ledger – при вскрытом корпусе он не бросается в глаза. Там, где покрытие стёрлось на хвосте, из-под чёрного проступает оранжевый flex и его сетчатый слой земли. Во-вторых, маркировки MCU и eSIM сошлифованы, номера не прочесть, – тогда как STM32 у специмена A был оставлен полностью маркированным. В-третьих, батарея не тронута: место взято из поролоновой прокладки, которая обычно лежит за OLED и которую здесь просто выдрали, оставив волокна и клей. Главная примета gen 1 и gen 2 – «батарея подозрительно мелкая» – исчезла.

Каждое из этих изменений убивает конкретный признак, по которому имплант ловился при осмотре. Альтернатива – оставить всё как у специмена A: видимый оранжевый flex, маркированные чипы, ужатая батарея. Цена камуфляжа – усложнение сборки и BOM под каждую мелочь. Но доведён он не до конца, и это честно видно в самом экземпляре: модуль Nordic в металлической банке сошлифовать чисто нельзя, поэтому его оставили маркированным – а на крышке его же регуляторные клейма (FCC, CE, японский TELEC) и лот 2539, то есть неделя 39 2025 года. Плюс тот самый чёрный провод антенны, который всё-таки торчит наружу. Опсек сильный, но не герметичный.

Имплант, вырезанный ключом под детали Ledger

Модем здесь другой – Nordic nRF9151 (LTE-M / NB-IoT), современный, с разъёмом U.FL и тонким коаксиалом к антенне. И вот антенну стоит разглядеть: это не отрезок провода, а гибкая печатная антенна, L-образно уложенная по внутренней стенке корпуса и огибающая стойку кнопки, с собственным шелкографическим артикулом AC-A2016-NANO-V1.1. «NANO» называет цель, «V1.1» говорит, что деталь прошла уже минимум одну ревизию. Кто-то спроектировал и заказал радиочасть под одно конкретное устройство. Против кустарной катушки прототипа это прыжок: заказная антенна под корпус Nano X стабильнее и предсказуемее по согласованию. Но платит операция за это уникальным следом – артикул с «NANO» на борту фингерпринтит всю партию: находишь одну такую антенну, узнаёшь всю серию.

Главный же ход – в раскрое самого flex. Снятый с Ledger, специмен B устроен как и A: цельный оранжевый полиимид, только весь в чёрном покрытии. Но вместо того чтобы лечь поверх платы, его основное тело вырезано под пространство под OLED, а вырезы – включая окно – повторяют точную форму некоторых поверхностно-монтируемых деталей самой платы Ledger. Имплант садится вокруг них, как ключ в замок: уронил на место – он сам встал ровно, без измерений и без навыка. Монтажный джиг встроен в сам имплант.

Это разбор решения, а не похвала исполнителю. Специмену A, чтобы держаться на позиции, нужны были лишние пайки-якоря, не несущие сигнала, – то есть установщику приходилось позиционировать flex руками. Специмен B просто падает в гнездо. Ось здесь – масштабируемость: keyed-flex превращает установку в операцию, которую повторяет конвейер, быстро и одинаково, руками без квалификации. Цена – вложение вперёд: панелизованную плату, вырезанную под детали конкретной модели, нужно спроектировать и заказать, и окупается это только на потоке. Снятый имплант оставляет на плате Ledger лишь несколько мелких следов пайки там, где были лепестки. Под сошлифованными корпусами посадочные места договаривают остальное: eSIM снова стандартная MFF2 5×6 мм (как у прототипа, не 2×2 мм, как у A), а MCU – QFN с заметно большим числом выводов, чем 32-ногий STM32 у специмена A, то есть более крупный контроллер.

Семь узлов эволюции при неизменном методе

За три поколения не менялось ничего в сути – тап экрана, чтение слов, выгрузка наружу. Менялось только то, насколько хорошо имплант прячется. Каждая правка бьёт по конкретному признаку, который владелец или ревьюер мог заметить со вскрытым корпусом.

Узел Gen 1 · Grand Gen 2 · специмен A Gen 3 · специмен B
Тап экрана пучок эмалированных проводов Kapton-flex на заводские тест-пады чёрный flex под OLED
Установка ручная пайка позиционирование пайками-якорями ключом под детали платы, падает в гнездо
Вид явная нашлёпка плоский, аккуратный, но оранжевый перекрашен под цвет платы
MCU немаркированный Cortex-M0+ STM32G431KBU6 (Cortex-M4), маркирован QFN, маркировки сошлифованы
Батарея ужата, датчик обойдён ужата, без маркировки и защиты родная, место из прокладки OLED
Связь Luat Air700E + eSIM 5×6 мм экранированный LTE + eSIM 2×2 мм Nordic nRF9151 + eSIM 5×6 мм
Антенна катушка 8 см вручную плоская, поверх батареи заказная «NANO»-антенна в корпусе

CryptoBilis: реселлера попросили замолчать

9 октября 2026 года Ledger сообщила, что разбирает «сообщения о похищенных средствах, связанных с устройствами, проданными через реселлера в Юго-Восточной Азии» (здесь и далее перевод наш). Реселлер – CryptoBilis, авторизованный партнёр Ledger в Малайзии, Индонезии и на Филиппинах; его попросили остановить все продажи и отгрузки. Купившим за последние 90 дней велено не настраивать устройство, а уже настроившим – перевести активы на новое с заново сгенерированной фразой.

Размер потерь не подтверждён. On-chain исследователь Specter оценивает их более чем в $86 млн в биткоине, эфире и Tron; tanuki42 привязывает свыше $72 млн к восьми адресам. Ledger не подтвердила ни суммы, ни причины и говорит, что сообщений об устройствах, купленных напрямую у неё, нет. Экс-кофаундеры CryptoBilis в заявлении для Tibane Labs утверждают, что компанию выкупили новые владельцы в начале 2026 года и что с момента передачи дел в марте у них нулевой доступ к её системам.

Одну параллель Tibane обойти не смогла и объяснить тоже. Специмен B продан продавцом из Китая и отгружен из Малайзии; CryptoBilis базируется в Малайзии, а пост @cryptoian со ссылкой на отредактированные скриншоты реестра (непроверенные) сообщает, что в августе 2026 года компания перешла к акционеру с адресом в Китае. Специмен B у CryptoBilis не покупали, и доказательств связи нет. Исследователи формулируют это осторожно:

Это может быть совпадением, но совпадение неуютное.

Что железо говорит точно – это масштаб замысла за ним. Flex, вырезанный под детали самого Ledger, заказная антенна уже на второй ревизии, подгонка по цвету и сошлифованные марки складываются в планирование, реальный бюджет и цель массового производства. Устройство, купленное на Amazon Japan и приехавшее из Малайзии, намекает, что и аппараты, и, возможно, место вживления – где-то в Малайзии или рядом. Сама Tibane подчёркивает: это лишь версия, ни одно устройство CryptoBilis ею не тестировалось, причину Ledger не называла, а смена владельца сама по себе уликой не является.

Ledger тем временем расширяла паузу. К 11 октября она признала «ограниченное» число затронутых устройств, все – проданные через CryptoBilis. К 13-му – подтвердила механику импланта в тех же словах, что и исследователи: компонент сидит в корпусе, читает экран, при показе 24 слов декодирует их и шлёт по LTE через провижиненную eSIM, не трогая ни secure element, ни ОС, ни транзакции. Дальше – пауза продаж у ещё нескольких партнёров (Shopee Mall, LazMall) и по всему региону: Индонезия, Сингапур, Таиланд, Филиппины, Вьетнам, Малайзия, Гонконг. MediaMarkt Saturn остановила продажи Ledger в своих магазинах после одного импланта у покупателя в Германии (без потерь средств); сплошная проверка розницы и дистрибуции в Европе следов вмешательства не нашла.

Чип сделал всё правильно, и это не помогло

Отдельно Ledger напомнила про «Genuine Check» – и тут же оговорила его предел: механизм не видит несанкционированных физических модификаций, если secure element цел. Это и есть вся история одной строкой. Аттестация проверяет кремний, а имплант к кремнию не прикасается.

Secure element защищает генерацию и хранение seed в стойком к вскрытию кристалле, подпись транзакций без выдачи ключа и доказательство подлинности для Ledger Live. Чего он не защищает – пиксели, которые сам же отправляет на OLED по голой шине, всё остальное железо вокруг него на плате и факт, что к подлинному устройству можно досоединить чужое, а аттестация всё равно пройдёт. Граница доверия кончается на выводах SE, а всё, что человек реально видит, живёт снаружи этой границы.

Схема канала утечки: secure element отправляет 24 слова на OLED по незашифрованной шине SPI, имплант снимает их с той же шины, микроконтроллер распознаёт буквы по шаблонам и через eSIM и сотовый модем выдаёт seed атакующему; secure element при этом не тронут и аттестация проходит
Секрет покидает защищённый кремний по пути к экрану – и там его снимают. Канал подписи и аттестации имплант не трогает вовсе.

Вывод для владельца жёсткий и простой. Имплант способен снять 24 слова только в тот момент, когда кошелёк их показывает, – при настройке. Устройство, которое ни разу не настраивали, утекать нечему. Устройство, которое уже настроили, следует считать скомпрометированным, даже если оно ни к чему не подключалось: фразу спасёт только новый seed, сгенерированный на доверенном устройстве, и перевод средств на него.

Чего пока не видел никто – другого конца канала. Сотовую передачу импланта ещё не перехватывали: куда уходят 24 слова, под каким номером и кто их на том конце принимает, остаётся открытым – Гранд вынес перехват LTE в задел на будущее. Известно, что секрет уходит; неизвестно, в чьи руки. Не восстановлена и первичная точка вживления: кто и на каком участке канала сбыта ставит импланты, следствие Ledger пока не назвало.

Калибр операции виден именно в её зрелости – и она же её выдаёт. Прошивку прототипа вскрыла Grand Idea Studio, два поздних поколения разобрала Tibane Labs; между ними – чистая эволюция скрытности при намертво стоящем методе. Это не поделка энтузиаста: keyed-flex под конкретную плату, антенна на второй ревизии со своим артикулом, перекраска и шлифовка марок – почерк производства, а не единичной сборки. И тот же почерк её фингерпринтит: артикул «NANO», номер eSIM, date-code модуля – каждый сильный ход оставляет собственный след. Secure element отработал безупречно. Ошибка была в допущении, что чип – это и есть весь кошелёк.

Автор: hacker@shifry.local