СПОСОБ ДОВЕРЕННОЙ ЗАГРУЗКИ В ВИРТУАЛИЗИРОВАННЫХ СРЕДАХ
METHOD OF TRUSTED DOWNLOAD IN VIRTUALISED MEDIA

Изобретение относится к способам предоставления доступа к ресурсам виртуализированной среды (среды виртуализации), а более конкретно к способам доверенной загрузки виртуальных машин. Способ предназначен для защиты среды виртуализации от несанкционированной загрузки виртуальных машин и от получения возможности несанкционированного доступа к конфиденциальной информации, хранящейся внутри виртуальных машин.
Информационные системы, построенные на базе технологий виртуализации, получивших бурное развитие с начала XXI века, имеют серьезные преимущества перед информационными системами, построенными без их применения. Их использование приводит к сокращению количества физических серверов (а вместе с этим приносит значительные экономические выгоды), повышению качества администрирования и доступности инфраструктуры информационной системы и ко многим другим выгодам.
С другой стороны, вместе с преимуществами виртуализация имеет и недостатки, среди которых необходимо выделить рост числа угроз информационной безопасности виртуальной инфраструктуры. Одной из угроз, направленных на нарушение конфиденциальности информации, хранящейся в виртуализированной среде, является угроза, связанная с получением несанкционированного доступа к виртуальным машинам и к пользовательским данным внутри них. Эффективной мерой борьбы с данной угрозой является доверенная загрузка виртуальных машин, т.е. загрузка виртуальных машин после успешного проведения процедур аутентификации пользователя виртуальной машины и контроля целостности файлов виртуальной машины.
Из уровня техники известен способ обеспечения безопасной загрузки компьютерной системы, заключающийся в загрузке безопасного загрузочного кода; загрузке защищенной операционной системы для проведения аутентификации, при этом защищенная операционная система использует драйверы от основной операционной системы; проведение аутентификации пользователя в защищенной операционной системе вплоть до предоставления доступа к основной операционной системе;
после проведения аутентификации осуществляется выпуск ключа шифрования, перезагрузка и расшифрование основной операционной системы с использованием ключа шифрования (US 7,360,073 B1, 15.04.2008, G06F 1/26).
Также из уровня техники известны аппаратные модули доверенной загрузки операционных систем, которые выполняют следующие функции:
- идентификация и аутентификация пользователей до загрузки ОС с помощью персональных электронных идентификаторов;
- блокировка несанкционированной загрузки ОС с внешних съемных носителей;
- контроль целостности объектов системы, объектов пользователя и программного обеспечения МДЗ до загрузки ОС;
- регистрация действий как пользователей, так и программ;
- предоставление возможностей для внешних приложений (работа с датчиком случайных чисел, работа с электронными идентификаторами и т.д.). (Е. Никитин, В. Шрамко. Всегда ли на замке? Как обезопасить компьютер модулем доверенной загрузки. http://samag.ru/archive/article/1068).
Недостатком вышеуказанных способа и модулей доверенной загрузки является их невозможность обеспечить доверенную загрузку виртуальных машин в виртуализированных средах. Кроме того, наличие аппаратной платы имеет свои недостатки, связанные с возможностью обхода передачи управления на нее как физическими, так и микропрограммными способами.
Техническим результатом, на достижение которого направлено данное изобретение, является обеспечение доверенной загрузки виртуальных машин в виртуализированных средах, что в свою очередь повышает защищенность виртуализированных сред от несанкционированного доступа.
Технический результат достигается за счет использования способа доверенной загрузки в виртуализированных средах, который заключается в том, что:
создают раздел на жестком диске виртуализированной среды с загрузчиком, обеспечивающим доверенную загрузку виртуальных машин;
добавляют модуль микропрограммы доверенной загрузки в виртуальный BIOS виртуализированной среды;
осуществляют запуск виртуальной машины, для которой необходима доверенная загрузка, при этом модуль микропрограммы доверенной загрузки осуществляет поиск на жестком диске виртуализированной среды загрузчика, обеспечивающего доверенную загрузку виртуальных машин, и передает ему управление;
осуществляют конфигурацию загрузчика, обеспечивающего доверенную загрузку виртуальных машин, путем добавления сценария загрузки виртуальной машины, создания профилей пользователей, для которых загрузка виртуальной машины разрешена, и выбора файлов виртуальной машины, целостность которых необходимо контролировать;
перезапускают виртуальную машину, для которой необходима доверенная загрузка;
проводят аутентификацию пользователя виртуальной машины;
проводят контроль целостности файлов виртуальной машины при условии успешной аутентификации пользователя виртуальной машины;
производят загрузку виртуальной машины в соответствии со сценарием загрузки виртуальной машины и при условии успешного прохождения контроля целостности файлов виртуальной машины.
На фигуре 1 представлена типовая схема виртуализированной среды с гипервизором I-го типа, т.е. установленным напрямую на аппаратное обеспечение.
На фигуре 2 представлен процесс загрузки виртуальной машины без использования способа доверенной загрузки.
На фигуре 3 показан процесс доверенной загрузки виртуальной машины в виртуализированной среде.
В виртуализированной среде, как правило, предполагается наличие следующих компонентов (фигура 1):
- гипервизор;
- аппаратное обеспечение;
- виртуальная машина;
- гостевая операционная система (не показано, является содержимым виртуальной машины).
Гипервизор создает среду функционирования других программ за счет имитации аппаратных средств вычислительной техники, управления данными средствами и гостевыми операционными системами, функционирующими в данной среде. Гипервизор I типа устанавливается непосредственно на аппаратное обеспечение в качестве системного программного обеспечения.
Виртуальная машина состоит из виртуальных устройств обработки, хранения и передачи данных и дополнительно может содержать программное обеспечение и пользовательские данные. Гостевая операционная система устанавливается на виртуальную машину.
В общем случае загрузка виртуальной машины в виртуализированной среде включает в себя следующие этапы (фигура 2):
1. Запуск загрузочного сектора виртуального BIOS, который выполняет контроль целостности остальных системных компонентов BIOS.
2. Далее виртуальный BIOS инициализирует и выполняет проверку работоспособности виртуального аппаратного обеспечения, имитируемого гипервизором, такого как материнская плата, чипсет, память и процессор.
3. Виртуальный BIOS вызывает дополнительное системное программное обеспечение, которое расширяет возможности основного виртуального BIOS или инициализирует дополнительное виртуальное аппаратное обеспечение, такое как видеокарта, сетевая карта и т.п.
4. После того как все необходимое виртуальное аппаратное обеспечение было сконфигурировано, виртуальный BIOS выполняет поиск устройства (жесткий диск, USB диск, оптический накопитель), с которого возможна дальнейшая загрузка виртуальной машины, и дальше передает управление загрузчику на этом устройстве.
5. Загрузчик выполняет инициализацию и загрузку ядра гостевой операционной системы, установленной на виртуальную машину. После окончания этих процессов управление загрузкой передается от виртуального BIOS к операционной системе.
Вышеуказанная последовательность действий по загрузке виртуальной машины имеет недостаток, заключающийся в том, что доступ к настройкам загрузки виртуальной машины и данным внутри виртуальной машины может получить неуполномоченный пользователь, что может провести к нарушению конфиденциальности информации, хранящейся в виртуальной машине, и подмене файлов сценария загрузки виртуальной машины (угроза целостности). Для устранения вышеуказанного недостатка необходимо использовать доверенную загрузку виртуальных машин.
Предложенный способ доверенной загрузки в виртуализированных средах позволяет обеспечить доверенную загрузку виртуальных машин.
Модуль микропрограммы доверенной загрузки встраивается непосредственно в виртуальный BIOS и начинает свою работу на самых ранних этапах запуска виртуальных машин. Его основная функция - обнаружить, удостоверить загрузчик, обеспечивающий доверенную загрузку виртуальных машин, и передать ему управление.
Загрузчик, обеспечивающий доверенную загрузку виртуальных машин, - это модуль, предоставляющий основные функции для доверенной загрузки внутри виртуальных машин.
После первого запуска виртуальной машины, для которой необходимо обеспечить доверенную загрузку, необходимо произвести конфигурацию загрузчика, обеспечивающего доверенную загрузку и расположенного на жестком диске виртуализированной среды. Целью конфигурации загрузчика, обеспечивающего доверенную загрузку виртуальных машин, является создание конфигурационных файлов, используемых загрузчиком, обеспечивающим доверенную загрузку виртуальных машин, для изменения следующих аспектов работы загрузчика:
- управления контролем целостности файлов виртуальных машин (создание, удаление групп целей (файлов) для контроля целостности);
- управления виртуальными машинами (создание, удаление, создание, правка сценариев загрузки, назначение/сверка групп целей для контроля целостности);
- управления пользователями (создание, удаление, установка паролей, привилегий, назначение доступных к запуску виртуальных машин).
С целью повышения достоверности и защиты от несанкционированных изменений созданные файлы конфигурации в процессе их генерации могут подписываться закрытым ключом во время конфигурирования. Закрытые ключи при этом могут храниться на внешнем носителе, например на флеш-накопителе.
После конфигурации загрузчика, обеспечивающего доверенную загрузку виртуальных машин, виртуальную машину, для которой необходимо обеспечить доверенную загрузку, перезапускают для того, чтобы внесенные на этапе конфигурации изменения вступили в силу.
При следующем перезапуске виртуальной машины пользователь проходит процедуру аутентификации. Например, это может быть аутентификация с использованием пароля. При этом правильный пароль пользователя задается на этапе конфигурации загрузчика, обеспечивающего доверенную загрузку виртуальных машин. Если введенный во время аутентификации пользователем пароль оказался правильным, то загрузчик, обеспечивающий доверенную загрузку виртуальных машин, переходит на следующий этап - контроль целостности файлов виртуальной машины. В случае неудачи завершается запуск виртуальной машины (происходит останов виртуальной машины) и система возвращается в исходное состояние. Таким образом, аутентификация позволяет ограничить круг лиц, имеющих доступ к данным виртуальной машины, до списка уполномоченных пользователей, определенных на этапе конфигурации загрузчика.
На следующем этапе загрузчик, обеспечивающий доверенную загрузку виртуальных машин, проверяет (контролирует) целостность файлов виртуальных машин, список которых был создан на этапе конфигурации загрузчика. Контроль целостности осуществляется с использованием алгоритмов контрольного суммирования (например, MD5, SHA-2 или ГОСТ Р 34.11-2012). Контроль целостности позволяет уполномоченному пользователю убедиться в том, что до запуска виртуальной машины в ее файлы не были внесены несанкционированные изменения. В случае положительного результата проверки целостности начинается загрузка виртуальной машины: производится загрузка в память ядра гостевой ОС, расположенной внутри виртуальной машины, и передача ему управления или передача управления следующему загрузчику. В случае неудачи завершается запуск виртуальной машины (происходит останов виртуальной машины) и система возвращается в исходное состояние.
Загрузчик, обеспечивающий доверенную загрузку виртуальных машин, может после процедуры аутентификации пользователя предоставлять выбор виртуальных машин для запуска из списка виртуальных машин, дозволенных к запуску данному пользователю, созданного на этапе конфигурации загрузчика.
Дополнительно, загрузчик, обеспечивающий доверенную загрузку виртуальных машин, может использовать открытый ключ для удостоверения файлов конфигурации, в случае если эти файлы сгенерированы и подписаны закрытым ключом во время конфигурирования.