Инъекции в UEFI BIOS. Атака и защита

Расширение функционала базовой системы ввода-вывода (BIOS) с введением единого расширяемого микропрограммного интерфейса (Unified Extensible Firmware Interface, UEFI). Штатные механизмы защиты от атак в случае неконтролируемого встраивания драйверов.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 03.05.2019
Размер файла 22,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Инъекции в UEFI BIOS. Атака и защита

Черчесов А. Э., МФТИ

Базовая система ввода-вывода (BIOS) давно перестала быть простейшей микропрограммой, главной целью которой является инициализация и тестирование на низком уровне аппаратных компонентов компьютера для дальнейшей передачи управления загрузчику операционной системы (ОС). С момента введения единого расширяемого микропрограммного интерфейса (Unified Extensible Firmware Interface, UEFI) BIOS приобретает черты упрощенной современной операционной системы со своими фазами загрузки и механизмами обеспечения безопасности, включая реализацию различных криптографических функций [1]. UEFI также позволяет расширять прошивку платформы, загружая исполняемые образы - драйверы или приложения. Исполняемые образы представляют собой класс файлов, определенных спецификацией UEFI, которые содержат исполняемый код. Загруженные образы получают доступ к сервисам, которые также определены спецификацией UEFI (boot services, runtime services) [2. С. 31]. Исполняемые образы могут быть загружены в память как встроенным менеджером загрузки, так и другими исполняемыми образами [3. С. 17]. Данная возможность позволяет расширять функционал базовой системы ввода-вывода, однако, она создает новые векторы атак в случае неконтролируемого встраивания драйверов.

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

Внедрение в BIOS дает возможность распространить влияние вредоносного кода на все последующие этапы загрузки. Под угрозой оказываются код управления системой (System Management Mode, SMM), существующие средства защиты, загрузчики, гипервизор и операционная система (ОС). Учитывая, что BIOS запускается с высоким уровнем привилегий на одном из первых этапов загрузки ЭВМ, вредоносный код, исполняемый на уровне BIOS, очень сложно детектировать и устранить на последующих этапах. Для понимания способов инъекций вредоносного кода в UEFI и защиты от них, необходимо ознакомиться со всеми фазами загрузки и возможностями инъекции кода в каждую из них.

Согласно спецификации UEFI система проходит следующие этапы загрузки: Security (Sec), Pre EFI Initialization (PEI), Driver Execution Environment (DXE), Boot Dev Select (BDS) [2. С. 11].

Внедрение в фазу Security невозможно из-за проприетарности данной стадии. В данной фазе подготавливается временная память, адрес и размер которой передаются в фазу PEI. Помимо этого в фазу PEI передается адрес и размер стека, состояние платформы, адрес и размер BFV (Boot Firmware Volume) [4]. микропрограммный интерфейс атака драйвер

В фазе PEI инициализируется RAM для запуска фазы DXE. В фазу DXE передается информация об обнаруженных устройствах для корректной инициализации каждого из устройств. Фаза PEI состоит из ядра и модулей PEIM, осуществляющих первичную инициализацию устройств. Список PEIM может быть расширен путем добавления собственных модулей. Ядро PEI обходит все тома прошивки в поиске всех PEI модулей и запускает их. Порядок запуска модулей не случаен и определяется диспетчером PEI. Модули могут иметь зависимости от других модулей, поэтому сперва запускаются модули, не имеющие зависимостей, затем модули, зависящие от них по цепочке [4].

Код DXE состоит из ядра (DXE Core), диспетчера и драйверов. Ядро инициализирует и запускает службы UEFI. Диспетчер осуществляет поиск всех DXE-драйверов и передачу управления каждому из них. Данные драйверы могут содержать зависимости от других компонентов. Каждый DXE-модуль может осуществлять загрузку и запуск исполняемых образов, одним из которых может выступать загрузчик ОС. После исполнения драйверов осуществляется поиск загрузчика ОС [4].

Таким образом, инъекция драйвера как в фазу PEI, так и в DXE может нарушить процесс загрузки ОС, запустив исполняемый образ в UEFI. Рассмотрим практический способ влияния на процесс загрузки на примере инъекции вредоносного DXE-драйвера с использованием утилиты UEFI Tool и программатора. UEFI Tool позволяет считывать и редактировать бинарный файл прошивки (BFV), расширяя его исполняемым кодом и различными данными. В качестве примера приведем сценарий встраивания и функционирования вредоносного драйвера в одной из фаз.

