Исследователи разработали атаку, которая использует серьезные уязвимости в прошивке UEFI, используемой многими производителями компьютеров для развертывания скрытых руткитов, которые запускаются на ранних стадиях процесса загрузки вне видимости продуктов безопасности конечных точек. Атака заключается в размещении вредоносных образов в специальный раздел накопителя или в незащищенные области прошивки.

«Сотни устройств потребительского и корпоративного уровня от различных производителей, включая Intel, Acer и Lenovo, потенциально уязвимы», — заявили в своем отчете исследователи из компании Binarly. «Точный список затронутых устройств все еще определяется, но важно отметить, что затронуты все три основных IBV [независимых поставщика BIOS] — AMI, Insyde и Phoenix — из-за множества проблем безопасности, связанных с парсерами изображений, которые они поставляют как части их прошивки».

Вредоносный код, распространяемый через заставки

Большинство производителей ПК используют реализации Unified Extensible Firmware Interface (UEFI), разработанные несколькими компаниями, известными как независимые поставщики BIOS. UEFI — это стандартизированная спецификация встроенного ПО компьютерных систем — современный эквивалент старого BIOS — и включает в себя низкоуровневый код, отвечающий за инициализацию аппаратного обеспечения компьютера перед загрузкой операционной системы, установленной на жестком диске.

IBV позволяют производителям компьютеров настраивать прошивку, в том числе отображать собственный логотип и другие элементы фирменного стиля на экране компьютера на ранней стадии загрузки. Его также называют заставкой, и он отображается до того, как загрузчик операционной системы возьмет на себя управление и инициализирует ядро ​​ОС. Исследователи Binarly решили изучить и использовать эту раннюю косметическую функцию загрузки, поэтому они назвали свою атаку LogoFAIL.

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

Современная прошивка UEFI содержит парсеры изображений в нескольких различных форматах — BMP, GIF, JPEG, PCX и TGA, — что существенно расширяет поверхность атаки и, следовательно, возможность проскальзывания уязвимости. Фактически команда Binarly обнаружила 29 проблем в парсерах изображений, используемых в прошивках Insyde, AMI и Phoenix, из которых 15 можно было использовать для выполнения произвольного кода.

«Эти результаты также показывают масштабы и влияние LogoFAIL, поскольку каждый IBV имеет по крайней мере одну ошибку внутри своих парсеров, и каждый парсер содержит ошибки», — заявили исследователи Binarly в своем техническом описании. «Единственным исключением является парсер PNG от Insyde, основанный на проекте с открытым исходным кодом и, вероятно, уже хорошо протестированный сообществом. Мы обнаружили множество различных классов ошибок: от исключений деления на ноль до разыменования нулевого указателя, от чтения за пределами границ до переполнения кучи».

Команда Binarly обнаружила эти уязвимости посредством нечеткого тестирования (фаззинга), которое включает в себя автоматическую генерацию искаженных или неожиданных входных данных и передачу их целевому приложению, чтобы увидеть, как они ведут себя. Если приложение выходит из строя, это обычно означает, что произошло повреждение памяти, поэтому исследуется основная причина, чтобы выяснить, можно ли вызвать повреждение и использовать его контролируемым образом.

Фаззинг с годами стал стандартным процессом и теперь интегрирован в большинство инструментов тестирования безопасности кода, которые организации используют на этапе разработки, поэтому команда Binarly была удивлена, обнаружив так много уязвимых сбоев в прошивке. «Результаты нашего фаззинга и последующей сортировки ошибок однозначно говорят о том, что ни один из этих парсеров изображений никогда не тестировался IBV или OEM-производителями», — заключили исследователи. «Мы можем с уверенностью сказать это, потому что мы обнаружили сбои почти в каждом протестированном нами парсере. Более того, фаззер смог обнаружить первые сбои после запуска всего за несколько секунд, и, что еще хуже, некоторые парсеры давали сбой на действительных изображениях, найденных в Интернете».

Обход функций безопасности прошивки

Установка вредоносного кода на ранней стадии в загрузчик компьютера или в прошивку BIOS/UEFI не является новым методом. Эти программы называются руткитами загрузочного уровня или буткитами. Они предоставляют злоумышленникам огромные преимущества, поскольку их код выполняется до запуска операционной системы, что позволяет им скрываться от любых продуктов безопасности конечных точек, которые могут быть установлены внутри самой ОС.

