RU2614561C1 - System and method of similar files determining - Google Patents

System and method of similar files determining Download PDF

Info

Publication number
RU2614561C1
RU2614561C1 RU2015154379A RU2015154379A RU2614561C1 RU 2614561 C1 RU2614561 C1 RU 2614561C1 RU 2015154379 A RU2015154379 A RU 2015154379A RU 2015154379 A RU2015154379 A RU 2015154379A RU 2614561 C1 RU2614561 C1 RU 2614561C1
Authority
RU
Russia
Prior art keywords
file
convolution
files
subset
signs
Prior art date
Application number
RU2015154379A
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 RU2015154379A priority Critical patent/RU2614561C1/en
Application granted granted Critical
Publication of RU2614561C1 publication Critical patent/RU2614561C1/en

Links

Images

Abstract

FIELD: information technology.
SUBSTANCE: method of similar files determining, in which the set of immutable and mutable files characteristics are defined; in this case the file characteristics is considered as a variable sign, if the characteristic takes different values for a plurality of similar files. File characteristics are considered as immutable, if a characteristic takes the same value for a plurality of similar files; a variety of charateristics is separated from at least one file; a plurality of separated file characteristics is divided into at least two subsets: the subset of variable characteristics and a subset of the immutable characteristics; the convolution of each of the abovementioned subsets of file characteristics is formed; the file convolution is formed as a convolution combination of each of the abovementioned subsets of file characteristics; the convolution of at least one file is compared with a set of pre-designed file convolutions; the file is recognized as similar to the files from the plurality of similar files having the same convolution, if by comparison the convolution of the noted file is the same as the file convolution from the noted plurality.
EFFECT: finding of similar files.
2 cl, 5 dwg

Description

Область техники TECHNICAL FIELD

Изобретение относится к области обработки данных, а именно к системам и способам определения похожих файлов. The invention relates to the field of data processing, in particular to systems and methods for determining similar files.

Уровень техники BACKGROUND

В настоящее время наряду с широким распространением компьютеров и подобных им устройств, таких как мобильные телефоны, имеет место рост количества компьютерных угроз. Currently, along with the prevalence of computers and similar devices, such as mobile phones, there is a growing number of computer threats. Под компьютерными угрозами в общем случае подразумевают объекты, способные нанести какой-либо вред компьютеру или пользователю компьютера, например: сетевые черви, клавиатурные шпионы, компьютерные вирусы. Under computer threats generally involve objects that can cause any harm to a computer or computer user, for example, worms, keyloggers, viruses.

Для защиты пользователя и его персонального компьютера от возможных компьютерных угроз применяются различные антивирусные технологии. To protect the user and his personal computer from potential cyber threats are various anti-virus technology. В состав антивирусного программного обеспечения могут входить различные модули обнаружения компьютерных угроз. The anti-virus software may include various computer threats detection modules. Частными случаями таких модулей являются модули сигнатурного и эвристического обнаружения. Particular cases of such modules are modules signature and heuristic detection. Однако возможны ситуации, когда указанные модули не являются эффективными - для создания современного вредоносного программного обеспечения зачастую используются методы, противодействующие эмуляции программного обеспечения (например: использование недокументированных функций, анализ результата выполнения функций, в том числе проверка установления определенных флагов процессора после выполнения функций или анализ возвращаемых кодов ошибок), а также полиморфные упаковщики. However, there are situations when the modules are not effective - to create a modern malware often used methods that counteract emulation software (for example: the use of undocumented features, the analysis result of a function, including checks to establish specific processor flags after executing functions or analysis return error codes), as well as polymorphic wrappers. Под упаковкой исполняемого файла в данном случае подразумевается сжатие файла с добавлением к телу файла последовательности инструкций для распаковки. Under executable compression in this case means with the addition of file compression to the body sequences of instructions to decompress the file. В случае использования полиморфного упаковщика на базе одного и того же вредоносного файла генерируется множество подобных ему файлов, идентичных по функционалу, но имеющих различную структуру. In the case of polymorphic packer on the basis of the same malware file is generated by a plurality of such files to it, identical in functionality, but with a different structure. В таком случае эффективность сигнатурного обнаружения не будет большой, так как для каждого файла из множества полиморфных копий будет необходима уникальная сигнатура. In this case, the effectiveness of signature-based detection is not large, because each of the plurality of polymorphic file copies need to be unique signature.

Существует альтернативный метод обнаружения вредоносного программного обеспечения посредством обнаружения похожих вредоносных файлов, в котором при анализе файла рассматриваются различные метаданные файла, которые могут варьироваться в зависимости от типа рассматриваемого файла и, например для исполняемого файла, могут выглядеть следующим образом: положение секций файла, размеры секций или иная информация из заголовка исполняемого файла, строковые данные, извлекаемые из файла. An alternative method of detecting malicious software by detecting similar malicious files, wherein file analysis considers various metadata file, which may vary depending on the type of file, and for example for the executable file may look as follows: position of file sections, section sizes or other information from the header of the executable file, string data retrieved from a file. В качестве метаданных также могут рассматриваться и производные данные: информационная энтропия (мера неопределенности информации файла), частотные характеристики машинных инструкций или байт. As can also be considered metadata and derivatives information: information entropy (uncertainty measure information file), the frequency characteristics of machine instructions or bytes. При наличии достаточно большого набора файлов и признаков файлов формируется система классификации, которая, будучи обученной на множестве указанных файлов, умеет сопоставлять набор признаков, выделяемых из файла, некоторой категории файлов, например категории файлов вредоносного программного обеспечения. Given a sufficiently large set of files and file attributes generated classification system, which is being trained on the set of the files that can compare feature set, allocated from a file, a certain category of files, such as the category of malicious software files.

В области техники существуют решения, реализующие подход обнаружения вредоносного программного обеспечения на основе метаданных, извлекаемых из файлов программного обеспечения, в том числе и такие методы, где из указанных метаданных файла формируют свертку (англ. convolution) - «гибкий» хэш файла (locality sensitive hash). In the art there are solutions that implement the approach to detect malicious software based on the metadata extracted from files software, including such methods, where the specified metadata file form convolution (English convolution.) - «flexible» hash file (locality sensitive hash). Такой хэш, а именно способ вычисления, обладает важным свойством - для файлов, метаданные которых незначительно отличаются, значение хэшей будет совпадать. This hash, and it is a method of calculating, has an important property - for files, metadata, which are slightly different, hash value will be the same.

Так, изобретение, описанное в заявке US 2009/0300761 A1, предлагает метод обнаружения файлов вредоносного программного обеспечения на основе анализа метаданных файла, в частности информации об упаковщике или уникальных строках. Thus, the invention described in the patent application US 2009/0300761 A1, proposes a method of detecting malicious software files based on file metadata analysis, in particular information on the packer or unique string. Также в описанном изобретении в качестве метаданных могут применяться генерируемые на основе файла последовательности инструкций псевдокода и частотные характеристики упомянутых инструкций. Also described in the invention can be used as metadata generated based on the pseudo-instruction sequence files and frequency characteristics of said document. Из метаданных, выделенных из файла, формируется «intelligent hash» - свертка, представляющая собой строку, хранящую необходимый для обнаружения файлов вредоносного программного обеспечения набор признаков файла. From the metadata extracted from the file, formed «intelligent hash» - convolution, which is a string that stores necessary to detect malicious software files, set file attributes.

Изобретение, описанное в заявке US 2010/0192222 A1, предлагает в качестве метаданных дополнительно использовать результаты работы эмулятора и поведенческого анализатора. The invention described in patent application US 2010/0192222 A1, it proposes as metadata further use of the emulator and behavioral analyzer.

