Способ защиты компьютерной системы от загрузки нештатной операционной системы
METHOD OF PROTECTING A COMPUTER SYSTEM FROM THE LOAD OF A NON-STANDARD OPERATING SYSTEM

Изобретение относится к области вычислительной техники, а именно к способам безопасной загрузки операционных систем и может быть использовано для защиты компьютерных систем от загрузки нештатной операционной системы.
Известен способ доверенной загрузки в виртуализированных средах [пат. РФ №2581552 С2, опубл. 20.04.2016 Бюл. №11], заключающийся в том, что создают раздел на жестком диске виртуализированной среды с загрузчиком, обеспечивающим доверенную загрузку виртуальных машин, добавляют модуль микропрограммы доверенной загрузки в виртуальный BIOS, осуществляют запуск виртуальной машины, осуществляют конфигурацию загрузчика, перезапускают виртуальную машину, проводят аутентификацию пользователя виртуальной машины, проводят контроль целостности файлов виртуальной машины, производят запуск виртуальной машины в соответствии со сценарием загрузки виртуальной машины.
Известен способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера [пат. РФ №2538286 С9, опубл. 12.07.2018 Бюл. №20], заключающийся в том, что загружают UEFI из своего модуля памяти, при этом UEFI настроен так, что сразу после выполнения перехода в окружение исполнения драйверов осуществляется запуск тонкого гипервизора, который хранится в отдельном разделе модуля памяти, при этом тонкий гипервизор выбирает, поменьше мере, одно запоминающее устройство для загрузки основной операционной системы, кроме того, тонкий гипервизор имеет встроенный модуль антивируса, который при обнаружении потенциально опасных файлов блокирует их и передает информацию в основной модуль антивируса, выполняемый внутри операционной системы.
Известен способ доверенной загрузки компьютера с контролем периферийных интерфейсов [пат. РФ №2748575 С1, опубл. 27.05.2021 Бюл. №15], заключающийся в том, что выполняют аутентификацию пользователя и обеспечивают контроль загрузки заданной операционной системы СВТ, контролируют целостность оборудования и программной среды СВТ, контролируют и разграничивают доступ к периферийным интерфейсам СВТ.
Известен способ для защищенной начальной загрузки операционной системы с использованием проверки состояния [пат. РФ №2413295 С2, опубл. 27.02.2011 Бюл. №6], заключающийся в том, что запускают загрузчик операционной системы, проверяют загрузчик на правильность и корректное состояние машины, в случае успешной проверки разблокируют системный ключ и предоставляют его загрузчику.
Известен способ защищенной загрузки операционной системы компьютера с проверкой целостности [пат. РФ №2396594 С2, опубл. 10.08.2010 Бюл. №22], заключающийся в том, что запускают загрузчик операционной системы, считывают ключ шифрования, проверяют целостность операционной системы и загружают операционную систему, предварительно записывают загрузчик на внешнем носителе, на начальном этапе загрузки зашифровывают все сектора жесткого диска компьютера, перед проверкой целостности операционной системы осуществляют считывание необходимого для этой проверки и последующей загрузки ключа шифрования, ключ шифрования предварительно сохраняют в защищенной памяти внешнего устройства, для доступа к памяти внешнего устройства требуют аутентификацию пользователя.
Наиболее близким по технической сущности и выполняемым функциям к заявленному (прототипом) является способ загрузки операционной системы, последовательность действий которого сформулирована на основе анализа и обобщения источников [Таненбаум Э. Современные операционные системы. 3-е изд. - СПб.: Питер, 2010. - 1120 с; Preboot Execution Environment (РХЕ) SpeciHcation, Intel Corporation, 1999; Эви Немет, Гарт Снайдер, Скотт Сибасс, Трент Р. Хейн UNIX: руководство системного администратора: Пер. с англ. - К.: BHV, 1997 - 832 с.; Билл Кэлкис Solaris 8: Сертификация системного администратора. Пер. с англ. /Билл Кэлкинс. - К.: ООО «ТИД «ДС», 2003, - 928 с.; Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. - СПб.: Питер, 2013 - 816 с.; М. Руссинович, Д. Соломон, А. Ионеску Внутренне устройство Microsoft Widows. 6-е изд. Основные подсистемы ОС. - СПб.: Питер, 2014. - 672 с.; Мюллер, Скотт Модернизация и ремонт ПК, 19-еизд.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 20П. - 1072 с.: ил.]. Способ заключается в том, что включают питание компьютерной системы, тестируют аппаратуру компьютерной системы (POST-тестирование), запускают менеджер загрузки операционной системы (BIOS, UEFI), считывают из внутренней памяти (CMOS-память) менеджера загрузки операционной системы упорядоченный список источников загрузки операционной системы (НЖМД, USB, LAN), обращаются к первому в списке источнику загрузки операционной системы, при обращении к источнику загрузки операционной системы считывают и запускают на исполнение первый блок кода программы загрузчика операционной системы, в случае отсутствия доступа к источнику загрузки операционной системы обращаются к следующему источнику в списке, выводят сообщение о результатах загрузки операционной системы.
Исследованные аналоги и прототип не исключают возможность загрузки нештатной операционной системы, если источник ее загрузки указан в настройках менеджера загрузки операционной системы (BIOS/UEFI).
Техническая проблема заключается в необходимости расширения арсенала технических средств защиты компьютерной системы от загрузки нештатной операционной системы. Техническая проблем обусловлена известной угрозой загрузки нештатной операционной системы [Банк данных угроз безопасности информации ФСТЭК РФ: УБИ 018, URL: https://bdu.fstec.ru/threat/ubi.018]. Угроза заключается в возможности подмены нарушителем загружаемой операционной системы путем несанкционированного переконфигурирования в BIOS/UEFI пути доступа к загружаемой операционной системе.
Техническим результатом является повышение защищенности компьютерной системы от загрузки нештатной операционной систем.
Техническая проблема устраняется за счет за счет создания технического решения, заключающегося в исключении возможности доступа к недоверенным источникам загрузки операционных систем вне зависимости от списка источников, хранящихся во внутренней памяти менеджера загрузки операционной системы (BIOS/UEFI), за счет разрыва электрических цепей интерфейсов недоверенных источников загрузки операционной системы.
Техническая проблема решается тем, что в способе защиты компьютерных систем от загрузки нештатной операционной системы включают питание компьютерной системы, тестируют аппаратуру компьютерной системы, запускают менеджер загрузки операционной системы, считывают из внутренней памяти менеджера загрузки операционной системы упорядоченный список источников загрузки операционной системы, обращаются к первому в списке источнику загрузки операционной системы, при обращении к источнику загрузки операционной системы считывают и запускают на исполнение первый блок кода программы загрузчика операционной системы, в случае отсутствия доступа к источнику загрузки операционной системы обращаются к следующему источнику в списке, выводят сообщение о результатах загрузки операционной системы, согласно изобретению дополнительно до включения питания компьютерной системы задают перечень недоверенных источников загрузки операционной системы, в разрыв электрических цепей интерфейсов недоверенных источников загрузки операционной системы добавляют нормально разомкнутые реле, управляющие контакты реле через соответствующий контроллер соединяют с управляющим интерфейсом компьютерной системы, после загрузки операционной системы командой через управляющий интерфейс и контроллер подают напряжение на управляющие контакты реле, тем самым замыкая разомкнутые электрические цепи интерфейсов недоверенных источников загрузки операционной системы и включая их, поддерживают напряжение на управляющих контактах реле во время работы операционной системы.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностями признаков, тождественным всем признакам заявленного способа, отсутствуют. Следовательно, заявленное изобретение соответствует условию патентоспособности «новизна».
Перечисленная новая совокупность существенных признаков обеспечивает решение технической проблемы - расширение арсенала технических средств защиты компьютерной системы от загрузки нештатной операционной системы за счет создания технического решения, заключающегося в исключении возможности доступа к недоверенным источникам загрузки операционных систем вне зависимости от списка источников, хранящихся во внутренней памяти менеджера загрузки операционной системы (BIOS/UEFI), за счет разрыва электрических цепей интерфейсов недоверенных источников загрузки операционной системы.
Результаты поиска известных решений в данной и смежной областях техники с целью выявления признаков, совпадающих с отличительными от прототипов признаками заявленного изобретения, показали, что они не следуют явным образом из уровня техники. Из определенного заявителем уровня техники не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения на достижение указанного технического результата. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
«Промышленная применимость» способа обусловлена наличием элементной базы, на основе которой могут быть выполнены устройства, реализующие данный способ с достижением указанного в изобретении результата.
Заявленный способ поясняется чертежами:
фиг. 1 - схема взаимодействия элементов компьютерной системы;
фиг. 2 - блок-схема способа защиты компьютерной системы от загрузки нештатной операционной системы.
Описание схемы взаимодействия элементов компьютерной системы (фиг. 1).
В разрыв электрических цепей интерфейсов (блок 9, фиг. 1) недоверенных источников загрузки операционной системы включены нормально разомкнутые контакты (блок 8, фиг. 1) реле (блок 4, фиг. 1), управляющие контакты которого (блок 7, фиг. 1) через контроллер (блок 1, фиг. 1) и управляющий интерфейс (блок 3, фиг. 1) соединены с компьютерной системой (блок 2, фиг. 1), состоящей из взаимосвязанных программной (блок 5, фиг. 1) и аппаратной частей (блок 6, фиг. 1).
Компьютерная система - совокупность аппаратных средств, управляемых программным обеспечением как единый модуль. Компьютерная система может также предоставлять общие услуги, такие как управление доступом, взаимодействие процессоров и графический интерфейс пользователя [ГОСТ Р ИСО/МЭК ТО 10032-2007 - Эталонная модель управления данными].
Операционная система - комплекс программ, осуществляющих управление вычислительным процессом и реализующих наиболее общие алгоритмы обработки информации [Глушков В.М. Энциклопедия кибернетики. - в 2-х т. - Киев, 1974; Рябченко Е.Ю. Архитектура и безопасность операционных систем. Учебное пособие. / Е.Ю. Рябченко. - Казань: Казан, ун-т, 2015. - 157 с].
Операционная система для своего функционирования должна быть загружена в память компьютерной системы. Загрузка операционной системы осуществляется с помощью менеджера загрузки операционной системы - системного программного обеспечения, обеспечивающего загрузку операционной системы непосредственно после включения компьютера. Примером менеджеров загрузки могут служить NTLDR, LILO, GRUB и др.
Загрузка операционной системы осуществляется с источника загрузки операционной системы.
Источник загрузки операционной системы - это аппаратное обеспечение, содержащее файлы, необходимые для запуска компьютера. Например, жесткий диск, дисковод гибких дисков, дисковод компакт-дисков, DVD-привод и USB-накопитель, сервер загрузки.
Интерфейсом взаимодействия компьютерной системы и источника загрузки могут являться, например, интерфейсы SATA, Ethernet, USB, и т.д. [Официальный сайт IEEE: URL: https://ieee.org; Serial ATA International Organization: Serial ATA Revision 3.5a Specificationl; Официальный сайт USB Implementers Forum, Inc. URL: https://www.usb.org/documents].
На физическом уровне взаимодействие между компьютерной системой и загрузочным устройством осуществляется посредством передачи заданных сигналов по электрическим цепям.
Например, в случае использования протокола Ethernet 100Base-TX, на физическом уровне компьютерная система и загрузочное устройство соединяются двумя витыми парами.
Реле - электрическое устройство (выключатель), предназначенное для замыкания и размыкания различных участков электрических цепей при заданных изменениях электрических или неэлектрических входных величин [Гуревич В.И. Электрические реле. Устройство, принцип действия и применения. Настольная книга инженера. - М.: Солон-пресс, 2011. - 700 с.: ил.].
Нормально разомкнутые контакты реле - контакты, которые находятся в разомкнутом состоянии при отсутствии каких-либо воздействий на них.
В заявленном способе может использоваться реле серии IM03TS, например, Axicom 1-1462037-8 [Официальный сайт производителя URL: https://www.te.com].
Управляющие контакты реле - контакты, подача управляющего воздействия на которые (напряжения) приводит к изменению состояния управляемых контактов (в частности - замыканию нормально разомкнутых контактов).
Контроллер - микросхема, предназначенная для управления электронными устройствами.
В заявленном способе может использоваться микроконтроллер серии LPC40xx, например, ARM Cortex-M4 LPC4078FBD144,551 [Официальный сайт производителя URL: https://www.arm.com].
Описание блок-схемы способа защиты компьютерной системы от загрузки нештатной операционной системы.
Задают перечень недоверенных источников загрузки операционной системы (блок 10, фиг. 2).
1
2
L
1
2
M
Пусть перечень всех источников загрузки операционной системы обозначен множеством S={s, s, …, s}, перечень недоверенных источников обозначен множеством R={r, r, …, r}, где L - количество источников загрузки операционной системы, М - количество недоверенных источников загрузки операционной системы, R ∈ S, М<L.
В разрыв электрических цепей интерфейсов недоверенных источников загрузки операционной системы (фиг. 1, блок 9) добавляют (блок 11, фиг. 2) нормально разомкнутые реле (фиг. 1, блок 4).
Управляющие контакты реле через соответствующий контроллер соединяют с управляющим интерфейсом компьютерной системы (блок 12, фиг. 2).
Указанные действия (блоки 10-12, фиг. 2) выполняются до включения компьютерной системы и являются составляющими процесса администрирования компьютерной системы.
Следующие действия - включение питания компьютерной системы, тестирование аппаратуры компьютерной системы и запуск менеджера загрузки операционной системы (блоки 13-15, фиг. 2) известны и описаны в профильной технической литературе [Таненбаум Э. Современные операционные системы. 3-е изд. - СПб.: Питер, 2010. - 1120 с.; Preboot Execution Environment (РХЕ) Specification, Intel Corporation, 1999; Эви Немет, Гарт Снайдер, Скотт Сибасс, Трент Р. Хейн UNIX: руководство системного администратора: Пер. с англ. - К.: BHV, 1997 - 832 с.; Билл Кэлкис Solaris 8: Сертификация системного администратора. Пер. с англ. /Билл Кэлкинс. - К.: ООО «ТИД «ДС», 2003, - 928 с.; Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. - СПб.: Питер, 2013 - 816 с.; М. Руссинович, Д. Соломон, А. Ионеску Внутренне устройство Microsoft Widows. 6-е изд. Основные подсистемы ОС. - СПб.: Питер, 2014. - 672 с.; Мюллер, Скотт Модернизация и ремонт ПК, 19-еизд.: Пер. с англ. - М.: ООО «И.Д.Вильямс», 2011. - 1072 с.: ил.].
1
2
L
Считывают из внутренней памяти менеджера загрузки операционной системы упорядоченный список источников загрузки операционной системы S={s, s, …, s} (блок 16, фиг. 2).
Значению переменной i присваивают единицу. Данная переменная играет роль счетчика (блок 17, фиг. 2).
После чего обращаются к i-му в списке источнику загрузки операционной системы (блок 18, фиг. 2).
Если доступа к i-му источнику загрузки операционной системы в списке нет (блок 19, фиг. 2), то значение переменной i увеличивают на единицу (блок 24, фиг. 2). После чего проверяют условие i>L (блок 25, фиг. 2) и, если условие не выполняется, что означает наличие источников в списке, проверка доступа к которым еще не была осуществлена, то управление передается блоку 18 (фиг. 2). Если условие выполняется (блок 25, фиг. 2), что означает отсутствие доступа ко всем источникам загрузки операционной системы в списке, то осуществляется выход из алгоритма. Такой выход означает, невозможность загрузки операционной системы.
Если доступ к i-му источнику загрузки операционной системы в списке есть (блок 19, фиг. 2), то выполняют следующие действия: считывание и запуск на исполнение первого блока кода программы загрузчика операционной системы и вывод сообщения о результатах загрузки операционной системы (блоки 20-21, фиг. 2), которые известны и описаны в профильной технической литературе [Таненбаум Э. Современные операционные системы. 3-е изд. - СПб.: Питер, 2010. - 1120 с.; Preboot Execution Environment (РХЕ) Specification, Intel Corporation, 1999; Эви Немет, Гарт Снайдер, Скотт Сибасс, Трент Р. Хейн UNIX: руководство системного администратора: Пер. с англ. - К.: BHV, 1997 - 832 с.; Билл Кэлкис Solaris 8: Сертификация системного администратора. Пер. с англ. /Билл Кэлкинс. - К.: ООО «ТИД «ДС», 2003, - 928 с.; Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. - СПб.: Питер, 2013 - 816 с.; М. Руссинович, Д. Соломон, А. Ионеску Внутренне устройство Microsoft Widows. 6-е изд. Основные подсистемы ОС. - СПб.: Питер, 2014. - 672 с.; Мюллер, Скотт Модернизация и ремонт ПК, 19-еизд.: Пер. с англ. - М.: ООО «И.Д. Вильяме», 2011. - 1072 с.: ил.].
Подают напряжение на управляющие контакты реле (блок 22, фиг. 2) следующим образом.
После загрузки операционной системы автоматически запускается специальное программное обеспечение, которое является элементом программной части компьютерной системы (блок 5, фиг. 1) т.е. содержится в загруженной операционной системе. Методы разработки программного обеспечения известны и описаны в профильной технической литературе [А.Я. Архангельский Программирование в Delphi для Windows. Версия 2006, 2007, Turbo Delphi. - М.: ООО «Бином-Пресс», 2010. - 1248 с.; Коплиен Дж. Программирование на С++. Классика CS. - СПб.: Питер, 2005. - 479 с.].
Специальное программное обеспечение подает команду включения на управляющий интерфейс компьютерной системы (блок 3, фиг. 1), к которому подключен контроллер (блок 1, фиг. 1).
Контроллер, в свою очередь, получая через управляющий интерфейс команду от специального программного обеспечения, подает напряжение на управляющие контакты реле, тем самым замыкая разорванные электрические цепи интерфейсов недоверенных источников загрузки операционной системы и включая их.
Для работы контроллера в соответствии с заданной логикой он должен быть предварительно запрограммирован. Методы программирования контроллеров известны и описаны в профильной технической литературе [Прокопенко B.C. Программирование микроконтроллеров ATMEL на языке С. - К.: «МК-Пресс», СПб.: «Корона-ВЕК», 2012. - 320 с.; Ревич Ю.В. Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера. - 2-е изд., испр. - СПб.: БХВ-Петербург, 2011. - 352 с.].
Далее поддерживают напряжение на управляющих контактах реле во время работы операционной системы (блок 23, фиг. 2) следующим образом.
Специальное программное обеспечение с заданным периодом отправляет на контроллер команду включения.
Контроллер, в свою очередь, получая команды включения, поддерживает напряжение на управляющих контактах реле.
В случае, если команды включения перестают поступать на контроллер, что может быть при выключении питания компьютерной системы или действиях нарушителя, то контроллер перестает поддерживать напряжение на управляющих контактах реле. Нормально разомкнутые контакты реле размыкаются, разрывая электрические цепи интерфейсов недоверенных источников загрузки операционной системы.
Таким образом, за счет включения в электрические цепи интерфейсов недоверенных источников загрузки операционной системы нормально разомкнутых контактов реле, замыкаемых только после загрузки операционной системы, исключается возможность доступа к этим источникам загрузки, вне зависимости от списка источников, хранящихся во внутренней памяти менеджера загрузки операционной системы.
На основании этого следует вывод, что заявленный способ расширяет арсенал технических средств защиты компьютерной системы от загрузки нештатной операционной системы, что в свою очередь повышает защищенность компьютерной системы от загрузки нештатной операционной систем.