Стоит отметить, что такой драйвер может иметь как примитивный вид, так и представлять собой многофункциональный программный компонент. Для простоты понимания можно ввести допущение, что загружаемый исполняемый образ расположен в корне одной из файловых систем. Данное допущение не уменьшает значимости данного вектора атаки на BIOS, так как исполняемый образ может быть загружен в систему в режиме выполнения самим драйвером, содержащего вредоносный код. Получив список всех файловых систем, драйвер осуществит проверку наличия необходимого образа и, в случае успеха, загрузит код в память и передаст ему управление. Стоит заметить, что для поиска исполняемого образа в коде драйвера могут использоваться протоколы. Как было сказано выше, порядок получения управления различными драйверами строго не определен, а это значит, что на момент выполнения используемые протоколы могут быть еще не доступны для использования. Для обеспечения доступности используемых протоколов необходимо использовать секцию [Depex]. В данной секции указывается список протоколов, использование которых необходимо разрабатываемому драйверу. Эта секция обеспечит получение драйвером управления только тогда, когда системные службы или другие драйверы предоставят доступ к использованию необходимых протоколов, указанных в этой секции.

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

Рассмотренный способ влияния на процесс загрузки подтверждает необходимость проверки каждого из DXE-драйверов, получающих управление, так как каждый из них может содержать потенциально вредоносный код. Доверенную загрузку можно нарушить не только инъекцией DXE-драйверов, но и PEI-драйверов. Разработка драйверов PEI (как для вирусов, так и для средств защиты) сложнее, так как недоступна проинициализированная память, протоколы и системные службы. Однако, процедура инъекции PEI-драйвера в один из томов прошивки системы ничем не отличается.

Для обеспечения защиты от неконтролируемого встраивания драйверов программными средствами необходимо обеспечить гарантированное получение управления средствами защиты при каждом старте ЭВМ до запуска модулей PEI и DXE и невозможность осуществить загрузку ОС в обход средств защиты.

Гарантированное получение управления до запуска модулей можно обеспечить только в случае функционирования средства защиты на уровне PEI Core или SEC. Учитывая проприетарность кода фазы SEC, внедрение компонента защиты в PEI Core представляется правильным. Невозможность осуществить загрузку ОС в обход средств защиты можно обеспечить исключительно путем сертификации BIOS и опломбирования корпуса ЭВМ. Однако, имея сертифицированный BIOS и опломбированный корпус, можно смело утверждать, что компонент безопасности, реализованный в виде DXE-драйвера, получит управление и не позволит нарушить доверенную загрузку, проведя процедуру аутентификации и контроля целостности.

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

Итак, удалось убедиться, что вполне доступными средствами можно осуществить инъекцию вредоносного кода путем расширения BFV DXE-драйвером, более того, это было проделано на практике в стендовых условиях. В то же время эта угроза может быть сведена к нулю, если системную прошивку BIOS UEFI расширить средством защиты, которое будет перехватывать управление при старте, проводить аутентификацию и проверку целостности и в случае успеха продолжать процедуру загрузки.

Список литературы

1. Лыдин C. C. О средствах доверенной загрузки для аппаратных платформ, реализующих спецификацию UEFI // Научно-практический журнал/ФГУП «ВИМИ», М., 2016. Вып. 3. № 114. С. 45-50.

2. Zimmer V., Rothman M., Marisetty S. Beyond BIOS Second Edition, Intel Press, ноябрь 2010 г. URL: https://www.microbe.cz/docs/Beyond_BIOS_Second_Edition_Digital_Edition_(15-12-10)%20.pdf (дата обращения: 15.05.2017).

3. Unified Extensible Firmware Interface Specification Version 2.6 Январь, 2016 г. URL: http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf (дата обращения: 15.05.2017).

4. Agneessens J.-F. Analysis of the building blocks and attack vectors associated with the Unified Extensible Firmware Interface (UEFI) (SANS Institute InfoSec Reading Room). URL: https://www.sans.org/reading-room/whitepapers/services/analysis-building-blocks-attack-vectors-unified-extensible-firmware-34215 (дата обращения: 20.03.2018).

Размещено на Allbest.ru

...