Важным требованием, предъявляемым к существующим решениям для обнаружения файлов вредоносного программного обеспечения на основе выделения метаданных, является требование к качеству обнаружения, заключающееся в минимизации ложных срабатываний. An important requirement of the existing solutions to detect malicious software files based on metadata allocation, is the requirement for the detection quality is to minimize false positives. В существующих решениях для обнаружения таких файлов вычисляется степень похожести файла на заранее сформированный набор файлов на основании всевозможных метрик расстояний между наборами метаданных файла и группы файлов. The existing solutions for the detection of such files is calculated degree of similarity of the file to a pre-formed set of files based on the metrics of various distances between the sets of file metadata and file groups. Данный подход создает значительную нагрузку на инфраструктуру компьютерной сети, реализующую связь между компьютером пользователя и базой данных метаданных файлов из заранее сформированных наборов файлов, в случае передачи большого набора метаданных анализируемого файла с использованием ресурсов упомянутой компьютерной сети. This approach creates a significant load on the network infrastructure that implements communication between the computer user and the database metadata file data from a pre-generated sets of files, in case of transfer of a large set of metadata file analyzed using resources of said computer network.

Хотя рассмотренные подходы направлены на решение определенных задач в области защиты от компьютерных угроз, они обладают недостатком - желаемое качество обнаружения вредоносных файлов не достигается. Although considered approaches aimed at solving specific problems in the field of protection against computer threats, they have the disadvantage - the desired quality of malware detection files can not be achieved. Настоящее изобретение позволяет более эффективно решить задачу обнаружения вредоносных файлов на основе метаданных этих файлов. The present invention allows for more efficient to solve the problem of detection of malicious files based on the metadata of the files.

Раскрытие изобретения SUMMARY OF THE iNVENTION

Настоящее изобретение предназначено для определения похожести файлов. The present invention is intended to determine the similarity of files.

Технический результат настоящего изобретения заключается в определении похожих файлов, который достигается путем признания файла похожим на файлы из множества похожих файлов, имеющих одинаковую свертку, если свертка указанного файла совпадает со сверткой файла из указанного множества. The technical result of the present invention is to identify similar files, which is achieved by recognizing a file similar to the file of a plurality of similar files having the same convolution, convolution if the specified file is the file with the convolution of said plurality.

Способ определения похожести файлов, в котором: определяют множества изменяемых и неизменяемых признаков файлов, при этом файлы хранятся в базе данных файлов для обучения; A method for determining the similarity of files in: determining a plurality of variable and invariable signs files, the files are stored in the learning data files; при этом признак файла считают изменяемым, если для множества похожих файлов признак принимает различные значения; in this case the file is considered a sign of a variable, if many similar files attribute takes different values; при этом признак файла считают неизменяемым, если для множества похожих файлов признак принимает одинаковое значение; at the same time file attribute is considered immutable, if many similar files sign takes the same value; выделяют множество признаков по меньшей мере из одного файла; allocate a plurality of attributes of the at least one file; разделяют множество выделенных признаков файла по меньшей мере на два подмножества: подмножество изменяемых признаков и подмножество неизменяемых признаков; a plurality of extracted features shared file on at least two subsets: subset changeable subset of signs and symptoms immutable; при этом подмножество изменяемых признаков файла включает в себя по меньшей мере: размер файла, размер образа файла, количество секций файла, RVA (Relative Virtual Address) секций файла, RVA точки входа, частотные характеристики символов, множество строк файла и их количество, отфильтрованное множество строк файла и их количество; wherein the subset of changeable attributes file includes at least: file size, image resolution, the number of file sections, RVA (Relative Virtual Address) file sections, RVA entry point, the frequency characteristics of characters, a plurality of lines of the file and the number, filtered set rows and the number of file; при этом подмножество неизменяемых признаков файла включает в себя по меньшей мере: тип использованного при создании файла компилятора, тип подсистемы, характеристики файла из COFF (Common Object File Format) заголовка; wherein the subset of signs immutable file includes at least: the type used in creating compiler file subsystem type, file characteristics of COFF (Common Object File Format) header; формируют свертку каждого из вышеописанных подмножеств признаков файла; forming the convolution of each of the above subsets of file attributes; при этом свертка подмножества неизменяемых признаков не является устойчивой к изменениям признаков подмножества; wherein the convolution subset invariable signs is not stable to changes signs subset; при этом свертка подмножества изменяемых признаков является устойчивой к изменениям признаков подмножества; wherein the convolution changeable subset of features is resistant to changes signs subset; формируют свертку файла как комбинацию сверток каждого из вышеописанных подмножеств признаков файла; forming a convolution file bundle as a combination of each of the above subsets of file attributes; сравнивают свертку по меньшей мере одного файла с набором заранее созданных сверток файлов; compared to the convolution of at least one file with a set of pre-created bundle of files; признают файл похожим на файлы из множества похожих файлов, имеющих одинаковую свертку, если при сравнении свертка указанного файла совпадает со сверткой файла из указанного множества. recognize the file similar to the files from a variety of similar files with the same convolution, convolution if the comparison of the file coincides with the convolution of said plurality of file.

Система определения похожести файлов, которая содержит: средство выделения признаков, предназначенное для выделения множества признаков из по меньшей мере одного файла и передающее выделенное множество признаков на вход средства разделения признаков; determining similarity file system, which comprises: a feature extraction means for extracting a plurality of features from the at least one file and transmitting the selected plurality of features on the input signs separation means; средство разделения признаков, предназначенное для формирования из множества выделенных признаков как минимум двух подмножеств: подмножества изменяемых признаков и подмножества неизменяемых признаков, и передающее сформированные подмножества признаков на вход средства формирования сверток признаков, а также для определения множества изменяемых и неизменяемых признаков файлов, при этом упомянутые файлы хранятся в базе данных файлов для обучения; separating means features, for forming of a plurality of extracted features at least two subsets: subset changeable features and a subset of invariable signs, and transmitting the generated subset of signs to the input means for forming a bundle characteristics, as well as for determining a plurality of variable and invariable signs files, wherein said files are stored in the learning data files; при этом признак файла считают изменяемым, если для множества похожих файлов признак принимает различные значения; in this case the file is considered a sign of a variable, if many similar files attribute takes different values; при этом признак файла считают неизменяемым, если для множества похожих файлов признак принимает одинаковое значение; at the same time file attribute is considered immutable, if many similar files sign takes the same value; при этом подмножество изменяемых признаков файла включает в себя по меньшей мере: размер файла, размер образа файла, количество секций файла, RVA секций файла, RVA точки входа, частотные характеристики символов, множество строк файла и их количество, отфильтрованное множество строк файла и их количество; wherein the subset of changeable attributes file includes at least: file size, image resolution, the number of file sections, RVA file sections, RVA entry point, the frequency characteristics of characters, a plurality of lines of the file and the number, the filtered set of lines of the file and the number of ; при этом подмножество неизменяемых признаков файла включает в себя по меньшей мере: тип использованного при создании файла компилятора, тип подсистемы, характеристики файла из COFF заголовка; wherein the subset of signs immutable file includes at least: the type used in creating compiler file type subsystem, the characteristics of the COFF file header; средство формирования сверток признаков, предназначенное для формирования свертки каждого из вышеописанных подмножеств признаков файла и передающее сформированные свертки подмножеств признаков на вход средства формирования свертки файла; means for generating a bundle of features for forming the convolution of each of the above subsets of file attributes and transmitting the generated convolution subsets signs the input file convolution forming agent; при этом свертка подмножества неизменяемых признаков не является устойчивой к изменениям признаков подмножества; wherein the convolution subset invariable signs is not stable to changes signs subset; при этом свертка подмножества изменяемых признаков является устойчивой к изменениям признаков подмножества; wherein the convolution changeable subset of features is resistant to changes signs subset; средство формирования свертки файла, предназначенное для формирования свертки файла как комбинации сверток каждого из вышеописанных подмножеств признаков файла и передающее сформированную свертку файла на вход средства сравнения сверток файлов; convolution means for generating a file for forming convolution file as combinations of convolutions of each of the above subsets of attributes file and transmits the generated file to the convolution of the input comparison bundle file means; базу данных сверток, предназначенную для хранения по меньшей мере одной свертки файла и соответствующей указанной свертке информации о вредоносности файла; database bundle for storing at least one file and the corresponding convolution of said convolution information file damage; базу данных файлов для обучения, предназначенную для хранения файлов, которые используются для определения множества изменяемых и неизменяемых признаков; base training data files for storing files used for determining a plurality of variable and invariable signs; средство сравнения сверток файлов, связанное с базой данных сверток и предназначенное для сравнения свертки по меньшей мере одного файла со свертками, присутствующими в базе данных сверток, и признания файла похожим на файлы из множества похожих файлов, имеющих одинаковую свертку, если при сравнении свертка указанного файла совпадает со сверткой файла из указанного множества. means for comparing a bundle of files associated with the database of convolutions and adapted to compare the convolution of at least one file with the convolutions present in the database convolutions data and recognition file like of a plurality of similar files, files having the same convolution if the comparison convolution specified file It coincides with the convolution file of said plurality.

