RU2583714C2 - Security agent, operating at embedded software level with support of operating system security level - Google Patents

Security agent, operating at embedded software level with support of operating system security level Download PDF

Info

Publication number
RU2583714C2
RU2583714C2 RU2013158136/08A RU2013158136A RU2583714C2 RU 2583714 C2 RU2583714 C2 RU 2583714C2 RU 2013158136/08 A RU2013158136/08 A RU 2013158136/08A RU 2013158136 A RU2013158136 A RU 2013158136A RU 2583714 C2 RU2583714 C2 RU 2583714C2
Authority
RU
Russia
Prior art keywords
operating system
security
security agent
detection
operating
Prior art date
Application number
RU2013158136/08A
Other languages
Russian (ru)
Other versions
RU2013158136A (en
Inventor
Игорь Анатольевич Гусаров
Юрий Владимирович Несмачный
Сергей Васильевич Добровольский
Илья Борисович Годунов
Original Assignee
Закрытое акционерное общество "Лаборатория Касперского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество "Лаборатория Касперского" filed Critical Закрытое акционерное общество "Лаборатория Касперского"
Priority to RU2013158136/08A priority Critical patent/RU2583714C2/en
Publication of RU2013158136A publication Critical patent/RU2013158136A/en
Application granted granted Critical
Publication of RU2583714C2 publication Critical patent/RU2583714C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

FIELD: safety.
SUBSTANCE: present invention relates to systems and methods of ensuring safety and more specifically to systems and methods of ensuring safety of operating irrespective of operating system, but made with support of security applications operating at level of operating system. Method of providing safety of computer system at stage to launch an operating system includes: a) bringing starting UEFI from permanent memory before running operating system; b) starting from UEFI security agent, operating irrespective of operating system; in) carrying out by scanning security agent and further removal or quarantine malware; where scanning for presence of malware is carried out only among objects related to start-up operating system and associated with security application, installed in operating system; and where scanning security agent used is regularly updated database definitions malware, stored at level of said UEFI; d) detection by means of security agent conditions associated with events occurring prior to last operating system shutdown, at least one of following types: determining failure safety application, installed in operating system, perform its functions; detection of changes in computer system, affecting start-up process operating system; d) determination of security agent, at least one corresponding, at least, one of detected state of said types, where action include at least one of: control objects, stored in file system computer system; implementing interaction with remote servers; recoil to earlier versions of applications installed in operating system; sending request for execution of security agent by after launching operating system action on side of security applications installed in operating system; e) making by means of security agent said defined in paragraph d), at least one corresponding, at least, one of detected state of said types.
EFFECT: technical result of this invention consists in improvement of safety of computer system by providing safety of computer system at stage to start operating system.
9 cl, 10 dwg

Description

Область техникиTechnical field

Настоящее изобретение относится к системам и способам обеспечения безопасности и, более конкретно, к системам и способам обеспечения безопасности, работающим независимо от операционной системы, но выполненным с поддержкой приложения безопасности, работающего на уровне операционной системы.The present invention relates to security systems and methods, and more particularly, to security systems and methods that operate independently of the operating system but are configured to support a security application operating at the operating system level.

Уровень техникиState of the art

В настоящее время компьютерное вредоносное программное обеспечение, такое как вирусы, компьютерные черви и троянские программы, представляет одну из самых важных проблем компьютерной безопасности. Было подсчитано, что ежегодные финансовые потери предпринимательства от вредоносного программного обеспечения составляют десятки миллиардов долларов.Currently, computer malware, such as viruses, computer worms, and trojan horses, is one of the most important computer security issues. It has been estimated that tens of billions of dollars in annual financial loss to businesses from malware.

Постоянная гонка «вооружений» ведется между создателями вредоносных программ и компаниями-разработчиками средств обеспечения компьютерной безопасности. Современные вредоносные программы пытаются изменить ядро или процесс загрузки операционной системы, чтобы скрыть свое присутствие в компьютерной системе. Противостоять руткитам и буткитам, а именно так называются эти вредоносные программы, очень сложно со стороны антивирусных программ. Руткитом называется набор программного обеспечения, который часто используется посторонними (обычно это злоумышленник) для того, чтобы, получив доступ к компьютерной системе, скрывать запущенные процессы, файлы или системные данные, которые позволяют злоумышленнику иметь доступ к системе при незнании этого самим пользователем. Буткитом называется вредоносная программа, осуществляющая модификацию загрузочного сектора MBR (Master Boot Record) - первого физического сектора на жестком диске. Буткит используется для получения максимальных привилегий в операционных системах. Он также может получить права администратора и выполнять любые вредоносные действия. Например, загрузить в память несуществующую на жестком диске динамическую библиотеку DLL. Такую библиотеку очень трудно обнаружить обычными методами, используемыми антивирусами.A constant race of "weapons" is conducted between the creators of malicious programs and companies that develop means of ensuring computer security. Modern malware is trying to change the kernel or the boot process of the operating system in order to hide its presence in the computer system. It is very difficult for anti-virus programs to resist rootkits and bootkits, which is what these malicious programs are called. A rootkit is a set of software that is often used by outsiders (usually an attacker) in order to gain access to a computer system and hide running processes, files, or system data that allow an attacker to access the system if the user does not know it. A bootkit is a malicious program that modifies the boot sector MBR (Master Boot Record) - the first physical sector on the hard drive. The bootkit is used to obtain maximum privileges in operating systems. It can also gain administrator rights and perform any malicious actions. For example, load a dynamic library DLL that does not exist on the hard disk into memory. Such a library is very difficult to detect with the usual methods used by antiviruses.

Одной из сложностей обнаружения, например, руткитов является тот факт, что в отличие от вирусов руткиты обычно сами себя активируют, когда загружается операционная система, при этом сами руткиты приобретают системные привилегии. Также руткиты предпринимают действия, чтобы скрыть свое присутствие для того, чтобы традиционные антивирусные механизмы не смогли их обнаружить. Например, типичная антивирусная программа делает вызов системной функции для распознавания запущенных процессов. Руткит перехватывает этот вызов и возвращает антивирусу свой список процессов, где сам процесс руткита отсутствует. К тому же руткит обычно скрывает файлы, в которых он хранится, от традиционных антивирусных механизмов, которые проверяют файлы с использованием вирусных сигнатур. Другими словами, файлы, в которых хранится руткит, никогда не проверяются антивирусом, что делает обнаружение и лечение руткитов особенно трудной задачей.One of the difficulties of detecting, for example, rootkits is the fact that, unlike viruses, rootkits usually activate themselves when the operating system boots up, while the rootkits themselves acquire system privileges. Rootkits also take steps to hide their presence so that traditional antivirus engines cannot detect them. For example, a typical antivirus program makes a call to a system function to recognize running processes. The rootkit intercepts this call and returns to the antivirus its list of processes where the rootkit process itself is absent. In addition, the rootkit usually hides the files in which it is stored from traditional anti-virus mechanisms that scan files using virus signatures. In other words, the files in which the rootkit is stored are never scanned by the antivirus, which makes the detection and treatment of rootkits especially difficult.

Подавляющее большинство средств защиты запускаются только на этапе старта операционной системы, что не позволяет избавить систему от вредоносных программ, стартующих на более ранних фазах и, в частности, в процессе работы BIOS - первого программного кода, исполняемого процессором. Для обеспечения уровня безопасности, соответствующего современным угрозам, необходимо создавать вычислительные системы, в которых средства защиты и контроля информации начинают работать уже на уровне BIOS.The vast majority of protection tools are launched only at the start of the operating system, which does not allow the system to get rid of malicious programs that start at earlier phases and, in particular, during the operation of the BIOS - the first program code executed by the processor. To ensure the level of security that meets current threats, it is necessary to create computing systems in which the means of protection and control of information begin to work already at the BIOS level.

Среди последних достижений в области встроенного программного обеспечения персональных компьютеров представлен единый расширяемый интерфейс прошивки (Unified Extensible Firmware Interface или UEFI), используемая вместо реализаций традиционного BIOS. UEFI работает независимо от операционной системы, обеспечивая при этом платформу для запуска собственных приложений, которые могут использовать сетевые возможности и другие средства ввода/вывода компьютерной системы. В данном изобретении предложены различные решения, связанные с безопасностью, использующие возможности UEFI, например такие, как обеспечение целостности установленной операционной системы и установленных приложений или предоставление обновлений и восстановление операционной системы и других приложений до непосредственного старта самой операционной системы.Among the latest achievements in the field of personal computer firmware, a unified Extensible Firmware Interface (UEFI) is used, which is used instead of traditional BIOS implementations. UEFI operates independently of the operating system, while providing a platform for launching its own applications that can use network capabilities and other input / output tools of a computer system. The present invention provides various security-related solutions using the capabilities of UEFI, for example, such as ensuring the integrity of the installed operating system and installed applications, or providing updates and restoring the operating system and other applications prior to starting the operating system itself.

Однако, хотя использование особенностей UEFI способно улучшить обеспечение безопасности компьютерной системы, особенно в защите от разновидностей атак, которые реализуются в обход основных программных средств обеспечения безопасности (например, антивирусных программ), есть, тем не менее, практические ограничения в проведении действий по обеспечению безопасности до загрузки операционной системы. Например, пользователи будут склонны к разочарованию в случае, если выполнение функций безопасности на этапе до загрузки операционной системы будет приводить к существенному замедлению запуска операционной системы.However, although the use of UEFI features can improve the security of a computer system, especially in protecting against varieties of attacks that bypass basic security software (for example, anti-virus programs), there are nevertheless practical limitations in the implementation of security measures before loading the operating system. For example, users will be prone to disappointment if the execution of security functions during the pre-boot phase of the operating system will significantly slow down the launch of the operating system.

Вследствие вышеупомянутых причин возникает необходимость в реализации подхода, позволяющего эффективно выполнять функции безопасности на этапе до загрузки операционной системы без чрезмерного потребления ресурсов и времени, необходимых для запуска операционной системы.Due to the above reasons, there is a need to implement an approach that allows you to effectively perform security functions at the stage before loading the operating system without excessive consumption of resources and time required to start the operating system.

Раскрытие изобретенияDisclosure of invention

Настоящее изобретение предназначено для реализации функций на этапе до загрузки операционной системы, в том числе функций по обеспечению безопасности.The present invention is intended to implement the functions at the stage prior to loading the operating system, including security functions.

Технический результат настоящего изобретения заключается в повышении уровня безопасности компьютерной системы путем обеспечения безопасности компьютерной системы на этапе до загрузки операционной системы.The technical result of the present invention is to increase the level of security of a computer system by ensuring the security of a computer system in the step prior to loading the operating system.

