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