Краткое описание чертежей BRIEF DESCRIPTION OF DRAWINGS

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

Фиг. FIG. 1 показывает структурную схему системы обнаружения вредоносного программного обеспечения. 1 shows a block diagram of a system of detecting malicious software.

Фиг. FIG. 2 иллюстрирует вариант взаимодействия средства выделения признаков и средства разделения признаков. 2 illustrates an interaction feature extraction means and means for separation characteristics.

Фиг. FIG. 3 иллюстрирует структурную схему формирования хэш-функции на этапе обучения алгоритма SSH. 3 illustrates a block diagram form a hash function in step SSH learning algorithm.

Фиг. FIG. 4 показывает примерную схему алгоритма работы одного из вариантов реализации системы обнаружения вредоносного программного обеспечения. 4 shows an exemplary chart of the operation of one embodiment of a system of detecting malicious software.

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

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. While the invention may have various modifications and alternative forms, specific 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, its specific embodiment. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле. On the contrary, the purpose of the description is to cover all alterations, modifications, within the scope of this invention as defined by the appended claims.

Описание вариантов осуществления изобретения DESCRIPTION OF EMBODIMENTS

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

На Фиг. FIG. 1 показана структурная схема системы обнаружения вредоносного программного обеспечения. 1 shows a block diagram of detection of malicious software. В частном случае реализации источником файла для анализа является антивирусное программное обеспечение на компьютере, которое признало файл требующим дополнительного анализа. In the particular case of the source file for the analysis is an antivirus software on your computer to recognize the file requiring additional analysis. При анализе файла вышеупомянутой системой обнаружения средство выделения признаков 110 извлекает из файла множество признаков. When analyzing a file system of the aforementioned detection means 110 extracts the feature extraction of a plurality of file attributes. Данное множество признаков варьируется в зависимости от типа файла. This set of characteristics varies depending on the file type. В частном случае реализации упомянутая система обнаружения анализирует исполняемые файлы формата РЕ (Portable Executable). In the particular case of the said detection system analyzes the executable file format PE (Portable Executable). В частном случае реализации изобретения множество признаков для упомянутого типа файлов включает в себя следующие признаки: размер файла, размер образа файла, количество секций файла, RVA (Related Virtual Address) секций файла, RVA точки входа, тип подсистемы, характеристики файла из COFF (Common Object File Format) заголовка, взаимное расположение объектов таблицы директорий, расположение объектов таблицы директорий по секциям файла, тип использованного при создании файла компилятора, частотные характеристики символов (в том числе печатных), множество строк файла In the particular case of the invention, a plurality of features for said file type includes the following features: file size, image resolution, the number of file sections, RVA (Related Virtual Address) file sections, RVA entry point type subsystem, file characteristics of COFF (Common object file Format) header, the relative position of the objects directory table, the location of objects on a table directory areas of the file, the type used to create the file of the compiler, the frequency characteristics of characters (including printing), a plurality of lines in the file их количество. their number. В частном случае реализации множество признаков файла для каждой секции файла включает в себя следующие признаки: информационная энтропия начала и конца секции, среднее значение ненулевых байт начала и конца секции, виртуальный размер секции, физический размер секции. In a particular case, a plurality of file attributes for each file section includes the following features: information entropy beginning and end of the section, the average value of non-zero bytes beginning and end of the section, the virtual size of the section, the physical size of the section. В частном случае реализации изобретения средство выделения признаков выделяет множество строк для РЕ-файла из дампа, полученного при эмуляции процесса выполнения упомянутого файла. In the particular case of the invention, feature extraction means extracts a plurality of lines for PE file from the dump obtained when emulating execution of said process file.

Множество выделенных из файла признаков поступает на вход средства разделения признаков 120, которое разделяет множество признаков на по меньшей мере два подмножества. The set of features extracted from the file is input to the division means 120 signs, which divides a plurality of attributes for the at least two subsets. В частном случае реализации множество признаков разбивается на следующие подмножества: подмножество номинальных признаков, подмножество количественных признаков, подмножество порядковых признаков, подмножество бинарных признаков. In the particular case of the many signs broken down into the following subsets: subset of nominal attributes subset of quantitative traits, a subset of order signs, a subset of binary signs. В другом частном случае реализации множество признаков файла разделяется на следующие подмножества: подмножество признаков, содержащее как минимум один изменяемый признак, и подмножество признаков, содержащее как минимум один неизменяемый признак. In another particular embodiment the set of attributes file is divided into the following subsets: subset of features comprising at least one variable feature and a subset of features comprising at least one modifiable feature. Признак файла считается изменяемым, если для множества похожих файлов значение данного признака варьируется. the file is considered to be a sign of a variable, if many similar files, the value of this trait varies. Признак файла считается неизменяемым, если для множества похожих файлов значение признака остается неизменным. File Symptom considered immutable, if many similar files feature value remains unchanged. В свою очередь, файлы считаются похожими, если степень сходства между файлами превышает установленный порог. In turn, the files are considered similar if the degree of similarity between files exceeds the set threshold. В частном случае реализации степень сходства между файлами определяют на основании степени сходства данных, хранящихся в файлах. In the particular case of the degree of similarity between files is determined based on the degree of similarity of data stored in files. В другом частном случае реализации степень сходства файлов определяют на основании степени сходства функционала файлов. In another particular case of the degree of similarity of the file is determined based on the degree of similarity file functionality. В частном случае реализации в качестве функционала файла рассматривается журнал вызовов API-функций операционной системы при эмуляции исполнения файла. In the particular case of implementation in an operating system call log file is considered a functional API-functions in the emulation file execution. В частном случае реализации изобретения степень сходства определяют в соответствии с мерой Дайса, в другом частном случае реализации степень сходства определяют в соответствии с одной из метрик: Хэмминга, Левенштейна, Жаккара. In the particular case of the invention, the degree of similarity is determined in accordance with the measure Deiss, in another particular case of the degree of similarity is determined in accordance with one of the metrics: Hamming, Lowenstein, Jaccard.

После разделения средством 120 выделенного из файла множества признаков на по меньшей мере два подмножества, одно из которых в частном случае реализации содержит как минимум один изменяемых признак, а другое - как минимум один неизменяемый, подмножества признаков поступают на вход средства формирования сверток признаков 130. After separation of the tool 120 selected from a plurality of file attributes into at least two subsets, one of which in the particular embodiment comprises at least one variable feature, and the other - at least one unchangeable subset signs are input to means 130 forming convolutions signs.

