RU2757807C1 - System and method for detecting malicious code in the executed file - Google Patents

System and method for detecting malicious code in the executed file Download PDF

Info

Publication number
RU2757807C1
RU2757807C1 RU2020128086A RU2020128086A RU2757807C1 RU 2757807 C1 RU2757807 C1 RU 2757807C1 RU 2020128086 A RU2020128086 A RU 2020128086A RU 2020128086 A RU2020128086 A RU 2020128086A RU 2757807 C1 RU2757807 C1 RU 2757807C1
Authority
RU
Russia
Prior art keywords
file
files
executable file
executable
assembly
Prior art date
Application number
RU2020128086A
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 RU2020128086A priority Critical patent/RU2757807C1/en
Application granted granted Critical
Publication of RU2757807C1 publication Critical patent/RU2757807C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

FIELD: information security.
SUBSTANCE: technical result is achieved by confirming the presence of malicious code in the executed file similar in the metadata to a trusted file.
EFFECT: ensured protection of information security.
8 cl, 3 dwg

Description

Область техникиTechnology area

Изобретение относится к области информационной безопасности, а более конкретно к системам и способам проверки файлов на наличие вредоносного кода.The invention relates to the field of information security, and more specifically to systems and methods for checking files for malicious code.

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

Количество создаваемых пользователями и компаниями новых приложений продолжает непрерывно расти. Улучшенные среды программирования и готовые конструкторы программ значительно упрощают и ускоряют процесс создания или изменения приложений. Создание версий и альтернативных сборок одного приложения редко приводит к появлению совершенно нового исполняемого файла. Зачастую разница функциональности упомянутых исполняемых файлов при детальном анализе может оказаться незначительной.The number of new applications created by users and companies continues to grow. Improved programming environments and out-of-the-box program designers greatly simplify and speed up the process of creating or modifying applications. Versions and alternate assemblies of the same application rarely result in a completely new executable file. Often, the difference in functionality of the mentioned executable files during a detailed analysis may turn out to be insignificant.

Существующие методы компиляции ввиду своей сложности позволяют создавать приложения одинаковой функциональности в виде различных исполняемых файлов. С другой стороны, существует возможность создать два одинаковых исполняемых файла, которые будут иметь разный набор функций.Existing compilation methods, due to their complexity, allow you to create applications of the same functionality in the form of various executable files. On the other hand, it is possible to create two identical executable files that will have a different set of functions.

Непрерывно растущее количество приложений и их постоянное изменение, например, в результате установки обновлений, не позволяет пользователю иметь актуальную информацию о текущей корректно работающей и наиболее безопасной версии сборки приложения. В то же время создатели программного обеспечения не всегда имеют возможность следить за выпуском различных версий сборок создаваемых ими приложений. Этой ситуацией может воспользоваться злоумышленник.The constantly growing number of applications and their constant change, for example, as a result of installing updates, does not allow the user to have up-to-date information about the current correctly working and most secure version of the application assembly. At the same time, software developers do not always have the ability to keep track of the release of different versions of assemblies of the applications they create. This situation can be exploited by an attacker.

Злоумышленники могут воспользоваться упомянутой сложностью и намеренно создать вредоносный исполняемый файл, который будет похож на исполняемый файл известного приложения, но иметь вредоносный функционал. С другой стороны, возможно создание нескольких разных вредоносных исполняемых файлов, которые будут иметь один или похожий вредоносный функционал. Для выявления функциональных отличий используют анализ информации о файлах исходного кода исполняемых файлов.Attackers can take advantage of this complexity and deliberately create a malicious executable file that looks like the executable file of a known application, but has malicious functionality. On the other hand, it is possible to create several different malicious executable files that will have the same or similar malicious functionality. To identify functional differences, the analysis of information about the files of the source code of the executable files is used.

В настоящее время существуют решения, предназначенные для детального сравнения файлов исходного кода. Например, в публикации US9569199B2 описана система, в которой осуществляют сравнение текста файлов исходного кода. Результаты сравнения используют для быстрого создания обновления или новой версии сборки приложения.Currently, there are solutions for detailed comparison of source code files. For example, publication US9569199B2 describes a system that compares the text of source code files. The comparison results are used to quickly create an update or new version of an application assembly.

Хотя описанный выше способ работы успешно справляется с задачей детального сравнения файлов исходного кода, но он не подразумевает выполнения антивирусной проверки функциональности различных версий сборки приложения. Настоящее изобретение позволяет эффективно решать эту задачу.Although the method described above successfully copes with the task of detailed comparison of source code files, it does not imply an anti-virus check of the functionality of different versions of the application assembly. The present invention makes it possible to effectively solve this problem.

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

Изобретение относится к области информационной безопасности, а более конкретно к системам и способам проверки файлов на наличие вредоносного кода. Изобретение предназначено для проверки наличия вредоносного кода в исполняемом файле. Технический результат настоящего изобретения заключается в обеспечении защиты информационной безопасности. Указанный технический результат достигается путем выполнения проверки наличия вредоносного кода в исполняемом файле, схожем по метаданным с доверенным файлом.The invention relates to the field of information security, and more specifically to systems and methods for checking files for malicious code. The invention is intended to check for the presence of malicious code in an executable file. The technical result of the present invention is to provide information security protection. The specified technical result is achieved by performing a check for the presence of malicious code in the executable file, which is similar in metadata to the trusted file.

