RU2592383C1 - Method of creating antivirus record when detecting malicious code in random-access memory - Google Patents

Method of creating antivirus record when detecting malicious code in random-access memory Download PDF

Info

Publication number
RU2592383C1
RU2592383C1 RU2015125978/08A RU2015125978A RU2592383C1 RU 2592383 C1 RU2592383 C1 RU 2592383C1 RU 2015125978/08 A RU2015125978/08 A RU 2015125978/08A RU 2015125978 A RU2015125978 A RU 2015125978A RU 2592383 C1 RU2592383 C1 RU 2592383C1
Authority
RU
Russia
Prior art keywords
application
code
function
malicious
untrusted
Prior art date
Application number
RU2015125978/08A
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 RU2015125978/08A priority Critical patent/RU2592383C1/en
Application granted granted Critical
Publication of RU2592383C1 publication Critical patent/RU2592383C1/en

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: invention relates to protection from computer threats, particularly methods of forming antivirus record when detecting malicious code in random-access memory.
EFFECT: protection of computing device, which is achieved by using formed antivirus record by a security application for restriction of access to computing device to resources, unified identifier which is contained in said formed record.
5 cl, 4 dwg

Description

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

Изобретение относится к области защиты от компьютерных угроз, а именно способам формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти.The invention relates to the field of protection against computer threats, namely, methods for generating an anti-virus record when malicious code is detected in RAM.

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

В настоящее время увеличивается количество всевозможных приложений (программного обеспечения), используемых на вычислительных устройствах, в том числе и на персональных электронных вычислительных машинах (компьютерах). Среди многообразия приложений существует множество вредоносных программ, которые способны нанести вред компьютеру или пользователю компьютера, например: сетевые черви, клавиатурные шпионы, компьютерные вирусы. Существует множество средств, обеспечивающих безопасность компьютеров, например антивирусное программное обеспечение, которое предназначено для обнаружения вредоносных программ, а также для ограничения их работоспособности (например, помещение в карантин или полное удаление вредоносного приложения).Currently, the number of various applications (software) used on computing devices, including personal electronic computers (computers), is increasing. Among the variety of applications, there are many malicious programs that can harm a computer or a computer user, for example: network worms, keyloggers, computer viruses. There are many tools that ensure the security of computers, for example, antivirus software that is designed to detect malicious programs, as well as to limit their functionality (for example, quarantine or complete removal of a malicious application).

Однако существуют различные методики, используемые разработчиками вредоносных приложений для того, чтобы деятельность вредоносного приложения была скрыта от антивирусного приложения. В зависимости от используемых антивирусным приложением методов обнаружения вредоносного программного обеспечения, например, сигнатурного анализа (технологии поиска соответствий какого-либо участка кода анализируемой программы известному коду - сигнатуре - из базы данных сигнатур вредоносных программ), эвристического анализа (технологии, заключающейся в эмуляции работы анализируемой программы, создании журнала вызовов API-функций и поиске соответствий данных из созданного журнала вызова API-функций с данными из базы данных эмуляций вредоносных программ) или проактивного анализа (технологии, заключающейся в перехвате вызовов API-функций, запущенной в системе анализируемой программы, создании журнала вызова API-функций и поиске соответствий данных из созданного журнала с данными из базы данных вызовов API-функций вредоносных программ), разработчики вредоносных приложений могут использовать приемы антиэмуляции (например, проверки значений, возвращаемых функциями, эмуляция которых с большой вероятностью не реализована в эмуляторе, с целью обнаружения эмуляции исполнения кода), руткиты (вредоносные программы, скрывающие свое присутствие на вычислительном устройстве, например, при помощи драйверов), полиморфные вредоносные программы (вредоносные программы, исполняемый код которых изменяется во время его исполнения), обфускацию кода приложений (приведение кода вредоносной программы к работоспособному, но сложному для анализа виду). В дополнение к вышеописанным приемам, которые нацелены на противодействие антивирусному приложению (например, противодействию обнаружению антивирусным приложением), вредоносное программное обеспечение может использовать подход исполнения вредоносного кода (инструкций) из адресного пространства доверенных приложений (приложений, которые признаны не вредоносными, и антивирусным приложением разрешена любая активность таких приложений).However, there are various techniques used by malware developers to ensure that the activity of a malicious application is hidden from the antivirus application. Depending on the methods used by the anti-virus application for detecting malicious software, for example, signature analysis (technology for searching for correspondence of any part of the code of the analyzed program to the known code - signature - from the malware signature database), heuristic analysis (technology that emulates the operation of the analyzed programs, creating an API function call log and matching data from the created API function call log with data from the time emulation database of informative programs) or proactive analysis (the technology of intercepting API function calls launched in the system of the analyzed program, creating an API function call log and matching data from the created log with data from the malware API function call database), developers malicious applications can use anti-emulation techniques (for example, checking values returned by functions whose emulation is most likely not implemented in the emulator in order to detect execution emulation to ode), rootkits (malicious programs that hide their presence on a computing device, for example, using drivers), polymorphic malicious programs (malicious programs whose executable code changes during its execution), obfuscation of application code (bringing the malware code to workable, but difficult to analyze). In addition to the methods described above that are aimed at counteracting an antivirus application (for example, counteracting detection by an antivirus application), malicious software can take the approach of executing malicious code (instructions) from the address space of trusted applications (applications that are recognized as not malicious, and the antivirus application is allowed any activity of such applications).

Для отслеживания исполнения вредоносного кода из адресного пространства доверенного приложения применяются различные подходы, в том числе и подходы, заключающиеся в отслеживании вызовов различных API-функций, используемых для передачи управления или для доступа к адресному пространству процессов, чтобы отследить вызов вредоносного кода или его запись в адресное пространство доверенного процесса.Various approaches are used to track the execution of malicious code from the address space of a trusted application, including approaches that include tracking calls to various API functions used to transfer control or to access the address space of processes in order to track the call of a malicious code or its recording in The address space of the trusted process.

Так, в публикации US 8612995 B1 описан подход, основанный на вычислении «рейтинга вредоносности» (англ. score) инструкций из кода (рейтинга, отражающего, насколько использование инструкции характерно вредоносным программам), записанного в адресное пространство процесса другим процессом. Каждой инструкции в таком коде ставится в соответствие числовое значение. Совокупность таких числовых значений оценивается с целью определения, насколько код, записанный в упомянутое адресное пространство, похож на вредоносный код.So, in publication US 8612995 B1 an approach is described based on the calculation of the “rating of harmfulness” (English score) of instructions from a code (rating reflecting how much use of the instruction is typical of malicious programs) recorded in the process address space by another process. Each instruction in this code is assigned a numerical value. The totality of such numerical values is evaluated in order to determine how much the code written in the mentioned address space looks like malicious code.

В публикации US 20140325650 A1 предложено анализировать данные, записанные одним процессом в адресное пространство другого процесса в особых ситуациях: например, если данные были записаны в адресное пространство процесса, который был запущен из исполняемого файла приложения, содержащего уязвимости, или же процесс, к адресному пространству которого производился доступ, запущен из популярного приложения.In the publication US 20140325650 A1, it is proposed to analyze the data written by one process into the address space of another process in special situations: for example, if the data was written to the address space of a process that was launched from the application executable file containing vulnerabilities, or the process, to the address space which was accessed, launched from a popular application.