На Фиг. FIG. 2 показан вариант реализации взаимодействия средства выделения признаков 110 и средства разделения признаков 120. В частном случае реализации изобретения средство выделения признаков 110 передает множество выделенных строк на вход средству фильтрации строк 210. Средство фильтрации строк 210 осуществляет фильтрацию строк, считающихся сгенерированными случайным образом, например строк, генерируемых вредоносным программным обеспечением для формирования с их помощью пути для копирования файлов вредоносного программного обеспечения. 2 shows an embodiment of the interaction feature extraction means 110 and separating means features 120. According to one embodiment feature extraction means 110 transmits a plurality of rows are selected at the input means 210. The rows filtering means filter rows 210 performs filtering rows considered randomly generated, e.g. rows generated by malicious software to form with them the path to copy the files of malicious software. Фильтрация осуществляется посредством определения вероятности принадлежности строки к естественному языку, заданному словарем. Filtering is performed by determining probability line belonging to the natural language specified by the dictionary. Строки и подстроки с малым (не превышающим установленный порог) значением указанной вероятности считаются неинформативными и фильтруются. Lines and substrings with small (not exceeding the threshold) value of said probability considered uninformative and filtered.

Принцип работы средства фильтрации строк 210 можно проиллюстрировать следующим примером. The principle of operation lines filtering means 210 can be illustrated by the following example. Пусть множество строк файла содержит следующие строки: «klnsdfjnjrmuiwenwefnuinwfui», «GetDriveType», «C:\lkjsdfjkh\windows.txt». Let the set of lines in the file contains the following lines: «klnsdfjnjrmuiwenwefnuinwfui», «GetDriveType», «C: \ lkjsdfjkh \ windows.txt». При фильтрации указанного списка строк первая строка не попадет в результирующее отфильтрованное множество строк, вторая попадет в неизменном виде, а третья попадет в измененном виде - «*\*\windows.*». When you filter the list said lines the first line does not fall into the resultant filtered set of rows, and the second gets unchanged, while the third hit in a modified form - «* \ * \ windows *.». Отфильтрованное таким образом множество строк, а также информация о количестве строк из отфильтрованного множества поступают на вход средства разделения признаков 120 в качестве элементов множества признаков файла. Filtered thus plurality of rows, as well as information about the number of rows from the plurality of filtered input to the division means 120 signs as elements of a plurality of file attributes.

В частном варианте реализации изобретения для файла типа РЕ подмножество признаков, содержащее как минимум один изменяемый признак, включает в себя следующие признаки: размер файла, размер образа файла, количество секций файла, RVA секций файла, RVA точки входа, взаимное расположение объектов таблицы директорий, частотные характеристики символов (в том числе печатных), множество строк файла и их количество, отфильтрованное множество строк и их количество. In a particular embodiment of the invention for the file type PE subset of features comprising at least one variable feature, it includes the following features: file size, image resolution, the number of file sections, RVA file sections, RVA entry points, the mutual location of the object directory table, frequency characteristics of the characters (including printing), a plurality of lines of the file and the amount of a filtered set of rows and the number of them. В частном случае реализации упомянутое подмножество признаков для каждой секции файла включает в себя следующие признаки: информационная энтропия начала и конца секции, среднее значение ненулевых байт начала и конца секции, виртуальный размер секции, физический размер секции. In the particular embodiment, said subset of signs for each file section includes the following features: information entropy beginning and end of the section, the average value of non-zero bytes beginning and end of the section, the virtual size of the section, the physical size of the section. В частном случае реализации изобретения множество строк файла выделяется в отдельное подмножество признаков, содержащее как минимум один изменяемый признак. In the particular case of the invention, a plurality of lines of the file is allocated a different subset of features comprising at least one modifiable feature. В другом частном случае реализации изобретения отфильтрованное множество строк файла выделяется в отдельное подмножество признаков, содержащее как минимум один изменяемый признак. In another particular embodiment of the invention the filtered plurality of lines of the file is allocated a different subset of features comprising at least one modifiable feature.

В частном случае реализации изобретения для получения признаков файла типа РЕ, попадающих в подмножество признаков, содержащее как минимум один неизменяемый признак, из множества признаков файла выделяются признаки использованного при создании файла компилятора, тип подсистемы (NATIVE, WINDOWS_GUI, WINDOWS_CUI, OS2_CUI, POSIX_CUI, NATIVE_WINDOWS, WINDOWS_CE_GUI), характеристики файла из COFF заголовка, расположение объектов таблицы директорий по секциям файла. In the particular case of the invention to obtain a PE file type characteristics, falling in the subset of features comprising at least one unchangeable sign of a plurality of attributes used to create the compiler file File attributes are distinguished type subsystem (NATIVE, WINDOWS_GUI, WINDOWS_CUI, OS2_CUI, POSIX_CUI, NATIVE_WINDOWS , WINDOWS_CE_GUI), characteristics of the file from the COFF header, the location of objects on a table directory section of the file.

Свертка подмножества признаков, содержащего как минимум один неизменяемый признак, далее именуемое как «подмножество неизменяемых признаков», формируется при помощи средства формирования сверток 130 таким образом, что она не является устойчивой к изменениям признаков подмножества. Convolution subset of features comprising at least one modifiable feature, hereinafter referred to as "invariable signs subset", is formed by means of forming the bundle 130 such that it is not stable to changes signs subset.

В частном случае реализации изобретения свертка подмножества неизменяемых признаков представляет собой байтовую строку и формируется средством формирования сверток признаков 130 путем конкатенации строковых записей значения каждого из признаков, разделенных специальным символом, который в частном случае реализации представляет собой символ «*». In the particular case of the invention, the convolution subset invariable signs represents a byte string and means of forming convolutions formed features 130 records by concatenating the string value of each of the signs divided by a special symbol, which in the particular embodiment is a symbol "*". Например, для консольного приложения, скомпилированного при помощи компилятора Microsoft Visual Studio 2008, свертка подмножества неизменяемых признаков будет выглядеть следующим образом: «WINDOWS_CUI*MSVS2008». For example, for a console application that was compiled with Microsoft Visual Studio Compiler 2008 convolution subset immutable signs will be as follows: «WINDOWS_CUI * MSVS2008».

Свертка подмножества признаков, содержащего как минимум один изменяемый признак, далее именуемого как «подмножество изменяемых признаков», формируется при помощи средства формирования сверток признаков 130 таким образом, что свертка является устойчивой к изменениям признаков подмножества. Convolution subset of features comprising at least one variable feature, hereinafter referred to as a "subset changeable signs" is formed by means of forming convolutions features 130 so that the convolution is stable to changes signs subset.

В частном случае реализации устойчивость сверток подмножеств изменяемых признаков достигается путем исключения из данных подмножеств набора признаков, значения которых варьируются в рамках множества похожих файлов. In the particular case of the variable resistance convolutions subsets characteristics achieved by eliminating from the data set subsets attributes whose values ​​vary within a plurality of similar files. Таким образом, наборы изменяемых признаков для двух похожих файлов будут тождественны, и, независимо от способа формирования, свертки признаков будут также тождественны. Thus, sets of changeable attributes for the two files will be identical or similar, and regardless of the method of forming, folding features are also identical.

В другом частном случае реализации изобретения устойчивость сверток подмножеств изменяемых признаков достигается путем установления для каждого из признаков, характеризуемых значением одного или нескольких байт, числового окна, характеризующего минимальное и максимальное значение, принимаемое каждым байтом, характеризующим признак. In another particular embodiment of the invention the stability of convolutions subsets mutable characteristics achieved by establishing for each of the signs, characterized by a value of one or more bytes numeric window characterizing the minimum and maximum value taken by each byte characterizing feature. В частном случае реализации изобретения свертка получается путем конкатенации байтового представления признаков с учетом установленного предела для каждого байта, характеризующего признак файла. In the particular case of the invention is obtained by convolution of the concatenation byte presentation characteristics with the limit set for each byte characterizing the file attribute.

