RU101223U1 - SYSTEM FOR QUICK DETECTION OF SIMILAR OBJECTS USING CONVOLUTIONS - Google Patents

SYSTEM FOR QUICK DETECTION OF SIMILAR OBJECTS USING CONVOLUTIONS Download PDF

Info

Publication number
RU101223U1
RU101223U1 RU2010107430/08U RU2010107430U RU101223U1 RU 101223 U1 RU101223 U1 RU 101223U1 RU 2010107430/08 U RU2010107430/08 U RU 2010107430/08U RU 2010107430 U RU2010107430 U RU 2010107430U RU 101223 U1 RU101223 U1 RU 101223U1
Authority
RU
Russia
Prior art keywords
objects
convolution
convolutions
local
known objects
Prior art date
Application number
RU2010107430/08U
Other languages
Russian (ru)
Inventor
Алексей Владимирович Маланов
Виталий Александрович Камлюк
Original Assignee
Закрытое акционерное общество "Лаборатория Касперского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество "Лаборатория Касперского" filed Critical Закрытое акционерное общество "Лаборатория Касперского"
Priority to RU2010107430/08U priority Critical patent/RU101223U1/en
Application granted granted Critical
Publication of RU101223U1 publication Critical patent/RU101223U1/en

Links

Abstract

1. Система для обнаружения похожих объектов при сравнении неизвестных объектов с уже известными объектами, которая включает ! а) средство хранения коллекции известных объектов, предназначенное для хранения известных объектов и связанное со средством подсчета сверток; !б) средство подсчета сверток, предназначенное для подсчета сверток известных объектов, также связанное с средством обновления сверток; ! в) средство обновления сверток, связанное со средством хранения коллекции сверток известных объектов и предназначенное для обновления сверток известных объектов в средстве хранения коллекции сверток известных объектов; ! г) упомянутое средство хранения коллекции сверток известных объектов, предназначенное для хранения сверток известных объектов и связанное с локальным средством обновления сверток; ! д) упомянутое локальное средство обновления сверток, предназначенное для обновления сверток известных объектов в локальной коллекции сверток известных объектов, связанное с локальным средством хранения коллекции сверток известных объектов; ! е) упомянутое локальное средство хранения коллекции сверток известных объектов, предназначенное для хранения сверток известных объектов, связанное с локальным средством сравнения сверток; ! ж) упомянутое локальное средство сравнения сверток, предназначенное для обнаружения похожих объектов путем сравнения сверток известных объектов из локального средства хранения коллекции сверток известных объектов и сверток неизвестных объектов от локального средства подсчета сверток, связанное с локальным средством подсчета сверток; ! з) упомянутое локальное средство � 1. A system for detecting similar objects when comparing unknown objects with already known objects, which includes! a) a means of storing a collection of known objects designed to store known objects and associated with a means of counting convolutions; ! b) a convolution counting tool for counting convolutions of known objects, also associated with the convolution update tool; ! c) a convolution update tool associated with a convolution collection tool of known objects storage means for updating convolution of known objects in a convolution collection tool of known objects; ! d) said means for storing a collection of convolutions of known objects, intended for storing convolutions of known objects and associated with a local means of updating the convolution; ! e) said local convolution updating tool for updating convolutions of known objects in a local convolution collection of known objects associated with a local convolution collection tool for known objects; ! e) said local means for storing convolution collections of known objects, intended for storing convolutions of known objects, associated with a local means for comparing convolutions; ! g) said local convolution comparison tool for detecting similar objects by comparing convolutions of known objects from a local means of storing a collection of convolutions of known objects and convolutions of unknown objects from a local convolution counter associated with the local convolution counter; ! h) the mentioned local remedy �

Description

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

Полезная модель относится к системам для обнаружения похожих объектов при сравнении неизвестных объектов с уже известными объектами.The utility model relates to systems for detecting similar objects when comparing unknown objects with already known objects.

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

В настоящее время одной из главных проблем антивирусной индустрии является постоянно растущее количество вредоносных программ, таких как вирусы, троянские программы, черви, руткиты и другие. Для обнаружения все новых видов вредоносных программ антивирусные компании постоянно обновляют свои антивирусные базы данных, где содержаться сигнатуры вредоносных программ, а также совершенствуют другие методы анализа неизвестных программ на наличие вредоносного функционала. Однако, становится все труднее обнаружить вредоносные программы, которые иногда отличаются совсем незначительно, для которых получаются разные сигнатуры. Вместе с тем, постоянно растет и количество анализируемых файлов, что также создает большую вычислительную нагрузку и приводит к тому, что антивирусные базы обновляются с задержкой или в них отсутствуют новые вредоносные программы.Currently, one of the main problems of the antivirus industry is the ever-growing number of malware, such as viruses, trojans, worms, rootkits, and others. To detect all new types of malware, antivirus companies constantly update their antivirus databases that contain malware signatures, as well as improve other methods for analyzing unknown programs for malicious functionality. However, it is becoming increasingly difficult to detect malware that sometimes differs very slightly, for which different signatures are obtained. At the same time, the number of analyzed files is constantly growing, which also creates a large computational load and leads to the fact that anti-virus databases are updated with a delay or they do not have new malware.

Таким образом, перед антивирусными компаниями стоит важная задача - определить, что новый неизвестный файл содержит вредоносный функционал за ограниченное время. Одной из проблем, которые возникают при решении этой задачи является тот факт, что вредоносный функционал можно реализовать разными способами, каждый из которых будет давать один и тот же результат. Рассмотрим пример небольшого фрагмента кода, написанного на языке С:Thus, antivirus companies have an important task - to determine that a new unknown file contains malicious functionality for a limited time. One of the problems that arise when solving this problem is the fact that malicious functionality can be implemented in different ways, each of which will give the same result. Consider an example of a small piece of code written in C:

int i=0, j=0;int i = 0, j = 0;

int main()int main ()

{{

if(i==1000)if (i == 1000)

return i;return i;

elseelse

return j;return j;

}}

и сравним его со вторым фрагментом кода, который получился после компиляции вышеуказанного фрагмента в низкоуровневый язык ассемблера:and compare it with the second code fragment, which turned out after compiling the above fragment into a low-level assembly language:

_main proc near_main proc near

mov ecx, dword_414184mov ecx, dword_414184

mov ecx, 3E8hmov ecx, 3E8h

cmp ecx, eaxcmp ecx, eax

jz short locret_401124jz short locret_401124

mov eax, dword_414180mov eax, dword_414180

locret_401124:locret_401124:

retnretn

_main endp_main endp