В одном из вариантов реализации предоставляют способ обнаружения вредоносного кода в исполняемом файле, по которому: определяют метаданные, содержащие информацию о версии сборки исполняемого файла; выбирают из базы данных доверенных файлов по меньшей мере один исполняемый файл, метаданные которого схожи с определенными метаданными; определяют функциональный блок в исполняемом файле, который отсутствует по меньшей мере в одном выбранном исполняемом файле; обнаруживают наличие вредоносного кода в исполняемом файле при помощи правил проверки сборки и на основании определенного функционального блока.In one embodiment, a method is provided for detecting malicious code in an executable file, by which: determining metadata containing information about the version of an assembly of the executable file; select from the database of trusted files at least one executable file, the metadata of which is similar to certain metadata; determining a functional block in the executable file that is absent in at least one selected executable file; detect the presence of malicious code in an executable file using assembly validation rules and based on a specific functional block.

В другом варианте реализации способа под метаданными, содержащими информацию о версии сборки исполняемого файла, выступают по меньшей мере следующие метаданные: номер версии сборки; имя файла; размер файла; уникальные строки, выделенные из файла; структура файла; и содержимое секций импорта, экспорта и ресурсов.In another embodiment of the method, under the metadata containing information about the version of the assembly of the executable file, there are at least the following metadata: the version number of the assembly; File name; file size; unique lines extracted from the file; file structure; and the contents of the import, export and resource sections.

Еще в одном варианте реализации способа в базе данных доверенных файлов хранят исполняемые файлы, списки файлов и модулей исходного кода, отдельные файлы и модули исходного кода, файлы символов различных версий сборок исполняемых файлов и приложений, которые соответствуют по меньше мере одному из следующих условий: в отношении которых ранее была выполнена проверка на наличие вредоносного кода, происхождение которых подтверждено создателем программного обеспечения.In another embodiment of the method, executable files, lists of files and source code modules, individual files and source code modules, symbol files of various versions of assemblies of executable files and applications that correspond to at least one of the following conditions are stored in the database of trusted files: which were previously checked for the presence of malicious code, the origin of which has been confirmed by the creator of the software.

В другом варианте реализации способа функциональный блок представляет совокупность программных инструкций, обеспечивающих выполнений заданной задачи.In another embodiment of the method, the functional block represents a set of program instructions that ensure the execution of a given task.

Еще в одном варианте реализации способа определение функционального блока в исполняемом файле выполняют на основании по меньшей мере одного файла исходного кода, которые отсутствуют в выбранном файле.In yet another embodiment of the method, the definition of the functional block in the executable file is performed based on at least one source code file that is absent in the selected file.

В другом варианте реализации способа определяют функциональный блок в исполняемом файле на основании по меньшей мере одного модуля исходного кода, которые отсутствуют в выбранном файле.In another embodiment of the method, a functional block in the executable file is determined based on at least one source code module that is absent in the selected file.

Еще в одном варианте реализации способа исполняемый файл и файл, выбранный из базы данных доверенных файлов, принадлежат версиям сборки одного и того же приложения.In yet another embodiment of the method, the executable file and the file selected from the database of trusted files belong to assembly versions of the same application.

В другом варианте реализации способа под правилом проверки сборки понимают набор условий, при выполнении которого, определяют вероятность того, что исполняемый файл содержит вредоносный код.In another embodiment of the method, an assembly check rule is understood as a set of conditions under which the probability that the executable file contains malicious code is determined.

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

Фиг. 1 иллюстрирует структуру системы обнаружения вредоносного кода в исполняемом файле.FIG. 1 illustrates the structure of a system for detecting malicious code in an executable file.

Фиг. 2 иллюстрирует алгоритм системы обнаружения вредоносного кода в исполняемом файле.FIG. 2 illustrates the algorithm of the system for detecting malicious code in an executable file.

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

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

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

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

Исполняемый файл - файл, содержащий программу или ее часть, написанную на каком-либо из языков программирования, предназначенный для запуска операционной системой.1 (1 Феликс Воройский. Информатика. Энциклопедический словарь-справочник. - Litres, 2017-01-12. - 769 с. - ISBN 9785457966338.)An executable file is a file containing a program or a part of it, written in any of the programming languages, intended to be launched by an operating system. 1 ( 1 Felix Voroisky. Informatics. Encyclopedic Dictionary-Reference. - Litres, 2017-01-12. - 769 pp. - ISBN 9785457966338.)

