web3
October 13

Web3-безопасность. Взлом Ledger: как его предвосхитили в Trezor?

Взлом Леджера

Перевод

Это вольный перевод ответа на форуме: https://forum.trezor.io/t/detecting-hardware-changes-made-to-a-device/24545/2.

Продолжение

Эта статья - именно продолжение разбора. Начало - здесь: https://teletype.in/@menaskop/ledger-hack-october-2026.

Суть

Ниже предлагаю вам общий перевод ответа с форума Trezor, т.к. в нём по шагам рассказана атака, кот. была совершена в октябре 2026 г. на Ledger.

Шаг №01. Обход основной защиты

Сначала разберёмся с основами: основной чип Trezor - микроконтроллер (MCU) - и защищённый элемент (SE) программно связаны так, что нельзя заменить один из них подставным. Если компоненты твоего Trezor не соответствуют тем, которые установили на заводе, устройство не пройдёт проверку подлинности.
Кратко о том, как это работает: SE использует криптографию с открытым ключом, чтобы доказать приложению Suite, что он принадлежит настоящему Trezor. НО он сделает это только в том случае, если MCU знает правильный ключ связи, также записанный на заводе. Поэтому Suite обращается к MCU, MCU - к SE, а SE возвращает доказательство. Заменишь любой из компонентов - цепочка разорвётся.
При этом… большинство аппаратных изменений программно обнаружить невозможно.
Например, если ты напишешь своё имя маркером на задней стороне Trezor, это будет физическое изменение устройства, которое Suite никогда не сможет обнаружить.
Более существенный пример: если вскрыть корпус Trezor и припаять чип для перехвата данных к каким-нибудь линиям связи - например, между MCU и SE, — получится активный аппаратный компонент, присутствие которого никак не проявляется на программном уровне.
Защита от этого заключается в том, что в реальном мире всё стоит денег.

Шаг №02. Вскрываем корпус

Корпус Trezor спроектирован так, чтобы вскрытие оставляло заметные следы. Его трудно открыть незаметно: ты увидишь разрез по краям либо металлическая задняя пластина будет необратимо деформирована.
Конечно, злоумышленник может изготовить новую заднюю пластину или даже целый корпус. Но это стоит денег.

Таким образом, мы допускаем, что взлом корпуса - инженерная, а не хакасская даже задача.

Шаг №03. Имплант-перехватчик

Допустим, внутрь он всё-таки проник. Что дальше? Установить перехватчик? Где? Перехватывать обмен между MCU и SE бесполезно: эти данные не помогут получить сид-фразу.
Можно перехватывать изображение на экране и записать слова сид-фразы… возможно. Но это большой объём несжатых графических данных. Готовые чипы, достаточно мощные для такой задачи, имеют немалые размеры. А свободного места внутри Trezor мало. Кроме того, чип нельзя просто оставить висеть в воздухе: нужны мелкие выводы и провода, которые не должны касаться других выводов и проводов…
Всё это решаемо. Можно установить небольшую плату с чипом и подключить только питание и линии данных. Поместится ли она в оставшемся пространстве? Кто знает! Возможно, придётся переработать основную плату Trezor. Возможно, понадобятся специально изготовленные компоненты. Расходы быстро растут.

Таким образом, мы уже дошли до стадии, когда внедрение импланта не становится не решаемой проблемой, а, напротив, вполне себе ещё одной инженерной задачей.

Шаг №04. Передача украденных данных: от ключа до GSM

Далее: как извлечь перехваченные данные? Украсть Trezor? Тогда атака должна быть адресной: нужно знать, у кого находится устройство, и проникнуть к нему домой. Перехватить посылку на почте - одно дело; взломать чужой дом - совсем другое. Риски растут, расходы растут.
Или можно встроить крошечный GSM-модем и антенну… Ещё больше дорогих компонентов, которые нужно разместить в ограниченном пространстве.
Или сделать что-то наподобие Dark Skippy и выводить данные через публичные транзакции. Да, но на разработку уйдёт много времени и денег.

Прим. Menaskop: о Dark Skippy расскажу отдельным постом...

Очень скоро расходы достигнут сотен тысяч долларов.(*)

Шаг №05. Отмыв

Ключевой вопрос: удастся ли вообще окупить их украденными средствами? И сможешь ли ты потом спокойно жить с добычей - или правоохранители выйдут на тебя через всё то дорогое оборудование и заказные чипы, которые тебе пришлось поручить кому-то изготовить где-то?
Или ты вместо этого запустишь несколько фишинговых сайтов, которые вежливо попросят людей ввести сид-фразы, сидя в своём особняке в Абудже, Нигерия, потратив десятки долларов на ключевые слова в рекламе Google и несколько центов на хостинг?
Если ты криптомиллионер, возможно, стоит задуматься об этом и не полагаться на единственное устройство Trezor. Лучше заплатить команде юристов, чтобы они продумали, как грамотно организовать всю эту систему. Если ты обычный человек, больше внимания уделяй тому, как хранишь резервную сид-фразу.
(*) Это если ты хочешь масштабировать атаку. Если у тебя на примете одна конкретная жертва - обычный человек, - возможно, получится обойтись несовершенным решением. Особенно если ты также убедишь её установить поддельный Suite, который вообще не проверяет подлинность устройства.
Но если ты уже дошёл до этого… зачем заниматься всей этой сложной электроникой, когда можно украсть сид-фразу, закопанную у жертвы на заднем дворе?
Или, например, надеть человеку мешок на голову, увезти в фургоне без опознавательных знаков и ломать пальцы один за другим, пока он не сообщит PIN-код и все дополнительные парольные фразы.

Итоги

Как видите, организовать такую атаку не просто можно, но она расписана от и до по шагам. Всё, что нужно:

  1. Терпение;
  2. Начальный капитал;
  3. Время.

В остальном - всё было решено на уровне "Lazarus":

  1. Сначала взломали адреса и другие перс. данные жертв и отсортировали "богатых" от "бедных".
  2. Затем купили компанию-дилера Ledger, чтобы внедрить все нужные компоненты;
  3. Потом разослали всё по нужным адресам;
  4. Далее - получили сид-фразы;
  5. И, наконец, начали ждать...;
  6. Когда дождались - вывели средства;
  7. Затем - начали отмывать.

Поэтому аппаратный кошелёк != холод, а холод != 100%-я надёжность. Безопасность же как процесс решает все подобные атаки и даже - пресекает 99% из них на корню.

Подробности: https://t.me/web3news...

До!