Небольшие изменения во фрагменте кода, написанного на языке С, которые не повлияют на его функциональность, будут по-другому отражены во втором фрагменте. Например, когда условный переход меняется с "if(i==1000)" на "if(i=999)", то в результате фрагмент будет скомпилирован в другой фрагмент на языке ассемблера. Добавление таких инструкций как NOP (no operation), смена названий переменных и другие действия, не влияющие на конечный результат, могут скрыть или обфусцировать (англ. obfuscate) реальный функционал, который может носить и вредоносный характер. Помимо этого, в объектном коде могут использоваться и различные регистры процессора, отличные от тех, что используются обычными компиляторами (например, можно использовать другой регистр вместо регистра АХ). В конечном счете, по-разному модифицируя объектный код, можно добиться того, что не останется практически ни одного фрагмента, который можно было бы подвергнуть сравнению с уже известными фрагментами вредоносного кода.Small changes in a fragment of code written in C that will not affect its functionality will be reflected differently in the second fragment. For example, when a conditional jump changes from “if (i == 1000)” to “if (i = 999),” as a result, the fragment will be compiled into another fragment in assembly language. Adding instructions such as NOP (no operation), changing the names of variables and other actions that do not affect the final result can hide or obfuscate (English obfuscate) real functionality, which can also be malicious. In addition, various processor registers can be used in the object code, different from those used by conventional compilers (for example, you can use a different register instead of the AX register). Ultimately, by modifying object code in different ways, it is possible to achieve that there will be practically no fragment left that could be compared with already known fragments of malicious code.

Таким образом, метод сигнатурной проверки несмотря на свою простоту, является далеко не самым надежным способом обнаружения вредоносных программ, так как вирусописатели могут применять многочисленные методы изменения и обфускации кода. В результате требуется большое количество времени, сил и практических навыков для того, что определить скрытый функционал и методы, которые применялись для его сокрытия, даже несмотря на то, что это была одна и та же вредоносная программа.Thus, the signature verification method, despite its simplicity, is far from the most reliable way to detect malware, since virus writers can use numerous methods of modifying and obfuscating code. As a result, a large amount of time, effort and practical skills are required in order to determine the hidden functionality and methods that were used to hide it, even though it was the same malware.

Системы сравнения файлов для определения их похожести могут быть найдены в описаниях таких патентов, как US 6990600, US 6738932, US 5995982, US 6021491, US 5878050 и других. Однако системы, описанные в этих патентах, опираются на точное сравнение объектов и не эффективны при небольших их изменениях.File comparison systems for determining their similarity can be found in the descriptions of patents such as US 6990600, US 6738932, US 5995982, US 6021491, US 5878050 and others. However, the systems described in these patents rely on an accurate comparison of objects and are not effective for small changes.

Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании их в одной системе, позволяют получить новый результат, а именно систему для ускорения обнаружения похожих объектов при сравнении неизвестных объектов данных с уже известными объектами. Данный результат достигается за счет представления объектов в виде представлений-сверток и их последующего сравнения.An analysis of the prior art and the possibilities that arise when combining them in one system allows you to get a new result, namely a system for accelerating the detection of similar objects when comparing unknown data objects with already known objects. This result is achieved by presenting objects in the form of convolution representations and their subsequent comparison.

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

Настоящая полезная модель предназначена для обнаружения похожих объектов при сравнении неизвестных объектов с уже известными объектами.This useful model is designed to detect similar objects when comparing unknown objects with already known objects.

Технический результат настоящей полезной модели заключается в использовании системы, которая содержит: средство хранения коллекции известных объектов, предназначенное для хранения известных объектов и связанное со средством подсчета сверток; средство подсчета сверток, предназначенное для подсчета сверток известных объектов, также связанное с средством обновления сверток; средство обновления сверток, связанное со средством хранения коллекции сверток известных объектов и предназначенное для обновления сверток известных объектов в средстве хранения коллекции сверток известных объектов; упомянутое средство хранения коллекции сверток известных объектов, предназначенное для хранения сверток известных объектов и связанное с локальным средством обновления сверток; упомянутое локальное средство обновления сверток, предназначенное для обновления сверток известных объектов в локальной коллекции сверток известных объектов, связанное с локальным средством хранения коллекции сверток известных объектов; упомянутое локальное средство хранения коллекции сверток известных объектов, предназначенное для хранения сверток известных объектов, связанное с локальным средством сравнения сверток; упомянутое локальное средство сравнения сверток, предназначенное для обнаружения похожих объектов путем сравнения сверток известных объектов из локального средства хранения коллекции сверток известных объектов и сверток неизвестных объектов от локального средства подсчета сверток, связанное с локальным средством подсчета сверток; упомянутое локальное средство подсчета сверток, предназначенное для подсчета сверток неизвестных объектов, которые были получены от локального средства анализа неизвестных объектов и связанное с локальным средством анализа неизвестных объектов; упомянутое локальное средство анализа неизвестных объектов, предназначенное для обнаружения неизвестных объектов, необходимых для сравнения с известными объектами.The technical result of this utility model is to use a system that contains: means for storing a collection of known objects, designed to store known objects and associated with a means of counting convolutions; a convolution counting means for counting convolutions of known objects also associated with the convolution updating means; convolution updater associated with the convolution collection tool of known objects, and intended to update convolution of known objects in the convolution collection tool of known objects; said means for storing a convolution collection of known objects for storing convolutions of known objects and associated with a local means of updating the convolution; said local convolution update tool for updating convolutions of known objects in a local convolution collection of known objects associated with a local convolution collection tool for known objects; said local means for storing a convolution collection of known objects intended for storing convolutions of known objects associated with a local means for comparing convolutions; said local convolution comparison tool for detecting similar objects by comparing convolutions of known objects from a local convolution collection tool of known objects and convolutions of unknown objects from a local convolution counter associated with the local convolution counter; said local convolution counting means for counting convolutions of unknown objects that were received from a local means of analyzing unknown objects and associated with a local means of analyzing unknown objects; said local means for analyzing unknown objects, designed to detect unknown objects necessary for comparison with known objects.

В одном из вариантов реализации объектом является файл.In one embodiment, the object is a file.

В еще одном из вариантов реализации система дополнительно содержит средство обработки неизвестных объектов, предназначенное для получения от локального средства сравнения сверток и локального средства анализа неизвестных объектов информации о неизвестных объектах, которые были определены как похожие на известные объекты.In yet another embodiment, the system further comprises means for processing unknown objects, designed to obtain information from unknown objects that have been identified as similar to known objects from the local means for comparing convolutions and the local means for analyzing unknown objects.