Хотя рассмотренные подходы направлены на решение определенных задач в области обнаружения вредоносного кода в адресном пространстве доверенного процесса, они не решают задачу достаточно эффективно: упомянутые подходы или требуют проверки множества возможных операций доступа к сторонним процессам (в том числе и операций, осуществляемых доверенными процессами), или же рассматривают ограниченный набор ситуаций, при которых необходима проверка адресного пространства процесса с целью выявления вредоносного кода. Настоящее изобретение позволяет более эффективно решить задачу обнаружения вредоносного кода в оперативной памяти.Although the considered approaches are aimed at solving certain problems in the field of detecting malicious code in the address space of a trusted process, they do not solve the problem quite effectively: the mentioned approaches either require checking many possible access operations to third-party processes (including operations carried out by trusted processes), or consider a limited set of situations in which it is necessary to check the address space of the process in order to detect malicious code. The present invention allows to more effectively solve the problem of detecting malicious code in RAM.

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

Настоящее изобретение предназначено для обнаружения вредоносного кода в адресном пространстве процесса.The present invention is intended to detect malicious code in the address space of a process.

Технический результат настоящего изобретения заключается в обеспечении защиты вычислительного устройства, которое достигается путем использования сформированной антивирусной записи приложением безопасности для ограничения доступа с вычислительного устройства к ресурсам, унифицированный идентификатор которых содержится в упомянутой сформированной записи.The technical result of the present invention is to ensure the protection of a computing device, which is achieved by using the generated anti-virus record by a security application to restrict access from the computing device to resources whose unified identifier is contained in the said generated record.

Способ использования антивирусной записи приложением безопасности, в котором обнаруживают по меньшей мере один недоверенный процесс, при этом процесс является недоверенным, если он запущен из недоверенного приложения; собирают данные о приложении, из которого запущен по меньшей мере один недоверенный процесс; перехватывают вызов по меньшей мере одной функции межпроцессного взаимодействия, осуществляемый недоверенным процессом; определяют признаки вызова по меньшей мере одной перехваченной функции межпроцессного взаимодействия; определяют необходимость анализа кода в адресном пространстве процесса, являющегося целью вызова функции межпроцессного взаимодействия, при помощи по меньшей мере одного эвристического правила, применение которого к собранным данным о приложении, а также к определенным на этапе ранее признакам вызова определяет упомянутую необходимость анализа кода, при этом под целью вызова функции межпроцессного взаимодействия понимается процесс, в отношении которого осуществляется вызов функции межпроцессного взаимодействия; осуществляют анализ кода в области памяти, принадлежащей процессу, являющемуся целью вызова функции межпроцессного взаимодействия, с целью обнаружения вредоносного кода, при этом результатом анализа является признание или непризнание упомянутого кода в области памяти вредоносным; определяют по меньшей мере один унифицированный идентификатор ресурса, который используется вредоносным кодом, путем анализа адресного пространства процесса, содержащего код, признанный вредоносным на этапе ранее; формируют по меньшей мере одну антивирусную запись, которая содержит обнаруженный унифицированный идентификатор ресурса и предназначена для использования приложением безопасности с целью ограничения доступа с вычислительного устройства к ресурсам, унифицированный идентификатор которых был определен на этапе ранее; используют по меньшей мере одну сформированную антивирусную запись приложением безопасности для ограничения доступа с вычислительного устройства к ресурсам, унифицированный идентификатор которых содержится в упомянутой антивирусной записи.A method for using an anti-virus recording by a security application in which at least one untrusted process is detected, the process being untrusted if it is launched from an untrusted application; collect data about the application from which at least one untrusted process is running; intercept the call of at least one interprocess communication function carried out by an untrusted process; determining signs of calling at least one intercepted interprocess communication function; determine the need for code analysis in the address space of the process, which is the goal of calling the interprocess communication function, using at least one heuristic rule, the application of which to the collected data about the application, as well as to the call attributes defined at the previous stage, determines the mentioned necessity of code analysis, while the purpose of calling the function of interprocess interaction refers to the process in relation to which the call to the function of interprocess interaction is performed; analyze the code in the memory area belonging to the process, which is the purpose of calling the interprocess communication function, in order to detect malicious code, while the result of the analysis is the recognition or non-recognition of the said code in the memory area as malicious; determining at least one uniform resource identifier that is used by the malicious code by analyzing the address space of the process containing the code recognized as malicious in the step earlier; generating at least one anti-virus entry that contains the detected unified resource identifier and is intended for use by the security application in order to restrict access from the computing device to resources whose unified identifier was determined at the stage earlier; using at least one generated antivirus entry by the security application to restrict access from the computing device to resources whose unified identifier is contained in the said antivirus entry.

В частном случае реализации способа функция межпроцессного взаимодействия - системная функция, используемая для исполнения кода из адресного пространства другого процесса, а также функция, используемая для определения кода, который будет исполняться другим процессом.In the particular case of implementing the method, the interprocess communication function is a system function used to execute code from the address space of another process, as well as a function used to determine the code that will be executed by another process.

В другом частном случае реализации способа недоверенным приложением является приложение, которое не является доверенным, но также не признано вредоносным.In another particular case of implementing the method, an untrusted application is an application that is not trusted, but is also not considered malicious.

В еще одном частном случае реализации способа данные о приложении включают в себя по меньшей мере: название приложения, информацию о количестве уникальных пользователей, запустивших приложение, информацию о времени, прошедшем с момента первого известного запуска приложения, информацию о расположении приложения в рамках вычислительного устройства.In another particular case of the method, the application data includes at least: the name of the application, information about the number of unique users who launched the application, information about the time elapsed since the first known launch of the application, information about the location of the application within the computing device.

В другом частном случае реализации способа признаки вызова функции включают в себя по меньшей мере: наименование функции, значения операндов функции, адрес вызова функции, идентификатор потока, осуществляющего вызов функции, описатель потока, осуществляющего вызов функции, описатель процесса, в рамках которого осуществляется вызов функции.In another particular case of implementing the method, the signs of the function call include at least: the name of the function, the values of the operands of the function, the address of the function call, the identifier of the thread making the call to the function, the descriptor of the thread making the function call, the descriptor of the process within which the function is called .

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

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

Фиг. 1 иллюстрирует структурную схему обнаружения вредоносного кода в оперативной памяти в рамках работы способа.FIG. 1 illustrates a block diagram of malware detection in RAM as part of the method.

Фиг. 2А показывает примерную схему работы одного из вариантов реализации изобретения.FIG. 2A shows an example operation diagram of one embodiment of the invention.

Фиг. 2В показывает примерную схему работы одного из вариантов реализации изобретения.FIG. 2B shows an example operation diagram of one embodiment of the invention.

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

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.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 its specific embodiment. On the contrary, the purpose of the description is to cover all changes, modifications that are included in the scope of this invention, as defined by the attached formula.

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

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

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

Вредоносное приложение - приложение, способное нанести вред компьютеру или пользователю компьютера, например: сетевой червь, клавиатурный шпион, компьютерный вирус. В качестве нанесенного вреда может выступать неправомерный доступ к ресурсам компьютера, в том числе к данным, хранящимся на компьютере, с целью хищения, а также неправомерное использование ресурсов, в том числе для хранения данных, проведения вычислений и т.п.Malicious application - an application that can harm a computer or a computer user, for example: a network worm, a keylogger, a computer virus. The damage may be caused by unauthorized access to computer resources, including data stored on a computer for theft, as well as unlawful use of resources, including for storing data, performing calculations, etc.

