Представьте, что два миллиона долларов хранятся на маленьком чипе размером с почтовую марку, а пароль к нему забыт. Аппаратные кошельки, такие как Trezor, защищают приватные ключи криптовалют, но при потере пароля доступ к средствам оказывается невозможным. В этой статье рассказывается история, как хакер Джо Гранд помог вернуть доступ к таким деньгам.
К Джо обратился заказчик с аппаратным кошельком Trezor, на котором хранилась криптовалюта на сумму около двух миллионов долларов. Пароль был утерян, а неправильный ввод PIN-кода стирает данные кошелька. Джо провёл двенадцать недель, используя метод «fault injection» — специальную атаку, вызывающую сбой в работе микросхемы, чтобы обойти защиту и получить доступ к памяти устройства без удаления данных.
Для атаки хакер вскрыл корпус кошелька, демонтировал защитные слои и подключил специализированное оборудование, включая осциллограф и программатор. Основная сложность заключалась в том, чтобы поймать момент включения питания, когда чип уязвим, и активировать отладочный режим, позволяющий прочесть содержимое оперативной памяти с PIN-кодом и фразой восстановления.
После нескольких часов попыток глитч-атака сработала, и удалось извлечь доступные данные — оказалось, что PIN был пятизначным, а не четырёхзначным, как предполагали владельцы. Хотя в новых версиях прошивки Trezor многие уязвимости устранены, фундаментальная проблема чипа STM32 остаётся нерешённой, и полная защита зависит от производителя микросхем.
Джо Гранд — инженер и хакер с многолетним опытом, известный участник хакерского коллектива L0pht. Его работа демонстрирует, что даже самые защищённые устройства уязвимы, если подходить к ним с профессиональными знаниями и терпением.