RU2797716C1 - System and method for detecting the presence of a vulnerability in the operating system based on data on processes and threads - Google Patents

System and method for detecting the presence of a vulnerability in the operating system based on data on processes and threads Download PDF

Info

Publication number
RU2797716C1
RU2797716C1 RU2022116157A RU2022116157A RU2797716C1 RU 2797716 C1 RU2797716 C1 RU 2797716C1 RU 2022116157 A RU2022116157 A RU 2022116157A RU 2022116157 A RU2022116157 A RU 2022116157A RU 2797716 C1 RU2797716 C1 RU 2797716C1
Authority
RU
Russia
Prior art keywords
vulnerability
privileges
thread
operating system
privilege
Prior art date
Application number
RU2022116157A
Other languages
Russian (ru)
Inventor
Алексей Владимирович Монастырский
Дмитрий Андреевич Кондратьев
Original Assignee
Акционерное общество "Лаборатория Касперского"
Filing date
Publication date
Application filed by Акционерное общество "Лаборатория Касперского" filed Critical Акционерное общество "Лаборатория Касперского"
Priority to US18/157,861 priority Critical patent/US20230409717A1/en
Application granted granted Critical
Publication of RU2797716C1 publication Critical patent/RU2797716C1/en

Links

Images

Abstract

FIELD: information security.
SUBSTANCE: invention is proposed to suppress the threat of privilege spoofing caused by a vulnerability in the OS. It is achieved by isolating the file that used the discovered vulnerability. Vulnerability detection is performed using vulnerability detection rules based on the result of a check for illegal changes in process or thread privileges.
EFFECT: suppressing the threat of privilege spoofing caused by a vulnerability in the OS.
8 cl, 4 dwg, 2 ex

Description

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

Изобретение относится к области информационной безопасности, а более конкретно к системам и способам обеспечения безопасности операционной системы, в частности к системам и способам выявления уязвимостей в операционной системе.The invention relates to the field of information security, and more specifically to systems and methods for ensuring the security of an operating system, in particular to systems and methods for detecting vulnerabilities in an operating system.

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

Количество пользователей, количество компаний и разнообразие направлений их деятельности продолжает непрерывно расти. Одновременно увеличивается и количество создаваемых программ и приложений.The number of users, the number of companies and the diversity of their activities continues to grow continuously. At the same time, the number of created programs and applications is also increasing.

Создание программ и приложений предусматривает их взаимодействие с операционной системой (ОС), которая представляет собой комплекс системных и служебных программных средств. С одной стороны, ОС опирается на базовое программное обеспечение компьютера, входящее в его систему BIOS (базовая система ввода-вывода), с другой стороны, ОС является основой для программного обеспечения более высоких уровней – прикладных и большинства служб и сервисов. The creation of programs and applications involves their interaction with the operating system (OS), which is a complex of system and service software. On the one hand, the OS relies on the basic computer software included in its BIOS (basic input / output system), on the other hand, the OS is the basis for higher-level software - application and most services and services.

Процесс - это в выполняемая в данный момент программа. Процесс определяется как сущность, представляющая основную единицу работы, которая должна быть реализована в ОС. Любая ОС должна уметь производить запуск процессов, приостановку, выполнение, завершение выполнения и синхронизацию процессов между собой. Для каждого процесса ОС предоставляет собственное адресное пространство. В простейшем случае процесс состоит из одного потока. И с процессом, и с потоком связывается определенный программный код, который оформляется в виде исполняемого модуля. A process is a program currently being executed. A process is defined as an entity that represents the basic unit of work to be implemented in the OS. Any OS should be able to launch processes, suspend, execute, terminate execution and synchronize processes among themselves. The OS provides its own address space for each process. In the simplest case, a process consists of a single thread. Both the process and the thread are associated with a certain program code, which is designed as an executable module.

Существует множество различных уязвимостей, которые используются вирусописателями для модификации или подмены атрибутов процессов. Целью модификации является эскалация привилегий процессов для исполнения вредоносного кода. Способы, которыми осуществляется модификация, существенно отличаются в зависимости от конкретной уязвимости, по этой причине невозможно определить общие признаки такой модификации или самой уязвимости, в том числе еще необнаруженной.There are many different vulnerabilities that are used by virus writers to modify or change process attributes. The purpose of the modification is to escalate the privileges of processes to execute malicious code. The ways in which the modification is carried out differ significantly depending on the specific vulnerability, for this reason it is impossible to determine the general signs of such a modification or the vulnerability itself, including those that have not yet been discovered.

Существует много способов сравнения информации о процессе ОС для выявления приложений, выполняющих вредоносный код. Одним из эффективных способов является детальный анализ атрибутов процесса.There are many ways to compare OS process information to identify applications that are executing malicious code. One effective way is to analyze process attributes in detail.

В частности, в публикации US10177998B2 представлена система, способ и носитель, в которых выявляют и ограничивают вредоносные потоки путем анализа и сравнения перечня данных, в том числе атрибутов процессов, которые инициировали потоки. Потоком является набор сетевых пакетов, пересылаемый за определенный период времени.In particular, US10177998B2 presents a system, method, and medium that detects and restricts malicious flows by analyzing and comparing a list of data, including attributes of the processes that initiated the flows. A flow is a set of network packets sent over a certain period of time.

Указанная технология частично осуществляет выявление вредоносных приложений, но не позволяет эффективно решить задачу выявления уязвимостей, с помощью которых изменяют привилегии процессов.This technology partially detects malicious applications, but does not effectively solve the problem of identifying vulnerabilities that change the privileges of processes.

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

Изобретение предназначено для обеспечения безопасности ОС. Технический результат настоящего изобретения заключается в подавлении угрозы подмены привилегий, вызванной наличием уязвимости в ОС. Указанный технический результат достигается путем изолирования файла, который использовал обнаруженную уязвимость. Выявление наличия уязвимости выполняют при помощи правил выявления уязвимости на основании результата проверки на наличие нелегальных изменений привилегий процесса или потока.The invention is intended to ensure OS security. The technical result of the present invention is to suppress the threat of privilege substitution caused by the presence of a vulnerability in the OS. The specified technical result is achieved by isolating the file that used the discovered vulnerability. Vulnerability detection is performed using vulnerability detection rules based on the result of a check for illegal changes in process or thread privileges.