Сигнатурный анализ - технология поиска соответствий какого-либо участка кода анализируемой программы известному коду - сигнатуре - из базы данных сигнатур вредоносных программ с целью обнаружения вредоносной программы. Стоит отметить, что данная технология может применяться как для обнаружения файлов вредоносной программы, так и для обнаружения вредоносного кода в оперативной памяти вычислительного устройства.Signature analysis is the technology of searching for correspondence of any part of the code of the analyzed program to the known code - the signature - from the database of malware signatures in order to detect the malicious program. It is worth noting that this technology can be used both for detecting malware files and for detecting malicious code in the RAM of a computing device.

Контекст вызова функции - информация о вызове функции, включающая в себя по меньшей мере следующие признаки вызова: наименование функции, значения операндов функции (в случае, если операнд - это адрес в памяти, контекст вызова может включать и блок данных в памяти, например, размером 100 байт, на который ссылается соответствующий операнд функции), адрес вызова функции (может быть вычислен исходя из адреса возврата функции), идентификатор потока, осуществляющего вызов функции (англ. Thread ID), описатель потока, осуществляющего вызов функции (англ. Thread Handle), описатель процесса, в рамках которого осуществляется вызов функции (англ. Process Handle).Function call context - information about the function call, which includes at least the following call signs: function name, function operand values (in case the operand is an address in memory, the call context may include a data block in memory, for example, of size 100 bytes, to which the corresponding operand of the function refers), the address of the function call (can be calculated based on the return address of the function), the identifier of the thread that calls the function (Eng. Thread ID), the descriptor of the thread that calls the function (Eng. Th read Handle), the descriptor of the process within which the function is called (Eng. Process Handle).

Доверенное приложение - приложение, которое не наносит вреда вычислительному устройству или его пользователю. Доверенным приложение может считаться приложение, разработанное доверенным производителем ПО, загруженное из доверенного источника, или приложение, идентификатор которого (например, MD5 файла приложения) хранится в базе данных доверенных приложений (идентификатор производителя, например сертификат, может также храниться в базе данных доверенных приложений).A trusted application is an application that does not harm a computing device or its user. A trusted application can be considered an application developed by a trusted software manufacturer downloaded from a trusted source, or an application whose identifier (for example, the MD5 file of the application) is stored in the trusted application database (the manufacturer ID, for example, a certificate can also be stored in the trusted application database) .

Недоверенное приложение - приложение, которое не является доверенным, но также не признано вредоносным, например, при помощи приложения безопасности.An untrusted application is an application that is not trusted but also not considered malicious, for example, using a security application.

Недоверенный процесс - процесс, который был запущен из недоверенного приложения. 4Untrusted process - a process that was launched from an untrusted application. four

Эвристический анализ - технология, заключающаяся в эмуляции работы анализируемой программы, создании журнала вызовов API-функций и поиске соответствий данных из созданного журнала вызова API-функций с данными из базы данных эмуляций вредоносных программ с целью обнаружения вредоносной программы.Heuristic analysis is a technology consisting in emulating the operation of an analyzed program, creating an API function call log and matching data from the created API function call log with data from a malware emulation database in order to detect a malicious program.

Внедренные данные - данные (в том числе и исполняемый код, состоящий из инструкций для процессора), записанные одним из потоков одного процесса в адресное пространство другого процесса.Embedded data - data (including executable code consisting of instructions for the processor) written by one of the streams of one process to the address space of another process.

Данные о приложении - информация, описывающая приложение (а также запущенные из упомянутых приложений процессы), в том числе исполняемые файлы приложения и другие компоненты (мультимедиа-ресурсы, файлы конфигураций и т.п.). Данные о приложении включают в себя по крайней мере название приложения (а, соответственно, и имена процессов, созданных, запущенных из приложения), каталог запуска процесса, количество уникальных пользователей, запустивших приложение, время, прошедшее с момента первого известного запуска приложения.Application data - information describing the application (as well as processes launched from the mentioned applications), including application executable files and other components (multimedia resources, configuration files, etc.). Information about the application includes at least the name of the application (and, accordingly, the names of processes created and launched from the application), the directory of the process launch, the number of unique users who launched the application, the time elapsed since the first known launch of the application.

Функция межпроцессного взаимодействия - системная функция (например, Windows API-функция), используемая для исполнения кода в адресном пространстве (иногда употребляется «из адресного пространства») другого процесса (не того, из которого данная функция вызывается), например, CreateRemoteThread, SetThreadContext, NTQueueApcThread или ResumeRemoteThread, а также функция, используемая для внедрения кода, который будет исполняться другим процессом (например, WriteProcessMemory). Под целью вызова функции межпроцессного взаимодействия будем понимать процесс (процесс-цель), при этом контекст вызова функции межпроцессного взаимодействия содержит такие значения аргументов, что запись данных (осуществляемая, например, при помощи функции WriteProcessMemory) производится в адресное пространство процесса-цели, или осуществляется передача управления на исполняемый код, находящийся в адресном пространстве процесса, являющегося целью вызова функции межпроцессного взаимодействия.The interprocess communication function is a system function (for example, the Windows API function) used to execute code in the address space (sometimes used “from the address space”) of another process (not the one from which this function is called), for example, CreateRemoteThread, SetThreadContext, NTQueueApcThread or ResumeRemoteThread, as well as a function used to inject code that will be executed by another process (for example, WriteProcessMemory). By the purpose of calling the interprocess communication function, we mean the process (process-target), while the context of calling the interprocess communication function contains such argument values that the data is written (for example, using the WriteProcessMemory function) in the address space of the target process, or control transfer to the executable code located in the address space of the process, which is the goal of calling the interprocess communication function.

Функционал кода - совокупность системных вызовов, которые могут быть осуществлены во время исполнения кода.Functional code - a set of system calls that can be made during code execution.