Подобные документы

  • BIOS, который поддерживает технологию Plug-and-Play. Главное назначение наращиваемого программно-аппаратного интерфейса. Отличия в процессе загрузки BIOS и UEFI. Характеристика основных преимуществ UEFI BIOS. Платформы, использующие EFI, инструментарий.

    контрольная работа [1,6 M], добавлен 29.01.2012

  • Программные модули основной BIOS (базовой системы ввода-вывода). Программа тестирования при включении питания компьютера. Реализация системы BIOS в виде одной микросхемы, установленной на материнской плате компьютера. Типы, версии и функции системы BIOS.

    реферат [190,6 K], добавлен 19.08.2010

  • Базовая система ввода-вывода информации. Базовые функции интерфейса и настройки оборудования. Основные понятия и функционирование BIOS. Сведения о системной BIOS компьютера. Затенение ROM-памяти. Самотестирование процессора, модулей оперативной памяти.

    реферат [21,7 K], добавлен 12.12.2011

  • Изучение программы базовой системы ввода-вывода (BIOS) и её настроек. Разработка компьютерной обучающей программы-тренажера "Настройка BIOS" в объектно-ориентированной среде Delphi. Тестирование данного программного продукта и экономические затраты.

    дипломная работа [54,5 K], добавлен 09.10.2013

  • Распространенные проблемы и необходимость перепрошивки. Перепрошивка под Windows и под DOS. Применение программы-прошивальщика и бинарного файла с микрокодом. Обновление BIOS из BIOS через встроенное меню FlashRom, запуск процесса обновления firmware.

    статья [15,1 K], добавлен 03.04.2010

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

    доклад [94,9 K], добавлен 15.09.2013

  • Основные составляющие системного блока. Назначение материнской платы. Базовая система ввода-вывода – Bios. Понятие периферийного устройства. Запоминающие устройства и их виды. Открытая архитектура в устройстве ПК. Устройства для ввода и вывода данных.

    реферат [478,5 K], добавлен 18.12.2009

  • BIOS (базовая система ввода-вывода) - реализованная в виде микропрограмм, часть системного программного обеспечения. Загрузка с помощью BIOS. Программа инициализации. Виды и назначение звуковых сигналов при возникновении сбоя при загрузке компьютера.

    реферат [514,1 K], добавлен 12.04.2012

  • BIOS как базовая система ввода-вывода, его внутренняя структура и основные элементы, модуль расширения и его задачи. Базовый модуль DOS. Функции командного процессора. Утилиты: понятие и содержание, особенности функционирования, главные цели и задачи.

    презентация [219,7 K], добавлен 13.08.2013

  • Основные понятия и функционирование BIOS. Затенение ROM-памяти. Работа системной BIOS при включении компьютера. Программа CMOS Setup Utility настройки BIOS. Содержание основных разделов программы BIOS Setup. Настройка параметров компьютера.

    реферат [47,5 K], добавлен 29.11.2006

  • Использование двоичной системы представления данных и принцип хранимой программы Неймана. Периферийные устройства: клавиатура, мышь, накопитель, принтеры и протеры. Базовая система ввода-вывода BIOS и операционная система DOS. Внешняя и внутренняя память.

    шпаргалка [35,2 K], добавлен 01.02.2009

  • Основные сведения о системной BIOS компьютера, представляющей собой микросхему постоянной памяти ПЗУ, или ROM, расположенную на материнской плате. Основные разделы программы установки Phoenix-Award BIOS CMOS Setup Utility. Настройка работы процессора.

    реферат [34,3 K], добавлен 23.05.2015

  • Базовые разделы BIOS и основные доступные возможности для его настройки: Standard CMOS Features, Advan-ced BIOS Features, Chipset features setup и Integrated Peripherals. Настройки, определяющие быстродействие компьютера, режимы работы его компонентов.

    статья [17,4 K], добавлен 03.04.2010

  • Назначение BIOS, определение хода запуска, первоначальное тестирование и первичная загрузка интерфейсов компьютера. Опции и базовые установки BIOS Setup, редактирование опций разделов Primary Master, Primary Slave, Secondary Master и Secondary Slave.

    статья [29,1 K], добавлен 03.04.2010

  • Описание и предназначение протокола DNS. Использование файла host. Особенности и описание способов атак на DNS: ложный DNS-сервер, простой DNS-флуд, фишинг, атака посредством отраженных DNS-запросов. Защита и противодействие атакам на протокол DNS.

    реферат [324,3 K], добавлен 15.12.2014

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

    дипломная работа [2,0 M], добавлен 05.06.2011

  • Удобство и возможности системы предотвращения атак Snort, типы подключаемых модулей: препроцессоры, модули обнаружения, модули вывода. Методы обнаружения атак и цепи правил системы Snort. Ключевые понятия, принцип работы и встроенные действия iptables.

    контрольная работа [513,3 K], добавлен 17.01.2015

  • Использование программой функции ввода-вывода данных для реализации дружественного интерфейса с пользователем. Функции консоли и особенности их применения для обеспечения аккуратного ввода информации и упорядоченного вывода. Обзор стандартных функций.

    лабораторная работа [40,4 K], добавлен 06.07.2009

  • Общая информация о компьютере. BIOS. Материнская плата. Операционная система. Логические и физические накопители. Арифметический и мультимедийный тест процессора, тест пропускной способности компьютера и кэш-памяти с помощью программы SiSoftware Sandra.

    контрольная работа [3,0 M], добавлен 21.02.2009

  • Аппаратные средства ЭВМ должны работать с программным обеспечением, поэтому для них требуется интерфейс. BIOS дает ЭВМ небольшой встроенный стартовый набор для выполнения остального программного обеспечения на гибких дисках (FDD) и жестких дисках (НDD).

    реферат [28,7 K], добавлен 18.07.2008

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.