В одном из вариантов реализации предоставляется способ выявления наличия уязвимости в операционной системе на основании данных о процессах и потоках, содержащий этапы, на которых: выявляют запуск каждого потока каждого процесса; формируют набор актуальных привилегий на основании выявленных запусков; выполняют проверку сформированного набора на наличие нелегитимных изменений привилегий; обнаруживают наличие уязвимости в операционной системе при помощи правил выявления уязвимости на основании результата проверки; изолируют файл, который использовал обнаруженную уязвимость. In one embodiment, a method is provided for detecting the presence of a vulnerability in an operating system based on process and thread data, comprising the steps of: detecting the launch of each thread of each process; form a set of actual privileges based on the detected launches; checking the generated set for illegitimate privilege changes; detecting the presence of a vulnerability in the operating system using the vulnerability detection rules based on the test result; isolate the file that exploited the discovered vulnerability.

В другом варианте реализации способа под набором актуальных привилегий понимают набор данных, содержащий данные о каждом запущенном потоке, процессе, контексте безопасности, в том числе о маркере доступа и перечне привилегий. Еще в одном варианте реализации способа.In another embodiment of the method, a set of actual privileges is understood as a data set containing data about each running thread, process, security context, including an access token and a list of privileges. In yet another embodiment of the method.

Еще в другом варианте реализации способа выполняют проверку сформированного набора на наличие нелегитимных изменений привилегий путем выявления по крайней мере одного события использования привилегий в ОС.In yet another embodiment of the method, the generated set is checked for illegitimate privilege changes by detecting at least one privilege usage event in the OS.

В другом варианте реализации способа выполняют выявление по крайней мере одного события использования привилегий в ОС путем перехвата события ОС, содержащего характерную для вредоносных приложений активность использования обновленных привилегий.In another implementation of the method, detection of at least one privilege usage event in the OS is performed by intercepting an OS event containing an updated privilege usage activity characteristic of malicious applications.

Еще в одном варианте реализации способа выполняют выявление запуска каждого потока каждого процесса путем перехвата события ОС, которое указывает на инициализацию нового потока или процесса.In yet another implementation of the method, detection is made of the launch of each thread of each process by intercepting an OS event that indicates the initialization of a new thread or process.

Еще в другом варианте реализации способа выполняют проверку сформированного набора на наличие изменений привилегий путем поиска маркеров доступа потока, которые были изменены. In yet another embodiment of the method, the generated set is checked for privilege changes by looking for flow access tokens that have been changed.

В другом варианте реализации способа под правилом выявления уязвимостей понимают набор условий, при выполнении которого считают, что ОС содержит уязвимость.In another embodiment of the method, a vulnerability detection rule is understood as a set of conditions under which it is believed that the OS contains a vulnerability.

В одном из вариантов реализации предоставляется система, содержащая по меньшей мере один компьютер, включающий взаимодействующие между собой средства: средство формирования, средство выявления, средство обнаружения, базу данных правил и хранящий машиночитаемые инструкции, при выполнении которых система выполняет выявление наличия уязвимости в операционной системе на основании данных о процессах и потоках согласно способу.In one of the embodiments, a system is provided that contains at least one computer, including means interacting with each other: a generation tool, a detection tool, a detection tool, a database of rules and storing machine-readable instructions, upon execution of which the system performs detection of the presence of a vulnerability in the operating system on based on process and flow data according to the method.

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

Фиг. 1 иллюстрирует пример запуска нескольких произвольных исполняемых файлов в ОС. Fig. 1 illustrates an example of running several arbitrary executable files in the OS.

Фиг. 2 иллюстрирует структуру системы выявления наличия уязвимости в операционной системе на основании данных о процессах и потоках. Fig. 2 illustrates the structure of a vulnerability detection system in an operating system based on process and thread data.

Фиг. 3 иллюстрирует алгоритм выявления наличия уязвимости в операционной системе на основании данных о процессах и потоках. Fig. 3 illustrates an algorithm for detecting the presence of a vulnerability in an operating system based on process and thread data.

Фиг. 4 иллюстрирует пример компьютерной системы общего назначения, персональный компьютер или сервер. Fig. 4 illustrates an example of a general purpose computer system, a personal computer or a server.

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.Although the invention may have various modifications and alternative forms, the characteristic features shown by way of example in the drawings will be described in detail. It should be understood, however, that the purpose of the description is not to limit the invention to a particular embodiment thereof. On the contrary, the purpose of the description is to cover all changes, modifications included in the scope of this invention, as defined in the attached claims.

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

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.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, but may be embodied in various forms. The gist of the description is nothing but the specific details necessary to assist a person skilled in the art in a thorough understanding of the invention, and the present invention is defined within the scope of the appended claims.

Введем ряд определений и понятий, которые будут использованы при описании вариантов осуществления изобретения.We introduce a number of definitions and concepts that will be used in describing embodiments of the invention.

Процесс (англ. process) – последовательность операций при выполнении программы или ее части вместе с используемыми данными. Операционная система рассматривает процесс как единое целое при распределении ресурсов.Process (English process) - a sequence of operations when executing a program or part of it, along with the data used. The operating system considers the process as a whole when allocating resources.

Процесс – базовое понятие ОС, часто кратко определяется как программа в стадии выполнения. Программа – это статический объект, представляющий собой файл с кодами и данными. Процесс – это динамический объект, который возникает в ОС после того, как программу запускают на исполнение, т.е. создают новую самодостаточную единицу вычислительной работы.A process is the basic concept of an operating system, often briefly defined as a program in progress. A program is a static object, which is a file with codes and data. A process is a dynamic object that appears in the OS after the program is launched for execution, i.e. create a new self-sufficient unit of computational work.