На Фиг. 1 проиллюстрирована структурная схема обнаружения вредоносного кода в оперативной памяти в рамках работы способа. Схематично изображенное на Фиг. 1 вычислительное устройство 100, детальная схема которого будет приведена на Фиг. 3, может представлять собой персональный компьютер (для простоты, «компьютер»), мобильное вычислительное устройство (например, смартфон или ноутбук), а также распределенную вычислительную сеть, состоящую из упомянутых устройств. На вычислительном устройстве находится (установлено) по меньшей мере одно приложение 110 (программа, программное обеспечение - ПО), которое пользователь вычислительного устройства 100 использует, например, для просмотра веб-страниц, прослушивания аудиозаписей, общения посредством сети Интернет. В дополнение к вышеописанным приложениям 110 на вычислительном устройстве 100 присутствует приложение безопасности 120 (например, антивирусное приложение), предназначенное для защиты вычислительного устройства 100 и его пользователя от вредоносных приложений. Для выполнения задач по защите вычислительного устройства 100 приложение безопасности 120 может включать в себя множество модулей, например модуль сигнатурного анализа, модуль эвристического анализа, модуль журналирования. Модуль журналирования предназначен для перехвата системных вызовов - вызовов системных функций (например, WinAPI-функций), которые осуществляются различными процессами на вычислительном устройстве 100, а также для сохранения контекста вызовов этих функций. В частном случае реализации при использовании операционной системы семейства Windows модуль журналирования осуществляет перехват вызовов функций путем установки драйвера-фильтра (драйвера, внедренного в стек драйверов для взаимодействия с устройством). Для реализации такого подхода используется диспетчер фильтров (англ. Filter Manager), в который загружается драйвер, реализующий логику работы модуля журналирования. В частном случае реализации изобретения на вычислительном устройстве 100 также присутствует модуль контроля приложений 130. Модуль контроля приложений 130 предназначен для контроля запуска и выполнения приложений 110. В частном случае реализации модуль контроля приложений 130 оперирует правилами («правило контроля приложения» или «правило контроля»), регулирующими его поведение в различных ситуациях (например, контроль действий упомянутого программного обеспечения). В частном случае такие правила определяют работу модуля 130 при запуске и выполнении различных приложений 110, а также приложений из различных групп. В качестве групп могут выступать: доверенное программное обеспечение, вредоносное программное обеспечение, недоверенное программное обеспечение. В частном случае реализации правила контроля могут иметь вид:In FIG. 1 illustrates a structural diagram for detecting malicious code in RAM as part of the method. Schematically depicted in FIG. 1, computing device 100, a detailed diagram of which will be shown in FIG. 3 may be a personal computer (for simplicity, a “computer”), a mobile computing device (eg, a smartphone or laptop), as well as a distributed computing network consisting of these devices. At least one application 110 (program, software - software) is located on the computing device (software, software), which the user of the computing device 100 uses, for example, to browse web pages, listen to audio recordings, and communicate via the Internet. In addition to the applications described above 110, a security application 120 (e.g., an anti-virus application) is provided on the computing device 100 to protect the computing device 100 and its user from malicious applications. To perform the tasks of protecting the computing device 100, the security application 120 may include many modules, for example, a signature analysis module, a heuristic analysis module, and a logging module. The logging module is designed to intercept system calls - calls to system functions (for example, WinAPI functions), which are carried out by various processes on the computing device 100, as well as to save the context of calls to these functions. In the particular case of implementation, when using the operating system of the Windows family, the logging module intercepts function calls by installing a driver filter (a driver embedded in the driver stack to interact with the device). To implement this approach, a Filter Manager is used, into which a driver is loaded that implements the logic of the logging module. In the particular case of the invention, the application control module 130 is also present on the computing device 100. The application control module 130 is designed to control the launch and execution of applications 110. In the particular case of the implementation, the application control module 130 operates with the rules (“application control rule” or “control rule” ), regulating its behavior in various situations (for example, monitoring the actions of the mentioned software). In the particular case, such rules determine the operation of module 130 when starting and executing various applications 110, as well as applications from various groups. Groups may include: trusted software, malware, untrusted software. In the particular case of implementation, the control rules may be of the form:

- предотвращать запуск вредоносного программного обеспечения;- prevent the launch of malicious software;

- разрешать запуск только доверенного программного обеспечения (правило запрета по умолчанию, от англ. default deny);- Allow only trusted software to run (default prohibition rule, from the English default deny);

- разрешать запуск программного обеспечения не из группы вредоносного программного обеспечения.- allow the launch of software not from the group of malicious software.

В частном случае реализации приложение безопасности 120 определяет принадлежность того или иного приложения 110 к группе недоверенных приложений, если приложение 110 не было признано приложением безопасности 120 вредоносным в соответствии с одним из способов обнаружения вредоносных программ (сигнатурный или эвристический), а также приложение 110 не было признано доверенным. В свою очередь, приложение 110 признается доверенным, если база данных доверенных приложений, которая может находиться как в составе приложения безопасности 120, так и на удаленном сервере безопасности (не отображен на Фиг. 1), содержит идентификатор приложения 110 (например, контрольную сумму MD5).In the particular case of implementation, the security application 120 determines whether an application 110 belongs to a group of untrusted applications if the application 110 was not recognized by the security application 120 as malicious in accordance with one of the malware detection methods (signature-based or heuristic), and application 110 was not recognized as trusted. In turn, the application 110 is trusted if the database of trusted applications, which can be both in the security application 120 and on the remote security server (not shown in Fig. 1), contains the application identifier 110 (for example, the MD5 checksum )

Процесс 1 140 - процесс, созданный из недоверенного приложения. Приложение безопасности 120 при помощи модуля журналирования перехватывает вызываемые в рамках процесса 1 140 функции, в том числе и функции межпроцессного взаимодействия. Стоит отметить, что приложение безопасности 120 способно перехватывать вызовы функций всех приложений 110 (не только недоверенных). Для перехваченных вызовов функций (в том числе и функций межпроцессного взаимодействия) приложение безопасности 120 способно определить контекст вызова функции.Process 1 140 is a process created from an untrusted application. The security application 120, using the logging module, intercepts functions called during the process 1,140, including the functions of interprocess communication. It is worth noting that the security application 120 is capable of intercepting calls to functions of all applications 110 (not only untrusted). For intercepted function calls (including interprocess communication functions), security application 120 is able to determine the context of the function call.

В дополнение к контексту вызовов приложение безопасности 120 способно собирать данные о приложениях 110, из которых были запущены процессы, осуществляющие вызов перехваченных функций. В частном случае реализации для получения данных о приложениях 110 приложение безопасности 120 обращается к удаленному серверу безопасности, который в ответ на переданный со стороны приложения безопасности 120 идентификатор приложения 110 (например, контрольную сумму MD5) посылает приложению безопасности 120 следующие данные о приложении: информацию о количестве уникальных пользователей, запустивших приложение, и о времени, прошедшем с момента первого известного запуска приложения. В свою очередь, чтобы такая информация была бы доступна на сервере безопасности, приложение безопасности 120 при запуске приложений 110 посылает соответствующее уведомление (вместе с идентификатором приложения) серверу безопасности. В частном случае реализации данные о приложении 110 включают в себя информацию о расположении приложения 110 в рамках вычислительного устройства (путь к соответствующему файлу приложения).In addition to the call context, security application 120 is able to collect data about applications 110 from which processes that call intercepted functions were started. In the particular implementation case, to obtain data on applications 110, security application 120 contacts a remote security server, which, in response to security identifier 120 sent by security application 120 (for example, MD5 checksum), sends the following application data to security application 120: information about the number of unique users who launched the application, and the time elapsed since the first known launch of the application. In turn, so that such information would be available on the security server, the security application 120 when starting the applications 110 sends a corresponding notification (together with the application identifier) to the security server. In the particular case of implementation, data about the application 110 includes information about the location of the application 110 within the computing device (path to the corresponding application file).

В частном случае реализации данные о приложениях 110 приложение безопасности 120 собирает до момента обнаружения недоверенного процесса. В таком случае приложение безопасности 120 может, например, в фоновом режиме собирать упомянутые выше данные о каждом присутствующем на вычислительном устройстве приложении 110. В другом частном случае реализации изобретения приложение безопасности 120 собирает данные о приложении 110 после того, как оно будет признано недоверенным.In the particular case of implementation, data about applications 110 is collected by security application 120 until an untrusted process is detected. In this case, the security application 120 may, for example, collect the above-mentioned data in the background about each application 110 present on the computing device. In another particular embodiment of the invention, the security application 120 collects data about the application 110 after it is recognized as untrusted.

В дополнение к упомянутым выше признакам вызова, составляющим контекст вызова, приложение безопасности 120 для каждого перехваченного вызова функции (в том числе и вызова функции межпроцессного взаимодействия) способно определить дополнительные признаки вызова:In addition to the call attributes mentioned above, which make up the call context, the security application 120 for each intercepted function call (including the call of the interprocess communication function) is able to determine additional call attributes:

