Агент безопасности, функционирующий на уровне встроенного программного обеспечения, с поддержкой безопасности уровня операционной системы
Иллюстрации
Показать всеНастоящее изобретение относится к системам и способам обеспечения безопасности и, более конкретно, к системам и способам обеспечения безопасности, работающим независимо от операционной системы, но выполненным с поддержкой приложения безопасности, работающего на уровне операционной системы. Технический результат настоящего изобретения заключается в повышении уровня безопасности компьютерной системы путем обеспечения безопасности компьютерной системы на этапе до запуска операционной системы. Способ обеспечения безопасности компьютерной системы на этапе до запуска операционной системы включает: а) осуществление запуска UEFI из постоянного запоминающего устройства перед запуском операционной системы; б) запуск из UEFI агента безопасности, работающего независимо от операционной системы; в) осуществление посредством агента безопасности сканирования и последующего удаления или помещения на карантин вредоносного программного обеспечения; где сканирование на наличие вредоносного программного обеспечения проводится лишь среди объектов, относящихся к запуску операционной системы и связанных с приложением безопасности, установленным в операционной системе; и где для осуществления сканирования агентом безопасности используется регулярно обновляемая база данных определений вредоносного программного обеспечения, хранящаяся на уровне упомянутого UEFI; г) выявление посредством агента безопасности состояний, связанных с событиями, имевшими место до последнего завершения работы операционной системы, по меньшей мере, одного из следующих типов: определение неспособности приложением безопасности, установленным в операционной системе, выполнять свои функции; выявление изменения в компьютерной системе, влияющего на процесс запуска операционной системы; д) определение агентом безопасности, по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных состояний указанных типов, где действия включают в себя, по меньшей мере, одно из: управление объектами, сохраненными в файловой системе компьютерной системы; осуществление взаимодействия с удаленными серверами; откат до более ранних версий приложений, установленных в операционную систему; отправка посредством агента безопасности запроса на выполнение после запуска операционной системы действия со стороны приложения безопасности, установленного в операционную систему; е) выполнение посредством агента безопасности упомянутого определенного в пункте д), по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных состояний указанных типов. 8 з.п. ф-лы, 10 ил.
Реферат
Область техники
Настоящее изобретение относится к системам и способам обеспечения безопасности и, более конкретно, к системам и способам обеспечения безопасности, работающим независимо от операционной системы, но выполненным с поддержкой приложения безопасности, работающего на уровне операционной системы.
Уровень техники
В настоящее время компьютерное вредоносное программное обеспечение, такое как вирусы, компьютерные черви и троянские программы, представляет одну из самых важных проблем компьютерной безопасности. Было подсчитано, что ежегодные финансовые потери предпринимательства от вредоносного программного обеспечения составляют десятки миллиардов долларов.
Постоянная гонка «вооружений» ведется между создателями вредоносных программ и компаниями-разработчиками средств обеспечения компьютерной безопасности. Современные вредоносные программы пытаются изменить ядро или процесс загрузки операционной системы, чтобы скрыть свое присутствие в компьютерной системе. Противостоять руткитам и буткитам, а именно так называются эти вредоносные программы, очень сложно со стороны антивирусных программ. Руткитом называется набор программного обеспечения, который часто используется посторонними (обычно это злоумышленник) для того, чтобы, получив доступ к компьютерной системе, скрывать запущенные процессы, файлы или системные данные, которые позволяют злоумышленнику иметь доступ к системе при незнании этого самим пользователем. Буткитом называется вредоносная программа, осуществляющая модификацию загрузочного сектора MBR (Master Boot Record) - первого физического сектора на жестком диске. Буткит используется для получения максимальных привилегий в операционных системах. Он также может получить права администратора и выполнять любые вредоносные действия. Например, загрузить в память несуществующую на жестком диске динамическую библиотеку DLL. Такую библиотеку очень трудно обнаружить обычными методами, используемыми антивирусами.
Одной из сложностей обнаружения, например, руткитов является тот факт, что в отличие от вирусов руткиты обычно сами себя активируют, когда загружается операционная система, при этом сами руткиты приобретают системные привилегии. Также руткиты предпринимают действия, чтобы скрыть свое присутствие для того, чтобы традиционные антивирусные механизмы не смогли их обнаружить. Например, типичная антивирусная программа делает вызов системной функции для распознавания запущенных процессов. Руткит перехватывает этот вызов и возвращает антивирусу свой список процессов, где сам процесс руткита отсутствует. К тому же руткит обычно скрывает файлы, в которых он хранится, от традиционных антивирусных механизмов, которые проверяют файлы с использованием вирусных сигнатур. Другими словами, файлы, в которых хранится руткит, никогда не проверяются антивирусом, что делает обнаружение и лечение руткитов особенно трудной задачей.
Подавляющее большинство средств защиты запускаются только на этапе старта операционной системы, что не позволяет избавить систему от вредоносных программ, стартующих на более ранних фазах и, в частности, в процессе работы BIOS - первого программного кода, исполняемого процессором. Для обеспечения уровня безопасности, соответствующего современным угрозам, необходимо создавать вычислительные системы, в которых средства защиты и контроля информации начинают работать уже на уровне BIOS.
Среди последних достижений в области встроенного программного обеспечения персональных компьютеров представлен единый расширяемый интерфейс прошивки (Unified Extensible Firmware Interface или UEFI), используемая вместо реализаций традиционного BIOS. UEFI работает независимо от операционной системы, обеспечивая при этом платформу для запуска собственных приложений, которые могут использовать сетевые возможности и другие средства ввода/вывода компьютерной системы. В данном изобретении предложены различные решения, связанные с безопасностью, использующие возможности UEFI, например такие, как обеспечение целостности установленной операционной системы и установленных приложений или предоставление обновлений и восстановление операционной системы и других приложений до непосредственного старта самой операционной системы.
Однако, хотя использование особенностей UEFI способно улучшить обеспечение безопасности компьютерной системы, особенно в защите от разновидностей атак, которые реализуются в обход основных программных средств обеспечения безопасности (например, антивирусных программ), есть, тем не менее, практические ограничения в проведении действий по обеспечению безопасности до загрузки операционной системы. Например, пользователи будут склонны к разочарованию в случае, если выполнение функций безопасности на этапе до загрузки операционной системы будет приводить к существенному замедлению запуска операционной системы.
Вследствие вышеупомянутых причин возникает необходимость в реализации подхода, позволяющего эффективно выполнять функции безопасности на этапе до загрузки операционной системы без чрезмерного потребления ресурсов и времени, необходимых для запуска операционной системы.
Раскрытие изобретения
Настоящее изобретение предназначено для реализации функций на этапе до загрузки операционной системы, в том числе функций по обеспечению безопасности.
Технический результат настоящего изобретения заключается в повышении уровня безопасности компьютерной системы путем обеспечения безопасности компьютерной системы на этапе до загрузки операционной системы.
В одном из вариантов осуществления данного изобретения реализуется способ обеспечения безопасности компьютерной системы на этапе до запуска операционной системы, включающий в себя: (а) инициирование окружения из постоянного запоминающего устройства перед запуском операционной системы; (б) запуск из окружения агента безопасности, работающего независимо от операционной системы; (в) выявление посредством агента безопасности наступления событий, имевших место до последнего завершения работы операционной системы, по меньшей мере, одного из следующих типов:
определение неспособности приложением безопасности, установленным в операционной системе, выполнять свои функции;
выявление изменения в компьютерной системе, влияющего на процесс запуска операционной системы;
получение запроса, оставленного приложением безопасности, установленным в операционной системе;
(г) определение агентом безопасности, по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных событий указанных типов, где действия могут включать в себя:
осуществление антивирусной проверки только объектов, связанных с приложением безопасности, установленным в операционной системе;
управление объектами, сохраненными в файловой системе компьютерной системы;
осуществление антивирусной проверки только объектов, связанных запуском операционной системы;
откат до более ранних версий приложений, установленных в операционную систему;
отправка посредством агента безопасности запроса на выполнение после запуска операционной системы действия со стороны приложения безопасности, установленного в операционную систему;
(д) выполнение посредством агента безопасности, по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных событий указанных типов.
В другом варианте осуществления данного изобретения окружением из постоянного запоминающего устройства может быть, по меньшей мере, единым расширяемым интерфейсом прошивки.
В другом варианте осуществления данного изобретения способ обеспечения безопасности компьютерной системы на этапе до запуска операционной системы дополнительно включает инициирование запуска операционной системы после завершения выполнения посредством агента безопасности набора действий, определенных в рамках полученного указания.
В другом варианте осуществления данного изобретения выявление наступления событий включает в себя считывание индикаторов, оставленных приложением безопасности, установленном в операционной системе.
В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате анализа обновлений приложения безопасности, свидетельствующих о наличии в обновлениях определений вредоносных программ типов руткит или буткит.
В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате анализа журнала событий, содержащегося в файловой системе компьютерной системы.
В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате выявления сбоя в работе приложения безопасности, установленного в операционной системе.
В другом варианте осуществления данного изобретения выявление наступления событий осуществляется на основании уведомлений, полученных от удаленного сервера.
В другом варианте осуществления данного изобретения выявление наступления событий включает в себя считывание защищенного буфера из постоянного запоминающего устройства, где защищенный буфер не доступен процессам отличным от приложения безопасности, установленного в операционной системе и агента безопасности.
В другом варианте осуществления данного изобретения выявление наступления событий включает в себя считывание данных из файлов, сохраненных в файловой системе, управляемой операционной системой.
В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате выявления сбоя при обновлении приложения безопасности, установленного в операционной системы.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 показывает пример компьютерной системы общего назначения.
Фиг.2 показывает примеры сервисов, реализуемых в пред-ОС окружении.
Фиг.3 показывает модули, составляющие пред-ОС агента безопасности.
Фиг.4 показывает функциональную схему, иллюстрирующую взаимодействие между пред-ОС агентом безопасности, приложением безопасности и удаленным сервером.
Фиг.5 показывает схему приложения безопасности.
Фиг.6 показывает различные элементы логики пред-ОС агента безопасности, а также потоки информации и решений, связанные с их работой.
Фиг.7А и 7Б показывают блок-схемы, иллюстрирующие примерные операции, выполняемые приложением безопасности.
Фиг.8 показывает пример операции, выполняемой пред-ОС агентом безопасности.
Фиг.9 показывает пример матрицы условий и соответствующих им действий.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
На Фиг.1 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. ПЗУ 24 может содержать окружение, загружаемое перед операционной системой (далее по тексту для обозначения загрузки или исполнения кода приложения, предшествующих старту операционной системы будем использовать сокращение пред-ОС, например, если приложение исполняется перед стартом операционной системы, то будем обозначать его, как пред-ОС приложение), которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. Пред-ОС окружение 26 может включать в себя возможности основной системы ввода/вывода или BIOS (Basic Input/Output System), а также дополнительные возможности, такие как запуск приложений, которые могут исполняться независимо от операционной системы.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флэш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п.
Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.13. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
На Фиг.2 изображены примеры сервисов, реализуемых в пред-ОС окружении 116, которые могут быть раскрыты в различных вариантах осуществления данного изобретения. Пред-ОС окружение 116 позволяет запускать встроенные приложения без операционной системы. Приложения, исполняемые в пред-ОС окружении 116, имеют доступ к определенным драйверам компонентов и периферийных устройств компьютерной системы. Пред-ОС окружение 116 содержит облегченную (или урезанную) операционную систему, в том смысле, что данная операционная система в значительной степени ограничена в своей способности поддерживать полнофункциональные сервисы, библиотеки и прикладные программные интерфейсы (API) пользовательской операционной системы. Пред-ОС окружение 116 может храниться на основном жестком диске компьютерной системы или на специальном загрузочном устройстве, также оно может храниться в постоянном запоминающем устройстве (ПЗУ), например, в электрически стираемом программируемом постоянном запоминающем устройстве (ЭСППЗУ) на материнской плате компьютерной системы. В качестве пред-ОС окружения 116 может быть использован Unified Extensible Firmware Interface (UEFI), что, однако, не ограничивает возможности данного изобретения по использованию других известных или будущих систем, выполняющих функции пред-ОС окружения 116.
В одном из вариантов осуществления данного изобретения пред-ОС окружение 116 реализует сервис поддержки функции BIOS 152, выполняющий функции, имитирующие традиционную среду BIOS для поддержки старых операционных систем, которые несовместимы с пред-ОС окружением 116. Службы запуска 154 включают в себя текстовые и графические консоли для различных устройств, сервисы управления шинами, блоками данных и файлами. Также службы запуска 154 включают в себя управление политиками встроенного ПО, которые отвечают за старт программы загрузчика операционной системы и всех необходимых драйверов. Конфигурация загрузки компьютерной системы контролируется набором глобальных переменных, включающих загрузочные переменные, в которых прописаны программы загрузчики. Оперативные сервисы 156 включают в себя функции, которые могут исполняться, пока операционная система загружается. Это такие функции, как доступ к времени, дате или к энергонезависимой памяти с произвольным доступом (NVRAM). Опционные сервисы 158 предоставляют возможность хранения данных, которые доступны как со стороны платформы встроенного ПО, так и операционной системы или приложений пред-ОС окружения.
Приложения 150 содержат в себе сервисы, необходимые для исполнения приложений в рамках пред-ОС окружения, включая драйверы устройств, оболочки программ (под оболочками программ подразумеваются приложения, реализующие командную строку, например, cmd.exe или приложения, реализующие графический интерфейс, например explorer.exe) и инструкции инициализации пред-ОС приложений, а также сами приложения.
Среди приложений 150 в одном из вариантов осуществления данного изобретения может быть представлен пред-ОС агент безопасности 200, изображенный на Фиг.3. В различных вариантах осуществления пред-ОС агент безопасности 200 может изменять приложения, которые исполняются в операционной системе. Эти изменения могут включать в себя изменения в программном коде приложений, в параметрах настройки приложений, а также в данных, используемых приложениями. Также пред-ОС агент безопасности может вносить изменения непосредственно в саму операционную систему. Способность пред-ОС агента безопасности 200 к осуществлению такого рода изменений до начала загрузки операционной системы позволяет противодействовать внесению подобных изменений со стороны вредоносного ПО.
Некоторые модули, составляющие пред-ОС агента безопасности 200, согласно одному из вариантов осуществления данного изобретения показаны на Фиг.3. Модуль связи 202 использует сетевой интерфейс компьютерной системы и необходимые драйверы для подключения к удаленной вычислительной системе, например, к удаленному серверу службы безопасности. Модуль восстановления 204 способен восстанавливать приложения, работающие в рамках пользовательской операционной системы, до исходного или просто более раннего состояния, например, путем резервного копирования или создания точек восстановления. Такая процедура способна отменить установленные обновления и вернуть соответствующее приложение к более ранней версии. Точки восстановления могут быть получены из безопасного места на локальной компьютерной системе, со съемного носителя (например, флэш-диска) или с удаленной компьютерной системы (например, сервера безопасности или сервера-разработчика приложения) при помощи модуля связи 202. Аналогичным образом модуль восстановления 204 может осуществить восстановление деталей или всей операционной системы в соответствии с одной или несколькими заранее определенными точками восстановления системы. При этом могут быть использованы либо собственный сервис восстановления системы операционной системы (например, сервис «восстановление системы» Windows®), либо отдельный сервис, осуществляющий безопасное хранение данных для восстановления локально или удаленно, например, продукт компании ЗАО «Лаборатория Касперского» Kaspersky CRYSTAL 3.0, использующий функцию резервного копирования и восстановления данных с возможностью выбора варианта хранения данных локально или на FTP серверах.
Таким образом, в одном из вариантов осуществления данного изобретения модуль восстановления 204 включает в себя инструкции, которые определяют, где можно получить актуальную регулярно обновляемую информацию для восстановления соответствующих приложений или операционной системы, а также алгоритм для определения точек восстановления, наиболее соответствующих заданным обстоятельствам. Например, алгоритм восстановления может определить ряд точек восстановления в определенном порядке, следующим за текущей точкой, восстановление по которой привело в некорректное состояние соответствующее приложение или компонент операционной системы. Более того, алгоритм восстановления может запоминать успешно исполняемые (например, по отсутствию ошибок в процессе работы приложения или компонента) версии программ и компонент операционной системы и формировать инструкции для предпочтительного выбора данных версий в ответ на запрос восстановления. В другом варианте осуществления модуль восстановления 204 включает в себя инструкции для восстановления пред-ОС агента безопасности 200. В одном варианте осуществления восстановление требуется в случае выявления факта компрометации или повреждения операционной системы или приложения, особенно, если приложение представляет собой приложение безопасности. В такой ситуации нельзя быть уверенным в том, что операционная система или приложение безопасности произведут корректное восстановление самих себя. Данная ситуация может быть создана по вине неисправности или же в результате действий со стороны вредоносных программ типа руткит/буткит, которые проникли в ядро операционной системы.
Модуль обновлений 206 осуществляет обновления приложений, операционной системы или пред-ОС агента безопасности 200. Модуль обновлений 206 может получать приложения или обновления баз данных с помощью модуля связи 202, который может взаимодействовать с сервером обновлений поставщика услуг безопасности или иным уполномоченным поставщиком, например, операционной системы или производителя приложения или их дистрибьютором. В одном из вариантов осуществления обновления, осуществляемые модулем обновления 206, не столь всеобъемлющи и велики, как обновления получаемые приложениями, работающими в рамках пользовательской операционной системы. Обновления согласно данному варианту осуществления узкоспециализированы для решения конкретных проблем в области выделенных критически важных ситуаций, решаемых на уровне пред-ОС окружения 116. Одним из примеров такой ситуации может служить уведомление от приложения безопасности о появлении новых доступных обновлений баз вредоносных программ, включающих новые руткит или буткит определения. Так как этот тип вредоносных программ представляет риск для ядра операционной системы, обработка обновлений на этапе до запуска операционной системы гарантирует, что обновление будет осуществлено должным образом, даже если операционная система уже скомпрометирована.
Антивирусный модуль 208 в одном из вариантов осуществления данного изобретения настроен на выполнение проверки и обнаружения вредоносных программ определенных типов, базы данных определений которых доступны на местном уровне (пред-ОС), хранятся и регулярно обновляются. В родственном варианте осуществления антивирусный модуль 208 настроен на осуществление операций по удалению или постановки на карантин вредоносных программ и чистых файлов, кода приложений и компонент операционной системы. В смежном варианте осуществления антивирусный модуль 208 предназначен для осуществления всех функций, необходимых для защиты операционной системы и приложения безопасности, чтобы приложение безопасности (вместе с ядром операционной системы, сервисами и библиотеками) могло полноценно исполнять свои функции по защите компьютерной системы.
Модуль взаимодействия 210 включает в себя инструкции и положения по безопасности для осуществления защищенного взаимодействия с операционной системой, файловой системой и приложениями, работающими из-под операционной системы. В одном из вариантов реализации для того чтобы иметь доступ к определенным файлам модуль взаимодействия 210 реализован с возможностью осуществления доступа к диску(ам) в компьютерной системе, чтения, записи, доступа к каталогам и блокам управления файлами. В данном варианте осуществления модуль взаимодействия 210 имеет доступ к специальному защищенному буферу, через который пред-ОС агент безопасности и приложения, исполняемые в операционной системе, также настроенные на доступ к данному защищенному буферу, могут обмениваться данными, инструкциями и любой другой информацией. Для сокрытия содержимого и/или самого факта существования защищенного буфера могут быть использованы криптографические методы защиты. В одном из вариантов осуществления модуль взаимодействия 210 передает однонаправленный поток информации от пред-ОС агента безопасности 200 к соответствующему приложению, исполняемому в операционной системе. В другом варианте реализации приложение, исполняемое в операционной системе, осуществляет передачу информации пред-ОС агенту безопасности 200, а агент 200 настроен на получение данной информации, когда компьютерная система находится в состоянии пред-ОС.
Координатор действий 212 отвечает за управление работой пред-ОС агента безопасности 200. В одном из вариантов осуществления координатор действий 212 следит за возникновением в рамках компьютерной системы различных условий или состояний, используя в качестве логики принятия решений наборы критериев, и определяет действия, которые необходимо выполнить в ответ на определенные состояния или условия, а также команды различным функциям, которые будут исполнены в соответствии с каждой определенной реакцией. Соответственно, координатор действий 212 связывает различные модули пред-ОС агента безопасности 200 в единую функциональную единицу.
На Фиг.4 показана функциональная схема, иллюстрирующая взаимодействие между пред-ОС агентом безопасности 200 и приложением безопасности 250, работающим на локальной компьютерной системе 240, и связь данных элементов с удаленным сервером 260. В рамках приложения безопасности 250 может выступать, например, приложение Kaspersky Internet Security 2014. В данном варианте осуществления приложение безопасности 250 является приложением из числа приложений 37, исполняемых в операционной системе и предоставляющих набор функций, связанных с безопасностью. Удаленный сервер 260 представляет собой сервер безопасности. Удаленный сервер 260 обеспечивает регулярные обновления приложения безопасности 250. Связь 262 представляет собой типичную связь, установленную через сетевое соединение между приложением безопасности 250 и удаленным сервером 260, по которой предоставляются обновления. Удаленный сервер 260 может поддерживать рад других функций, например, выполнение распределенной обработки данных, сбора и обработка данных от пользовательского сообщества, прокси-серверов и т.д. Обновления и другие услуги предоставляются во время непосредственной работы приложения безопасности 250.
Пред-ОС агент безопасности 200 работает под управлением собственной операционной системы (суб-ОС) и также связан (264) с удаленным сервером 260. Связь 264 устанавливается перед загрузкой операционной системы и стартом приложения безопасности 250. Обновления или другие инструкции могут поступать через канал связи 264. Как уже говорилось выше, эти обновления могут включать в себя обновления для пред-ОС агента безопасности 200, приложения безопасности 250 и, в некоторых вариантах осуществления, могут включать в себя обновления для операционной системы или других приложений.
Пред-ОС агент безопасности 200 может осуществлять доступ к защищенному буферу 252 и основной файловой системе 254 через модуль взаимодействия 210. В одном из вариантов осуществления защищенный буфер 252 может быть реализован в виде файла в рамках файловой системы или в качестве компонента операционной системы, как, например, реестр операционной системы. В другом варианте осуществления защищенный буфер 252 может быть реализован в виде специальной части диска, не доступной для использования в рамках файловой системы. Еще в одном варианте осуществления защищенный буфер 252 реализован с использованием энергонезависимой памяти, доступной на материнской плате компьютерной системы, например, памяти, используемой для хранения команд и данных, относящихся к пред-ОС окружению 116. В этих вариантах информация в защищенный буфер 252 записывается посредством пред-ОС агента безопасности 200 или приложения безопасности 250 и считывается соответственно приложением безопасности 250 или пред-ОС агентом безопасности 200 в зависимости от обстоятельств. В другом варианте осуществления специализированный драйвер, работающий на уровне суб-ОС, предназначен для осуществления доступа со стороны пред-ОС агента безопасности 200 к защищенному буферу 252. Аналогичным образом драйвер на уровне пользовательской операционной системы предназначен исключительно для осуществления доступа со стороны приложения безопасности 250 к защищенному буферу 252. В одном таком варианте осуществления драйвер уровня пользовательской операционной системы аутентифицирует приложение безопасности 250 перед предоставлением доступа к защищенному буферу 252. В другом смежном подходе приложение безопасности 250 и пред-ОС агент безопасности 200 используют инфраструктуру открытых ключей (PKI) для цифровой подписи данных (или шифрования), которые будут записаны в безопасный буфер 252, с помощью открытого ключа другого. При чтении данных, сохраненных в защищенный буфер 252, приложение безопасности 250 и пред-ОС агент безопасности 200 используют свои закрытые ключи для расшифровывания данных.
На Фиг.5 более подробно изображена схема приложения безопасности 250. Приложение безопасности 250 способно выполнять любую комбинацию связанных с безопасностью функций, таких как, например: противодействие вредоносным объектам 302, обнаружение и удаление вредоносных объектов 304, нейтрализация угроз 306 и контроль целостности системы 307. Приведенные функции, связанные с безопасностью, описаны ниже только в общих чертах в качестве иллюстрации, и не представляют собой исчерпывающий перечень рассматриваемых функций, связанных с безопасностью. Различные другие функции, связанные с безопасностью, могут быть использованы в дополнении или вместо любой из функций, связанных с безопасностью, приведенной в качестве примера в данном документе.
Противодействие вредоносным объектам 302 включает в себя блокирование вредоносных объектов, таких как вирусы, черви и другие вредоносные программы, рекламное ПО, шпионские программы, спам и т.п., а также блокирование нежелательного трафика, такого как хакерские атаки, прежде чем любой из этих объектов сможет реализовать свой вредоносный потенциал на локальном устройстве. Как правило, данная функция предполагает блокирование или перенаправление содержимого трафика межсетевым экраном. Обнаружение и удаление вредоносных объектов 304 применяется к объектам, которые миновали проверки, направленные на предотвращение проникновений, и теперь в той или иной форме находятся на локальном устройстве. Типовым примером такой функциональности будет проверка на вирусы на основе базы данных сигнатур (описаний известных вирусов и прочих вредоносных программ), и удаление или помещение на карантин соответствующих объектов и связанных с ними данных. Нейтрализация угроз 306 применяется для обнаружения нежелательного контента, обнаружения нападений или угроз в реальном времени и заключается в принятии мер по закрытию любых подозрительных программ или процессов, блокированию сетевого трафика, а также восстановлению системы до последнего известного безопасного состояния.
Приложение безопасности 250 содержит множество компонент, как, например, межсетевой экран 308, фильтр сообщений почты 310, антивирусный модуль/модуль блокирования нежелательного содержимого/утилиту удаления вредоносного ПО 312, систему резервного копирования и восстановления данных 314, а также системы предотвращения и обнаружения вторжений 316 (IPS/IDS). Также включены такие компоненты, как модуль обновлений 318, модуль обнаружения изменений 320 и модуль безопасного взаимодействия 322 для осуществления обмена данными с пред-ОС агентом безопасности 200. Эти компоненты могут работать в различных комбинациях для реализации различных функций приложения безопасности 250.
В одном варианте осуществления данного изобретения модуль обнаружения изменений 320 выполнен с возможностью отслеживать изменения, сделанные в компьютерной системе операционной системой и другими приложениями. Особый интерес в данном варианте осуществления представляют изменения, которые влияют на процесс загрузки операционной системы. Например, изменение основной загрузочной записи (MBR), установка новых драйверов устройств, добавление новых системных услуг, управляемых операционной системой, внесение изменений в настройки резидентных приложений, которые будут загружены при старте операционной системы, изменения в некоторых параметрах реестра операционной системы и т.д. Также модуль обнаружения изменений 320 может самостоятельно обнаруживать изменения в белом или черном списках программ, используемых антивирусным модулем 312. В ответ на обнаружение любого из указанных изменений (или других контролируемых) модуль обнаружения изменений 320 делает запись в журнале (например, системном или собственном) или устанавливает флаг, указывающий на обнаружение соответствующего изменения. Дополнительно может быть использован индикатор типа изменений. Установленный флаг, запись в журнале или другие показатели сохраняются в модуле безопасного взаимодействия 252.
На Фиг.6 представлена схема, наглядно иллюстрирующая различные элементы логики работы пред-ОС агента безопасности 200, а также потоки информации и решений, связанные с их работой. Координатор действий 212 в данном варианте осуществления включает в себя модуль наблюдения 340, модуль принятия решения 342, наб