В современных ОС процесс не является неделимой минимальной единицей вычислительной работы. Существуют понятия потока и нити для определения вычислительных работ, входящих в состав процесса и разделяющих между собой ресурсы системы. «Поток» и «нить» обозначают одно и то же и соответствуют англоязычному понятию «thread». Аналогично тому, как понятие процесс применяется в ОС UNIX, Windows NT, NetWare, равнозначное понятие «задача» (англ. task) используется в OS/2 и др. Следует заметить, что также существует понятие «волокно» (англ. fiber), являющееся обозначением сущности, входящей в состав потока и относящееся к понятию «поток» примерно так же, как понятие «поток» относится к понятию «процесс».In modern operating systems, a process is not an indivisible minimum unit of computational work. There are concepts of thread and thread to define the computational work that is part of the process and shares the resources of the system. "Thread" and "thread" mean the same thing and correspond to the English concept of "thread". Just as the concept of a process is used in UNIX, Windows NT, NetWare, the equivalent concept of “task” (eng. task) is used in OS / 2, etc. It should be noted that there is also the concept of “fiber” (eng. fiber), which is the designation of the entity that is part of the flow and related to the concept of "flow" in much the same way as the concept of "flow" is related to the concept of "process".

Ресурс времени (в виде квантов времени исполнения) распределяется ОС между более мелкими единицами вычислительной работы – потоками, позволяя распараллелить вычисления в рамках одного процесса. При этом ОС назначает процессу адресное пространство и набор ресурсов, которые совместно используются всеми его потоками. Заметим, что в однопоточных (однозадачных) системах не возникает необходимости введения понятия, обозначающего единицу вычислительной работы, так как не существует проблемы разделения ресурсов между задачами (процессами). The time resource (in the form of execution time slices) is distributed by the OS between smaller units of computational work - threads, allowing you to parallelize calculations within a single process. In this case, the OS assigns to the process an address space and a set of resources that are shared by all its threads. Note that in single-threaded (single-tasking) systems, there is no need to introduce a concept denoting a unit of computational work, since there is no problem of resource sharing between tasks (processes).

Каждый процесс и соответствующий ему поток предоставляет ресурсы, необходимые для выполнения программы, и содержит атрибуты, например, виртуальное адресное пространство (англ. Virtual Address Space), исполняемый код (англ. executable code), открытые дескрипторы для системных объектов (англ. оpen handle), контекст безопасности (англ. security context), уникальный идентификатор процесса (англ. unique process identifier, UID), переменные среды (англ. environment variables), класс приоритета (англ. priority class), минимальный и максимальный размеры рабочего множества (англ. working set size) и по крайней мере один поток выполнения (англ. thread of execution). Каждый процесс запускается с одним потоком, который часто называется основным потоком, но может создавать дополнительные потоки из любого потока.Each process and its corresponding thread provides the resources necessary for the execution of the program, and contains attributes, for example, virtual address space (English Virtual Address Space), executable code (English executable code), open handles for system objects (English open handle ), security context, unique process identifier (UID), environment variables, priority class, minimum and maximum working set sizes (eng. . working set size) and at least one thread of execution. Each process starts with one thread, often called the main thread, but can create additional threads from any thread.