- наименование процесса-цели (может быть определено с использованием идентификатора процесса-цели, как аргумента вызова функции);- name of the target process (can be determined using the identifier of the target process as an argument to the function call);

- размер блока памяти, записываемого в адресное пространство процесса-цели;- the size of the memory block recorded in the address space of the target process;

- наличие заголовка исполняемого файла (например, РЕ-заголовка для ОС семейства Windows, ELF-заголовок для ОС семейства Unix или DEX-заголовок для ОС Android) в блоке памяти (внедряемом блоке данных), записываемом в адресное пространство процесса-цели (например, для ОС семейства Windows может быть определено путем поиска в блоке памяти структуры РЕ-заголовка - сигнатуры MZ, DOS-заголовка и т.п.);- the presence of an executable file header (for example, a PE header for a Windows OS, an ELF header for a Unix family OS or a DEX header for Android) in a memory block (an embedded data block) written to the address space of the target process (for example, for an OS of the Windows family it can be determined by searching in the memory block for the structure of the PE-header - the signature of MZ, DOS-header, etc.);

- является ли процесс-цель доверенным процессом;- whether the target process is a trusted process;

- осуществляет ли функция межпроцессного взаимодействия передачу управления на исполняемый код процесса-цели в области, зарезервированной для кода динамических библиотек.- Does the interprocess communication function carry out control transfer to the executable code of the target process in the area reserved for the code of dynamic libraries.

Процесс 2 150 - это процесс-цель для вызовов функций межпроцессного взаимодействия, вызываемых из адресного пространства процесса 1 140. На Фиг. 1 отображено примерное представление адресного пространства процесса 2 150. Как видно из Фиг. 1, упомянутое адресное пространство содержит данные, принадлежащие процессу 2 150, например исполняемый код; область памяти, зарезервированная под кучу (англ. heap); исполняемый код используемых библиотек и т.п. Эти данные отображены, как «данные процесса 2». В то же самое время адресное пространство процесса 2 150 может содержать и «внедренные данные» - это данные, которые записаны процессом 1 140 в адресное пространство процесса 2 150 при помощи функций межпроцессного взаимодействия.Process 2 150 is the target process for calling interprocess communication functions called from the address space of process 1 140. FIG. 1 shows an exemplary representation of the address space of process 2 150. As can be seen from FIG. 1, said address space contains data belonging to process 2 150, for example, executable code; the area of memory reserved for the heap (English heap); executable code of used libraries, etc. This data is displayed as “process data 2”. At the same time, the address space of process 2 150 may also contain “embedded data” - this is data that is recorded by process 1 140 in the address space of process 2 150 using interprocess communication functions.

На Фиг. 2А-2В изображена примерная схема алгоритма работы одного из вариантов реализации. На этапе 201 приложение безопасности 120 осуществляет обнаружение недоверенного процесса (процесс 1 140), запущенного из одного из приложений 110. На этапе 202 приложение безопасности 120 осуществляет сбор данных о приложении 110 (которое является недоверенным), из которого был запущен процесс 1 140. Затем, на этапе 203, приложение безопасности 120 при помощи модуля журналирования перехватывает вызов по меньшей мере одной функции межпроцессного взаимодействия из адресного пространства процесса 1 140, при этом целью перехваченного вызова функции является процесс 2 150. На этапе 204 приложение безопасности 120 определяет признаки по меньшей мере одного вызова функции межпроцессного взаимодействия, перехваченного на этапе ранее. Вызов функций межпроцессного взаимодействия свидетельствует о том, что процесс 1 140 либо пытается вызвать исполнение некоторого кода из адресного пространства процесса 2 150, либо внедряет (записывает) этот исполняемый код в адресное пространство процесса 2 150. На этапе 205 приложение безопасности определяет необходимость анализа кода в адресном пространстве процесса-цели вызова функции межпроцессного взаимодействия. В частном случае реализации под кодом в упомянутой области памяти понимается исполняемый код. В еще одном частном случае реализации под кодом в упомянутой области памяти понимаются любые двоичные данные в памяти.In FIG. 2A-2B depict an exemplary flow chart of one of the implementation options. At step 201, the security application 120 detects an untrusted process (process 1 140) launched from one of the applications 110. At step 202, the security application 120 collects data about the application 110 (which is untrusted) from which the process 1 140 was started. Then , at step 203, the security application 120, using the logging module, intercepts a call to at least one interprocess communication function from the address space of process 1 140, while the purpose of the intercepted function call is Processes 2 150. At step 204, the security application 120 determines signs of at least one interprocess communication function call intercepted in step earlier. The call of interprocess communication functions indicates that the process 1 140 either tries to call the execution of some code from the address space of the process 2 150, or embeds (writes) this executable code into the address space of the process 2 150. At step 205, the security application determines the need for code analysis in the address space of the target process of the call of the interprocess communication function. In the particular case of implementation, code in the said memory area refers to executable code. In yet another particular case of implementation, code in this memory area refers to any binary data in memory.

Необходимость анализа кода в области памяти, принадлежащей процессу-цели (кода в адресном пространстве процесса, который является целью вызова функции межпроцессного взаимодействия), определяется при помощи эвристических правил, применение которых к собранным данным о приложении 110, из которого запущен недоверенный процесс 1 140, а также к признакам по меньшей мере одного вызова функции межпроцессного взаимодействия определяет, надо или нет анализировать код в адресном пространстве процесса-цели. В частном случае реализации упомянутые эвристические правила могут иметь вид:The need to analyze the code in the memory area belonging to the target process (the code in the process address space, which is the goal of calling the interprocess communication function), is determined using heuristic rules, the application of which to the collected data about the application 110, from which the untrusted process 1,140 is launched, as well as signs of at least one call of the interprocess communication function, it determines whether or not to analyze the code in the address space of the target process. In the particular case of implementation, the heuristic rules mentioned may look like:

1) если в процесс-цель записывается блок данных, содержащий РЕ-заголовок, то необходим анализ кода;1) if a data block containing a PE header is written to the target process, then code analysis is necessary;

2) если процесс, запущенный из каталога «Application Data» (в ОС Windows полный путь данного каталога содержится в переменной окружения «APPDATA»), внедряет данные в доверенный процесс-цель, то необходим анализ кода;2) if the process started from the Application Data directory (in Windows OS the full path of this directory is contained in the APPDATA environment variable), embeds the data into the trusted target process, then code analysis is required;

3) если процесс, запущенный из каталога «Temp» (в ОС Windows полный путь данного каталога содержится в переменной окружения «ТЕМР»), внедряет данные в доверенный процесс-цель, то необходим анализ кода;3) if the process started from the Temp directory (in Windows OS the full path of this directory is contained in the TEMP environment variable), embeds the data into the trusted target process, then code analysis is required;

4) если процесс, запущенный из каталога, соответствующего рабочему столу, внедряет данные в доверенный процесс-цель, то необходим анализ кода;4) if a process launched from a directory corresponding to the desktop embeds data in a trusted target process, then code analysis is required;

5) если процесс внедряет данные в доверенный системный процесс (например, с именами «svchost», «csrss», «winlogon», «rundll» или «iexplorer»), то необходим анализ кода;5) if the process embeds data in a trusted system process (for example, with the names "svchost", "csrss", "winlogon", "rundll" or "iexplorer"), code analysis is required;