В другом частном случае реализации изобретения устойчивость сверток подмножеств изменяемых признаков достигается путем использования сверток, обладающих свойством locality sensitive hashing (lsh). In another particular embodiment of the invention the stability of convolutions subsets changeable signs achieved by the use of convolutions, having the property of locality sensitive hashing (lsh).

В частном случае реализации изобретения при выделении из подмножества изменяемых признаков множества строк (в том числе отфильтрованного множества строк) в отдельное подмножество, очевидно, возникает необходимость обеспечить устойчивость свертки упомянутого подмножества, состоящего из строк. In the particular case of the invention, the allocation of the subset of variable signs plurality of rows (including the filtered set of rows) to a separate subset obviously becomes necessary to ensure the stability of the convolution of said subset consisting of rows. В частном случае реализации изобретения для обеспечения устойчивости свертки подмножества строк файла используется косинусное хэширование, результатом которого является последовательность байт. In the particular case of the invention to stabilize the convolution file row subsets cosine hashing is used, which results in a sequence of bytes. Полученная таким образом свертка является сверткой подмножества признаков, состоящего из строк файла. Thus obtained is the convolution of a convolution subset of signs consisting of lines of the file.

В одном из вариантов реализации изобретения для обеспечения устойчивости свертки подмножества изменяемых признаков средство формирования сверток признаков 130 реализует способ создания свертки подмножества изменяемых признаков, основанный на алгоритме Semi-Supervised Hashing (SSH). In one embodiment of the invention to stabilize the convolution subset changeable signs signs convolutions forming means 130 implements a method for creating a subset convolution changeable signs, based on an algorithm Semi-Supervised Hashing (SSH). Преимущество использования данного алгоритма для решения lsh-задачи обусловлено формированием оптимальной хэш-функции для свертки подмножества изменяемых признаков в процессе обучения используемого алгоритма. The advantage of using this algorithm to solve the problem lsh-optimal due to the formation of a hash function for folding a subset of variable signs in learning algorithm used.

На Фиг. FIG. 3 показана структурная схема формирования хэш-функции в рамках этапа обучения SSH-алгоритма. 3 shows a block diagram of the formation of a hash function in the framework of the training phase, the SSH algorithm. Для всех файлов из базы данных файлов для обучения 310 средство выделения признаков 110 выделяет множество признаков. For all files from database files for learning means 310 feature extraction 110 allocates a variety of symptoms. Наборы из множеств выделенных признаков для каждого файла из базы данных 310 поступают на вход средства разделения признаков 120. Средство разделения признаков 120 из каждого входного набора признаков выделяет подмножество изменяемых признаков. Kits of the sets of extracted features for each file in the database 310 are input to a sign separating means 120. The separating means 120 attributes of each input feature set identifies the subset of variable characteristics. Наборы таких подмножеств признаков, соответствующие файлам из базы данных файлов для обучения 310, поступают средству формирования хэш-функции 320 в виде векторов байтовых значений признаков. Sets of such subsets of features relevant files from the database files for learning 310, receives a means of forming a hash function 320 as vectors byte of attribute values. Средству формирования хэш-функции 320 со стороны базы данных отношений между файлами для обучения 330 на вход поступает множество отношений похожести между файлами, которые хранятся в базе данных файлов для обучения 310. В частном случае реализации отношение похожести имеет вид кортежа, хранящего идентификаторы файлов из базы данных 310, между которыми рассматриваются отношения, и идентификатор отношения похожести между указанными файлами. Means the formation of a hash function 320 by the database relations between files for learning 330 the input is a set of relations of similarity between files that are stored in the learning data files 310. In the particular case of the relation of similarity is given by the tuple that stores identifiers of the database files data 310, between which discusses the relationship and identity relations of similarity between these files.

В частном случае реализации базы данных отношений между файлами для обучения 330 отношение похожести характеризуется одним из следующих значений: «похожи», «различны», «отношение неизвестно». In the particular case of the relationship between the database files for learning attitude similarity 330 is characterized by one of the following values: "like", "different", "attitude is unknown." Значение «похожи» применяется к паре похожих файлов. The meaning of "similar" is applied to a pair of similar files. Для пар файлов, которые не являются похожими, устанавливается отношение похожести «различны». For pairs of files that are not similar, set the ratio of similarity "different." Если для пары файлов из базы данных файлов для обучения 310 отношение похожести не указано явным образом, отношение похожести устанавливается как «отношение неизвестно». If the file pair from the database files to train 310 the ratio of similarity is not explicitly specified, the similarity ratio is set as the "relation is unknown."

В частном случае реализации базы данных отношений между файлами для обучения 330 отношение похожести «различны» устанавливается между двумя файлами, один из которых является вредоносным, а другой не является таковым. In the particular case of the database relations established between the two files, one of which is malicious files between for training attitude similarity 330 "different" and the other is not. В частном случае реализации отношение похожести «похожи» устанавливается между парами вредоносных похожих файлов. In the particular case of the relation of similarity "similar" is set between pairs of similar malicious files. В другом частном случае реализации отношение похожести «похожи» устанавливается между парами похожих файлов, не являющихся вредоносными. In another particular embodiment similarity "similar" relationship is established between pairs of similar files that are not malicious.

Получив информацию о векторах изменяемых признаков файлов и отношениях похожести между файлами, средство формирования хэш-функции 320 производит настраивание хэш-функции в соответствии с этапом обучения SHH-алгоритма. After receiving information about the vectors of variable attributes of files and a relationship of similarity between the files, means for generating a hash function 320 makes setting up a hash function in accordance with the teaching of SHH-step algorithm. Множество векторов изменяемых признаков файлов рассматриваются как множество точек в n-мерном гиперпространстве, где n - количество признаков из множества изменяемых признаков. The set of vectors mutable attributes of files are considered as a set of points in n-dimensional hyperspace where n - number of attributes of the plurality of variable characteristics. Средство формирования хэш-функции 320 на основании этапа обучения SSH-алгоритма разбивает указанное гиперпространство плоскостями таким образом, что файлы, для которых указано отношение похожести «похожи», остаются по одну сторону от плоскости, а файлы, для которых указано отношение похожести «различны», - по разные. Means for generating hash function 320 based on the training phase SSH-algorithm divides said hyper planes so that files that specify the ratio of similarity "similar", remain on either side of the plane, and files for which the specified attitude similarity "different" - on either. Результатом обучения является вычисление коэффициентов, задающих плоскости разбиения гиперпространства. The result of training is to calculate coefficients that determine the partition plane of hyperspace. Коэффициенты представляются в виде матрицы. The coefficients are presented in the form of a matrix. Средство формирования хэш-функции 320 подает указанную матрицу коэффициентов на вход средства формирования сверток признаков 130. В свою очередь, средство формирования сверток признаков 130, используя вышеописанную матрицу коэффициентов, для каждого входного сгруппированного в виде вектора набора признаков из подмножества изменяемых признаков формирует свертку подмножества изменяемых признаков, представляющую собой последовательность байт. Means for generating hash function 320 delivers said matrix coefficients to the input means for forming a bundle features 130. In turn, the forming means convolutions signs 130 using the above-described matrix coefficients for each input grouped set signs a vector from the subset of variable signs generates convolution changeable subset signs representing a sequence of bytes.

