RU98613U1 - HIDDEN RESOURCE DETECTION SYSTEM IN THE SYSTEM - Google Patents

HIDDEN RESOURCE DETECTION SYSTEM IN THE SYSTEM Download PDF

Info

Publication number
RU98613U1
RU98613U1 RU2010119564/08U RU2010119564U RU98613U1 RU 98613 U1 RU98613 U1 RU 98613U1 RU 2010119564/08 U RU2010119564/08 U RU 2010119564/08U RU 2010119564 U RU2010119564 U RU 2010119564U RU 98613 U1 RU98613 U1 RU 98613U1
Authority
RU
Russia
Prior art keywords
kernel
access
capabilities
comparison
resources
Prior art date
Application number
RU2010119564/08U
Other languages
Russian (ru)
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 RU2010119564/08U priority Critical patent/RU98613U1/en
Application granted granted Critical
Publication of RU98613U1 publication Critical patent/RU98613U1/en

Links

Abstract

1. Система обнаружения руткитов с помощью обнаружения скрытых ресурсов, которая содержит: ядро операционной системы предназначено для предоставления списка ресурсов, используя имеющийся набор API-функций, при этом ядро операционной системы связано со средством сравнения; средство предоставления возможностей ядра предназначено для предоставления списка ресурсов, используя имеющийся набор API-функций, после подтверждения аутентификации от средства доступа; средство доступа также связано со средством предоставления возможностей ядра и средством сравнения, при этом средство доступа предназначено для контроля доступа к средству предоставления возможностей ядра, используя аутентификацию; упомянутое средство сравнения предназначено для сравнения списков ресурсов от ядра операционной системы и от средства предоставления возможностей ядра и при обнаружении расхождения в этих списках делает вывод об обнаружении руткита. ! 2. Система по п.1, в которой средство доступа предназначено для аутентификации средства сравнения с целью дальнейшей передачи списка ресурсов на средство сравнения от средства предоставления возможностей ядра. ! 3. Система по п.1, в которой ресурс содержит, по меньшей мере, один из следующих ресурсов компьютерной системы: файлы, драйверы, процессы, реестр, загруженные в память динамические библиотеки. ! 4. Система по п.1, которая также дополнительно содержит: драйвер устройства предназначен для предоставления доступа к аппаратным возможностям устройства в компьютерной системе, драйвер устройства также связан со средством сравнения; средство использования функциональности драйвера также с� 1. A system for detecting rootkits by detecting hidden resources, which contains: the kernel of the operating system is intended to provide a list of resources using the available set of API functions, while the kernel of the operating system is associated with a comparison tool; the kernel capabilities tool is intended to provide a list of resources using the available set of API functions, after authentication is confirmed by the access means; the access means is also associated with a means of providing core capabilities and a means of comparison, wherein the access means is intended to control access to the means of providing core capabilities using authentication; the mentioned comparison tool is intended to compare resource lists from the kernel of the operating system and from the means of providing the capabilities of the kernel and, if a discrepancy is found in these lists, it concludes that a rootkit has been detected. ! 2. The system according to claim 1, in which the access means is intended to authenticate the means of comparison with the aim of further transferring the list of resources to the means of comparison from the means of providing kernel capabilities. ! 3. The system according to claim 1, in which the resource contains at least one of the following computer system resources: files, drivers, processes, registry, dynamic libraries loaded into memory. ! 4. The system according to claim 1, which also further comprises: a device driver is designed to provide access to the hardware capabilities of the device in a computer system, the device driver is also associated with a comparison tool; a means of using driver functionality also with

Description

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

Полезная модель относится к системам обнаружения скрытых ресурсов в компьютерной системе, а более конкретно, к обнаружению руткитов с помощью обнаружения скрытых ресурсов в системе.The utility model relates to systems for detecting hidden resources in a computer system, and more particularly, to detecting rootkits by detecting hidden resources in a system.

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

В настоящее время большое распространение получили разнообразные вредоносные программы, многие из которых уже выполняются не только под операционные системы (ОС) Microsoft Windows, но и под менее популярные платформы. Стоит отметить, что вырос и профессионализм создателей вредоносных программ, которые применяют все новые способы использования уязвимостей в ОС и приложениях. Но помимо этого они создают способы обхода методов работы антивирусных программ, что создало в современной антивирусной индустрии настоящую "гонку вооружений". Поэтому, кроме привычных методов обнаружения, таких как сигнатурная проверка и использование эмулятора программ, в обиход вошло использование, например, системы предотвращения вторжений (HIPS) для контроля программ и белых списков (whitelist, т.е. списков доверенных приложений).Currently, a wide variety of malicious programs have become widespread, many of which are already running not only for Microsoft Windows operating systems (OS), but also for less popular platforms. It is worth noting that the professionalism of the creators of malicious programs that use ever new ways to exploit vulnerabilities in the OS and applications has also grown. But besides this, they create ways to bypass the methods of operation of antivirus programs, which created a real "arms race" in the modern antivirus industry. Therefore, in addition to the usual detection methods, such as signature verification and the use of a program emulator, the use of, for example, intrusion prevention systems (HIPS) for monitoring programs and whitelists (whitelists, i.e. lists of trusted applications) has come into use.