6) если процесс вызывает функцию «NTQueueApcThread», причем аргументы функции ссылаются на доверенный процесс-цель, то необходим анализ кода;6) if the process calls the function "NTQueueApcThread", and the arguments of the function refer to the trusted process-target, then code analysis is necessary;

7) если процесс внедряет данные в процесс-цель, при этом имена процесса и процесса-цели совпадают, и количество уникальных пользователей, запустивших приложение, из которого запущен процесс, не превышает пороговое значение (например, 50), и времея, прошедшее с момента первого известного запуска приложения, из которого запущен процесс, не превышает пороговое значение (например, 1 день), то необходим анализ кода.7) if the process embeds data in the target process, while the names of the process and the target process coincide, and the number of unique users who launched the application from which the process is launched does not exceed the threshold value (for example, 50), and the time elapsed since Since the first known launch of the application from which the process is launched does not exceed the threshold value (for example, 1 day), code analysis is required.

Следует отметить, что правила 2, 3, 4 можно объединить в одно правило вида «если процесс, запущенный из ранее определенного каталога, внедряет данные в доверенный процесс-цель, то необходим анализ кода». При этом факт, что процесс, в который внедряются данные, является доверенным, следует из того, что приложение 110, из которого он был запущен, является доверенным.It should be noted that rules 2, 3, 4 can be combined into one rule of the form "if a process launched from a previously defined directory embeds data in a trusted target process, then code analysis is necessary." Moreover, the fact that the process into which the data is embedded is trusted follows from the fact that the application 110 from which it was launched is trusted.

Если хотя бы в соответствии с одним из вышеописанных эвристических правил на этапе 205 была определена необходимость анализа кода, то на этапе 206 приложение безопасности 120 осуществляет анализ кода в области памяти, принадлежащей процессу-цели вызова функции межпроцессного взаимодействия (адресное пространство процесса-цели), с целью обнаружения вредоносного кода. В частном случае реализации на данном этапе могут быть использованы известные методы анализа кода - сигнатурный анализ и/или эвристический. Если код не был признан вредоносным, то работа изобретения завершается на этапе 208.If at least in accordance with one of the heuristic rules described above at step 205 the necessity of code analysis was determined, then at step 206 the security application 120 analyzes the code in the memory area belonging to the target process of calling the interprocess communication function (address space of the target process), in order to detect malicious code. In the particular case of the implementation at this stage, known methods of code analysis can be used - signature analysis and / or heuristic. If the code was not recognized as malicious, then the invention ends at step 208.

Если же вредоносный код был обнаружен на этапе 206, то на этапе 207 приложение безопасности 120 осуществляет определение функционала кода, который был признан вредоносным на этапе 206. В частном случае реализации изобретения функционал кода может быть определен при помощи приложения безопасности 120 путем сопоставления адресов функций, вызываемых из исполняемого кода, и адресов функций, загруженных в адресное пространство процесса (в контексте функционала кода, внедренного в адресное пространство процесса, имеются в виду библиотеки, загруженные в адресное пространство этого же процесса-цели). По результатам сопоставления приложение безопасности 120 определяет функционал кода - множество системных функций, которые могут быть запущены из кода, признанного вредоносным. На этапе 209 приложение безопасности 120 формирует по меньшей мере одно правило контроля приложения для модуля контроля приложений 130. В частном случае реализации приложение безопасности 120 формирует такое правило контроля приложения, которое для приложения, из которого был запущен процесс-цель, запрещает вызов системных функций, которые входят в функционал вредоносного кода. В еще одном частном случае реализации изобретения приложение безопасности 120 формирует такое правило контроля приложения, при котором для приложения, из которого был запущен процесс-цель, модуль контроля приложений 130 запрашивает подтверждение у пользователя вызовов системных функций, которые входят в функционал вредоносного кода. После формирования правила контроля приложения на этапе 209 приложение безопасности 120 передает упомянутое правило контроля приложения модулю контроля приложений 130, и на этапе 210 модуль контроля приложений используется согласно сформированному правилу контроля приложения.If the malicious code was detected at step 206, then at step 207, the security application 120 determines the functionality of the code that was found to be malicious at step 206. In the particular case of the invention, the functionality of the code can be determined using the security application 120 by matching the addresses of the functions, called from the executable code, and the addresses of functions loaded into the address space of the process (in the context of the functionality of the code embedded in the address space of the process, we mean libraries loaded entered into the address space of the same process-target). Based on the results of the comparison, the security application 120 determines the functionality of the code — a set of system functions that can be run from code recognized as malicious. At step 209, the security application 120 generates at least one application control rule for the application control module 130. In the particular case of implementation, the security application 120 generates an application control rule that prevents the system functions from being called for the application from which the target process was launched, which are included in the functionality of malicious code. In another particular embodiment of the invention, the security application 120 generates an application control rule in which for the application from which the target process was launched, the application control module 130 requests confirmation from the user of calls to system functions that are part of the malicious code functionality. After the application control rule is generated at step 209, the security application 120 passes the said application control rule to the application control module 130, and at step 210, the application control module is used according to the generated application control rule.

В частном случае реализации при обнаружении вредоносного кода на этапе 206 происходит остановка процесса-цели, в адресное пространство которого внедрен вредоносный код, при помощи приложения безопасности 120. В еще одном частном случае реализации изобретения при обнаружении вредоносного кода на этапе 206 приложение безопасности 120 осуществляет удаление вредоносного кода из адресного пространства процесса-цели. В другом частном случае реализации приложение 110, из которого запушен процесс, осуществляющий вызовы функций межпроцессного взаимодействия, удаляется или помещается в карантин при помощи приложения безопасности 120.In the particular case of the implementation, upon detection of malicious code at step 206, the target process is stopped, the malicious code is embedded in the address space of the application using security application 120. In another particular case of the invention, upon detection of malicious code at step 206, the security application 120 deletes malicious code from the address space of the target process. In another special case of implementation, application 110, from which the process executing calls of interprocess communication functions is launched, is deleted or quarantined using security application 120.

В частном случае реализации изобретения после обнаружения вредоносного кода на этапе 206 приложение безопасности 120 формирует такое правило контроля приложения для модуля контроля приложений 130, при котором приложение 110, из которого был запущен процесс-цель, помещается модулем контроля приложений 130 в список недоверенных (например, путем изменения записи, соответствующей идентификатору приложения 110, в базе данных доверенных приложений). Как упоминалось выше, модуль контроля приложений 130 предназначен для контроля запуска и выполнения приложений 110, в том числе и недоверенных. В частном случае реализации модуль контроля приложений 130 блокирует запуск недоверенных приложений. В еще одном частном случае реализации модуль контроля приложений блокирует установку соединения с удаленным ресурсом (например, сайтом) до того момента, как пользователь вычислительного устройства разрешит установку упомянутого соединения.In the particular case of the invention, after detecting malicious code at step 206, the security application 120 generates such an application control rule for the application control module 130, in which the application 110 from which the target process was launched is placed by the application control module 130 in the untrusted list (for example, by changing the entry corresponding to the application identifier 110 in the trusted application database). As mentioned above, the application control module 130 is designed to control the launch and execution of applications 110, including untrusted ones. In the particular case of implementation, the application control module 130 blocks the launch of untrusted applications. In another particular embodiment, the application control module blocks the establishment of a connection to a remote resource (for example, a site) until the user of the computing device allows the establishment of the said connection.