В одном из вариантов осуществления данного изобретения реализуется способ обеспечения безопасности компьютерной системы на этапе до запуска операционной системы, включающий в себя: (а) инициирование окружения из постоянного запоминающего устройства перед запуском операционной системы; (б) запуск из окружения агента безопасности, работающего независимо от операционной системы; (в) выявление посредством агента безопасности наступления событий, имевших место до последнего завершения работы операционной системы, по меньшей мере, одного из следующих типов:In one of the embodiments of the present invention, a method is implemented to ensure the security of a computer system at the stage prior to launching the operating system, including: (a) initiating an environment from the read-only memory before starting the operating system; (b) starting from the environment a security agent that works independently of the operating system; (c) detection by the security agent of the occurrence of events that occurred before the last shutdown of the operating system, at least one of the following types:

определение неспособности приложением безопасности, установленным в операционной системе, выполнять свои функции;determination of the inability of the security application installed in the operating system to perform its functions;

выявление изменения в компьютерной системе, влияющего на процесс запуска операционной системы;identifying changes in the computer system that affect the process of starting the operating system;

получение запроса, оставленного приложением безопасности, установленным в операционной системе;receiving a request left by a security application installed in the operating system;

(г) определение агентом безопасности, по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных событий указанных типов, где действия могут включать в себя:(d) determining by the security agent at least one action corresponding to at least one of the identified events of the indicated types, where the actions may include:

осуществление антивирусной проверки только объектов, связанных с приложением безопасности, установленным в операционной системе;performing anti-virus scanning of only objects related to the security application installed in the operating system;

управление объектами, сохраненными в файловой системе компьютерной системы;management of objects stored in the file system of a computer system;

осуществление антивирусной проверки только объектов, связанных запуском операционной системы;implementation of anti-virus scanning of only objects related to the launch of the operating system;

откат до более ранних версий приложений, установленных в операционную систему;rollback to earlier versions of applications installed on the operating system;

отправка посредством агента безопасности запроса на выполнение после запуска операционной системы действия со стороны приложения безопасности, установленного в операционную систему;sending through the security agent a request for execution after the operating system is started, an action from the side of the security application installed in the operating system;

(д) выполнение посредством агента безопасности, по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных событий указанных типов.(e) performing through the security agent at least one action corresponding to at least one of the identified events of the indicated types.

В другом варианте осуществления данного изобретения окружением из постоянного запоминающего устройства может быть, по меньшей мере, единым расширяемым интерфейсом прошивки.In another embodiment of the invention, the environment from the read only memory may be at least a single extensible firmware interface.

В другом варианте осуществления данного изобретения способ обеспечения безопасности компьютерной системы на этапе до запуска операционной системы дополнительно включает инициирование запуска операционной системы после завершения выполнения посредством агента безопасности набора действий, определенных в рамках полученного указания.In another embodiment of the present invention, a method for securing a computer system in a step prior to launching an operating system further includes initiating an operating system startup after completion of a set of actions defined by the received instruction through the security agent.

В другом варианте осуществления данного изобретения выявление наступления событий включает в себя считывание индикаторов, оставленных приложением безопасности, установленном в операционной системе.In another embodiment of the invention, the detection of the occurrence of events includes reading indicators left by a security application installed in the operating system.

В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате анализа обновлений приложения безопасности, свидетельствующих о наличии в обновлениях определений вредоносных программ типов руткит или буткит.In another embodiment of the invention, the detection of the occurrence of events is carried out as a result of the analysis of security application updates indicating the presence of rootkit or bootkit malware definition updates.

В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате анализа журнала событий, содержащегося в файловой системе компьютерной системы.In another embodiment of the invention, the occurrence is detected by analyzing an event log contained in a file system of a computer system.

В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате выявления сбоя в работе приложения безопасности, установленного в операционной системе.In another embodiment of the present invention, the detection of the occurrence of events is carried out as a result of detecting a malfunction in the security application installed in the operating system.

В другом варианте осуществления данного изобретения выявление наступления событий осуществляется на основании уведомлений, полученных от удаленного сервера.In another embodiment of the invention, the occurrence is detected based on the notifications received from the remote server.

В другом варианте осуществления данного изобретения выявление наступления событий включает в себя считывание защищенного буфера из постоянного запоминающего устройства, где защищенный буфер не доступен процессам отличным от приложения безопасности, установленного в операционной системе и агента безопасности.In another embodiment of the present invention, the detection of the occurrence of events includes reading the protected buffer from read-only memory, where the protected buffer is not accessible to processes other than the security application installed in the operating system and the security agent.

В другом варианте осуществления данного изобретения выявление наступления событий включает в себя считывание данных из файлов, сохраненных в файловой системе, управляемой операционной системой.In another embodiment of the invention, the detection of the occurrence of events includes reading data from files stored in a file system managed by the operating system.

В другом варианте осуществления данного изобретения выявление наступления событий осуществляется в результате выявления сбоя при обновлении приложения безопасности, установленного в операционной системы.In another embodiment of the present invention, the occurrence of events is detected as a result of a failure when updating the security application installed in the operating system.

Краткое описание чертежейBrief Description of the Drawings

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objectives, features and advantages of the present invention will be apparent from reading the following description of an embodiment of the invention with reference to the accompanying drawings, in which:

Фиг.1 показывает пример компьютерной системы общего назначения.Figure 1 shows an example of a general purpose computer system.

Фиг.2 показывает примеры сервисов, реализуемых в пред-ОС окружении.Figure 2 shows examples of services implemented in a pre-OS environment.

Фиг.3 показывает модули, составляющие пред-ОС агента безопасности.Figure 3 shows the modules that make up the pre-OS security agent.

Фиг.4 показывает функциональную схему, иллюстрирующую взаимодействие между пред-ОС агентом безопасности, приложением безопасности и удаленным сервером.FIG. 4 shows a functional diagram illustrating the interaction between a pre-OS security agent, a security application, and a remote server.

Фиг.5 показывает схему приложения безопасности.5 shows a diagram of a security application.

Фиг.6 показывает различные элементы логики пред-ОС агента безопасности, а также потоки информации и решений, связанные с их работой.6 shows various elements of the security agent pre-OS logic, as well as information and decision flows associated with their operation.

Фиг.7А и 7Б показывают блок-схемы, иллюстрирующие примерные операции, выполняемые приложением безопасности.7A and 7B show flowcharts illustrating exemplary operations performed by a security application.

Фиг.8 показывает пример операции, выполняемой пред-ОС агентом безопасности.FIG. 8 shows an example of an operation performed by a pre-OS security agent.

Фиг.9 показывает пример матрицы условий и соответствующих им действий.Figure 9 shows an example of a matrix of conditions and their corresponding actions.

Описание вариантов осуществления изобретенияDescription of Embodiments

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The essence described in the description is nothing more than the specific details necessary to assist the specialist in the field of technology in a comprehensive understanding of the invention, and the present invention is defined in the scope of the attached claims.