В одном из частных вариантов реализации средство хранения коллекции известных объектов представляет собой базу данных известных вредоносных программ.In one particular embodiment, the means of storing a collection of known objects is a database of known malicious programs.

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

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

Фиг.1-5 показывают графическое отображение исполняемых файлов.Figures 1-5 show a graphical display of executable files.

Фиг.6 иллюстрирует гистограмму свертки, которая представлена в графическом виде на фиг.2.Fig.6 illustrates a histogram of convolution, which is presented in graphical form in Fig.2.

Фиг.7 иллюстрирует сравнение в виде гистограммы для сверток, которые графически представлены на фиг.4А и 4Б.Fig.7 illustrates a comparison in the form of a histogram for convolutions, which are graphically presented in figa and 4B.

Фиг.8 иллюстрирует сравнение в виде гистограммы для сверток, которые графически представлены на фиг.4А и 5.Fig. 8 illustrates a histogram comparison for convolutions that are graphically represented in Figs. 4A and 5.

Фиг.9 показывает пример файла, чья свертка не подходит для предложенного сравнения.Fig.9 shows an example of a file whose convolution is not suitable for the proposed comparison.

Фиг.10 раскрывает использование сверток для нахождения новых вариантов уже известных объектов.Figure 10 discloses the use of convolutions to find new variants of already known objects.

Фиг.11 иллюстрирует примерную систему настоящей полезной модели.11 illustrates an exemplary system of the present utility model.

Фиг.12 иллюстрирует способ подсчета свертки.12 illustrates a convolution counting method.

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

Объекты и признаки настоящей полезной модели, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако, настоящая полезная модель не ограничивается примерными вариантами осуществления, раскрытыми ниже, она может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания полезной модели, которая определяется только в объеме приложенной формулы.The objects and features of the present utility model, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present utility model is not limited to the exemplary embodiments disclosed below, it may be embodied in various forms. The above description is intended to help a specialist in the field of technology for a comprehensive understanding of a utility model, which is determined only in the scope of the attached formula.

В дальнейшем в описании будет идти речь про сравнение в первую очередь объектов, связанных с антивирусным анализом, но стоит отметить, что рамки настоящей полезной модели этим не ограничиваются и можно использовать предложенную систему и для сравнения объектов и файлов других типов, например, для сравнения графических изображений.In the future, the description will focus on comparing primarily objects related to antivirus analysis, but it is worth noting that the scope of this useful model is not limited to this and you can use the proposed system to compare objects and files of other types, for example, to compare graphic images.

Для того чтобы в дальнейшем лучше понять используемый в работе предложенной системы подход, можно рассмотреть графическое представление нескольких примерных файлов. На фиг.1 представлено подобное представление (растровое изображение) исполняемого файла file1. На данном изображении каждый байт представлен в виде пикселя, при этом интенсивность каждого пикселя соответствует значению байта, т.е. черный цвет соответствует 0, а белый соответствует 255. Таким образом, файл размером 10000 байт будет представлен в виде квадрата 100×100, файл размером 40000 байт будет представлен в виде квадрата 200×200 и т.д.In order to further better understand the approach used in the work of the proposed system, we can consider a graphical representation of several sample files. Figure 1 presents a similar representation (bitmap) of the executable file1. In this image, each byte is represented as a pixel, while the intensity of each pixel corresponds to the byte value, i.e. black corresponds to 0, and white corresponds to 255. Thus, a file of size 10,000 bytes will be represented as a square of 100 × 100, a file of size 40,000 bytes will be represented as a square of 200 × 200, etc.

В антивирусной индустрии было замечено, что большинство изменений во вредоносных файлах, которые используются для сокрытия вредоносного функционала, будет отображено в виде совсем небольших изменений на изображениях, подобных фиг.1. Особенно это актуально для различных семейств вредоносных программ, которые имеют схожий функционал и их различия в графическом виде совсем малозаметны.In the anti-virus industry, it has been noticed that most of the changes in malicious files that are used to hide malicious functionality will be displayed as very small changes in images like Figure 1. This is especially true for various families of malicious programs that have similar functionality and their differences in graphical form are hardly noticeable.

На фиг.2 изображен другой пример подобного представления, в данном случае для файла file2, который используется программой-планировщиком. Видно, что структура этого файла отличается от file1, который отображен на фиг.1, и отличия видны невооруженным взглядом. File3, который отображен на фиг.3 также иллюстрирует совершенно другое представление файла, что позволяет сделать вывод об отличии его функционала от file1 и file2.Figure 2 shows another example of a similar representation, in this case for file2, which is used by the scheduler. It is seen that the structure of this file is different from file1, which is displayed in figure 1, and the differences are visible to the naked eye. File3, which is shown in figure 3 also illustrates a completely different representation of the file, which allows us to conclude that its functionality differs from file1 and file2.

Заметим, что различные способы компиляции для одного и того же файла, могут привести к различным представлениям этого файла, что можно видеть на фиг.4А и 4Б для файла file4. В данном случае фиг.4Б иллюстрирует file4 в котором был изменен порядок работы некоторых функций. Также отметим фиг.5, на которой также изображено представление file4, но который был скомпилирован в режиме отладки. Можно также видеть разницу между фиг.4А и фиг.5. Это показывает, что небольшие и нефункциональные изменения файла не несут серьезных изменений для его конечной структуры.Note that different compilation methods for the same file can lead to different representations of this file, which can be seen in FIGS. 4A and 4B for file4. In this case, FIG. 4B illustrates file4 in which the order of operation of some functions has been changed. Also note FIG. 5, which also shows the representation of file4, but which was compiled in debug mode. You can also see the difference between figa and fig.5. This shows that small and non-functional changes to the file do not bring major changes to its final structure.

Можно видеть, что сравнение подобных представлений в виде изображений, таких как на фиг.1-5, достаточно тяжело воспринимается человеком, хотя и удается различить разницу. Подобный подход был представлен исключительно для иллюстрации, так как автоматический способ обнаружения разницы между файлами не нуждается в формировании графического отображения файлов, а работает с исходными данными. Подход представления файлов (и вообще объектов) в виде двухмерного растрового изображения хорошо подходит для описания отличий между файлами. Конечной задачей является подсчет степени отличия одного файла от другого и подобный подход может включать создание графическое отображения в виде гистограммы, хотя следует понимать, что и в данном случае гистограммы являются лишь иллюстрацией.You can see that the comparison of such representations in the form of images, such as in FIGS. 1-5, is quite difficult for a person to perceive, although it is possible to distinguish the difference. This approach was presented solely for illustration, since the automatic way to detect the difference between the files does not need to form a graphical display of the files, but works with the source data. The approach of representing files (and generally objects) as a two-dimensional raster image is well suited to describe the differences between files. The ultimate goal is to calculate the degree of difference between one file and another, and a similar approach may include creating a graphical display in the form of a histogram, although it should be understood that in this case, the histograms are only an illustration.