Сборка приложения - исполняемый файл, набор файлов или логическая структура, содержащая программный код, метаданные и ресурсы, необходимые для корректной компиляции или исполнения приложения. В. NET Core и .NET Framework сборку можно создать из одного или нескольких файлов исходного кода. В. NET Framework сборки могут содержать один или несколько модулей. В крупных проектах несколько разработчиков могут работать с отдельными файлами или модулями исходного кода, которые вместе образуют единую сборку.2 (2 Официальный сайт корпорации Microsoft. URL: https://docs.microsoft.com/ru-ru/dotnet/standard/assembly/#assembly-manifest (дата обращения 30.07.2020).)An application assembly is an executable file, set of files, or logical structure that contains program code, metadata, and resources necessary for the correct compilation or execution of an application. B. NET Core and .NET Framework, an assembly can be created from one or more source code files. B. NET Framework assemblies can contain one or more modules. In large projects, multiple developers can work with separate files or modules of source code that together form a single assembly. 2 ( 2 Official site of Microsoft Corporation. URL: https://docs.microsoft.com/ru-ru/dotnet/standard/assembly/#assembly-manifest (date of access 07/30/2020).)

Функциональный блок - объект аппаратного средства и/или программного обеспечения, выполняющий определенную задачу.3 (3 ГОСТ Ρ 53195.4-2010: Безопасность функциональная связанных с безопасностью зданий и сооружений систем. Часть 4. Требования к программному обеспечению.) Исходный код программы при создании может быть поделен на функциональные блоки. Отдельный файл или модуль исходного кода приложения может быть функциональным блоком. Совокупность файлов и модулей исходного кода, которая отвечает за выполнение отдельного действия, также может быть функциональным блоком.A functional block is a hardware and / or software object that performs a specific task. 3 ( 3 GOST Ρ 53195.4-2010: Functional safety of systems related to the safety of buildings and structures. Part 4. Software requirements.) The source code of the program during creation can be divided into functional blocks. A separate file or module of the application source code can be a function block. The collection of files and modules of the source code, which is responsible for the execution of a particular action, can also be a functional block.

Файл символов - файл, предназначенный для хранения отладочной информации о программе, включая информацию о символах, которая состоит из списка всех символов в программном модуле с адресами, именем файла и строкой, в которой был объявлен символ, информацию об оптимизации указателей на записи активации, название и информацию о типе локальных переменных и структуре данных. Среди файлов символов известны файлы с расширениями COFF, DBG, SYM, PDB.4 (4 Официальный сайт корпорации Microsoft. URL: https://devblogs.microsoft.com/devops/understanding-symbol-files-and-visual-studios-symbol-settings/ (дата обращения 30.07.2020).)Symbols file - a file designed to store debug information about the program, including information about symbols, which consists of a list of all symbols in the program unit with addresses, file name and the line in which the symbol was declared, information about the optimization of pointers to activation records, name and information about the type of local variables and the data structure. Among the symbol files, files with the extensions COFF, DBG, SYM, PDB are known. 4 ( 4 Official website of Microsoft Corporation. URL: https://devblogs.microsoft.com/devops/understanding-symbol-files-and-visual-studios-symbol-settings/ (date of access 07/30/2020).)

Список файлов и модулей исходного кода сборки приложения содержит перечень данных о всех файлах и модулях исходного кода сборки, без связи и наличия которых компиляция исполняемого файла сборки невыполнима, и их хеш-суммы. Список может быть получен путем обработки файлов символов или иного источника данных, который содержит информацию о файлах и модулях исходного кода версии сборки приложения.The list of files and modules of the source code of the application assembly contains a list of data about all files and modules of the source code of the assembly, without connection and the presence of which the compilation of the assembly executable file is impossible, and their hash sums. The list can be obtained by processing symbol files or other data source that contains information about the files and modules of the source code of the assembly version of the application.

В первом случае злоумышленник может осуществить скрытое внедрение вредоносного кода в существующее доверенное и проверенное приложение, исходные файлы которого находятся в открытом доступе либо к которым получен несанкционированный доступ. Во втором случае злоумышленник может осуществить создание множества копий одного вредоносного приложения, которые будут определены антивирусной программой как отличные друг от друга приложения, и в отношении каждой будет осуществлена отдельная проверка на наличие вредоносного кода, хотя, по сути, это одно и то же приложение.In the first case, an attacker can covertly inject malicious code into an existing trusted and trusted application, the source files of which are in the public domain or to which unauthorized access has been obtained. In the second case, an attacker can create multiple copies of one malicious application, which will be identified by the antivirus program as different applications, and each will be scanned separately for the presence of malicious code, although, in fact, it is one and the same application.

Для того чтобы выявить небезопасные приложения из перечисленных случаев, используют систему обнаружения вредоносного кода в неизвестной версии сборки приложения. Фиг 1 иллюстрирует систему обнаружения вредоносного кода в исполняемом файле, которая включает в себя базу данных доверенных файлов 110, средство обнаружения 120, средство анализа 130, средство проверки 140, базу данных правил 150.In order to identify unsafe applications from the listed cases, they use a malicious code detection system in an unknown version of the application assembly. 1 illustrates a system for detecting malicious code in an executable file, which includes a trusted file database 110, a detector 120, a parser 130, a validator 140, a rule database 150.

База данных доверенных файлов 110 - хранилище исполняемых файлов, соответствующих им списков файлов и модулей исходного кода, отдельных файлов и модулей исходного кода, файлов символов различных версий сборок приложений, которые соответствуют по меньше мере одному из следующих условий: в отношении которых ранее была выполнена проверка на наличие вредоносного кода, происхождение которых может быть явно подтверждено создателем программного обеспечения. Базу данных доверенных файлов 110 пополняют из открытых репозиториев разработчиков программного обеспечения файлов исходного кода, например sourceforge, githup и прочих; закрытых репозиториев разработчиков программного обеспечения, например компаний Microsoft, Adobe и прочих. Обращение к закрытому репозиторию осуществляют, например, через прямой запрос для выполнения проверки на наличие вредоносного кода по конкретному приложению или исполняемому файлу. Помимо этого, данные могут поступать из антивирусного сервера.Database of trusted files 110 - a repository of executable files, their corresponding lists of files and source code modules, individual files and source code modules, symbol files of different versions of application assemblies that meet at least one of the following conditions: which were previously checked for the presence of malicious code, the origin of which can be clearly confirmed by the creator of the software. The database of trusted files 110 is augmented from open source repositories of software developers such as sourceforge, githup, and others; private repositories of software developers, such as Microsoft, Adobe and others. A private repository is accessed, for example, through a direct request to check for malicious code for a specific application or executable file. In addition, the data can come from the anti-virus server.

Средство обнаружения 120 предназначено для определения метаданных, содержащих информацию о версии сборки исполняемого файла, выбора из базы данных доверенных файлов 110 исполняемого файла, метаданные которого схожи с определенными метаданными, передачи данных об исполняемом файле и о выбранном файле средству анализа 130.The detector 120 is designed to determine metadata containing information about the assembly version of the executable file, select from the database of trusted files 110 an executable file whose metadata is similar to the specified metadata, transfer information about the executable file and the selected file to the analysis tool 130.

Метаданными, содержащими информацию о версии сборки исполняемого файла, которые используют для поиска схожести, могут быть по меньшей мере следующие метаданные: номер версии сборки, имя файла, размер файла, уникальные строки, выделенные из файла, структура файла, содержимое секций импорта, экспорта, ресурсов.The metadata containing information about the version of the assembly of the executable file, which is used to search for similarity, can be at least the following metadata: assembly version number, file name, file size, unique strings extracted from the file, file structure, contents of import and export sections, resources.

Выборку из базы данных доверенных файлов 110 выполняют как по одному типу метаданных, например по имени файла, так и по совокупности типов, например по номеру версии сборки, размеру файла и содержимому секции импорта. Применяют как четкие, так и нечеткие алгоритмы проверки схожести. Для всего перечня метаданных создают процентное соотношение. Схожесть анализируемых файлов по заданному перечню метаданных означает 100-процентное сходство. Различие одного типа метаданных сокращает степень сходства на соответствующее процентное соотношение значение. В результате выборки выявляют по крайней мере один безопасный файл из базы данных доверенных файлов 110 и все связанные с ним данные.Fetching from the database of trusted files 110 is performed both by one type of metadata, for example, by the file name, and by a set of types, for example, by the assembly version number, the file size and the contents of the import section. Both clear and fuzzy similarity testing algorithms are used. A percentage is created for the entire list of metadata. The similarity of the analyzed files for a given list of metadata means 100% similarity. The difference in one type of metadata reduces the similarity by the corresponding percentage value. The sampling results in at least one secure file from the trusted file database 110 and all associated data.

Затем средство обнаружения 120 передает данные об исполняемом файле и о выбранном файле средству анализа 130.The detector 120 then transmits information about the executable file and the selected file to the analyzer 130.

Средство анализа 130 предназначено для определения функционального блока в исполняемом файле, который отсутствует по меньшей мере в одном выбранном файле, и передачи данных об определенном функциональном блоке средству проверки 140.The analysis tool 130 is designed to determine a functional block in the executable file that is not present in at least one selected file, and transmit data about the determined functional block to the checking tool 140.

Определение функционального блока осуществляют путем выполнения следующего перечня действий. Во-первых, выявляют список файлов и модулей исходного кода в исполняемом файле. Во-вторых, сравнивают списки файлов и модулей исходного кода исполняемого файла и выбранного файла из базы данных доверенных файлов 110. В-третьих, по результатам сравнения выявляют файлы и модули исходного кода, которые отсутствуют или отличны, и объединяют их в отдельный функциональный блок.The definition of a functional block is carried out by performing the following list of actions. First, the list of files and modules of the source code in the executable file is revealed. Second, the lists of files and modules of the source code of the executable file and the selected file from the database of trusted files 110 are compared. Third, the results of the comparison identify files and modules of the source code that are missing or different, and combine them into a separate functional block.

При создании различных версий сборок приложений среды разработки программного обеспечения и языки программирования предусматривают возможность создания файлов символов для каждого файла и модуля исходного кода. На основе файлов символов вычисляют список файлов и модулей исходного кода и хранят, например, в таком виде:When you create different versions of application assemblies, software development environments and programming languages provide the ability to create symbol files for each source file and unit. Based on the symbol files, a list of files and modules of the source code is calculated and stored, for example, in the following form:

«0 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\sys\stat.h (MD5: 8DCC3C7F28EF6CADCEA54C4F1881C8D3)»"0 c: \ program files (x86) \ windows kits \ 10 \ include \ 10.0.17763.0 \ ucrt \ sys \ stat.h (MD5: 8DCC3C7F28EF6CADCEA54C4F1881C8D3)"

В одном случае упомянутые файлы символов могут быть частью скомпилированного файла. В другом случае файлы символов могут быть среди исходных файлов, например, в виде файла PDB (Program DataBase). Например, для интерпретируемых языков программирования список файлов и модулей исходного кода может быть получен непосредственным подсчетом хеш-сумм всех файлов приложения или сценария.In one case, said symbol files may be part of a compiled file. Alternatively, symbol files may be among the source files, for example, as a PDB (Program DataBase) file. For example, for interpreted programming languages, a list of files and source code modules can be obtained by directly calculating the hash sums of all files in an application or script.

После определения функционального блока средство анализа 130 передает данные об определенном функциональном блоке средству проверки 140.After determining the functional block, the analyzer 130 transmits the data about the determined functional block to the verifier 140.

Средство проверки 140 предназначено для обнаружения наличия вредоносного кода в исполняемом файле при помощи правил проверки сборки и на основании определенного функционального блока.The validator 140 is designed to detect the presence of malicious code in an executable file using assembly validation rules and based on a specific functional block.

База данных правил 150 предназначена для хранения правил проверки сборки. В качестве базы данных правил 150 могут быть использованы различные виды баз данных, а именно: иерархические (IMS, TDMS, System 2000), сетевые (Cerebrum, Cronospro, DBVist), реляционные (DB2, Informix, Microsoft SQL Server), объектно-ориентированные (Jasmine, Versant, POET), объектно-реляционные (Oracle Database, PostgreSQL, FirstSQL/J), функциональные и т.д. Количество правил не ограничено примерами. Правила могут быть созданы при помощи алгоритмов машинного обучения и автоматизированной обработки больших массивов данных, и содержать иные условия или комбинации условий, вердикты.The rules database 150 is for storing assembly validation rules. As a database of rules 150, various types of databases can be used, namely: hierarchical (IMS, TDMS, System 2000), network (Cerebrum, Cronospro, DBVist), relational (DB2, Informix, Microsoft SQL Server), object-oriented (Jasmine, Versant, POET), object-relational (Oracle Database, PostgreSQL, FirstSQL / J), functional, etc. The number of rules is not limited by examples. Rules can be created using machine learning algorithms and automated processing of large amounts of data, and contain other conditions or combinations of conditions, verdicts.

Проверка на наличие вредоносного кода исполняемого файла предусматривает проверку всех файлов и модулей исходного кода с учетом данных о схожести исполняемого файла и выбранного файла. Файлы и модули исходного кода исполняемого файла, которые идентичны файлам и модулям исходного кода выбранного файла, могут быть частично или полностью исключены из проверки. Файлы и модули исходного кода, которые отсутствую или отличны, которые были объединены в функциональный блок, подлежат детальному анализу на наличие вредоносного кода с использованием правил проверки сборки.Checking for malicious code of an executable file includes checking all files and modules of the source code, taking into account the data on the similarity of the executable file and the selected file. Files and modules of the source code of the executable file, which are identical to the files and modules of the source code of the selected file, can be partially or completely excluded from scanning. Files and source code modules that are missing or different, which have been combined into a functional block, are subject to detailed analysis for the presence of malicious code using assembly check rules.

Правилом проверки сборки является набор условий, при выполнении которых определяют вероятность того, что исполняемый файл содержит вредоносный код.An assembly validation rule is a set of conditions that determine the likelihood that an executable file contains malicious code.

Одним из примеров реализации правил проверки сборки может быть выполнение следующих условий: исполняемый файл и выбранный файл при проверке сходства по метаданным схожи на 90 процентов, определенный функциональный блок не может быть обнаружен, вердикт - вероятность наличия вредоносного кода больше 80 процентов. Представленный набор условий явно указывает на то, что исполняемый файл не содержит файлов символов в отличие от выбранного файла. Использование файлов символов является существенным параметром в процессе разработки программ и не может быть просто так отменено. Это свидетельствует о том, что злоумышленник получил доступ к процессу сборки выбранного файла и создал исполняемый файл, содержащий вредоносный код.One of the examples of the implementation of assembly verification rules can be the fulfillment of the following conditions: the executable file and the selected file are 90 percent similar when checking the metadata similarity, a certain functional block cannot be found, the verdict is the probability of the presence of malicious code is more than 80 percent. The presented set of conditions clearly indicates that the executable file does not contain symbol files, unlike the selected file. The use of symbol files is an essential parameter in the development process and cannot be simply overridden. This indicates that an attacker gained access to the build process of the selected file and created an executable file containing malicious code.

Другим примером реализации правил проверки сборки может быть выполнение следующего набора условий: исполняемый файл и выбранный файл схожи по метаданным на 90 процентов, определенный функциональный блок составляет от 1 до 10 процентов от общего количества функциональных блоков, в одном из файлов и модулях исходного кода из определенного функционального блока обнаружено наличие вредоносного кода, вердикт -вероятность наличия вредоносного кода 80 процентов.Another example of the implementation of assembly verification rules can be the fulfillment of the following set of conditions: the executable file and the selected file are similar in metadata by 90 percent, a certain functional block is from 1 to 10 percent of the total number of functional blocks, in one of the files and modules of the source code from a certain functional block, the presence of malicious code was detected, the verdict is the probability of the presence of malicious code 80 percent.

Третьим примером реализации правил проверки сборки может быть выполнение следующего набора условий: исполняемый файл и первый выбранный файл схожи по метаданным на 50 процентов, определенный функциональный блок составляет 5 процентов от общего количества функциональных блоков, исполняемый файл и второй выбранный файл приложения схожи по метаданным на 50 процентов, определенный функциональный блок составляет 5 процентов от общего количества функциональных блоков, вердикт - вероятность того, что исполняемый файл содержит вредоносный код, 60 процентов. Такой набор условий свидетельствует о том, что обнаружено массовое создание похожих приложений.The third example of the implementation of assembly verification rules can be the fulfillment of the following set of conditions: the executable file and the first selected file are similar in metadata by 50 percent, a certain functional block is 5 percent of the total number of functional blocks, the executable file and the second selected application file are similar in metadata by 50 percent, a certain functional block is 5 percent of the total number of functional blocks, the verdict is the probability that the executable file contains malicious code, 60 percent. This set of conditions indicates that a massive creation of similar applications has been detected.

В самом общем случае метаданные исполняемого файла 1, например, могут быть следующими: номер версии сборки 1, имя файла 1, размер файла 1, уникальные строки 10, структура фала 1, секция импорта содержит 18 импортируемых файлов, секция экспорта содержит 1 экспортируемый файл, секция ресурсов содержит 3 файла. Допустим, что по перечисленным метаданным в базе данных доверенных файлов 110 был найден и выбран файл 2, метаданные которого следующие: номер версии сборки 1, имя файла 1, размер 2, уникальные строки 10, структура файла 1, уникальные строки 10, структура файла 1, секция импорта содержит 19 импортируемых файлов, секция экспорта содержит 1 экспортируемый файл, секция ресурсов содержит 3 файла. Помимо этого, для файла 2 найден соответствующий ему список файлов и модулей исходного кода, состоящий из 30 позиций, по которым построены 25 функциональных блоков. Средство обнаружения 120 выявляет обнаруженные следующие отличия: размер 2 больше размера 1 на 5 процентов, 1 импортируемый файл в секции импорта выбранного файла не встречается в метаданных исполняемого файла. Подсчет степени схожести показал, что исполняемый файл схож с выбранным файлом более чем на 90 процентов. На основании этих данных средство анализа 130 определяет наличие файла символов и на его основе определяет список файлов и модулей исходного кода. Определенный список содержит 32 позиции на основе которых выявляют 26 функциональных блоков. 25 из 26 функциональных блоков и 30 из 32 файлов и модулей исходного кода являются идентичными с функциональными блоками выбранного файла. Определяем, что выбранный файл не содержит 1 функциональный блок исполняемого файла. Таким образом, за 100 процентов принимается 26 функциональных блоков, определенный функциональный блок составляет 4 процента. На основе этих данных средство проверки 140 и правил проверки сборки из базы данных правил 150 обнаруживает, что согласно второму примеру правил, исполняемый файл содержит вредоносный код с вероятностью 80 процентов. Файлы и модули исходного кода, которые содержат определенный функциональный блок, подвергаются более сложному и детальному анализу для выяснения, в каком месте и каким образом исполняется вредоносный код.In the most general case, the metadata of executable file 1, for example, can be as follows: assembly version number 1, file name 1, file size 1, unique lines 10, file structure 1, import section contains 18 imported files, export section contains 1 exported file, the resource section contains 3 files. Suppose that file 2 was found and selected using the listed metadata in the database of trusted files 110, the metadata of which is as follows: assembly version number 1, file name 1, size 2, unique lines 10, file structure 1, unique lines 10, file structure 1 , the import section contains 19 imported files, the export section contains 1 exported file, the resources section contains 3 files. In addition, for file 2, a corresponding list of files and modules of the source code was found, consisting of 30 positions, according to which 25 functional blocks were built. Detection tool 120 detects the following differences found: size 2 is 5 percent larger than size 1, 1 imported file in the import section of the selected file does not appear in the metadata of the executable file. Calculating the degree of similarity showed that the executable file is more than 90 percent similar to the selected file. Based on this data, the parser 130 determines the presence of a symbol file and, based on this, determines a list of files and source code modules. The defined list contains 32 positions on the basis of which 26 functional blocks are identified. 25 out of 26 function blocks and 30 out of 32 files and modules of the source code are identical with the function blocks of the selected file. Determine that the selected file does not contain 1 functional block of the executable file. Thus, 26 function blocks are taken as 100 percent, and a specific function block is 4 percent. Based on this data, the validator 140 and the assembly validator rules from the rule database 150 discovers that, according to the second rule example, the executable file contains malicious code with an 80 percent probability. Files and modules of the source code that contain a certain functional block are subjected to more complex and detailed analysis to find out where and how the malicious code is executed.

Правила проверки сборки могут быть созданы и для выявления неучтенных исполняемых файлов. Например, система обнаружения вредоносного кода в исполняемом файле может быть установлена или внедрена в среду разработки программного обеспечения. В этом случае правила проверки сборки могут быть настроены на выявление всех исполняемых файлов, которые не были созданы в упомянутой среде разработки программного обеспечения, подразделении, отдельным работником и т.д. Помимо этого, правила проверки сборки могут быть настроены для выявления критических изменений в функциональных блоках исполняемого файла новых версий сборки. Например, система обнаружения вредоносного кода в исполняемом файле может быть установлена или внедрена в центры анализа кода в рамках инициативы по информационной прозрачности. В этом случае правила проверки сборки могут быть настроены для выявления исполняемых файлов различных версий, функциональные блоки которых сильно отличаются от эталонной версии и могут сомнительно сказаться на репутации компании при проверке центром анализа кода.Build validation rules can also be created to detect unrecorded executable files. For example, a system for detecting malicious code in an executable file can be installed or implemented in a software development environment. In this case, assembly validation rules can be configured to identify all executable files that were not created in the mentioned software development environment, department, individual worker, etc. In addition, assembly validation rules can be configured to detect critical changes in the functional blocks of the executable file of newer assembly versions. For example, a system for detecting malicious code in an executable file can be installed or deployed in code analysis centers as part of a transparency initiative. In this case, assembly verification rules can be configured to identify executable files of different versions, the functional blocks of which are very different from the reference version and may have a dubious effect on the company's reputation when checked by the code analysis center.

Фиг. 2 иллюстрирует алгоритм функционирования системы обнаружения вредоносного кода в исполняемом файле. На этапе 211 средство обнаружения 120 осуществляет определение метаданных, содержащих информацию о версии сборки исполняемого файла. На этапе 212 средство обнаружения 120 осуществляет выбор из базы данных доверенных файлов 110 по меньшей мере одного исполняемого файла, метаданные которого схожи с определенными метаданными, и передает данные об исполняемом файле и о выбранном файле средству анализа 130. На этапе 213 средство анализа 130 определяет функциональный блок в исполняемом файле, который отсутствует по меньшей мере в одном выбранном файле, и передает данные об определенном функциональном блоке средству проверки 140. На этапе 214 средство проверки 140 при помощи правил проверки сборки и на основании определенного функционального блока обнаруживает наличие вредоносного кода в исполняемом файле. При наличии вредоносного кода на этапе 215 средство проверки 140 отправляет данные об исполняемом файле, содержащем вредоносный код, на антивирусный сервер. При отсутствии вредоносного кода на этапе 216 система завершает работу.FIG. 2 illustrates the algorithm of functioning of the system for detecting malicious code in an executable file. At block 211, the detector 120 determines the metadata containing the assembly version information of the executable file. In step 212, the detector 120 selects from the database of trusted files 110 at least one executable file whose metadata is similar to the specified metadata, and transmits information about the executable file and the selected file to the analyzer 130. In step 213, the analyzer 130 determines the functional a block in the executable file, which is absent in at least one selected file, and transmits data about a specific functional block to the verifier 140. At step 214, the verifier 140, using assembly verification rules and based on a specific functional block, detects the presence of malicious code in the executable file ... In the presence of malicious code, at step 215, the checker 140 sends data about the executable file containing the malicious code to the anti-virus server. In the absence of malicious code at block 216, the system shuts down.

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

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20, in turn, contains a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29 and an optical drive 30 for reading and writing to removable optical disks 31, such as CD-ROM, DVD -ROM and other optical media. The hard disk 27, the magnetic disk drive 28, and the optical drive 30 are connected to the system bus 23 through the hard disk interface 32, the magnetic disk interface 33, and the optical drive interface 34, respectively. Drives and corresponding computer storage media are non-volatile storage media for computer instructions, data structures, program 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 are possible that are capable of storing data in a computer readable form (solid state drives, flash memory cards, digital disks, random access memory (RAM), etc.), which are connected to the system bus 23 through the controller 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.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 has the ability to enter commands and information into the personal computer 20 through input devices (keyboard 40, manipulator " mouse "42). Other input devices may be used (not shown): microphone, joystick, game console, scanner, etc. Such input devices are conventionally connected to the computer system 20 through 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, etc. ...

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

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

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

Claims (12)

1. Способ обнаружения вредоносного кода в исполняемом файле, по которому:1. A method for detecting malicious code in an executable file, according to which: а) определяют метаданные, содержащие информацию о версии сборки исполняемого файла;a) define metadata containing information about the version of the assembly of the executable file; б) выбирают из базы данных доверенных файлов по меньшей мере один исполняемый файл, метаданные которого схожи с определенными метаданными;b) select from the database of trusted files at least one executable file, the metadata of which is similar to certain metadata; в) определяют функциональный блок в исполняемом файле, который отсутствует по меньшей мере в одном выбранном исполняемом файле;c) define a functional block in the executable file that is absent in at least one selected executable file; г) обнаруживают наличие вредоносного кода в исполняемом файле при помощи правил проверки сборки и на основании определенного функционального блока.d) detect the presence of malicious code in an executable file using assembly check rules and based on a specific functional block. 2. Способ по п. 1, по которому под метаданными, содержащими информацию о версии сборки исполняемого файла, выступают по меньшей мере следующие метаданные: номер версии сборки; имя файла; размер файла; уникальные строки, выделенные из файла; структура файла; и содержимое секций импорта, экспорта и ресурсов.2. The method according to claim 1, whereby under the metadata containing information about the version of the assembly of the executable file, there are at least the following metadata: the version number of the assembly; File name; file size; unique lines extracted from the file; file structure; and the contents of the import, export and resource sections. 3. Способ по п. 1, по которому в базе данных доверенных файлов хранят исполняемые файлы, списки файлов и модулей исходного кода, отдельные файлы и модули исходного кода, файлы символов различных версий сборок исполняемых файлов и приложений, которые соответствуют по меньше мере одному из следующих условий: в отношении которых ранее была выполнена проверка на наличие вредоносного кода, происхождение которых подтверждено создателем программного обеспечения.3. The method according to claim 1, according to which executable files, lists of files and modules of the source code, individual files and modules of the source code, symbol files of various versions of assemblies of executable files and applications that correspond to at least one of the following conditions: in relation to which a check for the presence of malicious code was previously performed, the origin of which has been confirmed by the creator of the software. 4. Способ по п. 1, по которому функциональный блок представляет совокупность программных инструкций, обеспечивающих выполнение заданной задачи.4. The method according to claim. 1, in which the functional block represents a set of program instructions that ensure the execution of a given task. 5. Способ по п. 1, по которому определение функционального блока в исполняемом файле выполняют на основании по меньшей мере одного файла исходного кода, который отсутствует в выбранном файле.5. The method according to claim 1, wherein the definition of the functional block in the executable file is performed based on at least one source code file that is not present in the selected file. 6. Способ по п. 1, по которому определяют функциональный блок в исполняемом файле на основании по меньшей мере одного модуля исходного кода, который отсутствует в выбранном файле.6. The method according to claim 1, according to which the functional block in the executable file is determined based on at least one source code module that is absent in the selected file. 7. Способ по п. 1, по которому исполняемый файл и файл, выбранный из базы данных доверенных файлов, принадлежат версиям сборки одного и того же приложения.7. The method according to claim 1, wherein the executable file and the file selected from the database of trusted files belong to assembly versions of the same application. 8. Способ по п. 1, по которому под правилом проверки сборки понимают набор условий, при выполнении которых, определяют вероятность того, что исполняемый файл содержит вредоносный код.8. The method according to claim 1, according to which the assembly verification rule is understood as a set of conditions, under which, the probability that the executable file contains malicious code is determined.
RU2020128086A 2020-08-24 2020-08-24 System and method for detecting malicious code in the executed file RU2757807C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2020128086A RU2757807C1 (en) 2020-08-24 2020-08-24 System and method for detecting malicious code in the executed file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020128086A RU2757807C1 (en) 2020-08-24 2020-08-24 System and method for detecting malicious code in the executed file