На Фиг.1 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. ПЗУ 24 может содержать окружение, загружаемое перед операционной системой (далее по тексту для обозначения загрузки или исполнения кода приложения, предшествующих старту операционной системы будем использовать сокращение пред-ОС, например, если приложение исполняется перед стартом операционной системы, то будем обозначать его, как пред-ОС приложение), которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. Пред-ОС окружение 26 может включать в себя возможности основной системы ввода/вывода или BIOS (Basic Input/Output System), а также дополнительные возможности, такие как запуск приложений, которые могут исполняться независимо от операционной системы.Figure 1 represents an example of a general-purpose computer system, a personal computer or server 20 comprising a central processor 21, a system memory 22, and a system bus 23, which contains various system components, including memory associated with the central processor 21. System bus 23 implemented, like any bus structure known in the art, which in turn contains a bus memory or a bus memory controller, a peripheral bus and a local bus that is capable of interacting with any other bus architecture . The system memory contains read-only memory (ROM) 24, random access memory (RAM) 25. ROM 24 may contain the environment loaded in front of the operating system (hereinafter, to indicate the loading or execution of application code prior to the start of the operating system, we will use the abbreviation -OS, for example, if the application is executed before the start of the operating system, we will designate it as a pre-OS application), which ensure the transfer of information between the elements of a personal computer user 20, for example, at the time of loading the operating system using ROM 24. The pre-OS environment 26 may include the capabilities of the main input / output system or BIOS (Basic Input / Output System), as well as additional features such as launching applications, which can be executed independently of the operating system.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20 in turn contains a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29, and an optical drive 30 for reading and writing to removable optical disks 31, such as a CD-ROM, DVD -ROM and other optical information carriers. The hard disk 27, the magnetic disk drive 28, the optical drive 30 are connected to the system bus 23 through the interface of the hard disk 32, the interface of the magnetic disks 33 and the interface of the optical drive 34, respectively. Drives and associated computer storage media are non-volatile means of storing computer instructions, data structures, software modules and other data of a personal computer 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флэш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a hard disk 27, a removable magnetic disk 29, and a removable optical disk 31, but it should be understood that other types of computer storage media 56 that can store data in a form readable by a computer (solid state drives, flash memory cards, digital disks, random access memory (RAM), etc.) that are connected to the system bus 23 through the controller 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п.Computer 20 has a file system 36 where the recorded operating system 35 is stored, as well as additional software applications 37, other program modules 38, and program data 39. The user is able to enter commands and information into personal computer 20 via input devices (keyboard 40, keypad “ the mouse "42). Other input devices (not displayed) can be used: microphone, joystick, game console, scanner, etc.

Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.Such input devices are, as usual, connected to the computer system 20 via a serial port 46, which in turn is connected to the system bus, but can be connected in another way, for example, using a parallel port, a game port, or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the monitor 47, the personal computer can be equipped with other peripheral output devices (not displayed), for example, speakers, a printer, etc. .

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.13. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment, using a network connection with another or more remote computers 49. The remote computer (or computers) 49 are the same personal computers or servers that have most or all of the elements mentioned earlier in the description of the creature personal computer 20 shown in Fig.13. Other devices, such as routers, network stations, peer-to-peer devices, or other network nodes may also be present on the computer network.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.Network connections can form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks, internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local area network 50 via a network adapter or network interface 51. When using the networks, the personal computer 20 may use a modem 54 or other means of providing communication with a global computer network such as the Internet. The modem 54, which is an internal or external device, is connected to the system bus 23 via the serial port 46. It should be clarified that the network connections are only exemplary and are not required to display the exact network configuration, i.e. in reality, there are other ways to establish a technical connection between one computer and another.

На Фиг.2 изображены примеры сервисов, реализуемых в пред-ОС окружении 116, которые могут быть раскрыты в различных вариантах осуществления данного изобретения. Пред-ОС окружение 116 позволяет запускать встроенные приложения без операционной системы. Приложения, исполняемые в пред-ОС окружении 116, имеют доступ к определенным драйверам компонентов и периферийных устройств компьютерной системы. Пред-ОС окружение 116 содержит облегченную (или урезанную) операционную систему, в том смысле, что данная операционная система в значительной степени ограничена в своей способности поддерживать полнофункциональные сервисы, библиотеки и прикладные программные интерфейсы (API) пользовательской операционной системы. Пред-ОС окружение 116 может храниться на основном жестком диске компьютерной системы или на специальном загрузочном устройстве, также оно может храниться в постоянном запоминающем устройстве (ПЗУ), например, в электрически стираемом программируемом постоянном запоминающем устройстве (ЭСППЗУ) на материнской плате компьютерной системы. В качестве пред-ОС окружения 116 может быть использован Unified Extensible Firmware Interface (UEFI), что, однако, не ограничивает возможности данного изобретения по использованию других известных или будущих систем, выполняющих функции пред-ОС окружения 116.Figure 2 shows examples of services implemented in a pre-OS environment 116, which can be disclosed in various embodiments of the present invention. Pre-OS environment 116 allows you to run embedded applications without an operating system. Applications running in the pre-OS environment 116 have access to certain drivers of components and peripherals of a computer system. The pre-OS environment 116 contains a lightweight (or truncated) operating system, in the sense that this operating system is largely limited in its ability to support full-featured services, libraries, and application programming interfaces (APIs) of the user operating system. The pre-OS environment 116 can be stored on the main hard disk of a computer system or on a special boot device, it can also be stored in read-only memory (ROM), for example, in an electrically erasable programmable read-only memory (EEPROM) on the motherboard of a computer system. As a pre-OS environment 116 can be used Unified Extensible Firmware Interface (UEFI), which, however, does not limit the ability of this invention to use other known or future systems that perform the functions of a pre-OS environment 116.

В одном из вариантов осуществления данного изобретения пред-ОС окружение 116 реализует сервис поддержки функции BIOS 152, выполняющий функции, имитирующие традиционную среду BIOS для поддержки старых операционных систем, которые несовместимы с пред-ОС окружением 116. Службы запуска 154 включают в себя текстовые и графические консоли для различных устройств, сервисы управления шинами, блоками данных и файлами. Также службы запуска 154 включают в себя управление политиками встроенного ПО, которые отвечают за старт программы загрузчика операционной системы и всех необходимых драйверов. Конфигурация загрузки компьютерной системы контролируется набором глобальных переменных, включающих загрузочные переменные, в которых прописаны программы загрузчики. Оперативные сервисы 156 включают в себя функции, которые могут исполняться, пока операционная система загружается. Это такие функции, как доступ к времени, дате или к энергонезависимой памяти с произвольным доступом (NVRAM). Опционные сервисы 158 предоставляют возможность хранения данных, которые доступны как со стороны платформы встроенного ПО, так и операционной системы или приложений пред-ОС окружения.In one embodiment of the invention, the pre-OS environment 116 implements a BIOS 152 function support service that implements functions that mimic the traditional BIOS environment for supporting older operating systems that are incompatible with the pre-OS environment 116. Launch services 154 include text and graphic consoles for various devices, services for managing buses, data blocks and files. Also, startup services 154 include managing firmware policies that are responsible for starting the bootloader program of the operating system and all the necessary drivers. The boot configuration of a computer system is controlled by a set of global variables, including boot variables, in which the bootloader programs are written. Online services 156 include functions that may be executed while the operating system is loading. These are functions such as access to time, date, or non-volatile random access memory (NVRAM). Optional services 158 provide the ability to store data that is available both from the side of the firmware platform, and the operating system or pre-OS environment applications.

Приложения 150 содержат в себе сервисы, необходимые для исполнения приложений в рамках пред-ОС окружения, включая драйверы устройств, оболочки программ (под оболочками программ подразумеваются приложения, реализующие командную строку, например, cmd.exe или приложения, реализующие графический интерфейс, например explorer.exe) и инструкции инициализации пред-ОС приложений, а также сами приложения.Applications 150 contain the services necessary for executing applications within the pre-OS environment, including device drivers, program shells (program shells mean applications that implement the command line, for example, cmd.exe or applications that implement a graphical interface, for example explorer. exe) and initialization instructions for pre-OS applications, as well as the applications themselves.

Среди приложений 150 в одном из вариантов осуществления данного изобретения может быть представлен пред-ОС агент безопасности 200, изображенный на Фиг.3. В различных вариантах осуществления пред-ОС агент безопасности 200 может изменять приложения, которые исполняются в операционной системе. Эти изменения могут включать в себя изменения в программном коде приложений, в параметрах настройки приложений, а также в данных, используемых приложениями. Также пред-ОС агент безопасности может вносить изменения непосредственно в саму операционную систему. Способность пред-ОС агента безопасности 200 к осуществлению такого рода изменений до начала загрузки операционной системы позволяет противодействовать внесению подобных изменений со стороны вредоносного ПО.Among applications 150, in one embodiment of the present invention, a pre-OS security agent 200 depicted in FIG. 3 may be provided. In various embodiments of the pre-OS, the security agent 200 may modify applications that run on the operating system. These changes may include changes to the application code, application settings, and data used by applications. Also, the pre-OS security agent can make changes directly to the operating system itself. The ability of the pre-OS security agent 200 to make such changes before loading the operating system allows you to counteract the introduction of such changes by malware.

Некоторые модули, составляющие пред-ОС агента безопасности 200, согласно одному из вариантов осуществления данного изобретения показаны на Фиг.3. Модуль связи 202 использует сетевой интерфейс компьютерной системы и необходимые драйверы для подключения к удаленной вычислительной системе, например, к удаленному серверу службы безопасности. Модуль восстановления 204 способен восстанавливать приложения, работающие в рамках пользовательской операционной системы, до исходного или просто более раннего состояния, например, путем резервного копирования или создания точек восстановления. Такая процедура способна отменить установленные обновления и вернуть соответствующее приложение к более ранней версии. Точки восстановления могут быть получены из безопасного места на локальной компьютерной системе, со съемного носителя (например, флэш-диска) или с удаленной компьютерной системы (например, сервера безопасности или сервера-разработчика приложения) при помощи модуля связи 202. Аналогичным образом модуль восстановления 204 может осуществить восстановление деталей или всей операционной системы в соответствии с одной или несколькими заранее определенными точками восстановления системы. При этом могут быть использованы либо собственный сервис восстановления системы операционной системы (например, сервис «восстановление системы» Windows®), либо отдельный сервис, осуществляющий безопасное хранение данных для восстановления локально или удаленно, например, продукт компании ЗАО «Лаборатория Касперского» Kaspersky CRYSTAL 3.0, использующий функцию резервного копирования и восстановления данных с возможностью выбора варианта хранения данных локально или на FTP серверах.Some modules constituting the pre-OS of the security agent 200, according to one embodiment of the present invention, are shown in FIG. The communication module 202 uses the network interface of the computer system and the necessary drivers to connect to a remote computing system, for example, to a remote security service server. Recovery module 204 is capable of restoring applications running within a user operating system to its original or simply earlier state, for example, by backing up or creating recovery points. Such a procedure can undo installed updates and return the corresponding application to an earlier version. Recovery points can be obtained from a secure location on the local computer system, from removable media (such as a flash drive), or from a remote computer system (such as a security server or application development server) using the communication module 202. Likewise, the recovery module 204 can restore parts or the entire operating system in accordance with one or more predefined system restore points. In this case, either your own operating system system recovery service (for example, the Windows® System Restore service) can be used, or a separate service that safely stores data for recovery locally or remotely, for example, a product of Kaspersky Lab ZAO Kaspersky CRYSTAL 3.0 using the function of backup and restore data with the ability to choose the option of storing data locally or on FTP servers.

Таким образом, в одном из вариантов осуществления данного изобретения модуль восстановления 204 включает в себя инструкции, которые определяют, где можно получить актуальную регулярно обновляемую информацию для восстановления соответствующих приложений или операционной системы, а также алгоритм для определения точек восстановления, наиболее соответствующих заданным обстоятельствам. Например, алгоритм восстановления может определить ряд точек восстановления в определенном порядке, следующим за текущей точкой, восстановление по которой привело в некорректное состояние соответствующее приложение или компонент операционной системы. Более того, алгоритм восстановления может запоминать успешно исполняемые (например, по отсутствию ошибок в процессе работы приложения или компонента) версии программ и компонент операционной системы и формировать инструкции для предпочтительного выбора данных версий в ответ на запрос восстановления. В другом варианте осуществления модуль восстановления 204 включает в себя инструкции для восстановления пред-ОС агента безопасности 200. В одном варианте осуществления восстановление требуется в случае выявления факта компрометации или повреждения операционной системы или приложения, особенно, если приложение представляет собой приложение безопасности. В такой ситуации нельзя быть уверенным в том, что операционная система или приложение безопасности произведут корректное восстановление самих себя. Данная ситуация может быть создана по вине неисправности или же в результате действий со стороны вредоносных программ типа руткит/буткит, которые проникли в ядро операционной системы.Thus, in one embodiment of the invention, the recovery module 204 includes instructions that determine where to obtain relevant regularly updated information to restore the respective applications or operating system, as well as an algorithm for determining recovery points that are most appropriate for the given circumstances. For example, a recovery algorithm may determine a series of recovery points in a specific order following the current point, the recovery from which brought the corresponding application or component of the operating system into an incorrect state. Moreover, the recovery algorithm can remember successfully executed (for example, by the absence of errors during the application or component operation) versions of programs and components of the operating system and generate instructions for the preferred choice of these versions in response to a recovery request. In another embodiment, the recovery module 204 includes instructions for recovering the pre-OS of the security agent 200. In one embodiment, recovery is required if a compromised or damaged operating system or application is detected, especially if the application is a security application. In such a situation, one cannot be sure that the operating system or security application will correctly restore themselves. This situation can be created due to a malfunction or as a result of actions by malicious programs such as rootkit / bootkit that penetrated the kernel of the operating system.

Модуль обновлений 206 осуществляет обновления приложений, операционной системы или пред-ОС агента безопасности 200. Модуль обновлений 206 может получать приложения или обновления баз данных с помощью модуля связи 202, который может взаимодействовать с сервером обновлений поставщика услуг безопасности или иным уполномоченным поставщиком, например, операционной системы или производителя приложения или их дистрибьютором. В одном из вариантов осуществления обновления, осуществляемые модулем обновления 206, не столь всеобъемлющи и велики, как обновления получаемые приложениями, работающими в рамках пользовательской операционной системы. Обновления согласно данному варианту осуществления узкоспециализированы для решения конкретных проблем в области выделенных критически важных ситуаций, решаемых на уровне пред-ОС окружения 116. Одним из примеров такой ситуации может служить уведомление от приложения безопасности о появлении новых доступных обновлений баз вредоносных программ, включающих новые руткит или буткит определения. Так как этот тип вредоносных программ представляет риск для ядра операционной системы, обработка обновлений на этапе до запуска операционной системы гарантирует, что обновление будет осуществлено должным образом, даже если операционная система уже скомпрометирована.Update module 206 updates applications, the operating system, or pre-OS of security agent 200. Update module 206 can receive applications or database updates using a communication module 202 that can communicate with the update server of a security service provider or other authorized provider, for example, an operating system or application manufacturer or distributor. In one embodiment, the updates provided by the updater 206 are not as comprehensive and large as the updates received by applications running within the user operating system. Updates according to this embodiment are highly specialized to solve specific problems in the area of highlighted critical situations to be solved at the pre-OS environment level 116. One example of such a situation is a notification from a security application about the appearance of new available updates to malware databases, including new rootkits or bootkit definition. Since this type of malware poses a risk to the kernel of the operating system, the processing of updates during the pre-launch phase of the operating system ensures that the update is carried out properly, even if the operating system is already compromised.

Антивирусный модуль 208 в одном из вариантов осуществления данного изобретения настроен на выполнение проверки и обнаружения вредоносных программ определенных типов, базы данных определений которых доступны на местном уровне (пред-ОС), хранятся и регулярно обновляются. В родственном варианте осуществления антивирусный модуль 208 настроен на осуществление операций по удалению или постановки на карантин вредоносных программ и чистых файлов, кода приложений и компонент операционной системы. В смежном варианте осуществления антивирусный модуль 208 предназначен для осуществления всех функций, необходимых для защиты операционной системы и приложения безопасности, чтобы приложение безопасности (вместе с ядром операционной системы, сервисами и библиотеками) могло полноценно исполнять свои функции по защите компьютерной системы.Antivirus module 208 in one embodiment of the invention is configured to scan and detect certain types of malware, the definition databases of which are available locally (pre-OS), are stored and regularly updated. In a related embodiment, the anti-virus module 208 is configured to perform operations to remove or quarantine malicious programs and clean files, application code, and operating system components. In a related embodiment, the anti-virus module 208 is designed to perform all the functions necessary to protect the operating system and security application so that the security application (together with the kernel of the operating system, services and libraries) can fully perform its functions of protecting the computer system.

Модуль взаимодействия 210 включает в себя инструкции и положения по безопасности для осуществления защищенного взаимодействия с операционной системой, файловой системой и приложениями, работающими из-под операционной системы. В одном из вариантов реализации для того чтобы иметь доступ к определенным файлам модуль взаимодействия 210 реализован с возможностью осуществления доступа к диску(ам) в компьютерной системе, чтения, записи, доступа к каталогам и блокам управления файлами. В данном варианте осуществления модуль взаимодействия 210 имеет доступ к специальному защищенному буферу, через который пред-ОС агент безопасности и приложения, исполняемые в операционной системе, также настроенные на доступ к данному защищенному буферу, могут обмениваться данными, инструкциями и любой другой информацией. Для сокрытия содержимого и/или самого факта существования защищенного буфера могут быть использованы криптографические методы защиты. В одном из вариантов осуществления модуль взаимодействия 210 передает однонаправленный поток информации от пред-ОС агента безопасности 200 к соответствующему приложению, исполняемому в операционной системе. В другом варианте реализации приложение, исполняемое в операционной системе, осуществляет передачу информации пред-ОС агенту безопасности 200, а агент 200 настроен на получение данной информации, когда компьютерная система находится в состоянии пред-ОС.Interaction module 210 includes security instructions and provisions for securely interacting with the operating system, file system, and applications running from under the operating system. In one embodiment, in order to have access to certain files, the interaction module 210 is implemented with the ability to access the disk (s) in a computer system, read, write, access directories and file management units. In this embodiment, the interaction module 210 has access to a special secure buffer through which the pre-OS security agent and applications running on the operating system that are also configured to access this secure buffer can exchange data, instructions, and any other information. Cryptographic security methods can be used to conceal the contents and / or the fact of the existence of a secure buffer. In one embodiment, the interaction module 210 transmits a unidirectional flow of information from the pre-OS of the security agent 200 to the corresponding application running on the operating system. In another embodiment, an application running in the operating system transfers information to the pre-OS to security agent 200, and agent 200 is configured to receive this information when the computer system is in the pre-OS state.

Координатор действий 212 отвечает за управление работой пред-ОС агента безопасности 200. В одном из вариантов осуществления координатор действий 212 следит за возникновением в рамках компьютерной системы различных условий или состояний, используя в качестве логики принятия решений наборы критериев, и определяет действия, которые необходимо выполнить в ответ на определенные состояния или условия, а также команды различным функциям, которые будут исполнены в соответствии с каждой определенной реакцией. Соответственно, координатор действий 212 связывает различные модули пред-ОС агента безопасности 200 в единую функциональную единицу.The coordinator of actions 212 is responsible for managing the work of the pre-OS security agent 200. In one embodiment, the coordinator of actions 212 monitors the occurrence of various conditions or conditions within the computer system, using sets of criteria as the logic of decision-making, and determines the actions to be performed in response to certain conditions or conditions, as well as commands to various functions that will be performed in accordance with each specific reaction. Accordingly, the coordinator 212 links the various modules of the pre-OS security agent 200 in a single functional unit.

На Фиг.4 показана функциональная схема, иллюстрирующая взаимодействие между пред-ОС агентом безопасности 200 и приложением безопасности 250, работающим на локальной компьютерной системе 240, и связь данных элементов с удаленным сервером 260. В рамках приложения безопасности 250 может выступать, например, приложение Kaspersky Internet Security 2014. В данном варианте осуществления приложение безопасности 250 является приложением из числа приложений 37, исполняемых в операционной системе и предоставляющих набор функций, связанных с безопасностью. Удаленный сервер 260 представляет собой сервер безопасности. Удаленный сервер 260 обеспечивает регулярные обновления приложения безопасности 250. Связь 262 представляет собой типичную связь, установленную через сетевое соединение между приложением безопасности 250 и удаленным сервером 260, по которой предоставляются обновления. Удаленный сервер 260 может поддерживать рад других функций, например, выполнение распределенной обработки данных, сбора и обработка данных от пользовательского сообщества, прокси-серверов и т.д. Обновления и другие услуги предоставляются во время непосредственной работы приложения безопасности 250.4 is a functional diagram illustrating the interaction between the pre-OS security agent 200 and the security application 250 running on the local computer system 240, and the communication of these elements with the remote server 260. Within the security application 250, for example, a Kaspersky application Internet Security 2014. In this embodiment, the security application 250 is an application among 37 applications running on the operating system and providing a set of security related functions. Remote server 260 is a security server. Remote server 260 provides regular updates to security application 250. Communication 262 is a typical connection established through a network connection between security application 250 and remote server 260 through which updates are provided. Remote server 260 may support a host of other functions, such as performing distributed data processing, collecting and processing data from a user community, proxy servers, etc. Updates and other services are provided during the immediate operation of security application 250.

Пред-ОС агент безопасности 200 работает под управлением собственной операционной системы (суб-ОС) и также связан (264) с удаленным сервером 260. Связь 264 устанавливается перед загрузкой операционной системы и стартом приложения безопасности 250. Обновления или другие инструкции могут поступать через канал связи 264. Как уже говорилось выше, эти обновления могут включать в себя обновления для пред-ОС агента безопасности 200, приложения безопасности 250 и, в некоторых вариантах осуществления, могут включать в себя обновления для операционной системы или других приложений.The pre-OS security agent 200 runs under its own operating system (sub-OS) and is also connected (264) with the remote server 260. Communication 264 is established before the operating system is loaded and the security application 250 starts. Updates or other instructions may be received via the communication channel 264. As mentioned above, these updates may include updates for pre-OS security agent 200, security applications 250, and, in some embodiments, may include updates to the operating system Do other applications.

Пред-ОС агент безопасности 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 используют свои закрытые ключи для расшифровывания данных.The pre-OS security agent 200 can access the secure buffer 252 and the main file system 254 through the interaction module 210. In one embodiment, the secure buffer 252 can be implemented as a file within the file system or as a component of the operating system, such as for example, an operating system registry. In another embodiment, the secure buffer 252 may be implemented as a special part of the disk that is not available for use within the file system. In yet another embodiment, the secure buffer 252 is implemented using non-volatile memory available on the motherboard of a computer system, for example, the memory used to store instructions and data related to the pre-OS environment 116. In these embodiments, information is stored in the secure buffer 252 by the pre-OS of the security agent 200 or security application 250 and is read accordingly by the security application 250 or the pre-OS of the security agent 200, as the case may be. In another embodiment, the specialized driver operating at the sub-OS level is intended for access from the pre-OS of the security agent 200 to the protected buffer 252. Similarly, the driver at the user operating system level is intended exclusively for access from the security application 250 to secure buffer 252. In one such embodiment, the user operating system level driver authenticates the security application 250 before providing access to secure buffer 252. In another related approach, security application 250 and pre-OS security agent 200 use the public key infrastructure (PKI) to digitally sign data (or encryption) that will be written to secure buffer 252 using the public key of another . When reading data stored in secure buffer 252, security application 250 and pre-OS security agent 200 use their private keys to decrypt data.

На Фиг.5 более подробно изображена схема приложения безопасности 250. Приложение безопасности 250 способно выполнять любую комбинацию связанных с безопасностью функций, таких как, например: противодействие вредоносным объектам 302, обнаружение и удаление вредоносных объектов 304, нейтрализация угроз 306 и контроль целостности системы 307. Приведенные функции, связанные с безопасностью, описаны ниже только в общих чертах в качестве иллюстрации, и не представляют собой исчерпывающий перечень рассматриваемых функций, связанных с безопасностью. Различные другие функции, связанные с безопасностью, могут быть использованы в дополнении или вместо любой из функций, связанных с безопасностью, приведенной в качестве примера в данном документе.5 shows a more detailed diagram of a security application 250. Security application 250 is capable of performing any combination of security-related functions, such as, for example, countering malicious objects 302, detecting and removing malicious objects 304, neutralizing threats 306, and monitoring system integrity 307. The safety-related functions described below are described only in general terms as an illustration, and do not constitute an exhaustive list of the safety-related functions considered. Various other security related functions may be used in addition to or in place of any of the security related functions exemplified herein.

Противодействие вредоносным объектам 302 включает в себя блокирование вредоносных объектов, таких как вирусы, черви и другие вредоносные программы, рекламное ПО, шпионские программы, спам и т.п., а также блокирование нежелательного трафика, такого как хакерские атаки, прежде чем любой из этих объектов сможет реализовать свой вредоносный потенциал на локальном устройстве. Как правило, данная функция предполагает блокирование или перенаправление содержимого трафика межсетевым экраном. Обнаружение и удаление вредоносных объектов 304 применяется к объектам, которые миновали проверки, направленные на предотвращение проникновений, и теперь в той или иной форме находятся на локальном устройстве. Типовым примером такой функциональности будет проверка на вирусы на основе базы данных сигнатур (описаний известных вирусов и прочих вредоносных программ), и удаление или помещение на карантин соответствующих объектов и связанных с ними данных. Нейтрализация угроз 306 применяется для обнаружения нежелательного контента, обнаружения нападений или угроз в реальном времени и заключается в принятии мер по закрытию любых подозрительных программ или процессов, блокированию сетевого трафика, а также восстановлению системы до последнего известного безопасного состояния.Countering Malicious Objects 302 includes blocking malicious objects such as viruses, worms and other malicious programs, adware, spyware, spam, and the like, as well as blocking unwanted traffic such as hacker attacks before any of these objects will be able to realize their malicious potential on a local device. Typically, this function involves blocking or redirecting traffic content to a firewall. Detection and removal of malicious objects 304 is applied to objects that have passed checks aimed at preventing intrusions and are now in one form or another located on the local device. A typical example of such functionality will be a virus scan based on a signature database (descriptions of known viruses and other malicious programs), and the removal or quarantine of the corresponding objects and related data. Threat neutralization 306 is used to detect inappropriate content, detect attacks or threats in real time and consists in taking measures to close any suspicious programs or processes, blocking network traffic, and restoring the system to the last known safe state.

Приложение безопасности 250 содержит множество компонент, как, например, межсетевой экран 308, фильтр сообщений почты 310, антивирусный модуль/модуль блокирования нежелательного содержимого/утилиту удаления вредоносного ПО 312, систему резервного копирования и восстановления данных 314, а также системы предотвращения и обнаружения вторжений 316 (IPS/IDS). Также включены такие компоненты, как модуль обновлений 318, модуль обнаружения изменений 320 и модуль безопасного взаимодействия 322 для осуществления обмена данными с пред-ОС агентом безопасности 200. Эти компоненты могут работать в различных комбинациях для реализации различных функций приложения безопасности 250.Security application 250 contains many components, such as a firewall 308, a mail message filter 310, an anti-virus module / inappropriate content blocking module / malware removal utility 312, data backup and recovery system 314, and intrusion prevention and detection systems 316 (IPS / IDS). Also included are components such as update module 318, change detection module 320, and secure communication module 322 for communicating with the pre-OS security agent 200. These components can work in various combinations to implement various functions of the security application 250.

В одном варианте осуществления данного изобретения модуль обнаружения изменений 320 выполнен с возможностью отслеживать изменения, сделанные в компьютерной системе операционной системой и другими приложениями. Особый интерес в данном варианте осуществления представляют изменения, которые влияют на процесс загрузки операционной системы. Например, изменение основной загрузочной записи (MBR), установка новых драйверов устройств, добавление новых системных услуг, управляемых операционной системой, внесение изменений в настройки резидентных приложений, которые будут загружены при старте операционной системы, изменения в некоторых параметрах реестра операционной системы и т.д. Также модуль обнаружения изменений 320 может самостоятельно обнаруживать изменения в белом или черном списках программ, используемых антивирусным модулем 312. В ответ на обнаружение любого из указанных изменений (или других контролируемых) модуль обнаружения изменений 320 делает запись в журнале (например, системном или собственном) или устанавливает флаг, указывающий на обнаружение соответствующего изменения. Дополнительно может быть использован индикатор типа изменений. Установленный флаг, запись в журнале или другие показатели сохраняются в модуле безопасного взаимодействия 252.In one embodiment of the invention, the change detection module 320 is configured to track changes made to the computer system by the operating system and other applications. Of particular interest in this embodiment are changes that affect the boot process of the operating system. For example, changing the master boot record (MBR), installing new device drivers, adding new system services that are managed by the operating system, making changes to the settings of resident applications that will be loaded when the operating system starts, changes to some parameters of the operating system registry, etc. . Also, the change detection module 320 can independently detect changes in the white or black lists of programs used by the anti-virus module 312. In response to the detection of any of these changes (or other controlled changes), the change detection module 320 writes a log (for example, system or its own) or sets a flag indicating that a corresponding change has been detected. Additionally, an indicator of the type of change can be used. The flag set, a journal entry, or other indicators are stored in secure interaction module 252.

На Фиг.6 представлена схема, наглядно иллюстрирующая различные элементы логики работы пред-ОС агента безопасности 200, а также потоки информации и решений, связанные с их работой. Координатор действий 212 в данном варианте осуществления включает в себя модуль наблюдения 340, модуль принятия решения 342, набор критериев 344 и модуль выполнения действия 346. Модуль наблюдения 340 получает информацию о состоянии или режиме работы компьютерной системы. В данном варианте это осуществляется с помощью модуля взаимодействия 210, который имеет доступ к основной файловой системе 254, где хранятся системные журналы операционной системы, журналы других приложений и защищенный буфер 252, который может содержать информацию, предоставленную модулем обнаружения изменения 320 приложения безопасности 250. Это такая информация, как журналы и дамп 330, содержащие события или проблемы записанные операционной системой во время ее последней загрузки, а также события, зафиксированные в процессе работы операционной системы и любые дампы памяти, которые могли иметь место в связи с крахом операционной системы, полученные из файловой системы. Журнал 332 хранится приложением безопасности 250 и содержит события, происходящие во время выполнения собственных операций. Доступ к журналу 332 также осуществляется посредством модуля взаимодействия 210. Другие контролируемые объекты включают в себя флаг обновлений 334, установленный приложением безопасности 250, и флаг изменения системы 336, установленный модулем обнаружения изменений 320 приложения безопасности 250. Еще одним источником информации для модуля наблюдения 340 могут являться внешне поставляемые уведомления 338, например, предусмотренные удаленным сервером 260, передаваемые через модуль связи 202 (см. Фиг.3). Следует понимать, что эти примеры никоим образом не являются исчерпывающим перечнем объектов, представляющих интерес для контроля. В более общем смысле, модуль наблюдения 340 осуществляет наблюдение за критически важными событиями или условиями в отношении компьютерной системы и, в частности, в отношении безопасности компьютерной системы.6 is a diagram illustrating various elements of the logic of the operation of the pre-OS security agent 200, as well as the flows of information and decisions related to their work. The coordinator of actions 212 in this embodiment includes an observation module 340, a decision module 342, a set of criteria 344, and an execution module 346. The observation module 340 receives information about the state or mode of operation of the computer system. In this embodiment, this is done using interaction module 210, which has access to the main file system 254, which stores operating system system logs, other application logs, and a secure buffer 252, which can contain information provided by change detection module 320 of security application 250. This information such as logs and dump 330 containing events or problems recorded by the operating system during its last boot, as well as events recorded during operation system and any memory dumps that could have occurred due to the crash of the operating system received from the file system. Log 332 is stored by security application 250 and contains events that occur during execution of its own operations. Log 332 is also accessed through interaction module 210. Other monitored objects include update flag 334 set by security application 250 and system change flag 336 set by change detection module 320 of security application 250. Another source of information for monitoring module 340 may be be externally delivered notifications 338, for example, provided by the remote server 260, transmitted through the communication module 202 (see Figure 3). It should be understood that these examples are in no way an exhaustive list of objects of interest for control. More generally, the monitoring module 340 monitors critical events or conditions with respect to a computer system and, in particular, with respect to the security of a computer system.

Информация, полученная модулем наблюдения 340, поступает модулю принятия решений 342, который определяет, необходимо ли предпринять определенные действия в ответ на полученную информацию. Решение принимается на основании набора критериев 344 и на основании логики принятия решений модуля принятия решений 342. Модуль принятия решений 342, используя критерии 344, выделяет из информации, полученной от модуля наблюдения 340, указания на наступление событий, по меньшей мере, следующих типов:The information received by the monitoring module 340 is supplied to the decision module 342, which determines whether certain actions are necessary in response to the received information. The decision is made based on a set of criteria 344 and based on the decision logic of the decision module 342. The decision module 342, using criteria 344, extracts from the information received from the observation module 340 indications of the occurrence of at least the following types of events:

- определение неспособности приложением безопасности исполнять свои функции;- determination of the inability of the security application to perform its functions;

- выявление изменения в компьютерной системе, влияющего на процесс запуска операционной системы;- identification of changes in the computer system that affect the process of starting the operating system;

- получение запроса от приложения безопасности на выполнение агентом безопасности действия.- receiving a request from the security application for the execution of the action by the security agent.

Логика принятия решений может быть описана в любой приемлемой форме и включает в себя описанные логические правила, нечеткую логику, нейронные сети, и т.п., хотя в практической реализации предпочтение может быть отдано компактным инструкциям для быстрого и эффективного расчета в виду возможных архитектурных ограничений некоторых вариантов реализации (в связи с необходимостью ускорения процесса загрузки компьютерной системы). Как только модуль принятия решений 342 определяет необходимое действие, модуль выполнения действия 346 осуществляет предписанное действие.Decision logic can be described in any acceptable form and includes the described logical rules, fuzzy logic, neural networks, etc., although in practical implementation, preference may be given to compact instructions for quick and efficient calculation in view of possible architectural restrictions some implementation options (due to the need to speed up the process of loading a computer system). Once the decision module 342 determines the necessary action, the module 344 performs the prescribed action.

Предписанные действия могут включать использование модуля восстановления 204, модуля обновлений 206 и антивирусного модуля 208 (пред-ОС уровня) или любую их комбинацию. Например, в ответ на внешнее уведомление 338 о повышении уровня угрозы безопасности или выявлении флага изменения системы антивирусный модуль 208 может быть призван выполнить проверку целостности приложения безопасности 250 или операционной системы, каждая из которых обрабатывается, соответственно, модулем контроля целостности приложения безопасности 350 и модулем контроля целостности операционной системы 352. В другом примере в ответ на записи журнала, указывающие на изменения, влияющие на последовательность запуска системы, модуль обнаружения вредоносного программного обеспечения 354 может осуществить сканирование системы. В одном из вариантов осуществления модуль обнаружения вредоносного программного обеспечения 354 осуществляет сканирование только файлов и параметров реестра, связанных с приложением безопасности 250. В другом варианте осуществления сканирование на наличие вредоносных программ проводится среди конкретных файлов и папок в файловой системе или других объектов, которые считаются наиболее уязвимыми или критически важными, например, файлы, последовательно загружаемые при старте операционной системы. Модуль удаления вредоносного программного обеспечения 356 помещает на карантин или безопасно удаляет вредоносные объекты, выявленные в результате работы модуля обнаружения вредоносного программного обеспечения 354.The prescribed actions may include the use of recovery module 204, update module 206, and anti-virus module 208 (pre-OS level), or any combination thereof. For example, in response to an external notification 338 about an increase in the level of security threat or the detection of a system change flag, the anti-virus module 208 may be called upon to perform the integrity check of the security application 250 or the operating system, each of which is processed, respectively, by the integrity control module of the security application 350 and the control module the integrity of the operating system 352. In another example, in response to log entries indicating changes that affect the sequence of the system startup, the module will be detected 354 malware can scan the system. In one embodiment, the malware detection module 354 scans only files and registry settings associated with the security application 250. In another embodiment, malware scanning is performed among specific files and folders in the file system or other objects that are considered the most Vulnerable or critical, for example, files that are sequentially downloaded when the operating system starts. The malware removal module 356 quarantines or safely removes malicious objects detected by the malware detection module 354.

В другом варианте осуществления в ответ на обнаружение флага изменения системы модулю обновления 206 могут быть переданы инструкции для осуществления проверки наличия обновлений до загрузки операционной системы. Соответственно, модуль обновления встроенного ПО 358 проверит на наличие на удаленном сервере 260 любых доступных обновлений для пред-ОС агента безопасности 200, и если такое обновление доступно, то модуль может его осуществить. Также модуль обновления приложения безопасности 360 проверит на наличие на удаленном сервере 260 любых обновлений программного кода или баз данных определений вредоносных программ, используемых приложением безопасности 250, и осуществит соответствующие обновления в случае необходимости.In another embodiment, in response to detecting a system change flag, instructions can be sent to the update module 206 to check for updates before loading the operating system. Accordingly, the firmware update module 358 will check for any available updates for the pre-OS security agent 200 on the remote server 260, and if such an update is available, then the module can implement it. Also, the security application update module 360 will check for any updates to the code server or malware definition databases used by the security application 250 on the remote server 260 and will update accordingly if necessary.

В смежном варианте осуществления данного изобретения модуль обновления приложения безопасности 360 включает в себя процедуру обновления, по которой осуществляется получение только критических обновлений, таких как подмножества определений вредоносных программ или сценариев удаления вредоносных программ. Эти подмножества обновлений для приложения безопасности могут включать в себя только функции, относящиеся, например, к руткит/буткит обнаружению и удалению. Использование такой процедуры обновлений экономит время и ресурсы, необходимые на проведение операций в пред-ОС окружении 116, тем самым ускоряя загрузку пользовательской операционной системы. В другом смежном варианте осуществления модуль обновления приложения безопасности 360 может установить флаг в защищенном буфере 252 (через модуль взаимодействия 210), указывающий на то, что частичное обновление было успешно выполнено, а полное обновление необходимо выполнить после того, как приложение безопасности 250 будет загружено.In a related embodiment of the present invention, the security application update module 360 includes an update procedure that only receives critical updates, such as subsets of malware definitions or malware removal scripts. These subsets of updates for a security application can include only functions related, for example, to rootkit / bootkit detection and removal. Using such an update procedure saves time and resources needed for operations in the pre-OS environment 116, thereby speeding up the loading of the user operating system. In another related embodiment, the security application update module 360 may set a flag in the secure buffer 252 (via the interaction module 210), indicating that the partial update was successful and that a full update needs to be completed after the security application 250 has been downloaded.

В ином варианте осуществления данного изобретения в ответ на обнаружение крушения системы или другого критического отказа, в том числе конфликта между операционной системой и приложением, таким как, например, приложение безопасности 250, модуль восстановления 204 может быть призван для частичного или полного восстановления приложения безопасности 250, которое находится в ведении модуля восстановления приложения безопасности 362. Также в зависимости от характера обнаруженной проблемы операционная системы частично или полностью может быть восстановлена с помощью модуля восстановления операционной системы 364. Точки восстановления или предыдущая версия приложения безопасности 250 могут храниться локально в файловой системе. В другом варианте осуществления предыдущая версия может быть получена путем загрузки с удаленного сервера 260. Следует отметить, что различные состояния, условия или уведомления могут потребовать различных комбинаций действий, которые необходимо предпринять в соответствии с набором критериев 344.In another embodiment of the present invention, in response to detecting a system crash or other critical failure, including a conflict between the operating system and the application, such as, for example, security application 250, recovery module 204 may be called to partially or completely restore security application 250 , which is managed by the security application recovery module 362. Also, depending on the nature of the detected problem, the operating system may be partially or fully osstanovlena with a module of the operating system recovery 364 recovery points or a previous version of the security application 250 may be stored locally in the file system. In another embodiment, a previous version can be obtained by downloading from a remote server 260. It should be noted that various conditions, conditions or notifications may require different combinations of actions that must be taken in accordance with a set of criteria 344.

В одном из вариантов осуществления данного изобретения журнал операций приложения безопасности 332 может быть использован приложением безопасности 250 для передачи запроса или инструкций модулю взаимодействия 212, например, в ситуации, когда приложение безопасности 250 обнаруживает вредоносный объект, однако не в состоянии удалить или поместить данный объект в карантин. Данная неспособность может быть обусловлена, например, работой руткита, который препятствует исполнению определенных действий, внося изменения в стек драйверов файловой системы. Например, руткит TDSS, появившийся еще в 2008 году, скрывал свои файлы путем присоединения вредоносного фильтра к системному стеку драйверов. Причем производится данное действие в цикле для каждого тома в системе. Таким образом, руткит не только скрывал на диске файлы, имена которых начинаются с букв «tdl», но и при попытке открыть том \Device\HarddiskVolumeX возвращалась ошибка, что приводило к ошибкам в различных анти-руткитах, которым открытие данного тома было необходимо для низкоуровневого разбора структур файловой системы. В ответ на это приложение безопасности 250 регистрирует в журнале 332 запрос действий со стороны пред-ОС агента безопасности 200, указывая на вредоносный объект и характер действий (например, удаление, карантин, сканирование и т.д.). При следующей загрузке компьютерной системы модуль выполнения действия 346 получит уведомление о запросе действий через модули наблюдения 340 и принятия решения 342 и поручит выполнение соответствующей операции антивирусному модулю 208 (или любому другому модулю, соответственно). После завершения выполнения запрошенного действия модуль выполнения действия 346 может сообщить результат (то есть, подтверждение, что действие было успешно выполнено, или сообщение об ошибке) через модуль взаимодействия 210. Данная обратная связь может быть зарегистрирована в журнале операций приложения безопасности 332 или в защищенном буфере 252.In one embodiment of the invention, the security application operations log 332 can be used by the security application 250 to transmit a request or instructions to the interaction module 212, for example, in a situation where the security application 250 detects a malicious object, but is not able to delete or place this object in quarantine. This inability can be caused, for example, by the operation of the rootkit, which prevents the execution of certain actions by making changes to the file system driver stack. For example, the TDSS rootkit, which appeared back in 2008, hid its files by attaching a malicious filter to the system driver stack. Moreover, this action is performed in a cycle for each volume in the system. Thus, the rootkit not only hid files on the disk whose names begin with the letters “tdl”, but when trying to open the \ Device \ HarddiskVolumeX volume, an error was returned, which led to errors in various anti-rootkits that required opening this volume for low-level parsing of file system structures. In response to this security application 250, it logs a request for action from the pre-OS of security agent 200 in the log 332, indicating the malicious object and the nature of the actions (e.g., deletion, quarantine, scan, etc.). At the next boot of the computer system, the module 346 will receive a notification of the request for action through the monitoring modules 340 and decision 342 and will entrust the anti-virus module 208 (or any other module, respectively) with the corresponding operation. After completion of the requested action, the module 346 can report the result (that is, confirmation that the action was successful, or an error message) through the interaction module 210. This feedback can be recorded in the security application operation log 332 or in a secure buffer 252.

В другом родственном варианте осуществления данного изобретения антивирусный модуль 208 может использовать расширенные функциональные возможности приложения безопасности 250 для завершения определенных операций. Согласно данному варианту, антивирусный модуль 208 сообщает модулю выполнения действия 346 о запросе действий со стороны приложения безопасности 250. Модуль выполнения действия 346, в свою очередь, формирует запрос на такие действия и направляет его модулю взаимодействия 210. В ответ на прием такого запроса модуль взаимодействия 210 формирует запрос действия к приложению безопасности 348 в защищенном буфере 252, доступном приложению безопасности 250. При аналогичном подходе антивирусный модуль 208 может сформировать запрос действия со стороны приложения безопасности 250 и самостоятельно передать его модулю взаимодействия 210 (в обход модуля выполнения действия 246). Данный подход может быть использован в случае, когда антивирусный модуль 208 «подозревает» вредоносный объект, но не имеет, например, эвристического анализатора, необходимого для дополнительной оценки риска со стороны подозреваемого объекта. Соответственно, антивирусный модуль 208 может изолировать вредоносный объект и сформировать запрос действия к приложению безопасности 348, в котором будет идентифицирован объект карантина и указан запрос на проведение анализа. При получении запроса 348 приложение безопасности 250 может выполнить запрашиваемое действие и сообщить о результатах антивирусному модулю 208 через журнал операций приложения безопасности 332.In another related embodiment of the invention, the anti-virus module 208 may use the enhanced functionality of the security application 250 to complete certain operations. According to this option, the anti-virus module 208 informs the module of the execution of action 346 about the request for actions from the security application 250. The module of the execution of action 346, in turn, generates a request for such actions and sends it to the interaction module 210. In response to the receipt of such a request, the interaction module 210 generates an action request to security application 348 in a secure buffer 252 accessible to security application 250. With a similar approach, antivirus module 208 can generate an action request from the application security 250 and independently transfer it to the interaction module 210 (bypassing module execution of action 246). This approach can be used when the anti-virus module 208 “suspects” a malicious object, but does not have, for example, a heuristic analyzer necessary for an additional risk assessment by the suspected object. Accordingly, the anti-virus module 208 can isolate the malicious object and generate an action request to the security application 348, in which the quarantine object is identified and the request for analysis is indicated. Upon receipt of request 348, security application 250 may perform the requested action and report the results to antivirus module 208 through the security application operation log 332.

На Фиг.7А и 7Б показаны блок-схемы, иллюстрирующие примерные операции, выполняемые приложением безопасности 250. Обратимся сначала к Фиг.7А, где на этапе 402 приложение безопасности 250 получает обновление базы данных определений вредоносных программ. На этапе 404 производится оценка со стороны приложения безопасности 250 на предмет воздействия на защиту от руткит/буткит вирусов, то есть содержат ли обновления определения особо опасных вредоносных программ, таких как руткиты или буткиты. Под воздействием подразумевается наступление неких событий, способных повлиять на текущий уровень защиты, например, увеличить его путем добавления появления новых инструментов защиты или скачиванием обновлений для имеющихся инструментов или, например, путем скачивания обновлений баз определений вредоносных программ новыми записями. В соответствии с решением 406, если в результате оценки, определяется, что обновление оказывает влияние на защиту от такого рода вредоносных программ (т.е. содержит необходимые определения вредоносных программ), то на этапе 408 в защищенном буфере 252 устанавливается флаг 334.7A and 7B are flowcharts illustrating exemplary operations performed by the security application 250. Referring first to FIG. 7A, where at step 402, the security application 250 receives an update to the malware definition database. At step 404, an assessment is made by the security application 250 for impact on protection against rootkit / bootkit viruses, that is, whether the updates contain definitions of particularly dangerous malware, such as rootkits or bootkits. Impact means the occurrence of certain events that can affect the current level of protection, for example, increase it by adding new protection tools or downloading updates for existing tools or, for example, by downloading updates to malware definition databases with new entries. In accordance with decision 406, if as a result of the assessment it is determined that the update affects the protection against such malicious programs (i.e. contains the necessary definitions of malware), then at step 408, flag 334 is set in protected buffer 252.

В соответствии с Фиг.7Б, на этапе 412 модуль обнаружения изменений 320 следит за любыми изменениями в настройках системы. Отслеживание включает в себя проверки журнала событий операционной системы, мониторинг изменений в реестре, мониторинг изменений в файлах, которые исполняются во время запуска операционной системы и т.д. На этапе 414 производится оценка того, оказывают ли выявленные на этапе 412 изменения воздействие на загрузку операционной системы и в случае положительной оценки на этапе 416 устанавливается флаг изменения системы 336.In accordance with FIG. 7B, at step 412, the change detection module 320 monitors any changes to the system settings. Tracking includes checking the event log of the operating system, monitoring changes in the registry, monitoring changes in files that are executed during the startup of the operating system, etc. At step 414, an assessment is made as to whether the changes detected at step 412 have an effect on the loading of the operating system, and in the case of a positive assessment at step 416, a system change flag 336 is set.

На Фиг.8 приведен пример операции, выполняемой пред-ОС агентом безопасности 200. Согласно данному примеру на этапе 422 инициируется запуск компьютерной системы, и осуществляется запуск пред-ОС окружения 116. Соответственно, происходит инициализация пред-ОС агента безопасности 200. На этапе 424 модуль наблюдения 340 проверяет различные контролируемые элементы, в том числе журналы операционной системы и приложения безопасности 250, флаги, установленные приложением безопасности 250, изменения в контролируемых файлах в рамках файловой системы, реестр операционной системы и т.д. Кроме того, сообщение может быть оставлено на сервере безопасности, таком как удаленный сервер 260, для уведомления, например, о выпущенных обновлениях за то время, когда компьютерная система была выключена, или с момента последней проверки компьютерной системы. На этапе 426 осуществляется принятие решения посредством модуля принятия решения 342 в соответствии с имеющейся логикой принятия решения и набором критериев 344 о необходимости выполнения действия. При положительном решении на этапе 428 модуль выполнения действия 346 принимает к исполнению заданное действие и на этапе 430 очищает все флаги и другие знаки, в отношении которых были полностью выполнены действия. После завершения указанной выше последовательности операционная система загружается на этапе 432.Fig. 8 shows an example of the operation performed by the pre-OS of the security agent 200. According to this example, at 422, a computer system is started and the pre-OS of the environment 116 is started. Accordingly, the pre-OS of the security agent 200 is initialized. At 424 monitoring module 340 checks various monitored elements, including operating system logs and security applications 250, flags set by security application 250, changes to controlled files within the file system, registry peratsionnoy systems, etc. In addition, a message may be left on a security server, such as a remote server 260, to notify, for example, of released updates when the computer system was turned off, or since the last time the computer system was checked. At 426, a decision is made through the decision module 342 in accordance with the existing decision logic and a set of criteria 344 about the need to perform an action. If the decision is positive at step 428, the module 349 takes the specified action for execution and at step 430 clears all the flags and other signs in respect of which the actions were completely performed. After completion of the above sequence, the operating system boots at step 432.

На Фиг.9 изображена матрица, иллюстрирующая пример учета критериев 344 используемых модулем принятия решения 342 для определения действий, выполняемых в ответ на определенные условия. Этот пример является далеко не полным или комплексным набором критериев принятия решения предусмотренных в рамках данного изобретения. Следует иметь в виду, что сами условия определяются из различных источников данных, которые используются для определения состояния или режима работы компьютерной системы. Примерный набор условий представлен в строках матрицы. К ним относятся: отказ загрузки операционной системы, который можно различить, например, из журнала загрузки операционной системы 330; крах операционной системы, выявленный по недавнему дампу памяти 330; неспособность запуска или крах приложения безопасности, которые можно определить по журналу операций приложения безопасности 332; обнаружение приложением безопасности изменений системы, нарушающих процесс загрузки; получение приложением безопасности обновлений, относящихся к руткит/буткит угрозам; сбой проверки целостности операционной системы; отсутствие обновления приложения безопасности, в период которого компьютерная система функционировала, что может быть установлено на основе отсутствия соответствующих событий в журналах (данное условие указывает на возможность вредоносного вмешательства в процесс обновления).9 is a matrix illustrating an example of accounting for criteria 344 used by decision module 342 to determine actions to be performed in response to certain conditions. This example is far from a complete or complex set of decision criteria provided for in the framework of this invention. It should be borne in mind that the conditions themselves are determined from various data sources that are used to determine the state or mode of operation of a computer system. An approximate set of conditions is presented in the rows of the matrix. These include: failure to load the operating system, which can be distinguished, for example, from the boot log of the operating system 330; crash of the operating system detected by a recent dump of 330; failure to launch or crash a security application, which can be determined from the security application operation log 332; detection by the security application of system changes that violate the boot process; receiving by the security application updates related to rootkit / bootkit threats; operating system integrity check failed; the absence of a security application update during which the computer system was functioning, which can be established on the basis of the absence of relevant events in the logs (this condition indicates the possibility of malicious interference with the update process).

Столбцы матрицы указывают на различные действия, которые могут быть выполнены. Они включают в себя, но не ограничиваются, следующим набором: проверка целостности операционной системы; проверка целостности приложения безопасности; пред-ОС сканирование и удаление вредоносных программ; частичное или полное исправление операционной системы; проверка наличия обновлений для пред-ОС окружения 116 или пред-ОС агента безопасности 200; проверка обновлений приложения безопасности 250; восстановление (откат) операционной системы, а также восстановление приложения безопасности. Х-знаки в клетках матрицы указывают на действия, которые могут быть выполнены в ответ на обнаружение определенного условия. Выполнение некоторых действий может стать невостребованным после выполнения других действий. Например, действия можно устанавливать в определенном порядке по степени вмешательства, как правило, от минимального воздействия на компьютерную систему к максимальному.The columns of the matrix indicate the various actions that can be performed. They include, but are not limited to, the following set: checking the integrity of the operating system; Checking the integrity of the security application pre-OS scanning and removal of malware; partial or complete correction of the operating system; checking for updates for pre-OS environment 116 or pre-OS security agent 200; Check for security application 250 updates recovery (rollback) of the operating system, as well as the restoration of the security application. X-signs in the cells of the matrix indicate actions that can be performed in response to the detection of a specific condition. Performing some actions may become unclaimed after performing other actions. For example, actions can be set in a certain order according to the degree of intervention, as a rule, from the minimum impact on the computer system to the maximum.

Для каждого действия могут быть установлены параметры, определяющие различные составные задачи, которые выполняются по мере необходимости. В одном варианте осуществления такая логика определяется, как часть модуля выполнения действия 346. В родственном варианте осуществления такие детали, как параметры и составные задачи, хранятся удаленно и читаются с удаленного сервера, когда выполняются соответствующие действия.For each action, parameters can be set that define the various composite tasks that are performed as needed. In one embodiment, such logic is defined as part of a module for performing action 346. In a related embodiment, details such as parameters and composite tasks are stored remotely and read from a remote server when appropriate actions are performed.

В одном варианте осуществления данного изобретения для защиты от рисков до обнаружения неблагоприятных условий автоматически формируются уведомления, которые могут быть прочитаны пред-ОС агентом безопасности 200 с удаленного сервера. В ответ на эти уведомления пред-ОС агент безопасности 200 может принять некоторые упреждающие меры. Одной из таких мер является загрузка обновления для пред-ОС агента безопасности 200. Другой мерой может быть сканирование и удаление вредоносных объектов из известных мест в файловой системе до загрузки операционной системы. Другие меры включают в себя обновление определенных частей (компонент) приложения безопасности 250, таких как черные списки программ или баз данных определений вредоносных программ и т.д. Еще одной мерой может являться выполнение отката установленных ранее обновлений операционной системы, приложения безопасности 250 или другого приложения в случае, если выпущенное обновление вступает в конфликт с операционной системой и приводит систему к краху.In one embodiment of the present invention, notifications are automatically generated that can be read by the pre-OS security agent 200 from a remote server to protect against risks before detecting adverse conditions. In response to these notifications, the pre-OS security agent 200 may take some proactive measures. One such measure is to download the update for the pre-OS security agent 200. Another measure may be to scan and remove malicious objects from known places in the file system before loading the operating system. Other measures include updating certain parts (components) of the security application 250, such as blacklists of programs or malware definition databases, etc. Another measure may be to roll back previously installed updates to the operating system, security application 250, or other application if the released update conflicts with the operating system and causes the system to crash.

В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.In conclusion, it should be noted that the information provided in the description are only examples that do not limit the scope of the present invention defined by the claims.

Claims (9)

1. Способ обеспечения безопасности компьютерной системы на этапе до запуска операционной системы, включающий в себя:
а) осуществление запуска UEFI из постоянного запоминающего устройства перед запуском операционной системы;
б) запуск из UEFI агента безопасности, работающего независимо от операционной системы;
в) осуществление посредством агента безопасности сканирования и последующего удаления или помещения на карантин вредоносного программного обеспечения;
где сканирование на наличие вредоносного программного обеспечения проводится лишь среди объектов, относящихся к запуску операционной системы и связанных с приложением безопасности, установленным в операционной системе; и
где для осуществления сканирования агентом безопасности используется регулярно обновляемая база данных определений вредоносного программного обеспечения, хранящаяся на уровне упомянутого UEFI;
г) выявление посредством агента безопасности состояний, связанных с событиями, имевшими место до последнего завершения работы операционной системы, по меньшей мере, одного из следующих типов:
- определение неспособности приложением безопасности, установленным в операционной системе, выполнять свои функции;
- выявление изменения в компьютерной системе, влияющего на процесс запуска операционной системы;
д) определение агентом безопасности, по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных состояний указанных типов, где действия включают в себя, по меньшей мере, одно из:
- управление объектами, сохраненными в файловой системе компьютерной системы;
- осуществление взаимодействия с удаленными серверами;
- откат до более ранних версий приложений, установленных в операционную систему;
- отправка посредством агента безопасности запроса на выполнение после запуска операционной системы действия со стороны приложения безопасности, установленного в операционную систему;
е) выполнение посредством агента безопасности упомянутого определенного в пункте д), по меньшей мере, одного действия, соответствующего, по меньшей мере, одному из выявленных состояний указанных типов.
1. A method of ensuring the security of a computer system at the stage before the launch of the operating system, including:
a) launching UEFI from read-only memory before starting the operating system;
b) starting from UEFI a security agent that works independently of the operating system;
c) the implementation through the security agent of scanning and subsequent removal or quarantining of malicious software;
where scanning for malicious software is carried out only among objects related to the launch of the operating system and related to the security application installed in the operating system; and
where a security agent uses a regularly updated database of malware definitions stored at the level of the aforementioned UEFI to perform scanning by the security agent;
d) the detection by the security agent of the conditions associated with events that occurred before the last shutdown of the operating system, at least one of the following types:
- determination of the inability of the security application installed in the operating system to perform its functions;
- identification of changes in the computer system that affect the process of starting the operating system;
e) determining by the security agent at least one action corresponding to at least one of the identified states of the indicated types, where the actions include at least one of:
- management of objects stored in the file system of a computer system;
- implementation of interaction with remote servers;
- rollback to earlier versions of applications installed on the operating system;
- sending through the security agent a request for execution after the operating system is launched, actions by the security application installed in the operating system;
f) performing, by means of a security agent, of the aforementioned at least one action specified in clause d) corresponding to at least one of the identified states of the indicated types.
2. Способ по п. 1, дополнительно включающий инициирование запуска операционной системы после завершения выполнения посредством агента безопасности набора действий, определенных в рамках полученного указания.2. The method according to p. 1, further comprising initiating the launch of the operating system after completion by means of the security agent of the set of actions defined in the framework of the received instructions. 3. Способ по п. 1, в котором выявление наступления состояний включает в себя считывание посредством агента безопасности индикаторов, оставленных приложением безопасности, установленном в операционной системе.3. The method according to claim 1, in which the detection of the onset of conditions includes reading through the security agent indicators left by the security application installed in the operating system. 4. Способ по п. 1, в котором выявление наступления состояний осуществляется в результате анализа посредством агента безопасности журнала событий, содержащегося в файловой системе компьютерной системы.4. The method according to p. 1, in which the detection of the onset of states is carried out as a result of analysis through the security agent of the event log contained in the file system of the computer system. 5. Способ по п. 1, в котором выявление наступления состояний осуществляется в результате выявления посредством агента безопасности сбоя в работе приложения безопасности, установленного в операционной системе.5. The method according to p. 1, in which the detection of the onset of conditions is carried out as a result of detection through the security agent of a malfunction in the security application installed in the operating system. 6. Способ по п. 1, в котором выявление наступления состояний осуществляется на основании уведомлений агента безопасности, полученных от удаленного сервера.6. The method according to p. 1, in which the detection of the onset of states is carried out on the basis of notifications of the security agent received from the remote server. 7. Способ по п. 1, в котором выявление наступления состояний включает в себя считывание посредством агента безопасности защищенного буфера из постоянного запоминающего устройства, где доступ приложения безопасности к защищенному буферу осуществляется посредством специализированного драйвера из окружения агента безопасности.7. The method according to p. 1, in which the detection of the onset of states includes reading through the security agent a protected buffer from read-only memory, where the security application accesses the protected buffer through a specialized driver from the environment of the security agent. 8. Способ по п. 1, в котором выявление наступления состояний включает в себя считывание посредством агента безопасности данных из файлов, сохраненных в файловой системе, управляемой операционной системой.8. The method of claim 1, wherein detecting the onset of conditions includes reading through the security agent data from files stored in a file system managed by the operating system. 9. Способ по п. 1, в котором выявление наступления состояний осуществляется в результате выявления посредством агента безопасности сбоя при обновлении приложения безопасности, установленного в операционной системы. 9. The method according to p. 1, in which the detection of the onset of states is carried out as a result of detection through the security agent of a failure when updating the security application installed in the operating system.
RU2013158136/08A 2013-12-27 2013-12-27 Security agent, operating at embedded software level with support of operating system security level RU2583714C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2013158136/08A RU2583714C2 (en) 2013-12-27 2013-12-27 Security agent, operating at embedded software level with support of operating system security level

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013158136/08A RU2583714C2 (en) 2013-12-27 2013-12-27 Security agent, operating at embedded software level with support of operating system security level