Особенностью описанного механизма формирования сверток является то, что для набора признаков двух файлов будет сгенерирована идентичная свертка, если для файлов, используемых для выделения указанных признаков, отношение похожести на этапе обучения SSH-алгоритма было установлено как «похожи». A feature of the described mechanism of forming the bundle is that the feature set for the two files will generate identical convolution, if the files used for the isolation of stated features, similarity ratio, in step SSH-learning algorithm has been set as "similar". В то же время свертки наборов признаков двух файлов, отношение между которыми было установлено как «различны», будут различаться. At the same time convolution of two sets of attributes of files, the ratio between them has been established as "different", will vary. Способ формирования хэш-функции для получения свертки подмножества изменяемых признаков гарантирует устойчивость свертки к изменениям признаков из подмножества изменяемых признаков. A method of forming a hash function to obtain a convolution subset changeable signs guarantees stability convolution to changes signs from the subset of variable characteristics. Это означает, что свертки наборов подмножества изменяемых признаков двух похожих файлов будут идентичны, даже если какие-либо признаки из подмножества изменяемых признаков указанных файлов будут иметь различные значения. This means that the convolution sets a subset of variable signs two files are identical or similar, even if there were any signs of a subset of modifiable attributes of the files will have different values.

Средство формирования свертки файла 140 получает на вход со стороны средства формирования сверток признаков 130 свертки всех выделенных подмножеств признаков. Means for generating a convolution file 140 receives the input from the means of forming a bundle of 130 signs convolution all selected subsets of attributes. Свертка каждого из подмножеств признаков представляет собой последовательность байт. The convolution of each of the subsets of features is a sequence of bytes. Свертка файла формируется путем комбинации сверток подмножеств признаков файла. Convolution file formed by combining subsets of convolutions file attributes. Будучи сформированной на основе устойчивых сверток подмножеств изменяемых признаков и сверток подмножеств неизменяемых признаков, свертка файла также обладает устойчивостью, принимая одинаковый, с точностью до байта, вид для множества похожих файлов. Being formed on the basis of stable convolutions subsets changeable features and convolutions subsets invariable signs file convolution also resistant, taking the same, up to a byte type for a plurality of similar files.

В частном случае реализации средство формирования свертки файла 140 формирует свертку файла как конкатенацию байтового представления сверток подмножеств признаков. In the particular case of the file formation means 140 generates convolution convolution file as a concatenation byte representation parcel signs subsets.

В другом частном случае реализации средство формирования свертки файла 140 формирует свертку файла на основании косинусного хэширования, применяемого к сверткам подмножеств признаков файла. In another particular embodiment the file generating means 140 generates convolution convolution file based on the cosine hashing convolutions applied to subsets of file attributes.

В еще одном частном варианте реализации изобретения средство формирования свертки файла 140 после формирования свертки файла дополнительно вычисляет хэш-функцию от байтового представления свертки файла, после чего сверткой файла считается вычисленное значение упомянутой хэш-функции. In another particular embodiment of the invention, the means for generating file 140 after forming the convolution convolution file further calculates the hash function of the byte representation convolution file, then the file is considered the convolution of the computed value of said hash function. В частном случае реализации средством формирования свертки файла 140 в качестве хэш-функции, применяемой к байтовому представлению свертки файла, используется MD5. In the particular case of the means of forming the convolution file 140 as a hash function applied to the byte representation of the convolution file using MD5.

После вычисления свертки файла средство формирования свертки файла 140 передает сгенерированную свертку анализируемого файла средству сравнения сверток файлов 150. Средство сравнения сверток файлов 150 также связано с базой данных сверток 170. After calculating the convolution file generating means 140 transmits the generated file convolution convolution analyte file bundle file comparison means 150. The comparing means 150 as the bundle of files associated with the database 170 of convolutions.

Средство сравнения сверток файлов 150 сравнивает полученную от средства формирования свертки файла 140 свертку с множеством сверток файлов. Comparison means 150 compares a bundle of files received from the means for forming convolution convolution file 140 with a plurality of convolutions of files. Упомянутое множество сверток файлов хранится в базе данных сверток 170. Said plurality of convolutions of the files stored in the data bundle 170.

База данных сверток 170 помимо сверток файлов хранит идентификаторы соответствующих сверткам файлов, а также информацию о вредоносности файлов, свертки которых хранятся в базе данных. Database bundle 170 in addition to the bundle file stores the identifiers corresponds to convolution files, as well as information about the malicious files, convolution are stored in the database. Свертки файлов, хранимые в базе данных сверток 170, заранее формируются в соответствии с вышеописанным способом формирования свертки файла. Convolution of files stored in the base of the parcel data 170 in advance are formed in accordance with the above method of forming the convolution file. При формировании набора сверток для базы данных сверток 170 используются кластеры похожих файлов. In the formation of the bundle set for the database used by the bundle 170 clusters or similar files. В частном случае реализации как минимум один кластер файлов, используемый для формирования свертки, которая будет храниться в базе данных сверток 170, состоит из множества вредоносных файлов. In the particular case of at least one cluster of the file used to generate the convolution, which will be stored in the database 170 parcel data consists of a set of malicious files.

Если при сравнении свертки анализируемого файла, осуществляемом средством сравнения сверток файлов 150, упомянутое средство находит среди сверток, хранящихся в базе данных сверток 170, идентичную свертку, средство сравнения сверток файлов 150 признает анализируемый файл похожим на файлы из кластера похожих файлов, взятого за основу для формирования свертки в базе данных сверток 170. If the comparison of the convolution of the analyzed file, the resources are comparing bundle file 150, said means is among the bundle stored in the database bundle 170 identical convolution means for comparing the bundle file 150 recognizes the analyzed file is similar to the cluster files or similar files, taken as a basis for forming a convolution in the base bundle 170 data.

В частном случае реализации средство сравнения сверток файлов 150 признает файл вредоносным, если он признан похожим на файлы кластера похожих файлов, которые являются вредоносными файлами. In the particular case of a means of comparing the bundle file 150 recognizes malicious file if it is recognized like a cluster files or similar files that are malicious files. Информация о вредоносности файлов, используемых для формирования свертки, попадающей в базу данных сверток 170, задается при создании соответствующей записи в базе данных. Information about malicious files that are used to form the convolution which falls into a database bundle 170, is set to create a corresponding entry in the database.

В частном случае реализации в качестве входных данных средства выделения признаков 110 используются файлы, анализируемые антивирусным программным обеспечением на компьютере пользователя. In the particular case of implementation as input feature extraction means 110 uses the files analyzed by antivirus software on the user's computer. Результат анализа рассматриваемого файла с помощью описанных в рамках изобретения средств используется в сочетании с другими средствами защиты пользователя, предоставляемыми антивирусным программным обеспечением с целью повышения степени защищенности пользователя. The result of analyzing the considered file using means described within the invention is used in combination with other user protection features provided by antivirus software in order to increase the degree of user safety.

В частном случае реализации изобретения база данных сверток 170 и средство сравнения сверток файлов 150 являются частью серверной архитектуры, соединенной с персональным компьютером пользователя, на котором расположены средства, описанные в рамках изобретения и необходимые для формирования свертки файла. In the particular case of the invention, the bundle database 170, and means for comparing the file bundle 150 are part of a server architecture connected to the user's personal computer, on which the means described in the context of the invention and necessary for forming convolution file. В другом частном случае реализации база данных сверток 170 и средство сравнения сверток файлов 150 располагаются непосредственно на персональном компьютере пользователя. In another particular embodiment of convolutions 170 database and means for comparing the file bundle 150 positioned directly on the user's personal computer.