Рассмотрим файлы, представленные на фиг.4А и 4Б. Каждое такое изображение может быть разделено на некоторое число N (например, в данном случае N=100) горизонтальных линий. Каждая линия соответствует определенной части файла. Если, допустим, изображение имеет размер 100×100 (т.е. это отображение файла размером 100×100=10,000 байт), тогда каждая горизонтальная линия будет сформирована из 100 пикселей. Далее для каждой линии может быть подсчитано среднее значение для всех значений байт в этой линии, альтернативно может быть подсчитана и сумма всех значения байт в линии и как итог, для каждого файла можно получить набор из N значений. Заметим, что если файл не делится нацело на N, то можно добавить дополнительные байты заполненные нулями. В случае больших файлов (например, размером 40000 байт), первая горизонтальная линия будет сформирована 2 рядами пикселей. Остальные вычисления остаются теми же самыми.Consider the files shown in figa and 4B. Each such image can be divided into a certain number N (for example, in this case N = 100) of horizontal lines. Each line corresponds to a specific part of the file. If, for example, an image has a size of 100 × 100 (that is, it is a file mapping of 100 × 100 = 10,000 bytes in size), then each horizontal line will be formed from 100 pixels. Further, for each line, the average value for all bytes in this line can be calculated, alternatively, the sum of all bytes in the line can be calculated, and as a result, for each file you can get a set of N values. Note that if the file is not completely divided by N, then you can add additional bytes filled with zeros. In the case of large files (for example, 40,000 bytes), the first horizontal line will be formed by 2 rows of pixels. The rest of the calculations remain the same.

Таким образом, для изображения может быть сформирована гистограмма, каждый вертикальный столбец которой соответствует каждой линии. Пример гистограммы для изображения на фиг.3 приведен на фиг.6. Соответственно, можно сформировать гистограммы для различных изображений (например, для изображений на фиг.4А и 4Б) и затем наложить одну гистограмму на другую для показательного сравнения.Thus, a histogram can be generated for the image, each vertical column of which corresponds to each line. An example of a histogram for the image in figure 3 is shown in figure 6. Accordingly, it is possible to form histograms for various images (for example, for the images in FIGS. 4A and 4B) and then superimpose one histogram onto another for illustrative comparison.

На фиг.7 изображено наложение двух сигнатур для изображений на фиг.4А и 4Б, на котором хорошо видно, что отличие очень незначительное и заключается в небольшом участке А на фиг.7, которое отображено немного более подробно. Таким образом, можно заключить, что если файл, отображенный на фиг.4А, является вредоносным, то можно утверждать, что файл, отображенный на фиг.4Б, также является вредоносным из-за большого уровня сходства между ними. С другой стороны, при сравнении файлов, отображенных на фиг.4А и 5, сравнение которых показано на фиг.8, можно видеть, что файлы сильно отличаются, так как между значениями для этих файлов достаточно большая разница.FIG. 7 shows an overlap of two image signatures in FIGS. 4A and 4B, which clearly shows that the difference is very slight and lies in a small area A in FIG. 7, which is displayed in a little more detail. Thus, it can be concluded that if the file displayed in FIG. 4A is malicious, then it can be argued that the file displayed in FIG. 4B is also malicious due to the high level of similarity between them. On the other hand, when comparing the files displayed in FIGS. 4A and 5, the comparison of which is shown in FIG. 8, it can be seen that the files are very different, since there is a big difference between the values for these files.

Описанный выше подход отличается от обычных методов сравнения файлов, которые основаны на использовании хешей и контрольных сумм. При вычислении подобных значений даже совсем небольшое изменение файла может привести к тому, что в итоге получится совершенно другое значение и даже совсем похожие по функционалу файлы будут иметь абсолютно разные значения хешей или контрольных сумм. В то же время настоящая система позволяет решить задачу нахождения похожих файлов, например, различные вариации зловредных программ.The approach described above differs from conventional file comparison methods, which are based on the use of hashes and checksums. When calculating such values, even a very small change in the file can lead to the result that a completely different value will be obtained and even files very similar in functionality will have completely different values of hashes or checksums. At the same time, the present system allows us to solve the problem of finding similar files, for example, various variations of malicious programs.

В настоящей полезной модели также предусмотрена собственная функция, которая вычисляет характеристическое значение для файла, в нашем случае это "свертка" (в дальнейшем будем употреблять это слово без кавычек). Сверткой является N-мерный вектор или последовательность из N байт (или слов или двойных слов), графическое отображение которого было дано выше в примере на фиг.6. Значение каждого байта в свертке является высотой соответствующего вертикального столбца в гистограмме. Соответственно, остается вопрос вычисления свертки таким образом, чтобы она точно отражала изменения в файле, но при этом была стабильной по отношению к совсем незначительным изменениям (т.е. удалось бы избежать минусов, характерных при вычислении хешей или контрольных сумм).This utility model also has its own function that calculates the characteristic value for a file, in our case it is a “convolution” (in the future we will use this word without quotes). A convolution is an N-dimensional vector or a sequence of N bytes (or words or double words), the graphic representation of which was given above in the example in FIG. 6. The value of each byte in the convolution is the height of the corresponding vertical column in the histogram. Accordingly, the question remains of calculating the convolution in such a way that it accurately reflects the changes in the file, but at the same time it is stable with respect to very minor changes (i.e., it would be possible to avoid the minuses characteristic when calculating hashes or checksums).

Определим N, как длину свертки, для дальнейшего обсуждения предложим значение N=100. Было также экспериментально установлено, что значения N, которые отличаются от 100 на порядок и более, характеризуются большим количеством ошибок первого и второго рода. Также стоит отметить, что при вычислении свертки требуется решить задачу, так называемых, коллизий, т.е. ситуаций, когда функция дает одно и то же значение для различных входных данных. Еще один минус вышеупомянутых методов вычисления хешей и контрольных сумм заключается в их ресурсоемкости, что может привести к большой нагрузке, например, при определении похожести между сотнями тысяч или миллионов образцов вредоносных программ, которые ежедневно получают антивирусные компании.We define N as the length of the convolution; for further discussion, we suggest the value N = 100. It was also experimentally established that the values of N, which differ from 100 by an order of magnitude or more, are characterized by a large number of errors of the first and second kind. It is also worth noting that when calculating the convolution, it is necessary to solve the problem of so-called collisions, i.e. situations when the function gives the same value for different input data. Another drawback of the aforementioned methods for computing hashes and checksums is their resource consumption, which can lead to a heavy load, for example, when determining the similarity between hundreds of thousands or millions of malware samples that anti-virus companies receive daily.

