LogoFAIL: атака на компьютер через логотип в UEFI

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

Атака LogoFail через подмену картинки в UEFI

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

Логотип хранится в составе программного кода, который запускается на настольном ПК или ноутбуке сразу после включения, в так называемой прошивке UEFI. Оказалось, что такая неявная возможность замены логотипа открывает путь для серьезной компрометации устройства — взлома с последующим захватом контроля над системой, который можно провести даже удаленно. Возможность проведения такой атаки, получившей название LogoFAIL, недавно продемонстрировали специалисты компании Binarly. Сегодня мы попытаемся рассказать об этой атаке простыми словами, но сначала давайте вспомним об опасности так называемых UEFI-буткитов.

UEFI-буткиты: зловреды, загружаемые до системы

Исторически программа, исполняемая на раннем этапе включения ПК, называлась BIOS или Basic Input/Output System. Это была крайне ограниченная в своих возможностях, но необходимая программа, задачей которой была инициализация аппаратных систем компьютера и передача управления загрузчику операционной системы. С конца 2000-х годов BIOS постепенно начали заменять на UEFI – расширенную версию такой же «базовой» программы, получившую дополнительные возможности, в том числе – защиту от выполнения вредоносного кода.

В частности, в UEFI был реализован протокол Secure Boot, который с помощью криптографических алгоритмов позволяет проверять код на каждом этапе загрузки компьютера. Это значительно усложняет, например, подмену реального кода ОС на вредоносный. Но, увы, даже эти технологии безопасности не исключили полностью возможность загрузки вредоносного кода на раннем этапе. И если злоумышленникам удается «протащить» в UEFI вредоносную программу или так называемый буткит, последствия будут крайне неприятными.

Дело в том, что UEFI-буткит крайне сложно отследить из самой операционной системы. Буткит способен модифицировать файлы системы, запускать вредоносный код в ОС с максимальными привилегиями. А главная проблема заключается в том, что он способен пережить не только переустановку операционной системы с нуля, но и замену жесткого диска. Находясь в прошивке UEFI, буткит не зависит от данных, хранимых на системном носителе. В результате буткит часто используется в сложных, таргетированных атаках. Пример такой атаки описан, например, в этом исследовании наших экспертов.

А при чем тут картинки?

Так как UEFI имеет достаточно серьезные системы защиты от выполнения вредоносного кода, внедрить «троянского коня» в процесс загрузки непросто. Но, как выяснилось, можно воспользоваться ошибками в коде UEFI, которые позволяют выполнить на этом раннем этапе произвольный код. Специалисты компании Binarly не зря обратили внимание на систему замены заводского логотипа. Если у нас есть возможность поменять логотип, значит при его отображении запускается программа, в задачи которой входит чтение данных из файла с графическим изображением и его демонстрация на экране. Что если попробовать вызвать сбой именно у этой программы?

Есть три крупных разработчика программного обеспечения UEFI — это компании AMI, Insyde и Phoenix. Каждая из них подходит к процессу обработки логотипов по-своему. Например, у Insyde есть отдельные программы-обработчики изображений разных форматов, от Jpeg до BMP. У AMI и Phoenix все обработчики собраны в единую общую программу. В каждой из них были обнаружены уязвимости — всего было найдено двадцать четыре критических ошибки. Итоговый результат эксплуатации одной из таких ошибок показан на видео:

Демонстрация атаки LogoFAIL. Источник

Все достаточно просто: атакующий может изменять «изображение» нового логотипа как ему угодно. В том числе, например, выбирать разрешение логотипа таким образом, что данный параметр окажется за пределами, определенными в обработчике. Это приводит к ошибке в вычислениях, а в итоге – к записи данных из «изображения» в область для исполняемых данных. Которые будут выполнены с максимальными привилегиями. В демонстрации на видео выше показан вроде бы безобидный результат работы такого «буткита»: на рабочий стол Windows сохраняется текстовый файл. Но если у вредоносного кода есть такой уровень доступа, атакующий может выполнять практически любые действия в операционной системе.

Примечательно, что некоторые модели устройств крупных производителей оказались не подвержены данной атаке, и по очень простой причине. Замена логотипа в UEFI в них в принципе заблокирована. К таким моделям относятся ряд ноутбуков Apple, а также устройства компании Dell.

Сложные последствия для бизнеса

Теоретически данную атаку можно провести даже удаленно: в некоторых случаях достаточно будет подкинуть «подготовленное» изображение в раздел EFI System Partition на системном диске, и оно будет обработано при следующей перезагрузке. Проблема в том, что для такой операции уже необходим практически полный доступ к системе, то есть любые данные, которые есть на компьютере, уже должны быть доступны злоумышленникам. Казалось бы, зачем делать еще один шаг и задействовать атаку LogoFAIL? Это может быть сделано для того, чтобы обеспечить выживание вредоносного кода даже при переустановке ОС. Что в целом обычно необходимо операторам APT-атак.

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

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.