Маркер доступа (англ. Access token) - это объект, описывающий контекст безопасности процесса или потока. Сведения в маркере включают удостоверение и привилегии учетной записи пользователя, связанной с процессом или потоком. Когда пользователь входит в систему, система проверяет пароль пользователя, сравнивая его со сведениями, хранящимися в защищенной базе данных. Если пароль прошел проверку подлинности, система создает маркер доступа. Каждый процесс, выполняемый от имени этого пользователя, имеет копию этого маркера доступа. Система использует маркер доступа для указания пользователя, когда поток взаимодействует с защищаемым объектом (https://docs.microsoft.com/ru-ru/windows/win32/secauthz/securable-objects) или пытается выполнить системную задачу (https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.tasks.task?view=netcore-3.1), требующую привилегий. Маркеры доступа содержат сведения о параметрах процесса (потока), в частности:An Access token is an object that describes the security context of a process or thread. The information in the token includes the identity and privileges of the user account associated with the process or thread. When a user logs in, the system verifies the user's password against information stored in a secure database. If the password is authenticated, the system generates an access token. Every process running as this user has a copy of this access token. The system uses an access token to identify the user when a thread interacts with a securable object (https://docs.microsoft.com/en-us/windows/win32/secauthz/securable-objects) or tries to perform a system task (https://docs .microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=netcore-3.1) that requires privileges. Access tokens contain information about process (thread) parameters, in particular:

• идентификатор безопасности (SID) для учетной записи пользователя;• security identifier (SID) for the user account;

• идентификаторы безопасности для групп, членом которых является пользователь;• security identifiers for groups of which the user is a member;

• идентификатор безопасности входа, определяющий текущий сеанс входа в систему;• a login security identifier that identifies the current login session;

• список привилегий, хранящихся у пользователя или в группах пользователя;• a list of privileges stored by the user or in the user's groups;

• идентификатор безопасности владельца;• the security identifier of the owner;

• идентификатор безопасности для основной группы;• security identifier for the main group;

• список DACL по умолчанию, используемый системой при создании пользователем защищаемого объекта без указания дескриптора безопасности;• the default DACL used by the system when a user creates a securable object without specifying a security descriptor;

• источник маркера доступа;• the source of the access token;

• является ли маркер основным маркером или маркер олицетворения (маркер может быть основным (primary token), который идентифицирует контекст безопасности, и олицетворяющим (impersonation token), который временно заимствует контекст безопасности другого пользователя);• whether the token is a primary token or an impersonation token (the token can be a primary token that identifies a security context, and an impersonation token that temporarily borrows another user's security context);

• текущие уровни олицетворения (при этом маркеры олицетворения сообщают уровень олицетворения, определяющий, какой тип олицетворения активен в маркере).• current impersonation levels (with impersonation tokens reporting the impersonation level that determines what type of impersonation is active in the token).

Фиг. 1 иллюстрирует пример запуска нескольких произвольных исполняемых файлов в ОС. В ходе запуска каждого файла 110 создают по крайней мере один процесс 120. Каждый процесс 120 создает по крайней мере один поток 140, который наследует маркер доступа 130 процесса 120. Каждый маркер доступа 130 включает в себя список привилегий 150, который описывает права доступа и разрешения. Злоумышленники используют возможность через уязвимости повышать уровень привилегий процесса. В одном из случаев попыткой нелегитимного изменения привилегий является присвоение или изменение маркера доступа одного потока (процесса) другому потоку (процессу). В этом случае процесс 120 с помощью измененного маркера доступа 135 получает измененные привилегии 155. Нелегитимным изменением привилегий считают такой способ изменения привилегий, который не предусмотрен разработчиком ОС и выполняем только в условиях нарушения безопасности ОС. В другом случае попыткой нелегитимного изменения привилегий является обновление или изменение потоком (процессом) собственного списка привилегий. Для выявления нелегального изменения маркера доступа используют систему выявления наличия уязвимости в операционной системе на основании данных о процессах и потоках. Fig. 1illustrates an example of running several arbitrary executable files in the OS. During the launch of each file110create at least one process120. Every process120creates at least one thread140, which inherits the access token130 process120. Each access token130 includes a list of privileges150A that describes access rights and permissions. Attackers use the ability to elevate the privilege level of a process through vulnerabilities. In one case, an attempt to illegitimately change privileges is to assign or change the access token of one thread (process) to another thread (process). In this case, the process120with a modified access token135gets modified privileges155. An illegitimate change of privileges is a method of changing privileges that is not provided by the OS developer and is performed only in conditions of violation of OS security. In another case, an attempt to illegitimately change privileges is an update or change by a thread (process) of its own list of privileges. To detect illegal changes to the access token, a system for detecting the presence of a vulnerability in the operating system based on data about processes and threads is used.

Фиг. 2 иллюстрирует структуру системы выявления наличия уязвимости в операционной системе на основании данных о процессах и потоках, которая включает в себя журнал всех фиксируемых событий в ОС 210, средство формирования 220, средство выявления 230, средство обнаружения 240, базу данных правил 250. Fig. 2 illustrates the structure of the system for detecting the presence of a vulnerability in the operating system based on process and thread data, which includes a log of all recorded events in the OS 210, a generator 220 , a detector 230 , a detector 240 , a rule database 250 .

Представленная на Фиг. 2 система является компьютерной системой, например, компьютером общего назначения, представленным на Фиг. 4 и обладающим аппаратным процессором и памятью. Упомянутая система содержит функциональные и/или аппаратные модули и средства 210-250, которые в свою очередь содержат инструкции для исполнения на аппаратном процессоре. Ниже описаны варианты реализации упомянутых модулей и средств 210-250 системы.Shown in FIG. 2 , the system is a computer system, such as the general purpose computer shown in FIG. 4 and having a hardware processor and memory. Said system contains functional and/or hardware modules and means 210-250 which in turn contain instructions for execution on a hardware processor. The embodiments of said modules and means 210-250 of the system are described below.

Средство формирования 220 предназначено для выявления запуска каждого потока каждого процесса, запущенного в ОС. Средство формирования 220 анализирует и выявляет запуск каждого потока каждого процесса путем перехвата события ОС из журнала всех фиксируемых событий в ОС 210, которое указывает на инициализацию нового потока или процесса. Анализ событий осуществляют в режиме реального времени. В случае, если ОС осуществляла работу до инициации упомянутой системы, журнал событий анализируют полностью.Creator 220 is designed to detect the launch of each thread of each process running in the OS. Creator 220 analyzes and detects the launch of each thread of each process by intercepting an OS event from the All Captured Events log in OS 210 that indicates the initialization of a new thread or process. Events are analyzed in real time. In the event that the OS was working before the initiation of the said system, the event log is analyzed in full.

Далее средство формирования 220 предназначено для формирования набора актуальных привилегий на основании выявленных запусков и передачи сформированного набора актуальных привилегий средству выявления 230. Средство формирования 220 выполняет формирование набора актуальных привилегий потоков (процессов) путем анализа всех выявленных запусков всех потоков каждого процесса, запущенного в ОС. Под набором актуальных привилегий понимают набор данных, содержащий данные о каждом запущенном потоке, процессе и его контексте безопасности, в том числе о маркере доступа и перечне привилегий.Next, the generater 220 is designed to generate a set of actual privileges based on the detected launches and pass the generated set of actual privileges to the detecter 230 . Creator 220 generates a set of actual thread (process) privileges by analyzing all detected runs of all threads of each process running on the OS. A set of actual privileges is a set of data containing data about each running thread, process and its security context, including an access token and a list of privileges.

В одном из вариантов реализации по причине экономии ресурсов ОС анализируют процессы и потоки файлов, которые были ранее неизвестны или изменены. Данные об известных потоках и процессах доверенных файлов получают из доступных источников, например, базы данных доверенных файлов, антивирусного сервера или сохраненных результатов предыдущих анализов и проверок. Таким образом, снижают нагрузку на ОС.In one implementation, due to resource savings, the OS analyzes processes and file streams that were previously unknown or changed. Data about known trusted file flows and processes is obtained from available sources, such as the trusted files database, the antivirus server, or saved results from previous analyzes and checks. Thus, reduce the load on the OS.

В другом варианте реализации анализируют только потоки тех процессов, для которых известны случаи участия в использовании уязвимостей для изменения привилегий и эскалации прав доступа.In another implementation, only the threads of those processes that are known to have been involved in the exploitation of vulnerabilities to change privileges and access rights escalation are analyzed.

Например, в ОС 1 запущено пять файлов (отображено на Фиг. 1), для исполнения которых запущены 5 процессов. Процессы 1, 3 и 5, имеют по два потока. Процесс 2 и процесс 4 по три потока. Таким образом набор актуальных привилегий формируется в виде таблицы, например: процесс 1, поток 1, маркер доступа 1, список привилегий 1; процесс 1, поток 2, маркер доступа 1, список привилегий 1 и т.д.For example, in OS 1, five files are running (shown in Fig. 1), for the execution of which 5 processes are running. Processes 1, 3 and 5 each have two threads. Process 2 and process 4 have three threads each. Thus, the set of actual privileges is formed in the form of a table, for example: process 1, thread 1, access token 1, list of privileges 1; process 1, thread 2, access token 1, privilege list 1, and so on.

Средство выявления 230 предназначено для выполнения проверки сформированного набора на наличие нелегитимных изменений привилегий. Указанная проверка выполняется при выявлении по крайней мере одного события использования привилегий в ОС.The detecting tool 230 is designed to check the generated set for illegitimate privilege changes. The specified check is performed when at least one OS privilege use event is detected.

Средство выявления 230 выполняет выявление по крайней мере одного события использования привилегий в ОС путем перехвата события ОС, содержащего характерную для вредоносных приложений активность использования обновленных привилегий. К таким событиям относят, например, запуски дочерних потоков (процессов), операции с изменением реестра, операции с чтением и изменением файлов и другие операции, которые позволяют использовать преимущество измененных привилегий. Detector 230 detects at least one OS privilege use event by intercepting an OS event containing malware-specific activity using updated privileges. Such events include, for example, the launch of child threads (processes), registry modification operations, file reading and modification operations, and other operations that allow you to take advantage of changed privileges.

Средство выявления 230 выполняет проверку сформированного набора на наличие нелегитимных изменений привилегий путем поиска маркеров доступа потока, которые были изменены. Средство выявления 230 передает результаты проверки средству обнаружения 240.Detector 230 checks the generated set for illegitimate privilege changes by looking for flow access tokens that have been changed. The finder 230 transmits the results of the check to the finder 240 .

Продолжая вышеупомянутый пример, выявлено, что произошло событие использования привилегий, после чего начинается проверка всех маркеров доступа из набора актуальных привилегий на наличие изменений. Предположим, что маркер доступа 1 потока 2 процесса 1 изменен. При проверке всех маркеров доступа формируют результат проверки и отправляют для дальнейшей обработки.Continuing with the above example, it is detected that a privilege use event has occurred, after which it starts checking all access tokens from the set of actual privileges for changes. Let's assume that the access token 1 of thread 2 of process 1 is changed. When all access tokens are checked, the result of the check is generated and sent for further processing.

Средство обнаружения 240 предназначено для обнаружения наличия уязвимости в операционной системе при помощи правил выявления уязвимости из базы данных правил 250 на основании результата проверки.The detecting tool 240 is designed to detect the presence of a vulnerability in the operating system using the vulnerability detection rules from the rule database 250 based on the result of the check.

Под правилом выявления уязвимостей понимают набор условий, при выполнении которого считают, что ОС содержит уязвимость. A vulnerability detection rule is a set of conditions under which it is considered that the operating system contains a vulnerability.

Одним из примеров правила выявления уязвимости может быть следующий набор условий: маркер доступа одного из потоков изменен, измененный маркер доступа уникален, нет изменений привилегий. При выполнении вышеупомянутого набора условий считают, что уязвимости в ОС не обнаружено.One example of a vulnerability detection rule would be the following set of conditions: the access token of one of the threads has been changed, the access token has been changed is unique, and no privileges have been changed. When the above set of conditions is met, it is considered that no vulnerability has been found in the OS.

Другим примером правила выявления уязвимости может быть следующий набор условий: маркер доступа одного из потоков изменен, измененный маркер доступа не уникален, обнаружено добавление привилегий. При выполнении вышеупомянутого набора условий считают, что в ОС обнаружена уязвимость. Another example of a vulnerability detection rule would be the following set of conditions: the access token of one of the threads has been changed, the access token changed is not unique, an addition of privileges has been detected. When the above set of conditions is met, the OS is considered to have a vulnerability.

Еще одним примером правила выявления уязвимости может быть следующий набор условий: маркер доступа одного из потоков изменен, измененный маркер доступа уникален, обнаружено удаление привилегий. При выполнении вышеупомянутого набора условий считают, что в ОС обнаружена уязвимость.Another example of a vulnerability detection rule could be the following set of conditions: the access token of one of the threads has changed, the changed access token is unique, and a removal of privileges has been detected. When the above set of conditions is met, the OS is considered to have a vulnerability.

База данных правил 250 предназначена для хранения правил выявления уязвимостей. В качестве базы данных правил 250 могут быть использованы различные виды баз данных, а именно: иерархические (IMS, TDMS, System 2000), сетевые (Cerebrum, Сronospro, DBVist), реляционные (DB2, Informix, Microsoft SQL Server), объектно-ориентированные (Jasmine, Versant, POET), объектно-реляционные (Oracle Database, PostgreSQL, FirstSQL/J), функциональные и т.д. Правила могут быть созданы при помощи алгоритмов машинного обучения и автоматизированной обработки больших массивов данных.The database of rules 250 is designed to store the rules for identifying vulnerabilities. Various types of databases can be used as a database of rules 250 , namely: hierarchical (IMS, TDMS, System 2000), network (Cerebrum, Сronospro, DBVist), relational (DB2, Informix, Microsoft SQL Server), object-oriented (Jasmine, Versant, POET), object-relational (Oracle Database, PostgreSQL, FirstSQL/J), functional, etc. Rules can be created using machine learning algorithms and automated processing of large data sets.

При выявлении уязвимости в ОС файл, при выполнении которого был запущен поток (процесс), который изменил привилегии, является опасным и может выполнить вредоносные действия. Таким образом возникает необходимость изолировать упомянутый файл, завершить процесс (поток) и запустить углубленную проверку на наличие вредоносного кода. Средство обнаружения 240 предназначено для изолирования файла, который использовал обнаруженную уязвимость.When a vulnerability is identified in the OS, the file, during the execution of which the thread (process) that changed the privileges was launched, is dangerous and can perform malicious actions. Thus, it becomes necessary to isolate the mentioned file, terminate the process (thread) and run an in-depth check for malicious code. The detection tool 240 is designed to isolate the file that exploited the discovered vulnerability.

В одном из вариантов реализации в ходе изоляции выполняют анализ процессов (потоков) и файлов, связанных с процессами (потоками) изолированного файла. В ходе анализа выявляют полный перечень атрибутов процессов (потоков), которые тем или иным способом взаимодействовали с изолированным файлом.In one implementation, the isolation process analyzes the processes (threads) and files associated with the processes (threads) of the isolated file. During the analysis, a complete list of attributes of processes (threads) that interacted with the isolated file in one way or another is revealed.

В другом варианте реализации в ходе изоляции выполняют анализ поведения процессов (потоков) изолированного файла. В отдельных случаях полностью восстанавливают маркер доступа и привилегии процессов (потоков) изолированного файла и инициируют углубленный анализ его поведения. В этом случае, если процедура нелегального изменения привилегий повторяется, выявляют процесс (поток) и файл, который непосредственно инициирует эту процедуру.In another embodiment, isolation analyzes the behavior of the processes (threads) of the isolated file during isolation. In some cases, the access token and privileges of the processes (threads) of the isolated file are completely restored and an in-depth analysis of its behavior is initiated. In this case, if the procedure for illegally changing privileges is repeated, the process (thread) and file that directly initiates this procedure are identified.

В совокупности информация о связях изолированного файла и информация о файле, инициирующем процедуру изменения привилегий, позволяет определить объект, содержащий уязвимость, или сильно сузить круг таких объектов.Together, information about the links of the isolated file and information about the file that initiates the procedure for changing privileges allows you to determine the object that contains the vulnerability, or greatly narrow the circle of such objects.

Продолжая вышеупомянутый пример с иллюстрацией на Фиг. 1, возможна ситуация, когда, маркер доступа 1 потока 2 процесса 1 оказался идентичен маркеру доступа 2 потока 1 процесса 2. Поток 2 процесса 1, который обладал привилегиями из списка привилегий 1, а именно привилегиями номер 1, 2, 3, теперь обладает привилегиями номер 3, 4 потока 1 процесса 2. В этом случае срабатывает правило выявления уязвимости. Таким образом, обнаруживают уязвимость в ОС, которую использовал файл 1, для исполнения которого был запущен поток 2 процесса 1. Файл 1 изолируют.Continuing the above example with the illustration in FIG. 1, it is possible that access token 1 of thread 2 of process 1 turned out to be identical to access token 2 of thread 1 of process 2. Thread 2 of process 1, which had privileges from privilege list 1, namely privileges number 1, 2, 3, now has privileges number 3, 4 of thread 1 of process 2. In this case, the vulnerability detection rule is triggered. Thus, a vulnerability is found in the OS that was used by file 1, for the execution of which thread 2 of process 1 was launched. File 1 is isolated.

Ниже представлены подробности реализации в упрощенном виде.Below are the implementation details in a simplified form.

Пример 1Example 1

1. При старте антивирусной программы перечисляют все процессы с уровнем привилегий System и заносят в массив пары в виде уникального идентификатора процесса и соответствующего уникального идентификатора маркера доступа.1. At the start of the anti-virus program, all processes with the System privilege level are listed and pairs are entered into the array in the form of a unique process ID and the corresponding unique access token ID.

2. При создании/завершении процесса с привилегиями System в массив добавляют/удаляют вышеупомянутые пары.2. When creating/terminating a process with System privileges, the above pairs are added/removed to the array.

3. На определенных событиях активности процессов с меньшими привилегиями для них получают текущий уникальный идентификатор маркера доступа.3. On certain activity events, processes with lesser privileges for them receive the current unique identifier of the access token.

4. Если полученный идентификатор маркера доступа совпадает с идентификатором маркера доступа другого процесса, значит маркер доступа был «украден», и предпринимают действия по предотвращению вредоносных действий со стороны процесса, укравшего маркер доступа, а также дополнительно действия по откату системы к состоянию до кражи маркера доступа.4. If the received access token identifier matches the access token identifier of another process, then the access token was “stolen”, and actions are taken to prevent malicious actions from the process that stole the access token, as well as additionally actions to roll back the system to the state before the theft of the token access.

Пример 2Example 2

1. При старте антивирусной программы перечисляют все процессы с низким уровнем привилегий. Для них запоминают их текущее состояние структуры TOKEN_PRIVILEGES. Структура TOKEN_PRIVILEGES включает в себя информацию о количестве привилегий в маркере доступа, а также информацию о номере привилегии и ее состоянии (например, включена (1), включена по умолчанию (2), выключена (3), активируется по запросу (4) (https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-token_privileges#members).1. At the start of the anti-virus program, all processes with a low level of privileges are listed. They remember their current state of the TOKEN_PRIVILEGES structure. The TOKEN_PRIVILEGES structure includes information about the number of privileges in the access token, as well as information about the privilege number and its status (for example, enabled (1), enabled by default (2), disabled (3), activated on request (4) (https http://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-token_privileges#members).

Пример TOKEN_PRIVILEGES при запуске процесса без прав администратора:An example of TOKEN_PRIVILEGES when starting a process without administrator rights:

Length: 5 (Количество привилегий в маркере доступа)Length: 5 (Number of privileges in access token)

Номер привилегии/ее состояние ):Privilege Number/Status ):

19 019 0

23 323 3

25 025 0

33 033 0

34 034 0

2. При создании/завершении процесса с низкими привилегиями аналогично запоминают их привилегии.2. When creating/terminating a process with low privileges, similarly remember their privileges.

3. На определенных событиях активности процессов с низкими привилегиями получают их текущие привилегии.3. On certain activity events, processes with low privileges get their current privileges.

4. Если в TOKEN_PRIVILEGES добавились новые привилегии, которых не было изначально, и модификация признается нелегитимной, то предпринимают действие по предотвращению вредоносных действий со стороны процесса, укравшего маркер доступа, а также дополнительно действия по откату системы к состоянию до кражи маркера доступа.Пример TOKEN_PRIVILEGES процесса без прав администратора из предыдущего примера, который поднял себе привилегии с помощью эксплуатации уязвимости (всего в списке 31 привилегия):4. If new privileges were added to TOKEN_PRIVILEGES that were not there initially, and the modification is recognized as illegitimate, then an action is taken to prevent malicious actions on the part of the process that stole the access token, as well as additional actions to roll back the system to the state before the theft of the access token. Example TOKEN_PRIVILEGES process without administrator rights from the previous example, which elevated its privileges by exploiting a vulnerability (there are 31 privileges in the list):

Length: 31Length: 31

2 22 2

3 23 2

4 24 2

5 25 2

7 27 2

8 28 2

9 29 2

10 210 2

11 211 2

12 212 2

13 213 2

14 214 2

15 215 2

16 216 2

17 217 2

18 218 2

19 219 2

20 220 2

21 221 2

22 222 2

23 323 3

25 225 2

28 228 2

29 229 2

30 330 3

31 231 2

32 232 2

33 233 2

34 234 2

35 235 2

36 236 2

Указанная технология позволяет обнаружить большой пласт уязвимостей, которые для повышения привилегий изменяют маркер доступа. К примеру, такими уязвимостями являются уязвимости CVE-2018-8453, CVE-2020-0796. Фиг. 3 иллюстрирует алгоритм выявления наличия уязвимости в операционной системе на основании данных о процессах и потоках. На этапе 311 средство формирования 220 осуществляет выявление запуска каждого потока каждого процесса, запущенного в ОС. На этапе 312 средство формирования 220 осуществляет формирование набора актуальных привилегий на основании выявленных запусков и передает данные о сформированном наборе актуальных привилегий средству выявления 230На этапе 313 средство выявления 230 осуществляет выполнение проверки сформированного набора на наличие изменений привилегий и передает результаты проверки средству обнаружения 240. На этапе 314 средство обнаружения 240 осуществляет обнаружения наличия уязвимости в операционной системе при помощи правил выявления уязвимости из базы данных правил 250 на основании результатов проверки. При обнаружении уязвимости на этапе 315 средство обнаружения 240 изолирует файл, который использовал обнаруженную уязвимость. В противном случае на этапе 316 система переходит к этапу 312.This technology allows you to detect a large layer of vulnerabilities that change the access token to elevate privileges. For example, such vulnerabilities are vulnerabilities CVE-2018-8453, CVE-2020-0796. Fig. 3 illustrates an algorithm for detecting the presence of a vulnerability in an operating system based on process and thread data. At step 311 , the builder 220 detects the launch of each thread of each process running on the OS. In step 312 , generator 220 generates a set of actual privileges based on the detected runs and passes data on the generated set of actual privileges to detector 230. In step 313 , detector 230 performs a check on the generated set for privilege changes and passes the results of the check to detector 240 . At step 314 , the detection engine 240 detects the presence of a vulnerability in the operating system using the vulnerability detection rules from the rule database 250 based on the results of the check. When a vulnerability is found, at step 315 , the finder 240 isolates the file that exploited the discovered vulnerability. Otherwise, at block 316 , the system proceeds to block 312 .

Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. Fig. 4 shows an example of a general purpose computer system, a personal computer or server 20' , comprising a central processing unit 21' , system memory 22' , and a system bus 23' , which contains various system components including memory associated with the central processing unit 21' . The system bus 23 is implemented as any bus structure known in the art, in turn comprising a bus memory or bus memory controller, a peripheral bus, and a local bus capable of interfacing with any other bus architecture. The system memory contains read-only memory (ROM) 24 , random access memory (RAM) 25 . The main input/output system (BIOS) 26 contains the basic procedures that ensure the transfer of information between the elements of a personal computer 20 , for example, at the time of booting the operating system using ROM 24 .

Персональный компьютер 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 CD-ROM, DVD -ROM and other optical storage media. The hard disk 27 , the magnetic disk drive 28 , the optical drive 30 are connected to the system bus 23 via the hard disk interface 32 , the magnetic disk interface 33 , and the optical drive interface 34 , respectively. Drives and related computer storage media are non-volatile means of storing computer instructions, data structures, program modules, and other personal computer data 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 are capable of storing data in a computer-readable form (solid-state drives, flash memory cards, digital disks, random access memory (RAM), etc.), which are connected to the system bus 23 through the controller 55 .

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединён к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединён к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащён другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.The computer 20 has a file system 36 that stores the recorded operating system 35 as well as additional software applications 37 , other program modules 38 and program data 39 . The user has the ability to enter commands and information into the personal computer 20 through input devices (keyboard 40 , mouse 42 ). Other input devices (not shown) may be used: microphone, joystick, game console, scanner, etc. Such input devices are typically connected to the computer system 20 through a serial port 46 which is in turn connected to the system bus, but may be connected in other ways, such as through a parallel port, game port, or 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 may be equipped with other peripheral output devices (not shown), such as speakers, a printer, etc.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удалёнными компьютерами 49. Удалённый компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы. The personal computer 20 is capable of operating in a networked environment using a network connection to 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 nature of the personal computer 20 shown in FIG. 4 . Other devices may also be present in the computer network, such as routers, network stations, peer-to-peer devices, or other network nodes.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключён к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключён к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.The network connections may 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 network 50 via a network adapter or network interface 51 . When using networks, personal computer 20 may use a modem 54 or other means to communicate with a wide area network, such as the Internet. Modem 54 , which is an internal or external device, is connected to system bus 23 via serial port 46 . It should be clarified that network connections are only indicative and are not required to represent the exact network configuration, i.e. in fact, there are other ways to establish a connection by technical means of communication from one computer to another.

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

Claims (16)

1. Реализуемый компьютером способ выявления наличия уязвимости в операционной системе (ОС) на основании данных о процессах и потоках, содержащий этапы, на которых:1. A computer-implemented method for detecting the presence of a vulnerability in the operating system (OS) based on data on processes and threads, comprising the steps of: a) выявляют запуск каждого потока каждого процесса; a) detect the running of each thread of each process; б) формируют набор актуальных привилегий на основании выявленных запусков;b) form a set of actual privileges based on the detected launches; в) выполняют проверку сформированного набора на наличие нелегитимных изменений привилегий;c) check the generated set for illegitimate privilege changes; г) обнаруживают наличие уязвимости в операционной системе при помощи правил выявления уязвимости на основании результата проверки, при этом правила выявления уязвимости включают, в частности, набор условий:d) detect the presence of a vulnerability in the operating system using vulnerability detection rules based on the result of the scan, while the vulnerability detection rules include, in particular, a set of conditions: i. маркер доступа одного из потоков изменен, i. the access token of one of the threads has been changed, ii. измененный маркер доступа не уникален, ii. the modified access token is not unique, iii. обнаружено добавление привилегий;iii. added privileges detected; д) изолируют файл, который использовал обнаруженную уязвимость.e) isolate the file that used the discovered vulnerability. 2. Способ по п. 1, в котором под набором актуальных привилегий понимают набор данных, содержащий данные о каждом запущенном потоке, процессе, контексте безопасности, в том числе о маркере доступа и перечне привилегий.2. The method according to claim 1, in which a set of actual privileges is understood as a data set containing data about each running thread, process, security context, including an access token and a list of privileges. 3. Способ по п. 1, в котором выполняют проверку сформированного набора на наличие нелегитимных изменений привилегий путем выявления по крайней мере одного события использования привилегий в ОС.3. The method according to claim 1, in which the generated set is checked for illegitimate privilege changes by detecting at least one privilege usage event in the OS. 4. Способ по п. 3, в котором выполняют выявление по крайней мере одного события использования привилегий в ОС путем перехвата события ОС, содержащего характерную для вредоносных приложений активность использования обновленных привилегий.4. The method of claim 3, comprising detecting at least one privilege usage event in the OS by intercepting an OS event containing a malware-specific activity of using updated privileges. 5. Способ по п. 1, в котором выполняют выявление запуска каждого потока каждого процесса путем перехвата события ОС, которое указывает на инициализацию нового потока или процесса.5. The method of claim. 1, which perform detection of the launch of each thread of each process by intercepting an OS event that indicates the initialization of a new thread or process. 6. Способ по п. 1, в котором выполняют проверку сформированного набора на наличие изменений привилегий путем поиска маркеров доступа потока, которые были изменены.6. The method of claim 1, comprising checking the generated set for privilege changes by looking for flow access tokens that have been changed. 7. Способ по п. 1, в котором под правилом выявления уязвимостей понимают набор условий, при выполнении которых считают, что ОС содержит уязвимость.7. The method according to claim 1, in which the rule for identifying vulnerabilities is understood as a set of conditions under which it is believed that the OS contains a vulnerability. 8. Система выявления наличия уязвимости в операционной системе, содержащая по меньшей мере один компьютер, включающий взаимодействующие между собой средства: средство формирования, средство выявления, средство обнаружения и базу данных правил, и хранящий машиночитаемые инструкции, при выполнении которых система выполняет выявление наличия уязвимости в операционной системе на основании данных о процессах и потоках согласно способу по любому из пп. 1-7.8. A system for detecting the presence of a vulnerability in the operating system, containing at least one computer, including interacting means: a generation tool, a detection tool, a detection tool and a database of rules, and storing machine-readable instructions, upon execution of which the system performs the detection of a vulnerability in operating system based on process and thread data according to the method according to any one of paragraphs. 1-7.
RU2022116157A 2022-06-15 2022-06-15 System and method for detecting the presence of a vulnerability in the operating system based on data on processes and threads RU2797716C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/157,861 US20230409717A1 (en) 2022-06-15 2023-01-23 System and method for detecting vulnerabilities in the operating system based on process and thread data