В настоящей полезной модели для решения всех вышеперечисленных недостатков предлагается использовать следующий алгоритм вычисления свертки:In this utility model, to solve all of the above drawbacks, it is proposed to use the following convolution calculation algorithm:

а) выбирается степень разбиения, например, по байтам, по словам, по двойным словам и т.д.a) the degree of partitioning is selected, for example, bytes, words, double words, etc.

б) инициализируется набор байт А состоящий из нулей. Размер набора составляет N.b) a set of bytes A consisting of zeros is initialized. The size of the kit is N.

в) файл делится на N частей, после чего выделяется первая часть (начало файла)c) the file is divided into N parts, after which the first part (the beginning of the file) is highlighted

г) вычисляется среднее значение байт (или слов, или двойных слов - в зависимости от степени разбиения) для первой частиd) the average value of bytes (or words, or double words - depending on the degree of partitioning) is calculated for the first part

д) предыдущий шаг повторяется для всех остальных частей файлаe) the previous step is repeated for all other parts of the file

е) полученный набор А теперь представляет собой свертку файла и он сохраняется в базу данныхf) the resulting set And now is a convolution of the file and it is saved in the database

С помощью псевдокода можно описать этот алгоритм следующим образом:Using pseudo-code, you can describe this algorithm as follows:

int blocksize=filesize/Nint blocksize = filesize / N

for i=0 to N-lfor i = 0 to N-l

furl[i]=average(file[i*blocksize], …, file[i*blocksize + blocksize - 1])furl [i] = average (file [i * blocksize], ..., file [i * blocksize + blocksize - 1])

Фиг.12 иллюстрирует способ подсчета свертки. После того как на этапе 1202 были выбраны оптимальные параметры для числа N, на этапе 1204 происходит определение размера файла для которого на этапе 1206 произойдет разбиение файла на N частей. Затем на этапе 1208 начинается перебор всех частей файла, для каждой из которых на этапе 1214 будет происходить вычисление части свертки. В том случае, если части файла закончились, то на этапе 1210 свертка считается полученной и будет записана в базу данных на этапе 1212.12 illustrates a convolution counting method. After the optimal parameters for the number N were selected at step 1202, at step 1204, the file size is determined for which at step 1206 the file will be split into N parts. Then, at step 1208, enumeration of all parts of the file begins, for each of which, at step 1214, a part of the convolution will be calculated. In that case, if the parts of the file have ended, then at step 1210 the convolution is considered received and will be written to the database at step 1212.

Теперь приведем уравнение, которое позволяет вычислить разность между свертками:Now we give an equation that allows us to calculate the difference between convolutions:

где ni это среднее значение байта в i-ой части анализируемого объекта (например, файла), N является длиной свертки, Δni является разностью между i-ми элементами сверток, KA представляет общую разность объектов (точнее, вес разницы), в то время как Kn представляет уже коэффициент для нормализации этой разницы, а M является максимальным значением свертки (например, при выборе байта в качестве степени разбиения M будет равно 255). Таким образом, Kn показывает, насколько разными являются объекты. И чем Kn меньше, тем более объекты схожи.where n i is the average byte value in the i-th part of the analyzed object (for example, a file), N is the convolution length, Δn i is the difference between the i-elements of convolution, K A represents the total difference of the objects (more precisely, the weight of the difference), in while K n already represents a coefficient for normalizing this difference, and M is the maximum convolution value (for example, when choosing a byte as the degree of partitioning, M will be equal to 255). Thus, K n shows how different the objects are. And the smaller K n , the more objects are similar.

Рассмотрим более подробно количество разностей между свертками. Стоит отметить, что разность между двумя элементами сверток с Δ=1 и разность в одном элементе свертки с Δ=2 означают два разных типа похожести между файлами. Вообще, максимально возможная разность между файлами может быть определена как М*N и может быть использована в уравнении следующим образом:Let us consider in more detail the number of differences between convolutions. It is worth noting that the difference between two convolution elements with Δ = 1 and the difference in one convolution element with Δ = 2 mean two different types of similarity between files. In general, the maximum possible difference between files can be defined as M * N and can be used in the equation as follows:

где D является количество разностей в свертках (при выборе байта в качестве степени разбиения, D будет также равно количество ненулевых |Δni|). Kn является числом, которое лежит в пределах от 0 до 1. Этот альтернативный способ подсчета учитывает разные типы разностей, которые были приведены ранее.where D is the number of convolution differences (when choosing a byte as the degree of partitioning, D will also equal the number of nonzero | Δn i |). K n is a number that ranges from 0 to 1. This alternative method of counting takes into account the different types of differences that were given earlier.

Следовательно, если файлы имеют, например, совершенно разные заголовки, но остальные данные у них идентичны, то в таком случае они будут считаться похожими. Однако если файлы имеют отличия во всех частях, то они не будут похожими, так как большая часть значений в свертке отличается, хотя и очень близка между собой. Можно сделать вывод, что описанный выше способ, основанный на свертках, будет плохо работать с зашифрованными или архивными файлами, которые имеют случайную или псевдослучайную структуру, как, например, на фиг.9. Такую же проблему представляют файлы, заполненные одинаковыми значениями (например, нулями) на 95-100%.Therefore, if the files have, for example, completely different headers, but the rest of the data is identical, then in this case they will be considered similar. However, if the files have differences in all parts, then they will not be similar, since most of the values in the convolution are different, although they are very close to each other. It can be concluded that the convolution-based method described above will not work well with encrypted or archive files that have a random or pseudo-random structure, such as, for example, in FIG. 9. The same problem is represented by files filled with the same values (for example, zeros) by 95-100%.

Таким образом, выбрав две свертки для сравнения можно использовать различные метрики, например, просуммировать все разности для сверток, а потом использовать различные методы нормализации (корреляции) получившегося значения для того, чтобы подсчитать общую разность между свертками. Можно добавлять некоторое значение для всех разностей, для того, чтобы считать файлы похожими при небольшом расхождении в 2-3%. Другой способ заключается в подсчете среднеквадратичного размера разностей для сверток.Thus, choosing two convolutions for comparison, you can use different metrics, for example, sum up all the differences for convolutions, and then use different methods of normalizing (correlating) the resulting value in order to calculate the total difference between convolutions. You can add some value for all the differences, in order to consider the files similar with a slight difference of 2-3%. Another way is to calculate the mean square size of the differences for the convolution.