Publications (2)

Publication Number Publication Date
RU2013158136A RU2013158136A (en) 2015-07-10
RU2583714C2 true RU2583714C2 (en) 2016-05-10

Family

ID=53538038

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013158136/08A RU2583714C2 (en) 2013-12-27 2013-12-27 Security agent, operating at embedded software level with support of operating system security level

Country Status (1)

Country Link
RU (1) RU2583714C2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2624554C1 (en) * 2016-05-17 2017-07-04 Закрытое акционерное общество "Перспективный мониторинг" Detection method of the hidden software in the computing system, running under the posix-compatible operating system
RU2648508C1 (en) * 2016-12-26 2018-03-26 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Method for evaluating the ability of a computer network node to operate under conditions of information and technical impact
RU2711508C1 (en) * 2016-07-25 2020-01-17 Мастеркард Интернэшнл Инкорпорейтед System and method for through administration of keys
WO2021154200A1 (en) * 2020-01-27 2021-08-05 Hewlett-Packard Development Company, L.P. Firmware corruption recovery
RU2789614C1 (en) * 2021-11-22 2023-02-06 Акционерное Общество "Крафтвэй Корпорэйшн Плс" Device for protection of uefi bios from unauthorized changes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU129278U1 (en) * 2013-02-06 2013-06-20 Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" COMPUTER WITH ANTI-VIRUS PROTECTION AT UEFI AT EARLY DOWNLOAD STAGE
RU129675U1 (en) * 2013-02-06 2013-06-27 Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" COMPUTER TO START A THIN HYPERVISOR IN UEFI AT AN EARLY STAGE OF LOADING A COMPUTER
RU129674U1 (en) * 2013-02-06 2013-06-27 Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" COMPUTER PROTECTED FROM UNAUTHORIZED ACCESS

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU129278U1 (en) * 2013-02-06 2013-06-20 Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" COMPUTER WITH ANTI-VIRUS PROTECTION AT UEFI AT EARLY DOWNLOAD STAGE
RU129675U1 (en) * 2013-02-06 2013-06-27 Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" COMPUTER TO START A THIN HYPERVISOR IN UEFI AT AN EARLY STAGE OF LOADING A COMPUTER
RU129674U1 (en) * 2013-02-06 2013-06-27 Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" COMPUTER PROTECTED FROM UNAUTHORIZED ACCESS

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2624554C1 (en) * 2016-05-17 2017-07-04 Закрытое акционерное общество "Перспективный мониторинг" Detection method of the hidden software in the computing system, running under the posix-compatible operating system
RU2711508C1 (en) * 2016-07-25 2020-01-17 Мастеркард Интернэшнл Инкорпорейтед System and method for through administration of keys
RU2648508C1 (en) * 2016-12-26 2018-03-26 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Method for evaluating the ability of a computer network node to operate under conditions of information and technical impact
WO2021154200A1 (en) * 2020-01-27 2021-08-05 Hewlett-Packard Development Company, L.P. Firmware corruption recovery
TWI764454B (en) * 2020-01-27 2022-05-11 美商惠普發展公司有限責任合夥企業 Firmware corruption recovery
RU2789614C1 (en) * 2021-11-22 2023-02-06 Акционерное Общество "Крафтвэй Корпорэйшн Плс" Device for protection of uefi bios from unauthorized changes