Publications (1)

Publication Number Publication Date
RU2797716C1 true RU2797716C1 (en) 2023-06-08

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190018963A1 (en) * 2015-12-31 2019-01-17 Beijing Kingsoft Internet Security Software Co., Ltd. Root Virus Removal Method and Apparatus, and Electronic Device
CN105224868B (en) * 2014-06-03 2019-07-23 腾讯科技(深圳)有限公司 The detection method and device of system vulnerability attack
US10565378B1 (en) * 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
WO2020114262A1 (en) * 2018-12-03 2020-06-11 阿里巴巴集团控股有限公司 Kernel security detection method, apparatus, and device, and storage medium
US11314859B1 (en) * 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224868B (en) * 2014-06-03 2019-07-23 腾讯科技(深圳)有限公司 The detection method and device of system vulnerability attack
US10565378B1 (en) * 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US20190018963A1 (en) * 2015-12-31 2019-01-17 Beijing Kingsoft Internet Security Software Co., Ltd. Root Virus Removal Method and Apparatus, and Electronic Device
US11314859B1 (en) * 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
WO2020114262A1 (en) * 2018-12-03 2020-06-11 阿里巴巴集团控股有限公司 Kernel security detection method, apparatus, and device, and storage medium

Similar Documents

Publication Publication Date Title
US10691792B2 (en) System and method for process hollowing detection
US10599841B2 (en) System and method for reverse command shell detection
RU2571723C2 (en) System and method of reducing load on operating system when executing antivirus application
US8474032B2 (en) Firewall+ storage apparatus, method and system
US11438349B2 (en) Systems and methods for protecting devices from malware
US8954897B2 (en) Protecting a virtual guest machine from attacks by an infected host
US20090282457A1 (en) Common representation for different protection architectures (crpa)
Dildar et al. Effective way to defend the hypervisor attacks in cloud computing
US10749880B2 (en) Cloud tenant oriented method and system for protecting privacy data
Buzzio-Garcia Creation of a high-interaction honeypot system based-on docker containers
RU2797716C1 (en) System and method for detecting the presence of a vulnerability in the operating system based on data on processes and threads
RU2708355C1 (en) Method of detecting malicious files that counteract analysis in isolated environment
RU2587424C1 (en) Method of controlling applications
Mailewa et al. A Novel Method for Moving Laterally and Discovering Malicious Lateral Movements in Windows Operating Systems: A Case Study
Wu et al. Self-healing spyware: detection, and remediation
EP3243313B1 (en) System and method for monitoring a computer system using machine interpretable code
US20230409717A1 (en) System and method for detecting vulnerabilities in the operating system based on process and thread data
RU2659743C1 (en) Acl based access control system and method
US20230297687A1 (en) Opportunistic hardening of files to remediate security threats posed by malicious applications
SK et al. Securing Docker Containers: Unraveling the Challenges and Solutions
Grimes et al. Windows Vista security: Securing Vista against malicious attacks
Corregedor An Architecture for Anti-Malware Protection Based on Collaboration
Yadav et al. Attack Vector Analysis with a New Benchmark
King Analyzing intrusions using operating system level information flow
Sun et al. Contemporary Malware Trends and Countermeasures