Publications (1)

Publication Number Publication Date
RU2757807C1 true RU2757807C1 (en) 2021-10-21

Family

ID=78289556

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020128086A RU2757807C1 (en) 2020-08-24 2020-08-24 System and method for detecting malicious code in the executed file

Country Status (1)

Country Link
RU (1) RU2757807C1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039029A1 (en) * 2002-08-14 2005-02-17 Alexander Shipp Method of, and system for, heuristically detecting viruses in executable code
US20050172338A1 (en) * 2004-01-30 2005-08-04 Sandu Catalin D. System and method for detecting malware in executable scripts according to its functionality
US20060037080A1 (en) * 2004-08-13 2006-02-16 Georgetown University System and method for detecting malicious executable code
RU2427890C2 (en) * 2009-10-01 2011-08-27 ЗАО "Лаборатория Касперского" System and method to compare files based on functionality templates
US20140366137A1 (en) * 2013-06-06 2014-12-11 Kaspersky Lab Zao System and Method for Detecting Malicious Executable Files Based on Similarity of Their Resources
RU2637997C1 (en) * 2016-09-08 2017-12-08 Акционерное общество "Лаборатория Касперского" System and method of detecting malicious code in file

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039029A1 (en) * 2002-08-14 2005-02-17 Alexander Shipp Method of, and system for, heuristically detecting viruses in executable code
US20050172338A1 (en) * 2004-01-30 2005-08-04 Sandu Catalin D. System and method for detecting malware in executable scripts according to its functionality
US20060037080A1 (en) * 2004-08-13 2006-02-16 Georgetown University System and method for detecting malicious executable code
RU2427890C2 (en) * 2009-10-01 2011-08-27 ЗАО "Лаборатория Касперского" System and method to compare files based on functionality templates
US20140366137A1 (en) * 2013-06-06 2014-12-11 Kaspersky Lab Zao System and Method for Detecting Malicious Executable Files Based on Similarity of Their Resources
RU2637997C1 (en) * 2016-09-08 2017-12-08 Акционерное общество "Лаборатория Касперского" System and method of detecting malicious code in file

