Уязвимы миллионы устройств, а рабочего исправления до сих пор нет.
Разработчики Linux активно работают над исправлением критической уязвимости, которая при определённых условиях позволяет злоумышленникам устанавливать вредоносное ПО на уровне прошивки материнской платы. Такие заражения, также известные как «буткиты», получают доступ к самым глубоким уровням устройства, где их сложно обнаружить или удалить.
Недостаток с идентификатором CVE-2023-40547 (оценка CVSS 9.8 из 10) представляет собой уязвимость переполнения буфера, позволяющую атакующим выполнять произвольный код. Она находится в части компонента Shim, обрабатывающей загрузку с центрального сервера через HTTP. Это может быть использовано в различных сценариях, включая компрометацию устройства или сервера, с которого осуществляется загрузка.
Сам по себе Shim — это небольшой компонент, запускаемый в микропрограммном обеспечении устройства на ранних этапах процесса загрузки до непосредственного старта операционной системы. Shim сопровождает практически все дистрибутивы Linux и играет решающую роль в Secure Boot — защите, встроенной в большинство современных вычислительных устройств, гарантирующей, что каждое звено в процессе загрузки поступает от проверенного, надёжного поставщика.
Успешное использование уязвимости позволяет злоумышленникам нейтрализовать этот механизм путём запуска вредоносной прошивки на самых ранних этапах процесса загрузки, прежде чем UEFI передаст управление операционной системе.
Мэтью Гарретт, один из авторов Shim, отмечает, что для успешной атаки хакер должен заставить систему загружаться через HTTP и контролировать соответствующий сервер или перехватывать его трафик.
Хотя, на первый взгляд, это кажется очень сложным в реализации сценарием атаки, преодоление этих барьеров не является невозможным, особенно если атакующий уже имеет сетевой доступ и стремится контролировать устройства пользователей. Использование HTTPS вместо HTTP может предотвратить такие атаки, так как требует аутентификации со стороны сервера.
Исправление уязвимости также несёт за собой некоторые риски, так как требует чего-то большего, чем просто исключение переполнения буфера из кода Shim. Уязвимые версии необходимо будет удалённо отозвать, чтобы исключить возможную компрометацию, однако если это будет сделано до обновления Shim, устройства пользователей могут оказаться временно неработоспособными.
К тому же, ограничения по размеру DBX в 32 килобита, скорее всего, не позволят перечислить все отозванные версии, порой включающие более 200 записей, а значит и устранить уязвимость полностью всё равно не получится.
Так или иначе, патч уже был выпущен и предоставлен дистрибьюторам Linux, которые в настоящее время делают исправления доступными для конечных пользователей.
Как отмечалось ранее, риск успешной эксплуатации в основном ограничивается экстремальными сценариями. Тем не менее, потенциальный вред весьма серьёзен, поэтому пользователям следует установить исправления сразу, как только они станут доступны.
От классики до авангарда — наука во всех жанрах