НОВОСТИ Ошибка выполнения кода в openwrt создала угрозу для миллионов устройств

ТОНИ СТАРК

Знаменитый
ПРЕССА ФОРУМА
PREMIUM USER

ТОНИ СТАРК

Знаменитый
ПРЕССА ФОРУМА
PREMIUM USER
Регистрация
11 Ноя 2019
Сообщения
1,667
Реакции
72
Репутация
0


Исследователь безопасности Гвидо Вранкен выяснил, что почти три года ОС с открытым исходным кодом OpenWRT, которая поддерживает домашние маршрутизаторы и другие типы встраиваемых систем, была уязвима для атак удаленного выполнения кода, поскольку обновления доставлялись по незашифрованному каналу, а проверки цифровой подписи можно было легко обойти. Компания частично исправила ошибку, но отсутствие шифрования сохраняется.

Уязвимость CVE-2020-7982 существует в менеджере пакетов OPKG в OpenWrt. Она возникла из-за механизма проверки целостности загруженных пакетов с помощью контрольных сумм SHA-256, которые встроены в индекс репозитория.

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

Однако выяснилось, что обновления и установочные файлы доставляются через незашифрованные HTTP-соединения, которые открыты для атак, позволяющих злоумышленникам полностью заменить файлы на вредоносные. Злоумышленники также могут обходить проверки цифровой подписи. Все это делает возможным автоматическую установку вредоносного обновления на уязвимое устройство.

По мнению Вранкена, эксплойты для выполнения вредносного кода ограничены в возможностях, потому что злоумышленники должны либо проводить атаку «человек посередине», либо вмешиваться в работу DNS-сервера, который устройство использует для поиска обновлений в Интернете. Это означает, что маршрутизаторы в сети, которые используют законный DNS-сервер, защищены от атак. Вранкен также полагает, что подделка пакетов или отравление кэша ARP могут использоваться для атак, но сам он не тестировал эти методы.

Отсутствие шифрования HTTPS является одной из причин уязвимости, так как оно бы исключало саму возможность для злоумышленников вмешиваться в процесс передачи данных.

Исследователь смог создать сервер downloads.openwrt.org, который обслуживал вредоносное обновление. Пока вредоносный файл имел допустимый размер, он выполнялся уязвимым устройством. По словам Вранкена, это делается просто: нужно создать пакет, который меньше оригинала, вычислить разницу в размерах между оригинальной и скомпрометированной упаковкой и добавить это количество нулевых байтов в конец скомпрометированного пакета.

Чтобы не дать злоумышленникам использовать обнаруженную уязвимость, OpenWRT требует от загруженных обновлений совпадения с криптографическим хешем SHA256. Если хэши не совпадают, то устройства не должны выполнять обновление. Вранкен, однако, обнаружил, что можно было обойти проверку хеша, добавив пробел в начало входной строки в функции checkum_hex2bin.

Обновление с исправлением вышло в конце января. В качестве решения разработчики OpenWrt удалили пробел в сумме SHA256 из списка, заявив, что это исправляет критическую уязвимость. Но Вранкен расценил меру как временную, так как злоумышленник может использовать более старый список пакетов, подписанный разработчиками OpenWrt.

Проблема затрагивает версии OpenWrt с 18.06.0 до 18.06.6, версию 19.07.0, а также LEDE с 17.01.0 до 17.01.7. Пользователям OpenWRT нужно установить либо версию 18.06.7, либо 19.07.1, и убедиться, что обновления предоставляются через соединение HTTPS.
 
Сверху