Стоит также отметить, что для оптимизации процесса лучше сравнивать файлы примерно равного размера (с точностью до 50% для несжатых или незашифрованных файлов) для упрощения сравнения сверток этих файлов.It is also worth noting that to optimize the process, it is better to compare files of approximately equal size (accurate to 50% for uncompressed or unencrypted files) to simplify the comparison of convolutions of these files.

Фиг.10 раскрывает использование сверток для нахождения новых вариантов уже известных объектов, в частности, для обнаружения новых вариантов вредоносных программ. На этапе 1002 происходит инициализация процесса обнаружения похожих файлов, после чего происходит загрузка известной коллекции файлов на этапе 1004, например, новых версий вредоносных программ. На этапе 1006 для каждого из этих файлов подсчитывается свертка, которая затем сохраняется в базе данных на этапе 1008. На этапе 1010 база данных сверток будет обновлена, после чего можно начинать процесс проверки (например, файловой системы) на наличие необнаруженных вредоносных программ на этапе 1012. На этапе 1014 проверяется, проверены ли все файлы и если таковых не осталось, то сам процесс заканчивается на этапе 1016. На этапе 1018 происходит подсчет свертки для файла, после чего на этапе 1020 в базе данных сверток происходит поиск ближайшей свертки и выполняется подсчет их разности. Если на этапе 1022 делается заключение, что разность лежит ниже порога риска (т.е. файлы не являются идентичными), то процесс продолжается со следующими файлами. В том случае если порог был превышен, то на этапе 1024 файл будет помещен в карантин и на этапе 1026 отправлен на дальнейший анализ, как потенциально вредоносная программа. Заметим, что для антивирусной проверки порог (т.е. значение Kn) лежит в диапазоне 0.01-0.04.Figure 10 discloses the use of convolution to find new variants of already known objects, in particular, to detect new variants of malicious programs. At step 1002, the process of detecting similar files is initialized, after which a known collection of files is downloaded at step 1004, for example, new versions of malicious programs. At step 1006, a convolution is calculated for each of these files, which is then stored in the database at step 1008. At step 1010, the convolution database will be updated, after which you can begin the process of checking (for example, the file system) for undetected malware at step 1012 At step 1014, it is checked whether all files are checked and if there are none, then the process ends at step 1016. At step 1018, the convolution for the file is calculated, and then at step 1020, the nearest convolution is searched in the convolution database and is satisfied count their difference. If at step 1022 it is concluded that the difference lies below the risk threshold (i.e., the files are not identical), then the process continues with the following files. If the threshold has been exceeded, then at step 1024 the file will be quarantined and at step 1026 sent for further analysis, as a potentially malicious program. Note that for anti-virus scanning, the threshold (i.e., the value of K n ) lies in the range 0.01–0.04.

На фиг.11 приведена примерная система настоящей полезной модели для одного из вариантов реализации. Использование сверток позволяет существенно ускорить процесс обнаружения похожих объектов. Коллекция 1102 известных объектов может находиться на стороне сервера любого крупного поставщика софтверных услуг - это может быть антивирусная компания, так и компания, предоставляющая различные сервисы по обнаружению похожих объектов, например, похожих изображений или текстовых файлов, что может быть очень актуально в сфере образования при обнаружении плагиата или похожих рефератов. Затем средство 1104 подсчета сверток подсчитывает свертки для объектов из этой коллекции (например, это можно делать периодически для новых объектов) и направляет данные средству 1106 обновления сверток, которое обновляет коллекцию 1108 сверток известных объектов. Заметим, что сами свертки занимают уже гораздо меньше места чем сами объекты, таким образом ими гораздо легче оперировать при их передаче на компьютеры пользователей, на которых установлено локальное средство 1110 обновления сверток, которое использует полученные данные для обновления локальной коллекции 1112 сверток известных объектов.Figure 11 shows an exemplary system of the present utility model for one embodiment. Using convolution can significantly accelerate the process of detecting similar objects. A collection of 1102 well-known objects can be located on the server side of any major software service provider — it can be an anti-virus company or a company that provides various services for the detection of similar objects, for example, similar images or text files, which can be very important in the field of education when detection of plagiarism or similar abstracts. Then, the convolution counter 1104 counts the convolution for objects from this collection (for example, this can be done periodically for new objects) and sends the data to the convolution update tool 1106, which updates the convolution collection 1108 of known objects. Note that the convolutions themselves already occupy much less space than the objects themselves, so it is much easier to operate when they are transferred to users' computers on which the local convolution update tool 1110 is installed, which uses the obtained data to update the local collection of 1112 convolutions of known objects.

В то же время локальное средство 1114 анализа неизвестных объектов (это может быть как средство антивирусной проверки, так и любой другой файловый фильтр с заданными параметрами) обнаруживает неизвестные файлы, которые требуется подвергнуть сравнению. Для них затем подсчитываются свертки с помощью локального средства 1116 подсчета сверток, которые передаются на локальное средство 1118 сравнения сверток. На основании сравнений локальное средство 1118 сравнения сверток делает вывод о похожести неизвестных объектов с уже известными. Дополнительно неизвестные объекты, которые являются схожими с уже известными, могут быть отправлены средству 1120 обработки неизвестных объектов (например, с целью дополнительного антивирусного анализа в случае антивирусной компании). Стоит отметить, что вышеприведенные локальные средства предпочтительно находятся на компьютерах пользователей, в то время как остальные средства находятся на стороне компании-поставщика услуг с использованием коллекций известных объектов.At the same time, the local tool 1114 for analyzing unknown objects (this can be either an anti-virus scan tool or any other file filter with the specified parameters) detects unknown files that need to be compared. For them, convolutions are then counted using the local convolution counting means 1116, which are transmitted to the local convolution comparing means 1118. Based on comparisons, the local convolution comparison tool 1118 concludes that the unknown objects are similar to those already known. Additionally, unknown objects that are similar to those already known can be sent to the tool 1120 for processing unknown objects (for example, for the purpose of additional antivirus analysis in the case of an antivirus company). It is worth noting that the above local funds are preferably located on users' computers, while the remaining funds are on the side of the service provider company using collections of known objects.