В еще одном частном случае реализации изобретения после обнаружения вредоносного кода на этапе 206 приложение безопасности 120 определяет по меньшей мере один унифицированный идентификатор ресурса (англ. URI - uniform resource identifier), который используется вредоносным кодом. Обнаружение (определение) URI осуществляется путем анализа адресного пространства процесса, содержащего вредоносный код. В частном случае реализации приложение безопасности 120 определяет URI путем поиска возможных строковых представлений URI, например, адреса удаленного ресурса "http://******.com/****" или ресурса в рамках файловой системы "file://****". В еще одном частном случае реализации приложение безопасности 120 определяет адреса в реестре операционной системы (например, для операционных систем Windows) как URI. В частном случае реализации поиск соответствующих URI производится приложением безопасности 120 в адресном пространстве процесса-цели. В еще одном частном случае реализации поиск производится в части адресного пространства, удаленной от начала вредоносного кода не более чем на определенную величину байт, например не более 1000 байт. В еще одном частном случае реализации поиск производится в окрестностях (например, размером 100 байт) адресов, которые используются в качестве аргументов инструкций, входящих в состав вредоносного кода. Стоит отметить, что под ресурсами в рамках настоящего изобретения понимают объекты, на которые можно ссылаться при помощи URI. В частном случае реализации упомянутыми ресурсами являются: файл, сайт, параметр реестра и т.п.In another particular embodiment of the invention, after detecting the malicious code at step 206, the security application 120 determines at least one uniform resource identifier (URI) that is used by the malicious code. URI detection (determination) is carried out by analyzing the address space of a process containing malicious code. In the particular implementation, security application 120 determines the URI by looking for possible string representations of the URI, for example, the address of the remote resource "http: //******.com/****" or the resource within the file system "file: / / **** ". In another particular implementation, the security application 120 determines the addresses in the registry of the operating system (for example, for Windows operating systems) as a URI. In the particular case of the implementation, the search for the corresponding URIs is performed by the security application 120 in the address space of the target process. In another special case of the implementation, the search is performed in the part of the address space that is removed from the beginning of the malicious code by no more than a certain amount of bytes, for example, not more than 1000 bytes. In another special case of the implementation, the search is performed in the vicinity (for example, 100 bytes in size) of addresses that are used as arguments to instructions that are part of the malicious code. It is worth noting that the resources in the framework of the present invention understand objects that can be referenced using the URI. In the particular case of implementation, the mentioned resources are: file, site, registry setting, etc.

Если был обнаружен URI, приложение безопасности 120 формирует соответствующую антивирусную запись, хранящую обнаруженный URI (или хеш, вычисленный, например, от строкового представления URI). В свою очередь, антивирусная запись используется приложением безопасности 120 таким образом, что приложение безопасности 120 блокирует (ограничивает) доступ с вычислительного устройства к ресурсам с URI (или его хешем), который содержится в антивирусной записи. В частном случае реализации приложение безопасности 120 отправляет созданную антивирусную запись удаленному серверу безопасности, который, в свою очередь, может распространить антивирусную запись среди множества других вычислительных устройств, в рамках которых функционирует приложение безопасности 120 для последующего использования.If a URI has been detected, the security application 120 generates a corresponding anti-virus entry storing the detected URI (or a hash calculated, for example, from a string representation of the URI). In turn, the anti-virus entry is used by the security application 120 in such a way that the security application 120 blocks (restricts) access from the computing device to resources with a URI (or its hash) that is contained in the anti-virus entry. In the particular case of implementation, the security application 120 sends the created anti-virus entry to a remote security server, which, in turn, can distribute the anti-virus entry to many other computing devices within which the security application 120 operates for subsequent use.

