Ошибка D-Link: ключ шифрования микропрограммы показан в незашифрованном виде

отредактировано 23 июл Раздел: Шифрование и контейнеры
Исследователи в области безопасности продемонстрировали способ расшифровки фирменных образов микропрограмм, встроенных в маршрутизаторы D-Link.

Прошивка - это фрагмент кода, который обеспечивает низкоуровневые функции на аппаратных устройствах. Обычно он жестко запрограммирован в постоянной памяти.

Компании зашифровывают образы встроенного программного обеспечения на своих устройствах, чтобы предотвратить их реверс-инжиниринг конкурентами и субъектами угроз, а также чтобы их клиенты (или, что еще лучше, пока вредоносное ПО) не перепрошивали устройство специальным встроенным ПО.

«Производители обычно шифруют микропрограммы, чтобы не дать людям анализировать двоичные файлы в них. Кроме того, если все сделано правильно, шифрование образов микропрограммы может помешать неавторизованным, модифицированным образам микропрограммы быть доступными для прошивки на устройстве », - объяснил исследователь безопасности Ник Старк в интервью BleepingComputer.

Чтобы расшифровать что-либо, потребуется либо секретный ключ дешифрования, либо средство для взлома алгоритма шифрования. Если образы прошивки действительно зашифрованы, как они могли быть так легко расшифрованы?

Анализ зашифрованного образа прошивки D-Links

В начале своего анализа Starke загрузил последнюю версию прошивки D-Link (1.11B02) со своего веб-сайта поддержки и продолжил использовать Binwalk для анализа.

Binwalk - это простая утилита для обратного инжиниринга, специально разработанная для извлечения и анализа прошивки.

К удивлению исследователя, Binwalk ничего не показал:

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

Интересно, что разархивирование более старой версии "1.02B03", полученной с того же сайта поддержки D-Link, выявило два файла прошивки:

DIR3040A1_FW102B03.bin
DIR3040A1_FW102B03_uncrypted.bin

Наличие двоичного конца, заканчивающегося на «..._ uncrypted.bin», сразу указывало на то, что он потенциально не зашифрован, тогда как другой, вероятно, был зашифрован.

Запуск binwalk на "DIR3040A1_FW102B03_uncrypted.bin" выявил несколько полезной информации:

Screenshot%202020-07-21%20at%207_35_53%20pm.png

«Бинго, заголовок uImage и сопровождающая его файловая система. Мы можем извлечь это с помощью binwalk -eM DIR3040A1_FW102B03_uncrypted.bin. Глядя на файловую систему, первое, что я сделал, - это поиск сертификатов», - объясняет Старк в своем блоге.

Ключи встроены в старые прошивки

После дальнейшего анализа его подозрения были верны, и ключи дешифрования и шифрования были найдены встроенными в двоичный файл.

Screenshot%202020-07-21%20at%207_40_59%20pm.png


Сделав ряд шагов, исследователь смог подготовить среду для достаточной дешифровки последней версии прошивки 1.11B02.

При запуске двоичного файла imgdecrypt для зашифрованного образа микропрограммы был обнаружен секретный ключ: C05FBF1936C99429CE2A0781F08D6AD8

далее,
https://www.bleepingcomputer.com/news/security/d-link-blunder-firmware-encryption-key-exposed-in-unencrypted-image/
Войдите или Зарегистрируйтесь чтобы комментировать.