В мире криптовалют появилась серьезная угроза безопасности под названием Dark Skippy. Метод позволяет злоумышленникам извлекать секретные ключи из устройств для подписи транзакций, таких как аппаратные кошельки. Атака была обнаружена в контексте устройств для подписи биткоин-транзакций, но потенциально может применяться и в других областях.
Для реализации атаки Dark Skippy необходимо, чтобы устройство для подписи было скомпрометировано вредоносной прошивкой. На момент обнаружения уязвимости случаев применения Dark Skippy в реальных условиях зафиксировано не было. Однако потенциальная опасность атаки остается высокой, учитывая ее эффективность и скрытность.
Суть атаки заключается в возможности модификации прошивки устройства для подписи, чтобы оно незаметно встраивало части секретного ключа в подписи транзакций. Ранее считалось, что для полного извлечения секретного ключа требуются десятки подписей. Однако исследователи показали, что достаточно всего двух подписей, чтобы скомпрометировать устройство. Однократное использование взломанного аппаратного кошелька может привести к потере всех средств.
Процесс атаки Dark Skippy состоит из нескольких этапов:
1. Компрометация устройства для подписи: Злоумышленник модифицирует прошивку устройства. Модификация может произойти тремя способами:
- Физическое вмешательство в устройство
- Обман пользователя, который сам устанавливает вредоносную прошивку
- Внедрение вредоносных устройств в цепочку поставок
2. Использование модифицированной функции подписи: Вместо стандартной схемы Шнорра, использующей случайные 32-байтовые одноразовые числа (nonce), вредоносная прошивка применяет слабые числа с низкой энтропией. Числа представляют собой части извлекаемого секретного ключа. Для 12-словной seed-фразы (общим объемом 16 байт) процесс разделяется на две части:
- Первые 8 байт используются для nonce первой подписи входа транзакции
- Оставшиеся 8 байт применяются для nonce второй подписи входа
3. Мониторинг транзакций: Атакующий сканирует пул неподтвержденных транзакций (mempool) в поисках подписей, созданных скомпрометированным устройством.
4. Извлечение секретных данных: При обнаружении подозрительной транзакции злоумышленник применяет специальный алгоритм, такой как алгоритм кенгуру Полларда, для восстановления секретных одноразовых чисел из публичных данных подписи.
5. Реконструкция секретного ключа: Восстановленные части объединяются, образуя полный 16-байтовый секретный ключ устройства, который представляет собой энтропию 12-словной seed-фразы.
Название “Dark Skippy” происходит от алгоритма кенгуру Полларда, используемого для извлечения секретных данных из подписей. “Skippy” – отсылка к кенгуру, а “Dark” (темный) подчеркивает скрытную природу атаки.
Более сложные версии атаки могут включать дополнительные меры для усложнения обнаружения. Злоумышленники могут использовать “ослепление” одноразовых чисел с помощью встроенного в устройство ключа атакующего. Кроме того, они могут добавлять “водяные знаки” в транзакции, чтобы легче идентифицировать их в блокчейне.
Атака Dark Skippy обладает рядом преимуществ:
- Скрытность: обнаружить атаку практически невозможно.
- Отсутствие дополнительных каналов связи: данные извлекаются через стандартные транзакции в сети Биткоин.
- Работоспособность против устройств без внутреннего состояния: атака может быть выполнена в рамках одной транзакции с несколькими входами.
- Извлечение мастер-ключа: атака позволяет получить доступ ко всему кошельку, извлекая seed-фразу.
- Влияние на всех пользователей взломанного устройства: даже если пользователь самостоятельно генерирует безопасную seed-фразу, он все равно уязвим.
Атака была обнаружена Робином Линусом в ходе обсуждения в Twitter*. Дальнейшие исследования показали, что извлечение 12-словной seed-фразы возможно даже с использованием обычного ноутбука, что делает атаку еще более опасной, чем предполагалось изначально.
Хотя концепция скрытых каналов в одноразовых числах подписей обсуждалась и ранее, Dark Skippy представляет собой наиболее эффективную реализацию этой идеи на сегодняшний день.
Исследователи Ллойд Фурнье, Ник Фэрроу и Робин Линус, обнаружившие уязвимость, 8 марта 2024 года приватно сообщили о ней примерно 15 различным производителям оборудования. Цель этого шага – собрать отзывы о релевантности угрозы в рамках существующих моделей безопасности, обсудить идеи по смягчению последствий и подготовить публичное раскрытие информации.
Публикация демонстрационного кода атаки планируется примерно в сентябре 2024 года. Код позволит создавать вредоносные подписи, идентифицировать затронутые транзакции в пуле неподтвержденных транзакций и декодировать извлеченные seed-фразы.
Для защиты от Dark Skippy рекомендуется использовать устройства, реализующие протоколы подписи с защитой от извлечения данных (anti-exfil).Исследователи также предлагают новые идеи по смягчению последствий атаки, требующие значительного обсуждения и вклада разработчиков. Полное раскрытие информации о Dark Skippy, включая демонстрационный код, планируется на сентябрь 2024 года. Этот код позволит создавать вредоносные подписи, выявлять затронутые транзакции в mempool и декодировать похищенные сид-слова.