Однако существуют также классы вредоносных программ, которые по-прежнему являются одной из самых больших угроз для компьютерной безопасности. Речь идет о так называемых "руткитах" (rootkit), т.е. о программах, которые скрывают следы своего присутствия в системе, используя, например, режим администратора (более подробно можно прочитать, в том числе и в Википедии - http://en.wikipedia.org/wiki/Rootkit). Подобные программы бывает тяжело обнаружить из-за того, что антивирусное приложение может быть не в состоянии определить наличие или использование каких-либо скрытых ресурсов в системе, например, файлов или веток реестра. Для сокрытия своего присутствия руткиты применяют различные перехваты системных функций (т.е. программные перехватчики), которые они изменяют таким образом, чтобы возвращаемые результаты не содержали скрываемых ресурсов (например, сокрытие веток реестра).However, there are also classes of malware that continue to be one of the biggest threats to computer security. We are talking about the so-called "rootkits" (rootkit), i.e. about programs that hide traces of their presence in the system, using, for example, administrator mode (you can read in more detail, including on Wikipedia - http://en.wikipedia.org/wiki/Rootkit). Such programs can be difficult to detect due to the fact that the antivirus application may not be able to determine the presence or use of any hidden resources in the system, for example, files or registry branches. To conceal their presence, rootkits use various intercepts of system functions (i.e., software interceptors), which they modify so that the returned results do not contain hidden resources (for example, hiding registry branches).

Стоит отметить, что помимо традиционного представления руткитов как вредоносных программ, некоторые из них являются законно используемыми приложениями, такими как средства защиты от несанкционированного копирования.It is worth noting that in addition to the traditional concept of rootkits as malware, some of them are legitimately used applications, such as protection against unauthorized copying.

Традиционные методы обнаружения руткитов заключаются в том, что для каждого из них разрабатывается собственная процедура обнаружения для того, чтобы его обнаружить или убрать перехваты, которые он использует, что увеличивает время их обнаружения и добавления в антивирусные базы. С этой целью можно использовать различные программы, такие как Sophos Anti-Rootkit (http://www.sophos.com/products/free-tools/sophos-anti-rootkit.html) или AVZ (http://www.z-oleg.com/secur/avz/). Системы для обнаружения скрытых ресурсов в системе также описаны в патентах и заявках, таких как US 20070078915, WO 2007044498, JP 2008004064, US 20050229250. Однако все эти системы не способны обнаружить новые типы руткитов, которые используют другие способы сокрытия ресурсов в системе. Таким образом, требуется создать систему, которая позволяла бы определять факт присутствия руткита в системе при нахождении скрытых ресурсов в системе.The traditional methods for detecting rootkits are that each of them develops its own detection procedure in order to detect it or remove the intercepts that it uses, which increases the time it is detected and added to the anti-virus database. For this purpose, you can use various programs, such as Sophos Anti-Rootkit (http://www.sophos.com/products/free-tools/sophos-anti-rootkit.html) or AVZ (http: //www.z- oleg.com/secur/avz/). Systems for detecting hidden resources in a system are also described in patents and applications, such as US 20070078915, WO 2007044498, JP 2008004064, US 20050229250. However, all these systems are not able to detect new types of rootkits that use other methods of hiding resources in the system. Thus, it is required to create a system that would allow to determine the presence of a rootkit in the system when finding hidden resources in the system.

Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании их в одной системе, позволяют получить новый результат, а именно систему для обнаружения руткитов с помощью обнаружения скрытых ресурсов в компьютерной системе.An analysis of the prior art and the possibilities that arise when combining them in one system allows you to get a new result, namely a system for detecting rootkits by detecting hidden resources in a computer system.

Сущность полезной моделиUtility Model Essence

Технический результат настоящей полезной модели заключается в обнаружении руткитов с помощью обнаружения скрытых ресурсов в компьютерной системе.The technical result of this utility model is to detect rootkits by detecting hidden resources in a computer system.

Согласно одному из вариантов реализации, предоставляется система обнаружения руткитов с помощью обнаружения скрытых ресурсов, которая содержит: ядро операционной системы, которое предназначено для предоставления списка ресурсов, используя имеющийся набор API-функций, при этом ядро операционной системы связано со средством сравнения; средство предоставления возможностей ядра, которое предназначено для предоставления списка ресурсов, используя имеющийся набор API-функций, после подтверждения аутентификации от средства доступа; средство доступа также связано со средством предоставления возможностей ядра и средством сравнения, при этом средство доступа предназначено для контроля доступа к средству предоставления возможностей ядра, используя аутентификацию; упомянутое средство сравнения, которое предназначено для сравнения списков ресурсов от ядра операционной системы и от средства предоставления возможностей ядра и при обнаружении расхождения в этих списках делает вывод об обнаружении руткита.According to one implementation option, a rootkit detection system by detecting hidden resources is provided, which comprises: an operating system kernel that is intended to provide a list of resources using an existing set of API functions, while the operating system kernel is associated with a comparison tool; means for providing core capabilities, which is designed to provide a list of resources using the available set of API functions, after confirming authentication from the access means; the access means is also associated with a means of providing core capabilities and a means of comparison, wherein the access means is intended to control access to the means of providing core capabilities using authentication; the mentioned comparison tool, which is intended to compare resource lists from the kernel of the operating system and from the means of providing the capabilities of the kernel and when detecting discrepancies in these lists, concludes that a rootkit has been detected.

В частном варианте реализации средство доступа предназначено для аутентификации средства сравнения с целью дальнейшей передачи списка ресурсов на средство сравнения от средства предоставления возможностей ядра.In a particular embodiment, the access means is intended to authenticate the means of comparison with the aim of further transferring the list of resources to the means of comparison from the means of providing kernel capabilities.

В частном варианте реализации ресурс содержит, по меньшей мере, один из следующих ресурсов компьютерной системы: файлы, драйверы, процессы, реестр, загруженные в память динамические библиотеки.In a particular embodiment, the resource contains at least one of the following computer system resources: files, drivers, processes, registry, dynamic libraries loaded into memory.

В частном варианте реализации также дополнительно содержит: драйвер устройства, который предназначен для предоставления доступа к аппаратным возможностям устройства в компьютерной системе, драйвер устройства также связан со средством сравнения; средство использования функциональности драйвера также связано с устройством в компьютерной системе и средством доступа, при этом средство использования функциональности драйвера предназначено для предоставления доступа к аппаратным возможностям устройства после подтверждения аутентификации от средства доступа; дополнительно средство доступа контролирует доступ к средству использования функциональности драйвера, используя аутентификацию; дополнительно средство сравнения предназначено для сравнения доступа к аппаратным возможностям устройства от драйвера устройства и от средства использования функциональности драйвера и при их различии делает вывод о наличии руткита.In a particular embodiment, it also further comprises: a device driver, which is intended to provide access to the hardware capabilities of the device in a computer system, the device driver is also associated with a comparison tool; means for using the driver’s functionality is also associated with the device in the computer system and means of access, while the means for using the driver’s functionality is intended to provide access to the device’s hardware capabilities after authentication is confirmed from the access means; further, the access means controls access to the means for using the driver functionality using authentication; Additionally, the comparison tool is intended to compare access to the device’s hardware capabilities from the device driver and from the means of using the driver’s functionality and, if they differ, makes a conclusion about the presence of a rootkit.

В одном из частных вариантов реализации устройством в компьютерной системе является жесткий диск.In one of the private embodiments of the device in a computer system is a hard disk.

В одном из частных вариантов реализации средство доступа предназначено для аутентификации средства сравнения с целью дальнейшей передачи списка ресурсов на средство сравнения от средства использования функциональности ядра.In one of the private embodiments, the access means is intended to authenticate the means of comparison in order to further transfer the list of resources to the means of comparison from the means of using the kernel functionality.

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

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

Фиг.1 иллюстрирует работу системы настоящей полезной модели.Figure 1 illustrates the operation of the system of the present utility model.

Фиг.2 отображает разделение процессов в компьютерной системе.Figure 2 shows the separation of processes in a computer system.

Фиг.3 показывает факт обнаружения руткита при определении скрытых ресурсов в системе.Figure 3 shows the fact of rootkit detection in determining hidden resources in the system.

Фиг.4 отображает процесс инициализации средства предоставления возможностей ядра и драйвера режима ядра.Figure 4 depicts the initialization process of the core capabilities engine and the kernel mode driver.

Фиг.5 иллюстрирует работу настоящей полезной модели с устройством на низком уровне.5 illustrates the operation of the present utility model with a device at a low level.

Фиг.6 показывает вариант реализации настоящей полезной модели.6 shows an embodiment of the present utility model.

Описание вариантов осуществления полезной моделиDescription of Embodiments of a Utility Model

Объекты и признаки настоящей полезной модели, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящая полезная модель не ограничивается примерными вариантами осуществления, раскрытыми ниже, она может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании полезной модели, и настоящая полезная модель определяется только в объеме приложенной формулы.The objects and features of the present utility model, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present utility model 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 provided to assist the specialist in the field of technology in a comprehensive understanding of the utility model, and the present utility model is determined only in the scope of the attached formula.

В основе настоящей полезной модели лежит использование отдельного ядра операционной системы, которое может быть реализовано в виде отдельного средства предоставления возможностей ядра. Помимо средства предоставления возможностей ядра также присутствует и родное ядро операционной системы (ядро ОС), которое работает в штатном режиме, обрабатывая запросы от приложений пользователя. Средство предоставления возможностей ядра включает большинство механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС и обеспечивает корректное обращение к таким типам ресурсов, как файлы, драйверы, процессы, реестр, загруженные в память динамические библиотеки (DLL) и другие типы ресурсов компьютерной системы.The basis of this utility model is the use of a separate kernel of the operating system, which can be implemented as a separate means of providing kernel capabilities. In addition to the means of providing kernel capabilities, there is also a native kernel of the operating system (OS kernel), which works as usual, processing requests from user applications. The kernel capabilities tool includes most of the interprocess communication mechanisms and applications accessing OS system calls and provides correct access to resource types such as files, drivers, processes, the registry, dynamic libraries (DLLs) loaded into memory, and other types of computer system resources.

На фиг.1 отображена схема работы настоящей полезной модели, которая используется для обнаружения скрытых ресурсов за счет обхода перехватов, которые могут использовать руткиты. Как видно, приложения пользователя 130, которые работают в режиме пользователя, для получения доступа к определенному ресурсу компьютерной системы, должны будут обратиться к ядру операционной системы. Однако в ядро ОС 120, к которому обычно и идут такие запросы, может быть внедрен руткит 160, который имеет доступ к перехваченной API функции 140а. Таким образом, если приложение пользователя пытается запросить, например, список файлов, то руткит 160 легко может скрыть необходимые ему файлы путем возврата модифицированного списка файлов через перехваченную API функцию 140а. Таким же образом руткит может скрыть необходимые ему файлы или ветки реестра, что позволяет успешно скрывать свое присутствие в системе.Figure 1 shows the operation scheme of this utility model, which is used to detect hidden resources by bypassing interceptions that rootkits can use. As can be seen, user applications 130, which operate in user mode, will have to access the kernel of the operating system to gain access to a specific resource of the computer system. However, rootkit 160, which has access to the intercepted API function 140a, can be embedded in the kernel of OS 120, to which such requests usually go. Thus, if the user's application tries to request, for example, a list of files, then rootkit 160 can easily hide the files it needs by returning the modified list of files through the intercepted API function 140a. In the same way, a rootkit can hide the files or registry branches it needs, which allows it to successfully hide its presence in the system.

Однако при применении средства 110 предоставления возможностей ядра с неизмененными API функциями 140 можно обойти подобные перехваты. Для этого используется драйвер режима ядра 150, который обеспечивает доступ к средству 110 предоставления возможностей ядра. Благодаря такому подходу возможно обойти перехваты и получить данные, которые могут включать также и скрытые руткитами ресурсы. Стоит отметить, что в средстве 110 предоставления возможностей ядра находится на выполнении только тот поток, который запросил информацию (например, это может быть запрос о списке файлов). На этом моменте стоит остановиться более подробно.However, by utilizing the core capabilities engine 110 with unchanged API functions 140, such intercepts can be circumvented. For this, a kernel-mode driver 150 is used, which provides access to the kernel capabilities tool 110. Thanks to this approach, it is possible to bypass interceptions and obtain data, which may also include resources hidden by rootkits. It is worth noting that in the tool 110 for providing kernel capabilities, only the thread that requested information is executing (for example, it may be a request for a list of files). At this point, it is worthwhile to dwell in more detail.

Как известно, каждый процесс порождает потоки выполнения (threads) в системе. Для того чтобы определить те потоки, которые могут обратиться к драйверу режима ядра 150, требуется отдельный механизм обращения к этому драйверу, т.е. должен быть пройден этап аутентификации. В одном из вариантов реализации эти потоки могут быть порождены процессом антивирусного приложения, которое имеет информацию о способе аутентификации у драйвера режима ядра 150. Таким образом, все потоки в системе можно разделить на две части - те, которые располагают доступом к драйверу режима ядра 150 и все остальные. Все остальные потоки работают так, как будто в операционной системе находится только одно ядро ОС 120, которое и обслуживает все их запросы. Именно драйвер режима ядра 150 определяет, какой поток можно использовать в средстве 110 предоставления возможностей ядра. Образно говоря, драйвер позволяет "пробрасывать" эти потоки в средство 110 предоставления возможностей ядра, в то время как все остальные потоки работают с ядром ОС 120. Дополнительно отметим, что ядро ОС 120, также как и средство 110 предоставления возможностей ядра может быть как 32-битным, так и для 64-битным.As you know, each process spawns threads in the system. In order to determine those threads that can access the kernel-mode driver 150, a separate mechanism for accessing this driver is required, i.e. The authentication step must be completed. In one embodiment, these threads can be generated by an anti-virus application process that has information about the authentication method of the kernel-mode driver 150. Thus, all threads in the system can be divided into two parts — those that have access to the kernel-mode driver 150 and other. All other threads work as if the operating system contains only one core of OS 120, which serves all their requests. It is the kernel mode driver 150 that determines which thread can be used in the kernel capabilities tool 110. Figuratively speaking, the driver allows you to "forward" these threads to the kernel capabilities tool 110, while all other threads work with the OS kernel 120. Additionally, we note that the OS kernel 120, as well as the kernel capabilities tool 110, can be 32 -bit, and for 64-bit.

На фиг.2 изображено разделение процессов в компьютерной системе. Процесс антивирусного приложения 210 запускает потоки антивирусного приложения 220, которые могут обращаться к драйверу режима ядра на этапе 230 после аутентификации. Затем они приступают к работе со средством 110 предоставления возможностей ядра на этапе 240. Любые другие процессы 250 запускают собственные потоки 260, которые работают только с ядром ОС 270, что не приводит к снижению скорости работы системы в целом.Figure 2 shows the separation of processes in a computer system. The anti-virus application process 210 starts the threads of the anti-virus application 220, which can access the kernel mode driver in step 230 after authentication. Then they begin to work with the tool 110 providing core capabilities at step 240. Any other processes 250 run their own threads 260, which work only with the kernel OS 270, which does not lead to a decrease in the speed of the system as a whole.

На фиг.3 показано обнаружение руткита при определении скрытых ресурсов в системе в качестве одного из вариантов реализации настоящей полезной модели. Например, на этапе 310 один из потоков антивирусного приложения запрашивает список процессов. Средство 110 предоставления возможностей ядра вернет ему более полный список, чем ядро ОС 120, так как руткит 160 использует перехваченную API функцию 140а для того, чтобы изменять возвращаемый список процессов (при этом исключив свой собственный процесс). Обнаружив несоответствие между списками, можно сделать вывод о том, что был обнаружен скрытый процесс на этапе 320. Затем антивирусное приложение может запросить файл скрытого процесса на этапе 330 для его антивирусной проверки на этапе 340. В том случае, если антивирусная проверка выявит присутствие руткита, он будет удален из системы.Figure 3 shows the detection of a rootkit when determining hidden resources in the system as one of the options for implementing this utility model. For example, at step 310, one of the antivirus application threads requests a list of processes. The kernel capabilities tool 110 will return a more complete list to it than the OS kernel 120, since rootkit 160 uses the intercepted API function 140a to modify the returned list of processes (while excluding its own process). Having found a mismatch between the lists, we can conclude that a hidden process was detected at step 320. Then the antivirus application can request a hidden process file at step 330 for its antivirus scan at step 340. If the antivirus scan detects the presence of a rootkit, it will be removed from the system.

С помощью работы подобной системы можно обойти такие методы перехватов, как сплайсинг любого рода (используется для перехвата вызова какой-нибудь API функции; суть метода состоит в замене первых нескольких байт функции инструкцией передающей управление коду-перехватчику), SSDT (System Service Descriptor Table) и Shadow SSDT перехваты, прерывания INT 2E для версии Windows 2000 (за счет создания переходников для Zw-функций, т.е. тех функций, которые производят перед выполнением действия проверки системы безопасности (прав пользователя), в то время как функции с префиксом Nt - нет) и MSR (специальные регистры процессоров архитектуры x86, наличие и назначение которых варьируется от модели к модели процессора), любые обратные вызовы (callback) и оповещения (notify), которые не будут работать при вызове функций в средстве 110 предоставления возможностей ядра (например, обратные вызовы на изменения в реестре).Using a similar system, you can bypass interception methods such as splicing of any kind (used to intercept a call to an API function; the essence of the method is to replace the first few bytes of a function with an instruction that transfers control to the intercept code), SSDT (System Service Descriptor Table) and Shadow SSDT intercepts, INT 2E interrupts for the Windows 2000 version (by creating adapters for Zw-functions, that is, those functions that are performed before performing the security check (user rights) action, while functions with the Nt prefix - em) and MSR (special registers of x86 architecture processors, the availability and purpose of which varies from model to processor model), any callbacks and notifications that will not work when functions are called in the kernel capabilities tool 110 (for example , callbacks to registry changes).

Фиг.4 отображает процесс инициализации средства 110 предоставления возможностей ядра и драйвера режима ядра. На этапе 410 происходит инициализация драйвера режима ядра, затем происходит загрузка пути к файлу средства 110 предоставления возможностей ядра на этапе 420. В одном из вариантов реализации путь считывается из недокументированной переменной KeLoaderBlock. Такая переменная существует лишь некоторое время во время инициализации средства 110 предоставления возможностей ядра, поэтому инициализация на этапе 410 должна происходить как можно раньше. На этапе 430 происходит считывание средства 110 предоставления возможностей ядра с диска после того, как был загружен путь к файлу средства 110 предоставления возможностей ядра на предыдущем этапе. На этапе 440 средство 110 предоставления возможностей ядра размещается в памяти: выравниваются секции, глобальные переменные будут указывать в ядро ОС 120, а импортируемые функции в нужные модули. После чего на этапе 450 происходит его настройка нужным образом: создается своя таблица SSDT, необходимые переходники для функций, убираются обратные вызовы (callback) и оповещения (notify).FIG. 4 depicts the initialization process of the core capabilities engine 110 and the kernel mode driver. At block 410, the kernel mode driver is initialized, then the path to the file of the kernel capabilities tool 110 is loaded at block 420. In one embodiment, the path is read from the undocumented KeLoaderBlock variable. Such a variable exists only for some time during the initialization of the kernel capability providing means 110, so initialization at step 410 should occur as early as possible. At step 430, the kernel enabler 110 is read from the disk after the file path to the kernel enabler 110 has been downloaded in the previous step. At step 440, the means for providing core capabilities 110 is located in memory: sections are aligned, global variables will point to the OS kernel 120, and the imported functions will be in the required modules. Then, at step 450, it is configured as needed: it creates its own SSDT table, the necessary adapters for functions, removes callbacks and notifications (notify).

Фиг.5 иллюстрирует работу настоящей полезной модели с устройствами на низком уровне. Существует возможность получить более детальную информацию о скрытых ресурсах за счет того, что перехваты руткита находятся в образе ядра ОС 120 системы, но также они могут находиться и в образе системного драйвера.Figure 5 illustrates the operation of the present utility model with devices at a low level. It is possible to obtain more detailed information about hidden resources due to the fact that rootkit hooks are located in the kernel image of OS 120 of the system, but they can also be found in the system driver image.

Как было отмечено выше, технологию отдельного ядра (например, в виде средства 110 предоставления возможностей ядра, как было описано выше) можно применять не только к образу ядра системы, но также и к различным системным драйверам. В частности, для доступа к диску используют системные порт-драйверы устройств (system-supplied storage port drivers). Например, в операционной системе Windows их два вида:As noted above, the technology of a single kernel (for example, in the form of a tool 110 providing core capabilities, as described above) can be applied not only to the image of the kernel of the system, but also to various system drivers. In particular, system-supplied storage port drivers are used to access the disk. For example, in the Windows operating system there are two types of them:

- SCSI Port Driver (scsiport.sys), Storport Driver (storport.sys)- SCSI Port Driver (scsiport.sys), Storport Driver (storport.sys)

- ATA Port Driver (ataport.sys/atapi. sys)- ATA Port Driver (ataport.sys / atapi. Sys)

Например, на фиг.5 перехваты руткита могут быть расположены как на уровне управления разделами жесткого диска 520 (например, partmgr.sys), драйвера диска 530 (disk. sys), так и даже на уровне порт-драйвера 540 (atapi.sys). Таким образом, если не известно заранее на каком уровне могут находиться перехваты руткита, то обнаружить его становится невозможно.For example, in Fig. 5, rootkit hooks can be located both at the partition management level of the hard drive 520 (for example, partmgr.sys), the disk driver 530 (disk. Sys), and even at the level of the port driver 540 (atapi.sys) . Thus, if it is not known in advance at what level the rootkit intercepts can be, then it becomes impossible to detect it.

Обычно производители оборудования создают, так называемые, порт-драйверы на основе предоставленных системных драйверов. Порт-драйвер встраивается в стек драйверов устройства и обеспечивает дополнительную функциональность устройства. Сами же порт-драйверы предоставляют универсальный механизм доступа к данным физического носителя путем унификации интерфейса доступа.Typically, equipment manufacturers create so-called port drivers based on the provided system drivers. The port driver is integrated into the device driver stack and provides additional device functionality. Port drivers themselves provide a universal mechanism for accessing physical media data by unifying the access interface.

Таким образом, можно инициализировать средство 560 использования функциональности порт-драйвера в той же манере, что использовалась и для средства 110 предоставления возможностей ядра, для доступа к расширенной функциональности жесткого диска 510. Использование порт-драйверов таким образом позволяет обходить перехваты руткитов, которые запрещают доступ к определенным секторам диска или возвращают подложное содержимое при чтении на самом низком уровне. Аутентификация у драйвера режима порт-драйвера 550 происходит так же, как и для драйвера режима ядра 150 на фиг.2.Thus, it is possible to initialize the tool 560 to use the functionality of the port driver in the same manner that was used for the tool 110 to provide kernel capabilities to access the extended functionality of the hard disk 510. Using port drivers in this way allows you to bypass hooks of rootkits that prohibit access to certain sectors of the disk or return false content when reading at the lowest level. Authentication of the driver mode port driver 550 occurs in the same way as for the kernel mode driver 150 in figure 2.

Фиг.6 показывает вариант реализации настоящей полезной модели. Ядро ОС 120 отправляет обработанные результаты запросов (например, на предоставления списка ресурсов) на средство 630 сравнения, которое также соединено со средством 110 предоставления возможностей ядра через средство 620 доступа. Средство доступа отвечает за аутентификацию средства 630 сравнения на доступ к средству 110 предоставления возможностей ядра для того, чтобы к средству 110 предоставления возможностей ядра не получили доступ другие приложения или устройства в системе. Само средство 110 предоставления возможностей ядра реализует функции ядра ОС 120. В одном из вариантов реализации средство 620 доступа реализовано с помощью драйвера режима ядра 150. Получив результаты запросов от ядра ОС 120 и от средства 110 предоставления возможностей ядра, средство 630 сравнения делает вывод о наличии руткита в системе при расхождении полученных результатов.6 shows an embodiment of the present utility model. The OS kernel 120 sends the processed query results (for example, to provide a list of resources) to the comparison tool 630, which is also connected to the kernel capabilities tool 110 through the access tool 620. The access means is responsible for authenticating the means 630 for access to the means for providing core capabilities so that the means for providing core capabilities 110 are not accessed by other applications or devices in the system. The kernel capabilities tool 110 itself implements the functions of the OS kernel 120. In one embodiment, the access tool 620 is implemented using the kernel mode driver 150. After receiving the results of requests from the OS kernel 120 and the kernel capabilities tool 110, the comparison tool 630 concludes that rootkits in the system when the results differ.

В системе могут присутствовать драйверы устройств 640, которые обеспечивают доступ к устройствам 660, к таким как, например, жесткий диск. Средство 650 использования функциональности драйверов также обеспечивает доступ к устройствам 660, но только через средство 620 доступа с той же целью, что и для средства 110 предоставления возможностей ядра, т.е. для ограничения доступа. После получения результатов запросов на доступ от драйверов устройств 640 и от средства 650 использования функциональности драйверов, средство 630 сравнения сопоставляет полученные результаты. В том случае, если результаты расходятся, то делается вывод о нахождении руткита в системе.The device may have 640 device drivers that provide access to 660 devices, such as, for example, a hard drive. Means 650 for using the driver functionality also provides access to devices 660, but only through access means 620 for the same purpose as for means 110 for providing kernel capabilities, i.e. to restrict access. After receiving the results of access requests from device drivers 640 and from means 650 for using driver functionality, comparison tool 630 compares the results. In the event that the results diverge, it is concluded that the rootkit is in the system.

В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящей полезной модели, определенной формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящей полезной модели, согласующиеся с сущностью и объемом настоящей полезной модели.In conclusion, it should be noted that the information given in the description are only examples that do not limit the scope of this utility model defined by the formula. The person skilled in the art will understand that there may be other options for implementing this utility model, consistent with the nature and scope of this utility model.

Claims (6)

1. Система обнаружения руткитов с помощью обнаружения скрытых ресурсов, которая содержит: ядро операционной системы предназначено для предоставления списка ресурсов, используя имеющийся набор API-функций, при этом ядро операционной системы связано со средством сравнения; средство предоставления возможностей ядра предназначено для предоставления списка ресурсов, используя имеющийся набор API-функций, после подтверждения аутентификации от средства доступа; средство доступа также связано со средством предоставления возможностей ядра и средством сравнения, при этом средство доступа предназначено для контроля доступа к средству предоставления возможностей ядра, используя аутентификацию; упомянутое средство сравнения предназначено для сравнения списков ресурсов от ядра операционной системы и от средства предоставления возможностей ядра и при обнаружении расхождения в этих списках делает вывод об обнаружении руткита.1. A system for detecting rootkits by detecting hidden resources, which contains: the kernel of the operating system is intended to provide a list of resources using the available set of API functions, while the kernel of the operating system is associated with a comparison tool; the kernel capabilities tool is intended to provide a list of resources using the available set of API functions, after authentication is confirmed by the access means; the access means is also associated with a means of providing core capabilities and a means of comparison, wherein the access means is intended to control access to the means of providing core capabilities using authentication; the mentioned comparison tool is intended to compare resource lists from the kernel of the operating system and from the means of providing the capabilities of the kernel and, if a discrepancy is found in these lists, it concludes that a rootkit has been detected. 2. Система по п.1, в которой средство доступа предназначено для аутентификации средства сравнения с целью дальнейшей передачи списка ресурсов на средство сравнения от средства предоставления возможностей ядра.2. The system according to claim 1, in which the access means is intended to authenticate the means of comparison with the aim of further transferring the list of resources to the means of comparison from the means of providing kernel capabilities. 3. Система по п.1, в которой ресурс содержит, по меньшей мере, один из следующих ресурсов компьютерной системы: файлы, драйверы, процессы, реестр, загруженные в память динамические библиотеки.3. The system according to claim 1, in which the resource contains at least one of the following computer system resources: files, drivers, processes, registry, dynamic libraries loaded into memory. 4. Система по п.1, которая также дополнительно содержит: драйвер устройства предназначен для предоставления доступа к аппаратным возможностям устройства в компьютерной системе, драйвер устройства также связан со средством сравнения; средство использования функциональности драйвера также связано с устройством в компьютерной системе и средством доступа, при этом средство использования функциональности драйвера предназначено для предоставления доступа к аппаратным возможностям устройства после подтверждения аутентификации от средства доступа; дополнительно средство доступа контролирует доступ к средству использования функциональности драйвера, используя аутентификацию; дополнительно средство сравнения предназначено для сравнения доступа к аппаратным возможностям устройства от драйвера устройства и от средства использования функциональности драйвера и при их различии делает вывод о наличии руткита.4. The system according to claim 1, which also further comprises: a device driver is designed to provide access to the hardware capabilities of the device in a computer system, the device driver is also associated with a comparison tool; means for using the driver’s functionality is also associated with the device in the computer system and means of access, while the means for using the driver’s functionality is intended to provide access to the device’s hardware capabilities after authentication is confirmed from the access means; further, the access means controls access to the means for using the driver functionality using authentication; Additionally, the comparison tool is intended to compare access to the device’s hardware capabilities from the device driver and from the means of using the driver’s functionality and, if they differ, makes a conclusion about the presence of a rootkit. 5. Система по п.4, в которой устройством в компьютерной системе является жесткий диск.5. The system of claim 4, wherein the device in the computer system is a hard disk. 6. Система по п.4, в которой средство доступа предназначено для аутентификации средства сравнения с целью дальнейшей передачи списка ресурсов на средство сравнения от средства использования функциональности ядра.
Figure 00000001
6. The system according to claim 4, in which the access means is intended to authenticate the means of comparison with the aim of further transferring the list of resources to the means of comparison from the means of using kernel functionality.
Figure 00000001
RU2010119564/08U 2010-05-18 2010-05-18 HIDDEN RESOURCE DETECTION SYSTEM IN THE SYSTEM RU98613U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010119564/08U RU98613U1 (en) 2010-05-18 2010-05-18 HIDDEN RESOURCE DETECTION SYSTEM IN THE SYSTEM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010119564/08U RU98613U1 (en) 2010-05-18 2010-05-18 HIDDEN RESOURCE DETECTION SYSTEM IN THE SYSTEM

Publications (1)

Publication Number Publication Date
RU98613U1 true RU98613U1 (en) 2010-10-20

Family

ID=44024390

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010119564/08U RU98613U1 (en) 2010-05-18 2010-05-18 HIDDEN RESOURCE DETECTION SYSTEM IN THE SYSTEM

Country Status (1)

Country Link
RU (1) RU98613U1 (en)

Cited By (2)

* 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
RU2700185C1 (en) * 2018-07-27 2019-09-13 Закрытое акционерное общество "Перспективный мониторинг" Method for detecting hidden software in a computing system operating under a posix-compatible operating system

Cited By (2)

* 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
RU2700185C1 (en) * 2018-07-27 2019-09-13 Закрытое акционерное общество "Перспективный мониторинг" Method for detecting hidden software in a computing system operating under a posix-compatible operating system

Similar Documents

Publication Publication Date Title
RU2468418C2 (en) Security agents and privileged modes
RU2691187C1 (en) System and methods for auditing a virtual machine
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
RU2679175C1 (en) Method of behavioral detection of malicious programs using a virtual interpreter machine
JP6842455B2 (en) Computer Security Systems and Methods to Use Asynchronous Introspection Exceptions
RU2589862C1 (en) Method of detecting malicious code in random-access memory
EP2979219B1 (en) Suspicious program detection
US8661541B2 (en) Detecting user-mode rootkits
EP3314861B1 (en) Detection of malicious thread suspension
US9336390B2 (en) Selective assessment of maliciousness of software code executed in the address space of a trusted process
EP2881881B1 (en) Machine-readable medium, method and system for detecting java sandbox escaping attacks based on java bytecode instrumentation and java method hooking
EP3462358B1 (en) System and method for detection of malicious code in the address space of processes
EP2388726B1 (en) Detection of hidden objects in a computer system
Shao et al. Rootguard: Protecting rooted android phones
JP2010517164A (en) Protect operating system resources
US9870466B2 (en) Hardware-enforced code paths
US9454652B2 (en) Computer security system and method
US11481482B2 (en) Securing an application framework from shared library sideload vulnerabilities
RU98613U1 (en) HIDDEN RESOURCE DETECTION SYSTEM IN THE SYSTEM
Mahapatra et al. An online cross view difference and behavior based kernel rootkit detector
Fu et al. A windows rootkit detection method based on cross-view
US9342694B2 (en) Security method and apparatus
RU2585978C2 (en) Method of invoking system functions in conditions of use of agents for protecting operating system kernel
Suzaki et al. Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints
Rin Virtual machines detection enhanced