Буткит обычно внедряет вредоносный код в ядро ​​ОС, когда оно загружается, и этот код затем использует возможности ядра, чтобы скрыть себя от любых программ, установленных пользователем, что является типичным определением руткита — сокрытие вредоносного ПО, которое запускается с правами root (ядра).

Современная прошивка UEFI имеет несколько средств защиты от этих атак, если они включены производителем компьютера. Например, UEFI Secure Boot — это функция, которая проверяет, были ли загруженные фрагменты кода подписаны с использованием доверенного ключа. Сюда входят драйверы прошивки, также известные как дополнительные ПЗУ, которые необходимы для инициализации различных аппаратных компонентов до того, как загружится ОС, приложения EFI, которые работают внутри самой прошивки, а также загрузчик операционной системы и другие компоненты. Intel Boot Guard предоставляет аппаратный механизм для создания криптографического корня доверия, в котором хранятся OEM-ключи.

Система с включенной функцией Boot Guard и Secure Boot должна предотвратить использование уязвимостей LogoFAIL. К сожалению, это не всегда так, поскольку в некоторых случаях IBV предоставляет производителю компьютера возможность настроить логотип без необходимости соблюдения подписи Boot Guard.

Например, некоторые реализации будут искать предоставленный поставщиком образ в системном разделе EFI (ESP). Это специальный раздел на жестком диске, где EFI ищет различные приложения, включая код загрузчика ОС. В этом случае злоумышленнику достаточно иметь права администратора в ОС, чтобы разместить вредоносный логотип на разделе ESP, а затем изменить переменную NVRAM и принудительно перезагрузить систему.

Это приведет к тому, что прошивка UEFI загрузит вредоносный логотип, который будет использовать одну из выявленных уязвимостей для выполнения вредоносного кода и перехвата нормального потока выполнения. Это произойдет на критическом этапе последовательности загрузки, называемом средой выполнения драйвера (DXE).

Еще одна возможность настройки логотипа для OEM-производителей — использование инструмента, предоставленного IBV, который позволяет исправлять капсулы прошивки, добавлять свой логотип, а затем перепрограммировать эти капсулы во флэш-ПЗУ. Злоумышленник может использовать тот же инструмент для прошивки, чтобы внедрить свой вредоносный логотип, но только если логотип не является частью какого-либо блока кода прошивки с цифровой подписью.

Если логотип, хранящийся в встроенном ПО, не находится в зоне, защищенной Intel Boot Guard или эквивалентной аппаратной загрузкой AMD, злоумышленник также может использовать инструмент флэш-программатора SPI и перепрограммировать флэш-чип, на котором хранится встроенное ПО, если он получит физический доступ к устройству, например, где-то в цепочке поставок или распределения.

Некоторые поставщики компьютеров, такие как Dell, распространяют свой логотип внутри блоков встроенного ПО, на которые распространяется Intel Boot Guard, и не предоставляют дополнительный метод настройки логотипа, например изображения, хранящиеся в ESP. Они не уязвимы для атаки LogoFAIL. «Однако, несмотря на то, что эти устройства не подвергаются непосредственному риску, они по-прежнему содержат парсеры изображений с серьезными уязвимостями, которые необходимо устранить, поскольку они представляют собой опасность, которая может непреднамеренно превратиться в проблему безопасности», — говорят исследователи.

Устранение уязвимости LogoFAIL

Все затронутые IBV выпустили рекомендации по безопасности — Insyde , AMI и Phoenix — и работают с OEM-производителями над выпуском обновленных образов прошивки. Конечным пользователям рекомендуется проверить на веб-сайте соответствующего производителя компьютера наличие обновлений UEFI для своих моделей и установить их как можно скорее.

«Мы оцениваем, что LogoFAIL так или иначе влияет практически на любое устройство, созданное этими поставщиками», — сказали исследователи. «Кроме того, он не ограничивается конкретным оборудованием и может успешно использоваться на устройствах на базе x86 или ARM». Уязвимости отслеживаются как CVE-2023-5058 для прошивки Phoenix, CVE-2023-39538 и CVE-2023-39539 для AMI и CVE-2023-40238 для Insyde. Lenovo, один из затронутых поставщиков ПК, опубликовала собственные рекомендации по безопасности со списком затронутых моделей и доступных на данный момент обновлений.

Источник: https://www.csoonline.com/article/1253397/logofail-attack-can-inject-malware-in-the-firmware-of-many-computers.html

Ваша реакция?
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
Один комментарий к “Атака LogoFAIL может внедрить вредоносное ПО в прошивку многих компьютеров”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *