Ошибка D-Link: ключ шифрования микропрограммы показан в незашифрованном виде
Исследователи в области безопасности продемонстрировали способ расшифровки фирменных образов микропрограмм, встроенных в маршрутизаторы 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" выявил несколько полезной информации:
«Бинго, заголовок uImage и сопровождающая его файловая система. Мы можем извлечь это с помощью binwalk -eM DIR3040A1_FW102B03_uncrypted.bin. Глядя на файловую систему, первое, что я сделал, - это поиск сертификатов», - объясняет Старк в своем блоге.
Ключи встроены в старые прошивки
После дальнейшего анализа его подозрения были верны, и ключи дешифрования и шифрования были найдены встроенными в двоичный файл.
Сделав ряд шагов, исследователь смог подготовить среду для достаточной дешифровки последней версии прошивки 1.11B02.
При запуске двоичного файла imgdecrypt для зашифрованного образа микропрограммы был обнаружен секретный ключ: C05FBF1936C99429CE2A0781F08D6AD8
далее,
https://www.bleepingcomputer.com/news/security/d-link-blunder-firmware-encryption-key-exposed-in-unencrypted-image/
Прошивка - это фрагмент кода, который обеспечивает низкоуровневые функции на аппаратных устройствах. Обычно он жестко запрограммирован в постоянной памяти.
Компании зашифровывают образы встроенного программного обеспечения на своих устройствах, чтобы предотвратить их реверс-инжиниринг конкурентами и субъектами угроз, а также чтобы их клиенты (или, что еще лучше, пока вредоносное ПО) не перепрошивали устройство специальным встроенным ПО.
«Производители обычно шифруют микропрограммы, чтобы не дать людям анализировать двоичные файлы в них. Кроме того, если все сделано правильно, шифрование образов микропрограммы может помешать неавторизованным, модифицированным образам микропрограммы быть доступными для прошивки на устройстве », - объяснил исследователь безопасности Ник Старк в интервью 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" выявил несколько полезной информации:
«Бинго, заголовок uImage и сопровождающая его файловая система. Мы можем извлечь это с помощью binwalk -eM DIR3040A1_FW102B03_uncrypted.bin. Глядя на файловую систему, первое, что я сделал, - это поиск сертификатов», - объясняет Старк в своем блоге.
Ключи встроены в старые прошивки
После дальнейшего анализа его подозрения были верны, и ключи дешифрования и шифрования были найдены встроенными в двоичный файл.
Сделав ряд шагов, исследователь смог подготовить среду для достаточной дешифровки последней версии прошивки 1.11B02.
При запуске двоичного файла imgdecrypt для зашифрованного образа микропрограммы был обнаружен секретный ключ: C05FBF1936C99429CE2A0781F08D6AD8
далее,
https://www.bleepingcomputer.com/news/security/d-link-blunder-firmware-encryption-key-exposed-in-unencrypted-image/
Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
Войдите или Зарегистрируйтесь чтобы комментировать.