Коллекция 1102 известных объектов, коллекция 1108 сверток известных объектов и локальная коллекция 1112 сверток известных объектов могут быть выполнены в виде таких систем управления базами данных (СУБД), как MySQL, PostgreSQL, Firebird, DB2. По использованию модели данных подобные системы могут быть иерархическими, сетевыми, реляционными и объектно-ориентированными. Также подобные системы могут иметь различный доступ к самой базе данных в виде файл-серверного, клиент-серверного или встраиваемого типа доступа.A collection of 1102 known objects, a collection of 1108 convolutions of known objects, and a local collection of 1112 convolutions of known objects can be made in the form of such database management systems (DBMS) as MySQL, PostgreSQL, Firebird, DB2. By using a data model, such systems can be hierarchical, network, relational, and object-oriented. Also, such systems can have different access to the database itself in the form of a file-server, client-server or embedded access type.

Средство 1104 подсчета сверток, также как и локальное средство 1116 подсчета сверток работают по аналогии с хеш-функциями, такими как SHA1 или MD5, которые производят преобразование входного массива данных произвольной длины в выходную битовую строку. Использование систем, которые производят подсчет хеш-сумм описано в таких патентах как JP 4148372, JP 11306194. Основное отличие подсчета сверток заключается в том, что сама свертка в итоге представляется в виде N-мерного вектора или последовательности из N байт. Как уже упоминалось при вычислении хеш-сумм даже совсем небольшое изменение файла может привести к тому, что в итоге получится совершенно другое значение и даже совсем похожие по функционалу файлы будут иметь абсолютно разные значения хешей или контрольных сумм. В то же время использование сверток позволяет решить задачу нахождения похожих файлов, например, различные вариации зловредных программ. Средство 1106 обновления сверток, также как и локальное средство 1110 обновления сверток могут быть выполнены в виде средств обновления программ в одном из вариантов реализации. Средства обновления программ описаны в таких патентах и заявках как US 2003070087, JP 2003015926, JP 2002318722, и US 7069452. Одним из вариантов обновления может служить утилита patch (http://ru.wikipedia.org/wiki/Patch_(UNIX)), которая предназначена для переноса правок (изменений) между разными версиями текстовых файлов. Как правило, обновление осуществляется с помощью файлов (так называемых "патчей" или "заплаток"), которые используются для переноса различий между версиями файлов. Свертки могут быть сохранены в виде файлов определенного формата, что позволяет использовать стандартные средства обновления.The convolution counter 1104, as well as the local convolution counter 1116, works similarly to hash functions, such as SHA1 or MD5, which convert an input data array of arbitrary length to an output bit string. The use of systems that calculate hash sums is described in such patents as JP 4148372, JP 11306194. The main difference between the convolution counting is that the convolution itself is ultimately represented as an N-dimensional vector or a sequence of N bytes. As already mentioned in the calculation of hash sums, even a very small change to the file can lead to the result that a completely different value will be obtained and even files very similar in functionality will have completely different values of hashes or checksums. At the same time, the use of convolutions allows us to solve the problem of finding similar files, for example, various variations of malicious programs. The convolution update tool 1106, as well as the local convolution update tool 1110, may be implemented as software update tools in one embodiment. Software update tools are described in patents and applications such as US 2003070087, JP 2003015926, JP 2002318722, and US 7069452. One of the update options is the patch utility (http://ru.wikipedia.org/wiki/Patch_(UNIX)), which is designed to transfer edits (changes) between different versions of text files. As a rule, updating is carried out using files (the so-called "patches" or "patches"), which are used to transfer differences between file versions. Convolutions can be saved as files of a certain format, which allows the use of standard updating tools.

Локальное средство 1118 сравнения сверток может быть выполнено в виде компаратора на основе логических элементов в одном из вариантов реализации. Для более точного подсчета схожести сверток можно использовать также средства сравнения, которые описаны в таких патентах как ЕР 1560446 и JP 11039194.The local convolution comparison tool 1118 may be implemented as a comparator based on logic elements in one embodiment. For a more accurate calculation of the similarity of convolutions, you can also use the comparison tools that are described in such patents as EP 1560446 and JP 11039194.

Локальное средство 1114 анализа неизвестных объектов, также как и средство 1120 обработки неизвестных объектов могут быть представлены в виде одного из средств антивирусной проверки и анализа. В список таких средств входят эвристический анализ (http://en.wikipedia.org/wiki/Heuristic_analysis), применение эмулятора (http://en.wikipedia.org/wiki/Emulator), запуск программ в защищенной среде (так называемая "песочница", http://en.wikipedia.org/wiki/Sandbox_(computer_security)), использование средств контроля программ (http://en.wikipedia.org/wiki/Host-based_intrusion-prevention_system#Host-based) и т.д. Все вышеприведенные системы анализа позволяют проанализировать неизвестный объект (например, файл) с целью определения его возможной вредоносной сущности. Результатом работы может быть заключение о вредоносности неизвестного объекта. В другом случае неизвестный объект может быть определен как, например, законно используемая программа.Local tool 1114 for analysis of unknown objects, as well as tool 1120 for processing unknown objects can be represented as one of the means of anti-virus scanning and analysis. The list of such tools includes heuristic analysis (http://en.wikipedia.org/wiki/Heuristic_analysis), the use of an emulator (http://en.wikipedia.org/wiki/Emulator), running programs in a secure environment (the so-called " sandbox ", http://en.wikipedia.org/wiki/Sandbox_(computer_security)), the use of program controls (http://en.wikipedia.org/wiki/Host-based_intrusion-prevention_system#Host-based), etc. .d. All the above analysis systems allow you to analyze an unknown object (for example, a file) in order to determine its possible malicious essence. The result of the work may be a conclusion about the harmfulness of an unknown object. In another case, an unknown object can be defined as, for example, a legitimately used program.

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

Claims (4)

1. Система для обнаружения похожих объектов при сравнении неизвестных объектов с уже известными объектами, которая включает1. A system for detecting similar objects when comparing unknown objects with already known objects, which includes а) средство хранения коллекции известных объектов, предназначенное для хранения известных объектов и связанное со средством подсчета сверток;a) a means of storing a collection of known objects designed to store known objects and associated with a means of counting convolutions; б) средство подсчета сверток, предназначенное для подсчета сверток известных объектов, также связанное с средством обновления сверток;b) a means of counting convolutions, designed to count convolutions of known objects, also associated with a means of updating the convolution; в) средство обновления сверток, связанное со средством хранения коллекции сверток известных объектов и предназначенное для обновления сверток известных объектов в средстве хранения коллекции сверток известных объектов;c) a convolution update tool associated with a convolution collection tool of known objects storage means for updating convolution of known objects in a convolution collection tool of known objects; г) упомянутое средство хранения коллекции сверток известных объектов, предназначенное для хранения сверток известных объектов и связанное с локальным средством обновления сверток;d) said means for storing a collection of convolutions of known objects, intended for storing convolutions of known objects and associated with a local means of updating the convolution; д) упомянутое локальное средство обновления сверток, предназначенное для обновления сверток известных объектов в локальной коллекции сверток известных объектов, связанное с локальным средством хранения коллекции сверток известных объектов;e) said local convolution updating tool for updating convolutions of known objects in a local convolution collection of known objects associated with a local convolution collection tool for known objects; е) упомянутое локальное средство хранения коллекции сверток известных объектов, предназначенное для хранения сверток известных объектов, связанное с локальным средством сравнения сверток;e) said local means for storing convolution collections of known objects, intended for storing convolutions of known objects, associated with a local means for comparing convolutions; ж) упомянутое локальное средство сравнения сверток, предназначенное для обнаружения похожих объектов путем сравнения сверток известных объектов из локального средства хранения коллекции сверток известных объектов и сверток неизвестных объектов от локального средства подсчета сверток, связанное с локальным средством подсчета сверток;g) said local convolution comparison tool for detecting similar objects by comparing convolutions of known objects from a local means of storing a collection of convolutions of known objects and convolutions of unknown objects from a local convolution counter associated with the local convolution counter; з) упомянутое локальное средство подсчета сверток, предназначенное для подсчета сверток неизвестных объектов, которые были получены от локального средства анализа неизвестных объектов, и связанное с локальным средством анализа неизвестных объектов;h) the said local means of counting convolutions, designed to count convolutions of unknown objects that were received from the local means of analysis of unknown objects, and associated with the local means of analysis of unknown objects; и) упомянутое локальное средство анализа неизвестных объектов, предназначенное для обнаружения неизвестных объектов, необходимых для сравнения с известными объектами.i) said local means for analyzing unknown objects, designed to detect unknown objects necessary for comparison with known objects. 2. Система по п.1, в которой объектом является файл.2. The system of claim 1, wherein the object is a file. 3. Система по п.1, которая дополнительно содержит средство обработки неизвестных объектов, предназначенное для получения от локального средства сравнения сверток и локального средства анализа неизвестных объектов информации о неизвестных объектах, которые были определены как похожие на известные объекты.3. The system according to claim 1, which further comprises means for processing unknown objects, designed to receive information from unknown objects that were identified as similar to known objects from the local means of comparing convolutions and the local means of analyzing unknown objects. 4. Система по п.1, в которой средство хранения коллекции известных объектов представляет собой базу данных известных вредоносных программ.
Figure 00000001
4. The system of claim 1, wherein the means for storing a collection of known objects is a database of known malicious programs.
Figure 00000001
RU2010107430/08U 2010-03-02 2010-03-02 SYSTEM FOR QUICK DETECTION OF SIMILAR OBJECTS USING CONVOLUTIONS RU101223U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010107430/08U RU101223U1 (en) 2010-03-02 2010-03-02 SYSTEM FOR QUICK DETECTION OF SIMILAR OBJECTS USING CONVOLUTIONS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010107430/08U RU101223U1 (en) 2010-03-02 2010-03-02 SYSTEM FOR QUICK DETECTION OF SIMILAR OBJECTS USING CONVOLUTIONS