В частном случае реализации изобретения приложение безопасности 120 формирует антивирусные записи не для всех обнаруженных URI, а только для тех, которые отсутствуют в базе данных доверенных URI, которая может входить в состав приложения безопасности 120 и содержит в себе список доверенных URI. Под доверенным URI будем понимать URI, доступ к которому не нанесет вреда (примером вреда может быть, например, загрузка и/или запуск вредоносного приложения) вычислительному устройству и его пользователю. В частном случае реализации список URI, хранящихся в базе данных доверенных URI, формируется на удаленном сервере безопасности, например, при помощи специалиста в области информационной безопасности и пересылается приложению безопасности 120 для последующего хранения и использования.In the particular case of the invention, the security application 120 generates anti-virus entries not for all detected URIs, but only for those that are not in the trusted URI database, which can be part of the security application 120 and contains a list of trusted URIs. By a trusted URI, we mean a URI, access to which does no harm (an example of harm could be, for example, downloading and / or launching a malicious application) to a computing device and its user. In the particular case of the implementation, the list of URIs stored in the trusted URI database is generated on a remote security server, for example, using an information security specialist and sent to security application 120 for subsequent storage and use.

Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая, в свою очередь, память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.FIG. 3 represents an example of a general purpose computer system, a personal computer or server 20 comprising a central processor 21, a system memory 22, and a system bus 23 that contains various system components, including memory associated with the central processor 21. The system bus 23 is implemented as any prior art bus structure comprising, in turn, a bus memory or a bus memory controller, a peripheral bus and a local bus that is capable of interacting with any other bus architecture. The system memory contains read-only memory (ROM) 24, random access memory (RAM) 25. The main input / output system (BIOS) 26, contains basic procedures that ensure the transfer of information between the elements of the personal computer 20, for example, at the time of loading the operating ROM systems 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 a 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 through the interface of the hard disk 32, the interface of the magnetic disks 33 and the interface of the optical drive 34, respectively. Drives and associated computer storage media are non-volatile means of storing computer instructions, data structures, software modules and other data of a personal computer 20.

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

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который, в свою очередь, подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.Computer 20 has a file system 36 where the recorded operating system 35 is stored, as well as additional software applications 37, other program modules 38, and program data 39. The user is able to enter commands and information into personal computer 20 via input devices (keyboard 40, keypad “ the mouse "42). Other input devices (not displayed) can be used: microphone, joystick, game console, scanner, etc. Such input devices are, as usual, connected to the computer system 20 via a serial port 46, which, in turn, is connected to the system bus, but can be connected in another way, for example, using a parallel port, a game port, or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the monitor 47, the personal computer may be equipped with other peripheral output devices (not displayed), such as speakers, a printer, and the like.

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

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

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

Claims (5)

1. Способ использования антивирусной записи приложением безопасности, в котором:
a) обнаруживают по меньшей мере один недоверенный процесс, при этом процесс является недоверенным, если он запущен из недоверенного приложения;
b) собирают данные о приложении, из которого запущен по меньшей мере один недоверенный процесс;
c) перехватывают вызов по меньшей мере одной функции межпроцессного взаимодействия, осуществляемый недоверенным процессом;
d) определяют признаки вызова по меньшей мере одной перехваченной функции межпроцессного взаимодействия;
e) определяют необходимость анализа кода в адресном пространстве процесса, являющегося целью вызова функции межпроцессного взаимодействия, при помощи по меньшей мере одного эвристического правила, применение которого к собранным данным о приложении, а также к определенным на этапе ранее признакам вызова определяет упомянутую необходимость анализа кода, при этом под целью вызова функции межпроцессного взаимодействия понимается процесс, в отношении которого осуществляется вызов функции межпроцессного взаимодействия;
f) осуществляют анализ кода в области памяти, принадлежащей процессу, являющемуся целью вызова функции межпроцессного взаимодействия, с целью обнаружения вредоносного кода, при этом результатом анализа является признание или непризнание упомянутого кода в области памяти вредоносным;
g) определяют по меньшей мере один унифицированный идентификатор ресурса, который используется вредоносным кодом, путем анализа адресного пространства процесса, содержащего код, признанный вредоносным на этапе ранее;
h) формируют по меньшей мере одну антивирусную запись, которая содержит обнаруженный унифицированный идентификатор ресурса и предназначена для использования приложением безопасности с целью ограничения доступа с вычислительного устройства к ресурсам, унифицированный идентификатор которых был определен на этапе ранее;
i) используют по меньшей мере одну сформированную антивирусную запись приложением безопасности для ограничения доступа с вычислительного устройства к ресурсам, унифицированный идентификатор которых содержится в упомянутой антивирусной записи.
1. A method for using anti-virus recording by a security application, in which:
a) detect at least one untrusted process, the process being untrusted if it is started from an untrusted application;
b) collect data about the application from which at least one untrusted process is running;
c) intercept the call of at least one interprocess communication function carried out by an untrusted process;
d) determining signs of calling at least one intercepted interprocess communication function;
e) determine the need for code analysis in the address space of the process, which is the goal of calling the interprocess communication function, using at least one heuristic rule, the application of which to the collected data about the application, as well as to the call attributes defined at the previous stage, determines the mentioned necessity of code analysis, at the same time, the purpose of calling the interprocess interaction function is understood to mean the process in relation to which the interprocess interaction function is called;
f) analyze the code in the memory area belonging to the process, which is the purpose of calling the interprocess communication function, in order to detect malicious code, while the analysis results in the recognition or non-recognition of the said code in the memory area as malicious;
g) determining at least one unified identifier of the resource that is used by the malicious code by analyzing the address space of the process containing the code recognized as malicious at the stage earlier;
h) form at least one anti-virus entry that contains the detected unified resource identifier and is intended for use by the security application to restrict access from the computing device to resources whose unified identifier was determined at the stage earlier;
i) use at least one generated antivirus entry by the security application to restrict access from the computing device to resources whose unified identifier is contained in the said antivirus entry.
2. Способ по п. 1, в котором функция межпроцессного взаимодействия - системная функция, используемая для исполнения кода из адресного пространства другого процесса, а также функция, используемая для определения кода, который будет исполняться другим процессом.2. The method according to claim 1, wherein the interprocess communication function is a system function used to execute code from the address space of another process, as well as a function used to determine the code that will be executed by another process. 3. Способ по п. 1, в котором недоверенным приложением является приложение, которое не является доверенным, но также не признано вредоносным.3. The method according to claim 1, wherein the untrusted application is an application that is not trusted, but is also not considered malicious. 4. Способ по п. 1, в котором данные о приложении включают в себя по меньшей мере название приложения, информацию о количестве уникальных пользователей, запустивших приложение, информацию о времени, прошедшем с момента первого известного запуска приложения, информацию о расположении приложения в рамках вычислительного устройства.4. The method according to claim 1, in which the application data includes at least the name of the application, information about the number of unique users who launched the application, information about the time elapsed since the first known launch of the application, information about the location of the application within the computational devices. 5. Способ по п. 1, в котором признаки вызова функции включают в себя по меньшей мере наименование функции, значения операндов функции, адрес вызова функции, идентификатор потока, осуществляющего вызов функции, описатель потока, осуществляющего вызов функции, описатель процесса, в рамках которого осуществляется вызов функции. 5. The method according to claim 1, wherein the signs of the function call include at least the name of the function, the values of the operands of the function, the address of the function call, the identifier of the thread making the function call, the descriptor of the thread making the function call, the process descriptor, within which a function call is made.
RU2015125978/08A 2015-06-30 2015-06-30 Method of creating antivirus record when detecting malicious code in random-access memory RU2592383C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015125978/08A RU2592383C1 (en) 2015-06-30 2015-06-30 Method of creating antivirus record when detecting malicious code in random-access memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015125978/08A RU2592383C1 (en) 2015-06-30 2015-06-30 Method of creating antivirus record when detecting malicious code in random-access memory

Publications (1)

Publication Number Publication Date
RU2592383C1 true RU2592383C1 (en) 2016-07-20

Family

ID=56413020

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015125978/08A RU2592383C1 (en) 2015-06-30 2015-06-30 Method of creating antivirus record when detecting malicious code in random-access memory

Country Status (1)

Country Link
RU (1) RU2592383C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2697954C2 (en) * 2018-02-06 2019-08-21 Акционерное общество "Лаборатория Касперского" System and method of creating antivirus record

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2429526C2 (en) * 2005-10-26 2011-09-20 Майкрософт Корпорейшн Statistically verified isolated processes permitting inter-process exchange
US8612995B1 (en) * 2009-03-31 2013-12-17 Symantec Corporation Method and apparatus for monitoring code injection into a process executing on a computer
EP2881883A1 (en) * 2013-12-05 2015-06-10 Kaspersky Lab, ZAO System and method for reducing load on an operating system when executing antivirus operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2429526C2 (en) * 2005-10-26 2011-09-20 Майкрософт Корпорейшн Statistically verified isolated processes permitting inter-process exchange
US8612995B1 (en) * 2009-03-31 2013-12-17 Symantec Corporation Method and apparatus for monitoring code injection into a process executing on a computer
EP2881883A1 (en) * 2013-12-05 2015-06-10 Kaspersky Lab, ZAO System and method for reducing load on an operating system when executing antivirus operations

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2697954C2 (en) * 2018-02-06 2019-08-21 Акционерное общество "Лаборатория Касперского" System and method of creating antivirus record
US11288362B2 (en) * 2018-02-06 2022-03-29 AO Kaspersky Lab System and method for creating antivirus records for antivirus applications

Similar Documents

Publication Publication Date Title
RU2589862C1 (en) Method of detecting malicious code in random-access memory
JP6639588B2 (en) System and method for detecting malicious files
EP3430556B1 (en) System and method for process hollowing detection
RU2531861C1 (en) System and method of assessment of harmfullness of code executed in addressing space of confidential process
US10291634B2 (en) System and method for determining summary events of an attack
US11416612B2 (en) Protecting against malware code injections in trusted processes
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
US7779472B1 (en) Application behavior based malware detection
Wang et al. Detecting stealth software with strider ghostbuster
US8661541B2 (en) Detecting user-mode rootkits
JP6700351B2 (en) System and method for detection of malicious code in a process's address space
US9111089B1 (en) Systems and methods for safely executing programs
JP6588945B2 (en) System and method for analyzing malicious files in a virtual machine
RU2618947C2 (en) Method of preventing program operation comprising functional undesirable for user
RU2553056C2 (en) System and method of storage of emulator state and its further recovery
RU2697954C2 (en) System and method of creating antivirus record
RU2724790C1 (en) System and method of generating log when executing file with vulnerabilities in virtual machine
CN109558207B (en) System and method for forming log for anti-virus scanning of file in virtual machine
RU2667052C2 (en) Detection of harmful software with cross-review
CN105760787A (en) System and method used for detecting malicious code of random access memory
RU2460133C1 (en) System and method of protecting computer applications
RU2665910C1 (en) System and method of detecting the harmful code in the address process space
RU2592383C1 (en) Method of creating antivirus record when detecting malicious code in random-access memory
US9342694B2 (en) Security method and apparatus
Ajmal et al. Defeating modern day anti-viruses for defense evaluation