На Фиг. FIG. 4 изображена примерная схема алгоритма работы одного из вариантов реализации вышеописанной системы обнаружения вредоносного программного обеспечения. 4 illustrates an example flow chart of operation of one embodiment of the above system of detecting malicious software. На этапе 410 средством выделения признаков 110 производится выделение множества признаков файла. In step 410, the feature extraction means 110 is made the selection of the set of file attributes. Выделенное множество признаков передается средству разделения признаков 120, которое на этапе 420 разделяет множество выделенных признаков файла на как минимум одно подмножество, содержащее по меньшей мере один изменяемый признак, и как минимум одно подмножество, содержащее по меньшей мере один неизменяемый признак. The isolated set of attributes is transmitted signs separating means 120, which in step 420 divides the selected plurality of file attributes for at least one subset comprising at least one variable feature, and at least one subset comprising at least one modifiable feature. Подмножества признаков поступают на средство формирования сверток подмножеств признаков 130, которое на этапе 430 осуществляет формирование сверток каждого из входных подмножеств признаков файла. Subsets of features provided to form convolutions means subsets features 130, which at block 430 carries out the formation of convolutions of each input file subsets of features. На этапе 440 средство формирования свертки файла 140, получая от средства формирования сверток признаков 130 свертки каждого подмножества признаков файла, формирует свертку файла как конкатенацию сверток подмножеств признаков. In step 440 the convolution file generating means 140, receiving from the generating means 130 of convolution convolutions features of each subset of file attributes as a file convolution generates concatenation convolutions signs subsets. Полученная на этапе 440 свертка файла поступает на вход средства сравнения сверток файлов 150, которое на этапе 450 производит поиск указанной свертки среди множества заранее сформированных сверток из базы данных сверток 170. В случае если на этапе 460 средством сравнения сверток файлов 150 будет выявлено совпадение свертки анализируемого файла и свертки из базы данных сверток 170, анализируемый файл будет признан похожим на файлы из кластера похожих файлов, которые были использованы для формирования свертки, совпавшей со сверткой анализируемого Obtained in step 440 is supplied to the convolution file comparing means convolutions input files 150, which at block 450 searches among a plurality of convolutions of said pre-formed bundle of bundle database 170. If at step 460, comparison means 150 is a bundle of files detected coincidence convolution analyte file and the convolution of the parcel database 170, the analyzed file will be recognized like a cluster of similar files are files that have been used for the formation of convolutions, which coincided with the convolution of the analyte файла. file. Если на этапе 490 будет выяснено, что для формирования совпавшей свертки был использован кластер похожих вредоносных файлов, то анализируемый файл будет признан вредоносным на этапе 500. Если же на этапе 490 будет выяснено, что для формирования совпавшей свертки был использован кластер похожих файлов, которые не являются вредоносными, то анализируемый файл будет признан не вредоносным на этапе 510. If at step 490 it is found that the formation of a cluster of matched convolution or similar malicious files was used, then the file will be analyzed as malicious in step 500. If at step 490 it is found that a cluster of similar files was used to form a matched convolution which are not are malicious, then the analyzed file is not recognized as malware in step 510.

Фиг. FIG. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. 5 shows an example of a general purpose computer system, a personal computer or a server 20 containing a CPU 21, a system memory 22, and a system bus 23 that contains various system components including the memory associated with the CPU 21. The system bus 23 is implemented as any prior art bus structure, in turn comprising a memory bus or memory bus controller, a peripheral bus, and a local bus which is able to interact with any other bus architecture. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. The system memory includes read only memory (ROM) 24, random access memory (RAM) 25. A basic input / output system (BIOS) 26, containing the basic routines that help to transfer information between elements within the personal computer 20, e.g., at the time of loading the operating system using the ROM 24.

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

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55. The present description discloses a realization of a system that employs a hard disk 27, removable magnetic disk 29 and a removable optical disk 31, it should be understood that it is possible to apply other types of computer storage media 56 which can store data accessible to computer readable form (SSDs 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). The computer 20 has a file system 36, which stores the recorded operating system 35, as well as additional software applications 37, other program modules 38 and program data 39. A user can enter commands and information into the personal computer 20 through input devices (keyboard 40, the manipulator " mouse "42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. May use other input devices (not displayed): a microphone, joystick, game console, a scanner, etc. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Such input devices according to his custom connected to the computer system 20 via the serial port 46, which in turn is connected to the system bus, but may be connected in any other way, for example, using a parallel port, game port or a universal serial bus (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п. A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as video adapter 48. In addition to the monitor 47, the personal computer may be equipped with other peripheral output devices (not displayed), for example, speakers, printer, etc. .

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. The personal computer 20 can operate in a networked environment, using the network connection with another or more remote computers 49. Remote computer (or computers) 49 are the same as personal computers or servers that have most or all of said items previously noted in the description of substantive personal computer 20 shown in FIG. 5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы. 5. The computer network may also be present, and other devices, e.g., routers, network stations, peer device or other network nodes.

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

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

Claims (28)

1. Способ определения похожести файлов, в котором: 1. A method for determining the similarity of files, wherein:
а) определяют множества изменяемых и неизменяемых признаков файлов, при этом файлы хранятся в базе данных файлов для обучения; a) determining a plurality of variable and invariable signs files, the files are stored in the learning data files;
при этом признак файла считают изменяемым, если для множества похожих файлов признак принимает различные значения; in this case the file is considered a sign of a variable, if many similar files attribute takes different values;
при этом признак файла считают неизменяемым, если для множества похожих файлов признак принимает одинаковое значение; at the same time file attribute is considered immutable, if many similar files sign takes the same value;
б) выделяют множество признаков по меньшей мере из одного файла; b) isolating a plurality of features at least one file;
в) разделяют множество выделенных признаков файла по меньшей мере на два подмножества: подмножество изменяемых признаков и подмножество неизменяемых признаков; c) separating the plurality of extracted features file into at least two subsets: subset changeable subset of signs and symptoms immutable;
при этом подмножество изменяемых признаков файла включает в себя по меньшей мере: размер файла, размер образа файла, количество секций файла, RVA (Relative Virtual Address) секций файла, RVA точки входа, частотные характеристики символов, множество строк файла и их количество, отфильтрованное множество строк файла и их количество; wherein the subset of changeable attributes file includes at least: file size, image resolution, the number of file sections, RVA (Relative Virtual Address) file sections, RVA entry point, the frequency characteristics of characters, a plurality of lines of the file and the number, filtered set rows and the number of file;
при этом подмножество неизменяемых признаков файла включает в себя по меньшей мере: тип использованного при создании файла компилятора, тип подсистемы, характеристики файла из COFF (Common Object File Format) заголовка; wherein the subset of signs immutable file includes at least: the type used in creating compiler file subsystem type, file characteristics of COFF (Common Object File Format) header;
г) формируют свертку каждого из вышеописанных подмножеств признаков файла; g) forming the convolution of each of the above subsets of file attributes;
при этом свертка подмножества неизменяемых признаков не является устойчивой к изменениям признаков подмножества; wherein the convolution subset invariable signs is not stable to changes signs subset;
при этом свертка подмножества изменяемых признаков является устойчивой к изменениям признаков подмножества; wherein the convolution changeable subset of features is resistant to changes signs subset;
д) формируют свертку файла как комбинацию сверток каждого из вышеописанных подмножеств признаков файла; d) forming a convolution file as a sequence of convolutions of each of the above subsets of file attributes;
е) сравнивают свертку по меньшей мере одного файла с набором заранее созданных сверток файлов; e) comparing the convolution of at least one file with a set of pre-created bundle of files;
ж) признают файл похожим на файлы из множества похожих файлов, имеющих одинаковую свертку, если при сравнении свертка указанного файла совпадает со сверткой файла из указанного множества. g) recognize the file similar to the files from a variety of similar files with the same convolution, convolution if the comparison of the file coincides with the convolution of said plurality of file.
2. Система определения похожести файлов, которая содержит: 2. The definition of similarity file system that contains:
а) средство выделения признаков, предназначенное для выделения множества признаков из по меньшей мере одного файла и передающее выделенное множество признаков на вход средства разделения признаков; a) means for feature extraction for extracting a plurality of features from the at least one file and transmitting the selected plurality of features on the input signs separation means;
б) средство разделения признаков, предназначенное для формирования из множества выделенных признаков как минимум двух подмножеств: подмножества изменяемых признаков и подмножества неизменяемых признаков, и передающее сформированные подмножества признаков на вход средства формирования сверток признаков, а также для определения множества изменяемых и неизменяемых признаков файлов, при этом упомянутые файлы хранятся в базе данных файлов для обучения; b) means for separating characteristics for forming of the plurality of extracted features at least two subsets: subset changeable features and a subset of invariable signs, and transmitting the generated subset of signs to the input means for forming a bundle characteristics, as well as for determining a plurality of variable and invariable signs files at wherein said files are stored in the learning data files;
при этом признак файла считают изменяемым, если для множества похожих файлов признак принимает различные значения; in this case the file is considered a sign of a variable, if many similar files attribute takes different values;
при этом признак файла считают неизменяемым, если для множества похожих файлов признак принимает одинаковое значение; at the same time file attribute is considered immutable, if many similar files sign takes the same value;
при этом подмножество изменяемых признаков файла включает в себя по меньшей мере: размер файла, размер образа файла, количество секций файла, RVA секций файла, RVA точки входа, частотные характеристики символов, множество строк файла и их количество, отфильтрованное множество строк файла и их количество; wherein the subset of changeable attributes file includes at least: file size, image resolution, the number of file sections, RVA file sections, RVA entry point, the frequency characteristics of characters, a plurality of lines of the file and the number, the filtered set of lines of the file and the number of ;
при этом подмножество неизменяемых признаков файла включает в себя по меньшей мере: тип использованного при создании файла компилятора, тип подсистемы, характеристики файла из COFF заголовка; wherein the subset of signs immutable file includes at least: the type used in creating compiler file type subsystem, the characteristics of the COFF file header;
в) средство формирования сверток признаков, предназначенное для формирования свертки каждого из вышеописанных подмножеств признаков файла и передающее сформированные свертки подмножеств признаков на вход средства формирования свертки файла; c) means for generating a bundle of features for forming the convolution of each of the above subsets of file attributes and transmitting the generated convolution subsets signs the input file convolution forming agent;
при этом свертка подмножества неизменяемых признаков не является устойчивой к изменениям признаков подмножества; wherein the convolution subset invariable signs is not stable to changes signs subset;
при этом свертка подмножества изменяемых признаков является устойчивой к изменениям признаков подмножества; wherein the convolution changeable subset of features is resistant to changes signs subset;
г) средство формирования свертки файла, предназначенное для формирования свертки файла как комбинации сверток каждого из вышеописанных подмножеств признаков файла и передающее сформированную свертку файла на вход средства сравнения сверток файлов; g) means for forming convolution file for forming convolution file as combinations of convolutions of each of the above subsets of attributes file and transmits the generated file to the convolution of the input comparison bundle file means;
д) базу данных сверток, предназначенную для хранения по меньшей мере одной свертки файла и соответствующей указанной свертке информации о вредоносности файла; d) database bundle for storing at least one file and the corresponding convolution of said convolution information file damage;
е) базу данных файлов для обучения, предназначенную для хранения файлов, которые используются для определения множества изменяемых и неизменяемых признаков; e) data base files for training for storing files used for determining a plurality of variable and invariable signs;
ж) средство сравнения сверток файлов, связанное с базой данных сверток и предназначенное для сравнения свертки по меньшей мере одного файла со свертками, присутствующими в базе данных сверток, и признания файла похожим на файлы из множества похожих файлов, имеющих одинаковую свертку, если при сравнении свертка указанного файла совпадает со сверткой файла из указанного множества. g) means for comparing the bundle of files associated with a database package and for comparing the convolution of at least one file with contractions present in the base of the parcel data, and recognition of the file similar to the files from a variety of similar files with the same convolution, if compared to the convolution said file coincides with the convolution file of said plurality.
RU2015154379A 2015-12-18 2015-12-18 System and method of similar files determining RU2614561C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015154379A RU2614561C1 (en) 2015-12-18 2015-12-18 System and method of similar files determining

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015154379A RU2614561C1 (en) 2015-12-18 2015-12-18 System and method of similar files determining

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2013129552/08A Division RU2580036C2 (en) 2013-06-28 2013-06-28 System and method of making flexible convolution for malware detection