Similar Documents

Publication Publication Date Title
US8621278B2 (en) System and method for automated solution of functionality problems in computer systems
Aljawarneh et al. Cloud security engineering: Early stages of SDLC
Shu et al. Threat intelligence computing
CN112131882A (en) Multi-source heterogeneous network security knowledge graph construction method and device
US7840573B2 (en) Trusted file relabeler
Kim et al. Software systems at risk: An empirical study of cloned vulnerabilities in practice
CN114077741B (en) Software supply chain safety detection method and device, electronic equipment and storage medium
Bao et al. V-SZZ: automatic identification of version ranges affected by CVE vulnerabilities
EP2880580A1 (en) Vulnerability vector information analysis
Koschke Large‐scale inter‐system clone detection using suffix trees and hashing
NL2027556B1 (en) Method and system for generating a list of indicators of compromise
Gegick et al. Matching attack patterns to security vulnerabilities in software-intensive system designs
Christey et al. Common weakness enumeration
CN111611590B (en) Method and device for data security related to application program
US20150213272A1 (en) Conjoint vulnerability identifiers
Dalai et al. Neutralizing SQL injection attack using server side code modification in web applications
CN114386032A (en) Firmware detection system and method for power Internet of things equipment
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
Pirch et al. Tagvet: Vetting malware tags using explainable machine learning
Li et al. On the vulnerability proneness of multilingual code
CN116932381A (en) Automatic evaluation method for security risk of applet and related equipment
Homaei et al. Athena: A framework to automatically generate security test oracle via extracting policies from source code and intended software behaviour
Akram et al. VCIPR: vulnerable code is identifiable when a patch is released (hacker's perspective)
Salih et al. Digital forensic tools: A literature review
Viertel et al. Detecting Security Vulnerabilities using Clone Detection and Community Knowledge.