Also Published As

Publication number Publication date
RU2013158136A (en) 2015-07-10

Similar Documents

Publication Publication Date Title
US10291634B2 (en) System and method for determining summary events of an attack
JP6639588B2 (en) System and method for detecting malicious files
RU2589862C1 (en) Method of detecting malicious code in random-access memory
US8353031B1 (en) Virtual security appliance
US8028172B2 (en) Systems and methods for updating a secure boot process on a computer with a hardware security module
EP2156356B1 (en) Trusted operating environment for malware detection
US7506380B2 (en) Systems and methods for boot recovery in a secure boot process on a computer with a hardware security module
US8910283B1 (en) Firmware-level security agent supporting operating system-level security in computer system
US20100199351A1 (en) Method and system for securing virtual machines by restricting access in connection with a vulnerability audit
US20100175108A1 (en) Method and system for securing virtual machines by restricting access in connection with a vulnerability audit
US8495741B1 (en) Remediating malware infections through obfuscation
KR20090023644A (en) Identifying malware in a boot environment
CN110119619B (en) System and method for creating anti-virus records
US9251350B2 (en) Trusted operating environment for malware detection
RU101233U1 (en) SYSTEM OF RESTRICTION OF RIGHTS OF ACCESS TO RESOURCES BASED ON THE CALCULATION OF DANGER RATING
RU2583714C2 (en) Security agent, operating at embedded software level with support of operating system security level
US9390275B1 (en) System and method for controlling hard drive data change
Alzahrani et al. Ransomware in windows and android platforms
Kuzminykh et al. Analysis of security of rootkit detection methods
Çeliktaş The ransomware detection and prevention tool design by using signature and anomaly based detection methods
EP2729893B1 (en) Security method and apparatus
Corregedor et al. Implementing rootkits to address operating system vulnerabilities
Kazoleas et al. A novel malicious remote administration tool using stealth and self-defense techniques
RU2592383C1 (en) Method of creating antivirus record when detecting malicious code in random-access memory
RU2739832C1 (en) System and method of detecting changed system files for checking for malware in a cloud service