Publications (1)

Publication Number Publication Date
RU2614561C1 true RU2614561C1 (en) 2017-03-28

Family

ID=58505462

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015154379A RU2614561C1 (en) 2015-12-18 2015-12-18 System and method of similar files determining

Country Status (1)

Country Link
RU (1) RU2614561C1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162478A1 (en) * 2001-01-24 2008-07-03 William Pugh Detecting duplicate and near-duplicate files
US20090300761A1 (en) * 2008-05-28 2009-12-03 John Park Intelligent Hashes for Centralized Malware Detection
RU101223U1 (en) * 2010-03-02 2011-01-10 Закрытое акционерное общество "Лаборатория Касперского" System for the rapid detection of similar objects using a bundle
US20110083187A1 (en) * 2009-10-01 2011-04-07 Aleksey Malanov System and method for efficient and accurate comparison of software items
RU2454714C1 (en) * 2010-12-30 2012-06-27 Закрытое акционерное общество "Лаборатория Касперского" System and method of increasing efficiency of detecting unknown harmful objects

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162478A1 (en) * 2001-01-24 2008-07-03 William Pugh Detecting duplicate and near-duplicate files
US20090300761A1 (en) * 2008-05-28 2009-12-03 John Park Intelligent Hashes for Centralized Malware Detection
US20110083187A1 (en) * 2009-10-01 2011-04-07 Aleksey Malanov System and method for efficient and accurate comparison of software items
RU101223U1 (en) * 2010-03-02 2011-01-10 Закрытое акционерное общество "Лаборатория Касперского" System for the rapid detection of similar objects using a bundle
RU2454714C1 (en) * 2010-12-30 2012-06-27 Закрытое акционерное общество "Лаборатория Касперского" System and method of increasing efficiency of detecting unknown harmful objects

Similar Documents

Publication Publication Date Title
Kapravelos et al. Revolver: An automated approach to the detection of evasive web-based malware
US9996693B2 (en) Automated malware signature generation
US8312546B2 (en) Systems, apparatus, and methods for detecting malware
US9479520B2 (en) Fuzzy whitelisting anti-malware systems and methods
US7809670B2 (en) Classification of malware using clustering that orders events in accordance with the time of occurance
Scaife et al. Cryptolock (and drop it): stopping ransomware attacks on user data
CN102483780B (en) Antivirus scan
US9665713B2 (en) System and method for automated machine-learning, zero-day malware detection
JP5586216B2 (en) Real-time computer protection system and method according context aware
US20100162395A1 (en) Methods and Systems for Detecting Malware
Laskov et al. Static detection of malicious JavaScript-bearing PDF documents
US8561193B1 (en) Systems and methods for analyzing malware
US8375450B1 (en) Zero day malware scanner
US9690935B2 (en) Identification of obfuscated computer items using visual algorithms
Xu et al. Automatically evading classifiers
US8037535B2 (en) System and method for detecting malicious executable code
Garfinkel Digital media triage with bulk data analysis and bulk_extractor
JP4711949B2 (en) Method for detecting malware in the macro can be executed script and systems
JP5987088B2 (en) System and method for using a plurality of in-line heuristics to reduce false positives
Bayer et al. Scalable, behavior-based malware clustering.
US9571509B1 (en) Systems and methods for identifying variants of samples based on similarity analysis
US20110041179A1 (en) Malware detection
Cesare et al. Malwise—an effective and efficient classification system for packed and polymorphic malware
US8955133B2 (en) Applying antimalware logic without revealing the antimalware logic to adversaries
US8671449B1 (en) Systems and methods for identifying potential malware

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170615

NF4A Reinstatement of patent

Effective date: 20180503