Publications (1)

Publication Number Publication Date
RU101223U1 true RU101223U1 (en) 2011-01-10

Family

ID=44055129

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010107430/08U RU101223U1 (en) 2010-03-02 2010-03-02 SYSTEM FOR QUICK DETECTION OF SIMILAR OBJECTS USING CONVOLUTIONS

Country Status (1)

Country Link
RU (1) RU101223U1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8955120B2 (en) 2013-06-28 2015-02-10 Kaspersky Lab Zao Flexible fingerprint for detection of malware
RU2614561C1 (en) * 2015-12-18 2017-03-28 Закрытое акционерное общество "Лаборатория Касперского" System and method of similar files determining
RU2654151C1 (en) * 2017-08-10 2018-05-16 Акционерное общество "Лаборатория Касперского" System and method of detection of malicious files using a trained malware detection pattern

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8955120B2 (en) 2013-06-28 2015-02-10 Kaspersky Lab Zao Flexible fingerprint for detection of malware
RU2580036C2 (en) * 2013-06-28 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" System and method of making flexible convolution for malware detection
RU2614561C1 (en) * 2015-12-18 2017-03-28 Закрытое акционерное общество "Лаборатория Касперского" System and method of similar files determining
RU2654151C1 (en) * 2017-08-10 2018-05-16 Акционерное общество "Лаборатория Касперского" System and method of detection of malicious files using a trained malware detection pattern

Similar Documents

Publication Publication Date Title
Sebastián et al. Avclass: A tool for massive malware labeling
CN108763928B (en) Open source software vulnerability analysis method and device and storage medium
Alrabaee et al. Fossil: a resilient and efficient system for identifying foss functions in malware binaries
US9876812B1 (en) Automatic malware signature extraction from runtime information
Deshotels et al. Droidlegacy: Automated familial classification of android malware
Crussell et al. Andarwin: Scalable detection of semantically similar android applications
US8352484B1 (en) Systems and methods for hashing executable files
US20060037080A1 (en) System and method for detecting malicious executable code
Alazab et al. Malware detection based on structural and behavioural features of API calls
US20070239993A1 (en) System and method for comparing similarity of computer programs
US20180211140A1 (en) Dictionary Based Deduplication of Training Set Samples for Machine Learning Based Computer Threat Analysis
US8621634B2 (en) Malware detection based on a predetermined criterion
CN109983464B (en) Detecting malicious scripts
Liu et al. Vfdetect: A vulnerable code clone detection system based on vulnerability fingerprint
US20180285565A1 (en) Malware detection in applications based on presence of computer generated strings
Sun et al. An opcode sequences analysis method for unknown malware detection
CN106709336A (en) Method and apparatus for identifying malware
Huang et al. Android malware development on public malware scanning platforms: A large-scale data-driven study
US11916937B2 (en) System and method for information gain for malware detection
Dietrich et al. Exploiting visual appearance to cluster and detect rogue software
RU101223U1 (en) SYSTEM FOR QUICK DETECTION OF SIMILAR OBJECTS USING CONVOLUTIONS
WO2022100489A1 (en) System, method and apparatus for malicious software detection
AU2012203538A1 (en) Systems and methods for inter-object pattern matching
Kalysch et al. Tackling androids native library malware with robust, efficient and accurate similarity measures
Zhao et al. VULDEFF: vulnerability detection method based on function fingerprints and code differences