WO2021167483A1 - Способ и система выявления вредоносных файлов в неизолированной среде - Google Patents

Способ и система выявления вредоносных файлов в неизолированной среде Download PDF

Info

Publication number
WO2021167483A1
WO2021167483A1 PCT/RU2020/000089 RU2020000089W WO2021167483A1 WO 2021167483 A1 WO2021167483 A1 WO 2021167483A1 RU 2020000089 W RU2020000089 W RU 2020000089W WO 2021167483 A1 WO2021167483 A1 WO 2021167483A1
Authority
WO
WIPO (PCT)
Prior art keywords
executable file
file
computer
implemented method
data
Prior art date
Application number
PCT/RU2020/000089
Other languages
English (en)
French (fr)
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 EP20919950.4A priority Critical patent/EP3968197A4/en
Publication of WO2021167483A1 publication Critical patent/WO2021167483A1/ru
Priority to US17/586,010 priority patent/US20220164444A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • the present technical solution relates to the field of computing, in particular, to a computer-implemented method and system for detecting malicious files in a non-isolated environment.
  • This solution discloses a system for recognizing a file as malicious, which contains: a) a resource extraction tool designed to: extract resources from the analyzed file; passing the extracted resources to the rule generator and the rule finder; b) a means for forming rules, intended for: forming at least one rule that establishes a functional relationship between the resources obtained (hereinafter referred to as the rule), while the rule is formed by creating an artificial neural network from the obtained resources, where the nodes of the artificial neural network are the means for analyzing the obtained resources, and connections between nodes formed during the creation of a neural network indicate a functional relationship between the resources obtained; passing each generated rule to a rule comparison tool; c) a means for searching for rules, intended for: performing a search for at least one rule in the resource base of malicious files based on the obtained resources; passing each found rule to a rule comparison tool; d) a rule comparison tool intended for: calculating the degree of similarity
  • the proposed solution is aimed at eliminating the shortcomings of the current level of technology and differs from the previously known ones in that the proposed method based on static analysis occurs on a larger amount of data extracted from the file, since both the binary form of the executable file and the disassembled one are used to obtain them, except
  • the claimed solution uses an ensemble of classifiers, which serves to improve the forecasting efficiency in comparison with individual classifiers, and is also a less cumbersome solution than a neural network.
  • the technical problem to be solved by the claimed solution is the creation of a computer-implemented method and system for detecting malicious files in a non-isolated environment, which are described in independent claims. Additional embodiments of the present invention are presented in the dependent claims.
  • the technical result consists in improving the accuracy of detecting malicious files in a non-isolated environment.
  • the claimed result is achieved by implementing a computer-implemented method for detecting malicious files in a non-isolated environment, where the method comprises: a preparatory stage, at which: a collection of files is formed, which contains at least one malicious executable file and at least one non-malicious executable file; analyze at least one executable file, while: extract data from the binary and disassembled types of the executable file on the basis of which parameters are created for further training the classifier, and additionally, the statistical method determines the parameters characteristic of malicious files and / or vice versa, not harmful; and additionally extract the first and second flow graph; based on the obtained parameters, the first and second feature vectors are constructed; create an ensemble of classifiers from: the first trained classifier based on the first feature vector, the second trained classifier based on the second feature vector; a third classifier trained on the basis of the first flow graph, a fourth classifier trained on the basis of the second flow graph, and a decision priority is determined in advance for each classifier; working stage, which: get at
  • the first feature vector contains all the numerical parameters obtained during the analysis
  • the second vector contains all the string parameters obtained during the analysis
  • At least the following file properties are extracted: the first flow graph (Control Flow Graph), the second flow graph (Data Flow Graph), metadata (Metadata), an import table (Import Table), an export table ( Export table), entropy (Byte / Entropy Histogram).
  • At least the following parameters are extracted from at least one binary executable file:
  • the information extracted from the fields of at least one binary executable file contains at least: the number of sections in the file, the size of the headers, the size of the code, the presence digital signature, the presence of imported dlls and functions where these libraries were used, the name of the exported functions, data from the resource catalog, the version of the collector.
  • the entropy extracted from the fields of at least one binary executable file is calculated using the sliding window method, followed by a number of statistical measures to characterize the resulting vector of entropy measures.
  • extracted from the header of at least one binary executable file contain: the number of sections in the file, the size of the sections, the presence of a checksum, the size of the file, the time of creation, the version of the operating system, the version of the collector.
  • At least the following parameters are extracted from at least one disassembled executable file:
  • the frequency of occurrence of symbols extracted from at least one disassembled executable file is additionally determined, and the symbols can represent at least:
  • the ratio of the number of known registers extracted from at least one disassembled executable file to the number of unknown registers extracted from the disassembled file is additionally calculated.
  • the sections extracted from at least one disassembled executable file are predefined and are: .text, .data, .bss, .rdata, .edata, .idata, .rsrc, .tls and .reloc.
  • the metadata extracted from at least one disassembled executable file is the file size and the number of lines of code.
  • the analysis result can be binary or probabilistic.
  • the decisive priority of each of the ensemble of classifiers is determined on the basis of training on a test sample, and for the assessment at least: accuracy, completeness, F-measure are used.
  • a system for detecting malicious files in a non-isolated environment which contains the following modules: a data extraction module configured to extract data from at least one executable file; a computing device configured to implement the above method; output module.
  • FIG. 1 illustrates a system for detecting malicious files in a non-isolated environment.
  • FIG. 2 illustrates a computer-implemented method for detecting malicious files in a non-isolated environment.
  • FIG. 3 illustrates a flow diagram for parsing a file based on a control flow graph.
  • FIG. 4a illustrates an example for determining points in a program.
  • FIG. 4b illustrates an example for determining points in a program.
  • FIG. 5 illustrates an example of a general arrangement of a computing device.
  • the present invention is directed to providing a computer-implemented method and system for detecting malicious files in a non-isolated environment.
  • the claimed computer-implemented method for detecting malicious files in a non-isolated environment is carried out by means of a system for detecting malicious files in a non-isolated environment, shown in Fig. 1, which at least contains: a data extraction module configured to extract data from at least one executable file (S10), a computing device configured to implement a method for detecting malicious files in a non-isolated environment (S20), and an output module (S30).
  • a data extraction module configured to extract data from at least one executable file (S10)
  • a computing device configured to implement a method for detecting malicious files in a non-isolated environment (S20)
  • an output module S30
  • FIG. 2 illustrates a computer-implemented method for detecting malicious files in a non-isolated environment 100, which is carried out as follows.
  • 111 a collection of files is formed containing a large number of obviously malicious executable files and a comparable number of obviously non-malicious executable files.
  • the method goes to the stage at which both the binary and disassembled types of each executable file are analyzed to obtain a larger amount of data that will be used to make a decision about the harmfulness of the file.
  • each executable file of a binary type is analyzed, while during the analysis, by means of the data extraction module (S10), at least: data from the header of the executable file (PE-header), data from the import table (Import Table ), data from the Export table, N-grams bytes; information from the fields of the executable file; file section entropy; metadata; histograms of line length distribution.
  • PE-header data from the header of the executable file
  • Import Table import table
  • N-grams bytes information from the fields of the executable file
  • file section entropy file section entropy
  • metadata histograms of line length distribution.
  • data from the import table to indicate which external functions and from which modules are required by the executable file for normal operation
  • data from the export table defining the names and / or numbers of the exported functions with their position in the virtual memory of the process
  • metadata (Metadata) from the header of the executable file, for example, the number of sections in the file, creation time, processor type, operating system version, collector version, total section size, checksum
  • data from the import table to indicate which external functions and from which modules are required by the executable file for normal operation
  • data from the export table defining the names and / or numbers of the exported functions with their position in the virtual memory of the process
  • metadata (Metadata) from the header of the executable file for example, the number of sections in the file, creation time, processor type, operating system version, collector version, total section size, checksum
  • a histogram (Byte / Entropy Histogram), on the basis of which binary values of a two-dimensional histogram of byte
  • N-grams of bytes N-grams of bytes, and in this case, a sequence of n bytes extracted from the executable file is taken and each element of the byte sequence can have one of 256 values.
  • histograms of byte frequency are considered, which are presented in the form of vectors of length 256, which reflect the frequency of occurrence of each value.
  • Information from the fields of the executable file for example, the number of sections in the file; size of headers; code size; the presence of a digital signature; names of imported dlls and functions where these libraries were used; names of exported functions; data from the resource catalog; collector version; operating system version; processor type; the total size of the sections; check sum.
  • Entropy of file sections and the calculation of file entropy is used in static analysis to detect code obfuscation. It is also worth noting that malware is often transmitted in encrypted form, so the byte frequency is aligned, thereby increasing entropy.
  • the sliding window method can be used to represent the executable file in the form of a series of entropy measures.
  • Entropy of the window is calculated and after calculations in order to characterize this series, a number of statistical measures are considered, for example, such as: mathematical expectation, variance, quantile, percentile.
  • mathematical expectation, variance, quantile, percentile is considered, for example, if the entropy is close to 1, that is, the occurrence of different symbols is approximately the same, then the code is obfuscated and / or encrypted.
  • Histograms of string lengths and all ASCII strings are extracted from executable files and their lengths are fixed, since during this extraction a lot of "garbage" gets into the sample, then the use of the obtained strings as parameters is not entirely correct, therefore, in the described solution, histograms of the distribution of string lengths are used ...
  • step 113 the executable file is disassembled, and then, by means of the data extraction module, at least the following parameters are extracted from it for analysis.
  • symbols mean the frequency of occurrence of at least the following symbols: @ because they are specific to code that tries to bypass the detection system, for example by making indirect calls or loading a dynamic library.
  • Registers since most of the names of registers characterize their purpose, but in some malicious programs, to complicate the analysis, they are renamed. Therefore, in the described solution, it is believed that the frequency of using unknown registers can be useful for determining the degree of malware malware.
  • the following parameters are also introduced: the number of known registers, the number of unknown (renamed) registers, the ratio of the number of known to unknown registers.
  • Operational codes the most frequently used by malware, are detected in advance, and the frequency of their occurrence in the code itself is determined in advance. Since the list of all instructions is large enough, the most popular opcodes stored in the system's internal database are taken for analysis.
  • Section of the PE executable file which consists of several predefined sections such as .text, .data, .bss, .rdata, .edata, .idata, .rsrc, .tls and .reloc.
  • Table 1 presents the characteristics of these sections that are used in the analysis.
  • Metadata namely after the disassembly operation, the size of the resulting file and the number of lines of code are extracted.
  • step 114 all parameters that are characteristic of malicious files and / or vice versa are not malicious are determined by a statistical method. For example, it is possible to check for the presence of a checksum as a parameter, and if it is absent, then this is typical for a malicious software; or if the share of unknown sections of the total number is close to 1, then there is a lot of obfuscation in the code, which characterizes malicious software, or if the share of known sections is close to 0, then everything is more or less standard and this is typical for legitimate software, or a very frequent call of certain
  • the API is malware-specific.
  • step 115 at least a first Control Flow Graph and a second Data Flow Graph are obtained from the disassembled file view.
  • Control Flow Graph is a set of all possible ways of program execution, presented in the form of a graph, and the use of a control flow graph in a static code analyzer is due to its ability to quickly and optimally find unique execution paths.
  • the second flow graph (Data Flow Graph) serves to represent the dependencies of some variables on others, taking into account their scope and execution context, therefore, data flow analysis is directly related to control flow analysis, since knowledge about the execution context is taken from there.
  • the first Control Flow Graph and the second Data Flow Graph are obtained by constructing a state machine for all possible variants of the sequence of program system calls.
  • the algorithm captures the cyclical and branching structures of the program, allowing it to recognize variations in behavior and identify anomalies.
  • the ability to focus on the behavior of programs contributes to shorter learning times for the system and fewer false positives, as well as lower memory requirements.
  • the anomaly detection algorithm used in the described solution is based on representing the sequence of system calls in the form of a state machine (FSA).
  • step 116 all the extracted parameters are divided into numeric and string and combined into the first and second feature vectors, respectively.
  • a numeric vector looks like this: each cell has its own purpose, that is, it is responsible for the initially specified attribute. For example:
  • the length of the vector depends on the number of various features found at the feature extraction stage.
  • the compiled vector is fed into the binary first classifier (for example, Random Forest), the output of which is the probability of the file being harmful (0 - clean file, 1 - malicious).
  • the binary first classifier for example, Random Forest
  • the string vector looks like this: cell name - retrieved data; cell value - True or False (met or not).
  • a feature vector is created as follows. So, all found string attributes are passed to the encoder. After that, the data is converted into a vector consisting of 0 and 1, a boolean vector (bool), to reduce the required storage memory.
  • bool boolean vector
  • the first and second feature vectors are obtained.
  • step 116 Upon completion of step 116, the system proceeds to step 120 where an ensemble of classifiers is created.
  • the first classifier is trained based on the first feature vector, the second classifier based on the second feature vector, the third classifier based on the first data stream, and the fourth classifier based on the second data stream.
  • a fifth classifier focused on n-gram opcode analysis may be added to the classifier ensemble.
  • each of the classifiers can be, for example, classifiers of the RandomForest and / or SVM type.
  • each of the classifiers in the ensemble of classifiers is additionally characterized by a decisive priority, and the decisive priority is determined based on the accuracy of the classifier's work in both classes (malware and clean software) on the test sample.
  • the basis of verification is a test sample in which the correspondence between objects and their classes is put.
  • accuracy accuracy
  • completeness F-measure. Namely, it is used: the accuracy of the system within a class is the proportion of objects that really belong to a given class relative to all objects that the system attributed to this class; the completeness of the system is the proportion of objects found by the classifier that belong to the class relative to all documents of this class in the test sample and F is a measure that is the harmonic mean between accuracy and completeness, and it tends to zero if the accuracy or completeness tends to zero.
  • FIG. 3 shows a block diagram of file analysis based on a control flow graph, in which: the received executable files are disassembled (113), the first flow (control flow graph) (115) is allocated, a certain number is assigned to each found parameter (statistical analysis, for example, how often this parameter in the training sample), then based on which only the most characteristic parameters for training the third classifier are selected.
  • the solid line indicates the training operations
  • the dashed line indicates the work operations.
  • Control Flow Graph is a set of all paths of program execution, represented in the form of a graph.
  • the file is disassembled, since before analyzing the PE file, it must be disassembled (for example, using IDA Pro) and, if necessary, unpacked (if it was packed by any packer). You can unpack it using, for example, the standard UPX executable file packer.
  • each node (vertex) of the graph corresponds to a basic block - a straightforward piece of code containing neither control transfer operations nor points to which control is transferred from other parts of the program.
  • the first instruction in the block is the point to which the jump is made, the last instruction is the instruction to jump to another block.
  • the graph is directional. Directional arcs are used in a graph to represent branch instructions. Also, in most implementations, two specialized blocks are added: an input block through which control enters the graph; an output block that terminates all paths in the given graph.
  • a Python script was written that uses standard APIs, for example, IDA Pro to extract information about each block:
  • BlockID is a unique block id
  • StartAddr is a start address
  • EndAddr is an end address
  • LeftChild are all assembly instructions contained in the base block
  • RightChild are successor blocks (their unique id).
  • a sequence of id blocks is obtained, that is, the graph is represented as a sequence of vertices when traversing in depth.
  • these documents must be converted from a text form to a vector representation.
  • a matrix where each row is a separate document, and each column is a unique 3- gram, found as all profiles were compiled.
  • the number of columns in a matrix is the number of unique parameters (i.e. 3-grams) extracted from documents.
  • a third classifier of the ensemble of classifiers is created.
  • the reduced feature vector After the reduced feature vector has been obtained, it can be submitted to a classifier, for example, Random Forest Tree Classifier. This completes the preparatory step for analysis on the first flow graph and the method proceeds to step 120.
  • a classifier for example, Random Forest Tree Classifier.
  • the fourth classifier is trained based on the second Data Flow Graph. Moreover, below is a detailed description of the analysis of executable files based on data streams.
  • Data flow analysis is a method of gathering information about a possible set of values calculated at various points in a computer program, which determines what data flows through the program.
  • a way to perform data flow analysis could be to define data flow equations for each node of a control flow graph (CFG) and solve them by repeatedly computing the output from the input and transforming the data locally at each node until all the system does not stabilize.
  • CFG control flow graph
  • d reaches p if there is a path from the point immediately following d to p such that d is not overwritten along that path.
  • Each value defined in the program or received upon entering the program is moved with many other variables between the blocks of the control flow graph (Figs. 4a-4b).
  • FIG. 4a and 4b show an example of the problem described above for determining points in the program.
  • B0-B2 means program blocks
  • D defmition
  • p is a block in which d disappears (that is, a variable was defined somewhere, then the variable goes from in to out by blocks, and then we get into the block p, where it is deleted)
  • af transfer function of the block
  • KSh [b] is the set of killed variables in block b;
  • a vector is obtained from the block numbers in the CFG graph.
  • Each block contains 2 sets of variables (in and out).
  • the vectors of input and output variable sets are obtained, each cell of which contains a set of input and output variables of each block, respectively. Since the analysis of the variables themselves is not informative, due to the wide variety of variables, it is rational to rely on quantitative changes in the sets of variables in each block.
  • step 120 This completes the preparatory step for analysis on the second flow graph and the method proceeds to step 120.
  • step 131 at least one executable file for analysis is obtained.
  • the data extracting unit (S10) the above data is extracted from the executable file, then, in step 132, a trained ensemble of classifiers is launched to detect malicious executable files; and at step 133, the analysis result is output.
  • a report on detected malicious files can be displayed to the user.
  • FIG. 5 a general diagram of a computing device (500) will be presented that provides data processing necessary for the implementation of the claimed solution.
  • the device (500) contains such components as: one or more processors (501), at least one memory (502), data storage means (503), input / output interfaces (504), I / O means ( 505), networking tools (506).
  • the processor (501) of the device performs the basic computational operations necessary for the operation of the device (500) or the functionality of one or more of its components.
  • the processor (501) executes the necessary computer readable instructions contained in the main memory (502).
  • Memory (02), as a rule, is made in the form of RAM and contains the necessary program logic that provides the required functionality.
  • the data storage medium (503) can be performed in the form of HDD, SSD disks, raid array, network storage, flash memory, optical information storage devices (CD, DVD, MD, Blue-Ray disks), etc.
  • the tool (503) allows you to perform long-term storage of various types of information, for example, the aforementioned files with sets user data, a database containing records of time intervals measured for each user, user identifiers, etc.
  • Interfaces (504) are standard means for connecting and working with the server side, for example, USB, RS232, RJ45, LPT, COM, HDMI, PS / 2, Lightning, FireWire, etc.
  • interfaces (504) depends on the specific implementation of the device (500), which can be a personal computer, mainframe, server cluster, thin client, smartphone, laptop, etc.
  • a keyboard should be used.
  • the hardware design of the keyboard can be any known: it can be either a built-in keyboard used on a laptop or netbook, or a stand-alone device connected to a desktop computer, server or other computer device.
  • the connection can be either wired, in which the connecting cable of the keyboard is connected to the PS / 2 or USB port located on the system unit of the desktop computer, or wireless, in which the keyboard exchanges data via a wireless communication channel, for example, a radio channel, with base station, which, in turn, is directly connected to the system unit, for example, to one of the USB ports.
  • I / O data can also include: joystick, display (touch screen), projector, touchpad, mouse, trackball, light pen, speakers, microphone, etc.
  • Networking means (506) are selected from a device that provides network reception and transmission of data, for example, Ethernet card, WLAN / Wi-Fi module, Bluetooth module, BLE module, NFC module, IrDa, REID module, GSM modem, etc.
  • the means (505) provide the organization of data exchange via a wired or wireless data transmission channel, for example, WAN, PAN, LAN, Intranet, Internet, WLAN, WMAN or GSM.
  • the components of the device (500) are interconnected via a common data bus (510).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Изобретение относится к области вычислительной техники. Компьютерно-реализуемый способ содержит: подготовительный этап, на котором: формируют подборку файлов, которая содержит вредоносный исполняемый файл и не вредоносный исполняемый файл; анализируют исполняемый файл, при этом: извлекают данные из бинарного и дизассемблированного видов исполняемого файла, причем дополнительно статистическим методом определяют параметры, характерные вредоносным файлам и/или наоборот не вредоносным; причем дополнительно извлекают первый и второй граф потоков; на основе полученных параметров строятся первый и второй вектор признаков; создают ансамбль классификаторов из: первого обученного классификатора на основе первого вектора признаков, второго обученного классификатора на основе второго вектора признаков; третьего классификатора, обученного на основе первого графа потоков, четвертого классификатора, обученного на втором графе потоков причем для каждого классификатора заранее определяют решающий приоритет; рабочий этап, на котором: получают исполняемый файл; запускают обученный на подготовительном этапе ансамбль классификаторов, для выявления вредоносных исполняемых файлов; выводят результат анализа.

Description

СПОСОБ И СИСТЕМА ВЫЯВЛЕНИЯ ВРЕДОНОСНЫХ ФАЙЛОВ В
НЕИЗОЛИРОВАННОЙ СРЕДЕ
ОБЛАСТЬ ТЕХНИКИ
Настоящее техническое решение относится к области вычислительной техники, в частности, к компьютерно-реализуемому способу и системе выявления вредоносных файлов в неизолированной среде.
УРОВЕНЬ ТЕХНИКИ
Из уровня техники известно решение US 2019/0005239 А1, 03.01.2019, в котором раскрыт способ анализа вредоносного кода с помощью электронного устройства, где анализируют вредоносный код с помощью электронного устройства, причем способ содержит этапы, на которых: принимают исполняемый файл; перед установкой полученного исполняемого файла анализируют исполняемый файл на предмет сбора данных о подозрительном вредоносном коде из исполняемого файла; нормализуют собранные данные о подозрительном вредоносном коде и анализируют их на основе алгоритма вероятностной модели, чтобы определить данные о предполагаемом вредоносном коде и вывод результата определения.
Из уровня техники известно еще одно решение, выбранное в качестве наиболее близкого аналога, RU 2654146 С1. В данном решении раскрыта система признания файла вредоносным, которая содержит: а) средство извлечения ресурсов, предназначенное для: извлечения ресурсов из анализируемого файла; передачи извлеченных ресурсов средству формирования правил и средству поиска правил; б) средство формирования правил, предназначенное для: формирования по меньшей мере одного правила, устанавливающего функциональную зависимость между полученными ресурсами (далее - правило), при этом правило формируется путем создания из полученных ресурсов искусственной нейронной сети, где узлами искусственной нейронной сети являются средства анализа полученных ресурсов, а связи между узлами, сформированные во время создания нейронной сети, указывают на функциональную зависимость между полученными ресурсами; передачи каждого сформированного правила средству сравнения правил; в) средство поиска правил, предназначенное для: осуществления поиска по меньшей мере одного правила в базе ресурсов вредоносных файлов на основании полученных ресурсов; передачи каждого найденного правила средству сравнения правил; г) средство сравнения правил, предназначенное для: вычисления степени схожести между полученными от средства формирования правил и средства поиска правилами; передачи вычисленной степени схожести средству вынесения решения; д) средство вынесения решения, предназначенное для: признания анализируемого файла вредоносным, в случае, когда полученная степень схожести превышает заранее заданное пороговое значение.
Приведенные выше известные из уровня техники решения направлены на решение проблемы определения вредоносных файлов в системе до их запуска. Однако стоит отметить, что разработчики постоянно совершенствуют свое вредоносное программное обеспечение, что уменьшает вероятность его обнаружения в системе.
Предлагаемое решение направлено на устранение недостатков современного уровня техники и отличается от известных ранее тем, что предложенный способ, основанный на статическом анализе происходит на большем количестве извлеченных из файла данных, так как для их получения используются как бинарный вид исполняемого файла, так и дизассемблированный, кроме того нами предложено использование графов потоков, которые помогают при выявлении аномалий в поведении файла без его запуска. Дополнительно, стоит отметит, что в заявленном решении использован ансамбль классификаторов, который служит для улучшения эффективности прогнозирования по сравнению с отдельными классификаторами, а также является менее громоздким решением, чем нейронная сеть.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Технической проблемой, на решение которой направлено заявленное решение, является создание компьютерно-реализуемого способа и системы выявления вредоносных файлов в неизолированной среде, которые охарактеризованы в независимых пунктах формулы. Дополнительные варианты реализации настоящего изобретения представлены в зависимых пунктах изобретения.
Технический результат заключается в повышение точности выявления вредоносных файлов в неизолированной среде.
Заявленный результат достигается за счет осуществления компьютерно- реализуемого способа выявления вредоносных файлов в неизолированной среде, где способ содержит: подготовительный этап, на котором: формируют подборку файлов, которая содержит по меньшей мере один вредоносный исполняемый файл и по меньшей мере один не вредоносный исполняемый файл; анализируют по меньшей мере один исполняемый файл, при этом: извлекают данные из бинарного и дизассемблированного видов исполняемого файла на основе которых создаются параметры для дальнейшего обучения классификатора, причем дополнительно статистическим методом определяют параметры, характерные вредоносным файлам и/или наоборот не вредоносным; причем дополнительно извлекают первый и второй граф потоков; на основе полученных параметров строят первый и второй вектор признаков; создают ансамбль классификаторов из: первого обученного классификатора на основе первого вектора признаков, второго обученного классификатора на основе второго вектора признаков; третьего классификатора, обученного на основе первого графа потоков, четвертого классификатора, обученного на основе второго графа потоков, и причем для каждого классификатора заранее определяют решающий приоритет; рабочий этап, на котором: получают, по меньшей мере один исполняемый файл; запускают обученный на подготовительном этапе ансамбль классификаторов, для выявления вредоносных исполняемых файлов; выводят результат анализа.
В частном варианте реализации описываемого способа, первый вектор признаков содержит все числовые параметры, полученные при анализе, и в котором второй вектор содержит все строковые параметры, полученные при анализе.
В частном варианте реализации описываемого способа, извлекают, по меньшей мере, следующие свойства файла: первый граф потоков (Control Flow Graph), второй граф потоков (Data Flow Graph), метаданные (Metadata), таблицу импорта (Import Table), таблицу экспорта (Export table), энтропии (Byte/Entropy Histogram).
В другом частном варианте реализации описываемого способа, из по меньшей мере одного бинарного исполняемого файла извлекают, по меньшей мере, следующие параметры:
N-граммы байт;
Информация из полей исполнимого файла;
Энтропия секций файла;
Метаданные;
Г истограммы распределения длин строк.
В другом частном варианте реализации описываемого способа, информация, извлекаемая из полей по меньшей мере одного бинарного исполняемого файла, содержит по меньшей мере: количество секций в файле, размер заголовков, размер кода, наличие цифровой подписи, наличие импортируемых dll и функций, где были использованы эти библиотеки, название экспортируемых функций, данные из каталога ресурсов, версия сборщика.
В другом частном варианте реализации описываемого способа, энтропия, извлекаемая из полей по меньшей мере одного бинарного исполняемого файла, рассчитывается с помощью применения метода скользящего окна, с последующим применением ряда статистических мер для характеризации полученного вектора энтропийных мер.
В другом частном варианте реализации описываемого способа, извлекаемые из заголовка по меньшей мере одного бинарного исполняемого файла, содержат: количество секций в файле, размер секций, наличие контрольной суммы, размер файла, время создания, версия операционной системы, версия сборщика.
В другом частном варианте реализации описываемого способа, из по меньшей мере одного дизассемблированного исполняемого файла извлекают, по меньшей мере, следующие параметры:
Символы;
Регистры;
Операционные коды;
Частота обращения к системным интерфейсам (Windows APIs);
Секции;
Метаданные.
В другом частном варианте реализации описываемого способа, дополнительно определяют частоту появления символов, извлекаемых из по меньшей мере одного дизассемблированного исполняемого файла, причем символы могут представлять по меньшей мере:
Figure imgf000006_0001
В другом частном варианте реализации описываемого способа, дополнительно вычисляют отношение количества известных регистров, извлекаемых из по меньшей мере одного дизассемблированного исполняемого файла, к количеству неизвестных регистров, извлекаемым из дизассемблированного файла.
В другом частном варианте реализации описываемого способа, секции, извлекаемые из по меньшей мере одного дизассемблированного исполняемого файла, определены заранее и представляют собой: .text, .data, .bss, .rdata, .edata, .idata, .rsrc, .tls и .reloc.
В другом частном варианте реализации описываемого способа, метаданные, извлекаемые из по меньшей мере одного дизассемблированного исполняемого файла, представляют собой размер файла и количество строк кода. В другом частном варианте реализации описываемого способа, результат анализа может быть бинарным или вероятностным.
В другом частном варианте реализации описываемого способа, решающий приоритет каждого из ансамбля классификаторов определяется на основе обучения на тестовой выборке, причем для оценки используются по меньшей мере: точность, полнота, F-мера.
Заявленный результат также достигается за счет системы выявления вредоносных файлов в неизолированной среде, которая содержит следующие модули: модуль извлечения данных, выполненный с возможностью извлечения данных, по меньшей мере из одного исполняемого файла; вычислительное устройство, выполненное с возможностью осуществления вышеуказанного способа; модуль вывода.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Реализация изобретения будет описана в дальнейшем в соответствии с прилагаемыми чертежами, которые представлены для пояснения сути изобретения и никоим образом не ограничивают область изобретения. К заявке прилагаются следующие чертежи:
Фиг.1, иллюстрирует систему выявления вредоносных файлов в неизолированной среде.
Фиг.2, иллюстрирует компьютерно-реализуемый способ выявления вредоносных файлов в неизолированной среде.
Фиг. 3, иллюстрирует блок схему анализа файла на основе графа потока управления.
Фиг. 4а, иллюстрирует пример по определению точек в программе.
Фиг. 4Ь, иллюстрирует пример по определению точек в программе.
Фиг. 5, иллюстрирует пример общей схемы вычислительного устройства.
ДЕТАЛЬНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту, будет очевидно каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях хорошо известные методы, процедуры и компоненты не были описаны подробно, чтобы не затруднять излишне понимание особенностей настоящего изобретения.
Кроме того, из приведенного изложения будет ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, будут очевидными для квалифицированных в предметной области специалистов.
В настоящее время существует необходимость определять и блокировать вредоносные файлы еще до их запуска для предотвращения нанесения возможного вреда вычислительным системам. Для решения подобных задач применяют методы статического анализа исполняемых файлов (РЕ), но подобный анализ имеет свои ограничения.
Настоящее изобретение направлено на обеспечение компьютерно-реализуемого способа и системы выявления вредоносных файлов в неизолированной среде.
Заявленный компьютерно-реализуемый способ выявления вредоносных файлов в неизолированной среде, осуществляется посредством системы выявления вредоносных файлов в неизолированной среде, представленной на фиг.1, которая по меньшей мере содержит: модуль извлечения данных, выполненный с возможностью извлечения данных, по меньшей мере из одного исполняемого файла (S10), вычислительное устройство, выполненное с возможностью осуществления способа выявления вредоносных файлов в неизолированной среде (S20) и модуль вывода (S30).
На фиг. 2 проиллюстрирован компьютерно-реализуемый способ выявления вредоносных файлов в неизолированной среде 100, который осуществляется следующим образом.
На подготовительном этапе 110, формируют 111 подборку файлов, содержащих большое количество заведомо вредоносных исполняемых файлов и сопоставимое количество заведомо не вредоносных исполняемых файлов.
Далее способ переходит на этап, на котором анализируются как бинарный, так и дизассемблированный вид каждого исполняемого файла для получения большего объема данных, которые будут использованы для вынесения решения о вредоносности файла.
Таким образом, сначала на этапе 112 анализируют каждый исполняемый файл бинарного вида, при этом при анализе, посредством модуля извлечения данных (S10), извлекают по меньшей мере: данные из заголовка исполняемого файла (PE-header), данные из таблицы импорта (Import Table), данные из таблицы экспорта (Export table), N-граммы байт; информацию из полей исполнимого файла; энтропию секции файла; метаданные; гистограммы распределения длин строк.
Стоит отметить, что в общем случае извлекаются: данные из таблицы импорта для указания, какие внешние функции и из каких модулей требуются исполняемому файлу для нормальной работы; данные из таблицы экспорта, определяющие имена и/или номера экспортируемых функций с их положением в виртуальной памяти процесса; метаданные (Metadata) из заголовка исполняемого файла, например, количество секций в файле, время создания, тип процессора, версия операционной системы, версия сборщика, суммарный размер секций, контрольная сумма; данные из таблицы импорта для указания, какие внешние функции и из каких модулей требуются исполняемому файлу для нормальной работы; данные из таблицы экспорта, определяющие имена и/или номера экспортируемых функций с их положением в виртуальной памяти процесса; метаданные (Metadata) из заголовка исполняемого файла, например, количество секций в файле, время создания, тип процессора, версия операционной системы, версия сборщика, суммарный размер секций, контрольная сумма; гистограммы (Byte/Entropy Histogram), на основе которой вычисляются бинарные значения двумерной гистограммы энтропии байт, моделирующей распределение байт в файле (чтобы построить гистограмму энтропии байт, используется 1024-байтовое окно, которое смещается с шагом 256 байт по анализируемому бинарному файлу).
Более подробно могут быть рассмотрены, следующие извлекаемые параметры: N-граммы байт, причем в данном случае берется последовательность из п байтов, извлеченных из исполняемого файла и каждый элемент байтовой последовательности может иметь одно из 256 значений. Таким образом, рассматриваются гистограммы частотности байт, которые представлены в виде векторов длины 256, которые отражают частоту появления каждого значения.
Информация из полей исполнимого файла, например количество секций в файле; размер заголовков; размер кода; наличие цифровой подписи; названия импортируемых dll и функций, где были использованы эти библиотеки; названия экспортируемых функций; данные из каталога ресурсов; версия сборщика; версия операционной системы; тип процессора; суммарный размер секций; контрольная сумма.
Энтропия секций файла, причем подсчет энтропии файла используется в статическом анализе для обнаружения обфускаций кода. Также стоит отметить, что вредоносное ПО часто передается в зашифрованном виде, соответственно частота байт выравнивается, тем самым увеличивая энтропию.
В описываемом решении может применятся метод скользящего окна для представления исполняемого файла в виде ряда энтропийных мер. Энтропия окна рассчитывается и после подсчетов в целях характеризации данного ряда рассматривается ряд статистических мер, например, таких как: математическое ожидание, дисперсия, квантиль, перцентиль. Таким образом, например, если энтропия близка к 1, то есть встречаемость различных символов примерно одинаковая, то код обфусцирован и/или зашифрован.
Гистограммы длин строк, причем из исполняемых файлов извлекаются все ASCII строки и фиксируются их длины, поскольку при данном извлечении в выборку попадает много «мусора», то использование полученных строк в качестве параметров является не совсем корректно, поэтому в описываемом решении используются гистограммы распределения длин строк.
Далее на этапе 113 дизассемблируют исполняемый файл и далее, посредством модуля извлечения данных, из него извлекают, по меньшей мере, следующие параметры для анализа.
Символы, причем под символами понимается частота появления по меньшей мере следующих символов:
Figure imgf000010_0001
@, поскольку они характерны для кода, который пытается обойти систему обнаружения, например выполняя косвенные вызовы или загрузку динамической библиотеки.
Регистры, так как большинство названий регистров характеризуют свое предназначение, но в некоторых вредоносных программах, для усложнения анализа происходит их переименование. Поэтому в описываемом решении считается, что частота использования неизвестных регистров может быть полезна для определения степени вредоносности ПО. Кроме того, для дальнейшего анализа вводятся еще такие параметры: количество известных регистров, количество неизвестных (переименованных) регистров, отношение количества известных регистров к неизвестным.
Операционные коды (опкоды), причем наиболее часто использующиеся вредоносным ПО выявляются заранее, а также заранее определяется частота их появлений в самом коде. Так как список всех инструкций достаточно велик, то для анализа берется наиболее популярные опкоды, сохраненные во внутренней базе данных системы.
Частота обращения к системным интерфейсам (Windows APIs), причем для анализа можно также использовать частоту обращений к Windows APIs, но поскольку количество подобных интерфейсов слишком велико, то для повышения эффективности отобраны только наиболее характерные для вредоносного ПО и сохранены во внутренней базе данных системы.
Секции исполняемого РЕ файла, который состоит из нескольких заранее определенных секций таких как .text, .data, .bss, .rdata, .edata, .idata, .rsrc, .tls и .reloc. Например, в таблице 1 представлены характеристики этих секций, которые используются при анализе.
Таблица 1.
Figure imgf000011_0001
Метаданные, а именно после операции дизассемблирования извлекаются размер получившегося файла и количество строк кода.
Далее на этапе 114 статистическим методом определяют все параметры, характерные вредоносным файлам и/или наоборот не вредоносным. Например, возможно осуществить проверку на наличие контрольной суммы, как параметра, причем если он отсутствует - то подобное характерно для вредоносного программного обеспечения; или если доля неизвестных секций от общего количества близка к 1 , то очень много обфускации в коде, что характеризует вредоносное программное обеспечение или если доля известных секций близка к 0, то все более-менее стандартно и такое характерно легитимному ПО, или очень частый вызов определенных API характерен вредоносному ПО.
Кроме того, на этапе 115 из дизассемблированного вида файла получают по меньшей мере первый граф потоков (Control Flow Graph) и второй граф потоков (Data Flow Graph).
Причем первый граф потока (Control Flow Graph), представляет собой множество всех возможных путей исполнения программы, представленное в виде графа, причем использование графа потока управления в статическом анализаторе кода обусловлено его способностью быстро и оптимально находить уникальные пути исполнения.
Причем второй граф потоков (Data Flow Graph) служит для представления зависимостей одних переменных от других с учетом их области видимости и контекста исполнения, поэтому анализ потока данных напрямую связан с анализом потока управления, так как знания о контексте выполнения берутся оттуда.
Кроме того, стоит также отметить, что первый граф потоков (Control Flow Graph) и второй граф потоков (Data Flow Graph) получают посредством построения конечного автомата по всевозможным вариантам последовательности системных вызовов программы. Таким образом, алгоритм фиксирует циклические и ветвящиеся структуры программы, позволяя распознавать вариации поведения и выявлять аномалии. Способность фокусироваться на поведении программ способствует более коротким периодам обучения системы и меньшему количеству ложных срабатываний, а также меньшим требованиям к памяти. Алгоритм обнаружения аномалий, который использован в описываемом решении, основан на представлении последовательности системных вызовов в виде конечного автомата (FSA).
После способ переходит на этап 116, на котором все извлеченные параметры делятся на числовые и строковые и объединяются в первый и второй вектор признаков соответственно .
Таким образом, все числовые параметры, например, энтропия секций, размер каждой секции, отношение количества известных секций к неизвестным, доля .text секций от всего файла, количество строк в каждой секции, частота встречаемости символов обфусцирующих код (-, +, *, ], [, ?, @) и т.п., записываются в вектор содержащий float значения (то есть числа с плавающей точкой).
Выглядит числовой вектор, следующим образом: у каждой ячейки есть свое назначение, то есть она отвечает за изначально заданный атрибут. Например:
1 ячейка - known sections number = 10;
2 ячейка - unknown_sections_pr = 0.93 (доля неизвестных секций от общего количества);
3 ячейка - some_section_lines_number = 505 (количество строк в какой-то секции); п-1 ячейка - lines number = 5623 (количество строк кода в дизассемблированном файле); п ячейка - file size = 10893 (размер файла в байтах).
При этом стоит отметить, что длина вектора зависит от количества разнообразных признаков, найденных на этапе извлечения признаков.
Составленный вектор подается в бинарный первый классификатор (например, Random Forest), выход которого - вероятность вредоносности файла (0 - чистый файл, 1 - вредоносный).
Стоит отметить, что все строковые параметры, например, названия экспортируемых функций, данные из каталога ресурсов, названия импортируемых DLL и функций, где были использованы эти библиотеки и т.п., записываются в вектор, содержащий булевы значения, то есть встретились данные или нет.
Выглядит строковый вектор следующим образом: имя ячейки - извлеченные данные; значение ячейки - True или False (встретились или нет).
Далее после этапа извлечения всевозможных строковых данных следующим образом создается вектор признаков. Так, все найденные строковые атрибуты передаются в кодировщик. После этого данные преобразуются в вектор, состоящий из 0 и 1 , булевый вектор (bool), для уменьшения требуемой памяти хранения.
Таким образом, на описываемом этапе получают первый и второй вектор признаков.
После завершения этапа 116 система переходит на этап 120, на котором создается ансамбль классификаторов.
Для создания ансамбля классификаторов, сначала обучают первый классификатор на основе первого вектора признаков, второй классификатор на основе второго вектора признаков, третий классификатор на основе первого потока данных, четвертый классификатор на основе второго потока данных.
Стоит отметить, что в дополнительном варианте осуществления в ансамбль классификаторов может быть добавлен пятый классификатор, ориентированный на анализ по n-граммам опкодов. Стоит отметить, что каждый из классификаторов может представлять собой, например, классификаторы типа RandomForest и/или SVM.
Стоит отметить, что каждый из классификаторов в ансамбле классификаторов дополнительно характеризуется решающим приоритетом, причём решающий приоритет определяется на основе точности (accuracy) работы классификатора на обоих классах (вредоносное и чистое ПО) на тестовой выборке.
Кроме того, основой проверки является тестовая выборка в которой проставлено соответствие между объектами и их классами. Для оценки используются следующие метрики: точность, полнота и F- мера. А именно используется: точность системы в пределах класса - это доля объектов, действительно принадлежащих данному классу относительно всех объектов которые система отнесла к этому классу; полнота системы - это доля найденных классификатором объектов, принадлежащих классу относительно всех документов этого класса в тестовой выборке и F - мера, которая представляет собой гармоническое среднее между точностью и полнотой, причем она стремится к нулю, если точность или полнота стремится к нулю.
Далее будет представлен подробный пример статического анализа на основе диаграмм первого и второго потока данных.
Стоит отметить, что третий классификатор обучается на основе первого потока. Причем ниже представлено подробное описание анализа исполняемых файлов на основе первого потока (графа потока управления) (см. фиг. 3). На фиг. 3 изображена блок схема анализа файла на основе графа потока управления, в котором: дизассемблируют принятые исполняемые файлы (113), выделяют первый поток (граф потока управления) (115), каждому найденному параметру присваивается некое число (статистический анализ, например, насколько часто встречается данный параметр в обучающей выборке), далее опираясь на которое выбирается только наиболее характерные параметры для обучения третьего классификатора. На фиг. 3 сплошной линией отмечены обучающие операции, а прерывистой - рабочие операции.
Граф потока управления (Control Flow Graph) - множество всех путей исполнения программы, представленное в виде графа.
На этапе 113 дизассемблируют файл, так как прежде чем анализировать РЕ-файл, необходимо его дизассемблировать (например, с помощью IDA Pro) и при необходимости распаковать (если был запакован каким-либо упаковщиком). Распаковывать можно при помощи, например, стандартного упаковщика исполняемых файлов UPX.
Далее необходимо произвести построение графа потока управления (CFG) (этап 115). В CFG каждый узел (вершина) графа соответствует базовому блоку - прямолинейному участку кода, не содержащему в себе ни операций передачи управления, ни точек, на которые управление передается из других частей программы. Первая инструкция в блоке - точка на которую совершается переход, последняя инструкция - инструкция перехода в другой блок. Стоит отметить, что граф является направленным. Направленные дуги используются в графе для представления инструкций перехода. Также, в большинстве реализаций добавлено два специализированных блока: входной блок, через который управление входит в граф; выходной блок, который завершает все пути в данном графе. Для извлечения графа потока управления из дизассемблированного РЕ-файла написан скрипт на Python, который использует стандартные API, например, IDA Pro для извлечения информации о каждом блоке:
BlocklD( Numeric )
StartAddr(Hex) EndAddr{ Hex )
LeftChild( Po int er )
Figure imgf000015_0001
RightChild(Pomer)
Figure imgf000015_0002
где BlockID - уникальный id блока, StartAddr - стартовый адрес, EndAddr - конечный адрес, LeftChild - все ассемблерные инструкции, содержащиеся в базовом блоке, RightChild - блоки-наследники (их уникальные id).
После извлечения информации о базовом блоке создается граф для отображения потока управления, при этом избегают циклов, т.к. рассмотрение их приведет к бесконечно длинным путям выполнения. Далее необходимо представить граф в виде последовательности вызовов опкодов.
Для этого используется модифицированный алгоритм обхода графа в глубину с добавлением проверки на циклы и их отбрасывания по мере обнаружения:
Figure imgf000015_0003
Figure imgf000016_0001
В результате работы алгоритма получается последовательность id блоков, то есть представление графа в виде последовательности вершин при обходе в глубину.
Далее необходимо пройтись по каждому блоку в порядке его выполнения, извлекая опкоды и отбрасывая операнды при них. В итоге получается профиль исполняемого файла, представленный последовательностью опкодов, как показано ниже.
Figure imgf000016_0002
Далее проводится анализ по триграммам опкодов. Таким образом имеем профиль на каждый исполняемый файл и теперь можно анализировать на основании извлеченных 3- грамм операционных кодов.
'щ test', jte trst jz' , 'test jz ar', 'jz up jiz', ‘op jaz W, 'Ju m tot', ‘m tKt jz', 'test 'test jaz pel', ‘jaz pel p|', 'pm pel', ‘m pel p el’, ‘pel pisl pel', 'pel pel pisl', ‘ptsl pis k', 'op ju op', 'jv up jaz', 'op jiz m‘, jiz m m ‘m m j \ 'm ull', jf ull itta',
, 'pel pel call', 'pisl ull nr', 'ull nr «*', *nr in *»', 'm m IN', ‘m IN pel', 'IN pel ull
Каждая такая триграмма впоследствии будет являться параметром в нашей системе.
Перед тем как переходить к классификации, данные документы (профили в виде триграмм) должны быть сконвертированы из текстовой формы в векторное представление. Исходя из набора профилей исполняемых файлов для обучения системы, составим матрицу, где каждая строка — это отдельный документ, а каждая колонка - уникальная 3- грамма, найденная по мере составления всех профилей. Таким образом число колонок в матрице - число уникальных параметров (т.е. 3-грамм) извлеченных из документов.
После выполнения предыдущего действия создается третий классификатор ансамбля классификаторов. При этом для уменьшения количества признаков и отбора наиболее характерных будем пользоваться, например, стандартным алгоритмом tf-idf, который нужен для оценки важности слова в контексте документа (профиль одного РЕ- файла), являющегося частью коллекции документов (обучающая выборка).
После того как получили уменьшенный вектор признаков, его можно подавать в классификатор, например, Random Forest Tree Classifier. На этом подготовительный этап для анализа на графе первого потока завершается и способ переходит к этапу 120.
Стоит отметить, что четвертый классификатор обучается на основе второго потока данных (Data Flow Graph). Причем ниже представлено подробное описание анализа исполняемых файлов на основе потоков данных.
Анализ потока данных - это метод сбора информации о возможном наборе значений, вычисленных в различных точках компьютерной программы, который определяет, какие данные проходят через программу.
Кроме того, способ выполнения анализа потока данных, например, может состоять в том, чтобы задавать уравнения потока данных для каждого узла графа потока управления (CFG) и решать их путем многократного вычисления выхода из входа и преобразований с данными локально в каждом узле, пока вся система не стабилизируется.
Для анализа потока данных необходимо решить задачу по определению точек в программе, где переменная была определена, причем каждое присвоение - это определение, изначально и до какой точки она использовалась, пока ее не перезаписали или не удалили.
Таким образом, переменная d достигает точки р, если существует путь от точки, непосредственно следующей за d, до точки р, такой, что d не перезаписывается вдоль этого пути. Каждое определенное в программе или полученное при входе в программу значение, перемещается с множеством других переменных между блоками графа потока управления (фиг. 4а-4Ь).
Так, на фиг. 4а и 4Ь представлен пример описанной выше задачи по определению точек в программе. Причем под В0-В2 понимают блоки программы, D (defmition)- определение новой переменной, х,у - значения переменных, р - это блок, в котором d исчезает (то есть где-то определили переменную, далее переменная попадает из in в out по блокам, а затем попадаем в блок р, где удаляется), a f (transfer function of the block) - это функция, которая работает над входом in, трансформируя его в выход out.
Далее, определяем общий вид уравнения для каждого блока : out[b] = Gen[b] U (m[b] — Kill[b\) (2) причем где:
Gen[b] - множество генерируемых в блоке значений;
In[b] - входное множество переменных в блок Ь;
КШ[Ь] - множество убитых переменных в блоке Ь;
Out[b] - выходное множество значений.
При этом, in[b] = out[pl] U out[p2] U ... U out[p ], где b - каждый блок, rΐ. .rh - все предшествующие блоки, ведущие в данный.
Примерный алгоритм для получения всех вход-выходов данных в блоках CFG может выглядеть так:
// Boundary condition out[Entry] 0
// Initialization for iterative algorithm For each basic block В other than Entry out[B] = 0
// itarata
While (Changes to any out[] occur) {
For each basic block В other than Entry ( in[B] ™ CJ (out[p])r for all predecessors p of в out[B] - fB(in[B]) // out[B] * gan [B] (in [B] -kill [BJ)
)
После аналогичного алгоритма прохода в глубину с удалением циклов, получают вектор из номеров блоков в графе CFG. К каждому блоку относятся 2 множества переменных (in и out). Получают вектора входных и выходных множеств переменных, в каждой ячейке которых содержится множество входных и выходных переменных каждого блока соответственно. Так как анализ самих переменных не является информативным, по причине большого разнообразия переменных, рационально опираться на количественные изменения наборов переменных в каждом блоке.
Так, например, многие типы вредоносных программ реплицируют себя, заражая другие двоичные файлы или вводя код в другие системные процессы. Это часто приводит к почти равномерному распределению объемов данных исходящих ребер соответствующих узлов графа.
Таким образом, из получившихся векторов множеств можно составить более информативный вектор, в каждой ячейке которого содержится разность мощностей двух множеств: входных и выходных переменных соответствующего блока. Далее используя ряд статистических мер (стандартизованная оценка, стандартное отклонение, математическое ожидание, интерквантильное расстояние) над полученным вектором, а также посчитав оконную энтропию данного вектора и применив к получившемуся вектору те же статистические меры, можно получить параметры, необходимые для подачи на анализ классификатору по второму потоку.
На этом подготовительный этап для анализа на графе второго потока завершается и способ переходит к этапу 120.
После завершения подготовительного этапа, способ переходит к рабочему этапу 130. Так на этапе 131 получают, по меньшей мере один исполняемый файл для анализа. Посредством модуля извлечения данных (S10), из исполняемого файла извлекают вышеуказанные данные, далее на этапе 132, запускают обученный ансамбль классификаторов, для выявления вредоносных исполняемых файлов; и на этапе 133, выводят результат анализа.
Стоит отметить, что решение ансамбля классификаторов может быть:
- бинарным (вредоносный/нет);
- вероятностным (если вероятность более 50%, то файл считается вредоносным).
Кроме того, стоит отметить, что в дополнительных вариантах реализации пользователю может быть выведен отчет об обнаруженных вредоносных файлах.
На Фиг. 5 далее будет представлена общая схема вычислительного устройства (500), обеспечивающего обработку данных, необходимую для реализации заявленного решения.
В общем случае устройство (500) содержит такие компоненты, как: один или более процессоров (501), по меньшей мере одну память (502), средство хранения данных (503), интерфейсы ввода/вывода (504), средство В/В (505), средства сетевого взаимодействия (506).
Процессор (501) устройства выполняет основные вычислительные операции, необходимые для функционирования устройства (500) или функциональности одного или более его компонентов. Процессор (501) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (502).
Память (502), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.
Средство хранения данных (503) может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средство (503) позволяет выполнять долгосрочное хранение различного вида информации, например, вышеупомянутых файлов с наборами данных пользователей, базы данных, содержащих записи измеренных для каждого пользователя временных интервалов, идентификаторов пользователей и т.п.
Интерфейсы (504) представляют собой стандартные средства для подключения и работы с серверной частью, например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, FireWire и т.п.
Выбор интерфейсов (504) зависит от конкретного исполнения устройства (500), которое может представлять собой персональный компьютер, мейнфрейм, серверный кластер, тонкий клиент, смартфон, ноутбук и т.п.
В качестве средств В/В данных (505) в любом воплощении системы, реализующей описываемый способ, должна использоваться клавиатура. Аппаратное исполнение клавиатуры может быть любым известным: это может быть, как встроенная клавиатура, используемая на ноутбуке или нетбуке, так и обособленное устройство, подключенное к настольному компьютеру, серверу или иному компьютерному устройству. Подключение при этом может быть, как проводным, при котором соединительный кабель клавиатуры подключен к порту PS/2 или USB, расположенному на системном блоке настольного компьютера, так и беспроводным, при котором клавиатура осуществляет обмен данными по каналу беспроводной связи, например, радиоканалу, с базовой станцией, которая, в свою очередь, непосредственно подключена к системному блоку, например, к одному из USB- портов. Помимо клавиатуры, в составе средств В/В данных также может использоваться: джойстик, дисплей (сенсорный дисплей), проектор, тачпад, манипулятор мышь, трекбол, световое перо, динамики, микрофон и т.п.
Средства сетевого взаимодействия (506) выбираются из устройства, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi- Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, REID модуль, GSM модем и т.п. С помощью средств (505) обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.
Компоненты устройства (500) сопряжены посредством общей шины передачи данных (510).
В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.

Claims

Формула
1. Компьютерно-реализуемый способ выявления вредоносных файлов в неизолированной среде, содержит: подготовительный этап, на котором: формируют подборку файлов, которая содержит по меньшей мере один вредоносный исполняемый файл и по меньшей мере один не вредоносный исполняемый файл; анализирует по меньшей мере один исполняемый файл, при этом: извлекают данные из бинарного и дизассемблированного видов исполняемого файла на основе которых создаются параметры для дальнейшего обучения классификатора, причем дополнительно статистическим методом определяют параметры, характерные вредоносным файлам и/или наоборот не вредоносным; причем дополнительно извлекают первый и второй граф потоков; на основе полученных параметров строятся первый и второй вектор признаков; создают ансамбль классификаторов из: первого обученного классификатора на основе первого вектора признаков, второго обученного классификатора на основе второго вектора признаков; третьего классификатора, обученного на основе первого графа потоков, четвертого классификатора, обученного на втором графе потоков причем для каждого классификатора заранее определяют решающий приоритет; рабочий этап, на котором: получают, по меньшей мере один исполняемый файл; запускают обученный на подготовительном этапе ансамбль классификаторов, для выявления вредоносных исполняемых файлов; выводят результат анализа.
2. Компьютерно-реализуемый способ по п.1, причем в котором первый вектор признаков содержит все числовые параметры, полученные при анализе, причем в котором второй вектор содержит все строковые параметры, полученные при анализе.
3. Компьютерно-реализуемый способ по п.1, отличающийся тем, что извлекают, по меньшей мере, следующие свойства файла: первый граф потоков (Control Flow Graph, второй граф потоков (Data Flow Graph) , метаданные (Metadata), таблицу импорта (Import Table), таблицу экспорта (Export table), гистограмму энтропии (Byte/Entropy Histogram).
4. Компьютерно- реализуемый способ по п.1, отличающийся тем, что из по меныпей мере одного исполняемого файла бинарного вида извлекают, по меньшей мере, следующие параметры: N-граммы байт; информация из полей исполнимого файла; энтропия секций файла; метаданные; гистограммы распределения длин строк.
5. Компьютерно- реализуемый способ по п.З, в котором информация из полей по меньшей мере одного исполняемого файла бинарного вида, содержит по меньшей мере: количество секций в файле, размер заголовков, размер кода, наличие цифровой подписи, наличие импортируемых dll и функций, где были использованы эти библиотеки, название экспортируемых функций, данные из каталога ресурсов, версию сборщика.
6. Компьютерно- реализуемый способ по п. 3, в котором энтропия, извлекаемая из полей по меньшей мере одного исполняемого файла бинарного вида, рассчитывается с помощью применения метода скользящего окна с последующим применением ряда статистических мер для характеризации полученного вектора энтропийных мер.
7. Компьютерно- реализуемый способ по п. 3, в котором метаданные, извлекаемые из заголовка по меньшей мере одного бинарного исполняемого файла, содержат: количество секций в файле, размер секций, наличие контрольной суммы, размер файла, время создания, версия операционной системы, версия сборщика.
8. Компьютерно- реализуемый способ по п.1, отличающийся тем, что из по меньшей мере одного дизассемблированного исполняемого файла извлекают, по меньшей мере, следующие параметры: символы; регистры; операционные коды; частота обращения к системным интерфейсам (Windows APIs); секции; метаданные.
9. Компьютерно- реализуемый способ по п. 7, в котором дополнительно определяют частоту появления символов, извлекаемых из по меньшей мере одного дизассемблированного исполняемого файла, причем символы могут представлять по меньшей мере:
Figure imgf000022_0001
10. Компьютерно- реализуемый способ по п. 7, в котором дополнительно вычисляют отношение количества известных регистров, извлекаемых из по меньшей мере одного дизассемблированного исполняемого файла, к неизвестным регистрам, извлекаемым из дизассемблированного файла.
11. Компьютерно- реализуемый способ по п. 7, отличающийся тем, что секции, извлекаемые из по меньшей мере одного дизассемблированного исполняемого файла, определены заранее и представляют собой: .text, .data, .bss, .rdata, .edata, .idata, .rsrc, .tls и .reloc.
12. Компьютерно- реализуемый способ по п. 7, отличающийся тем, что метаданные, извлекаемых из по меньшей мере одного дизассемблированного исполняемого файла, представляют собой размер файла и количество строк кода.
13. Компьютерно- реализуемый способ по п.1, отличающийся тем, что результат анализа может быть бинарным или вероятностным.
14. Компьютерно- реализуемый способ по п. 1, в котором решающий приоритет каждого из ансамбля классификаторов определяется на основе обучения на тестовой выборке, причем для оценки используются по меньшей мере: точность, полнота, F-мера.
15. Система выявления вредоносных файлов в неизолированной среде по меньшей мере содержит: модуль извлечения данных, выполненный с возможностью извлечения данных, по меньшей мере из одного исполняемого файла; вычислительное устройство, выполненное с возможностью осуществления способа выявления вредоносных файлов в неизолированной среде по пп. 1 -14; модуль вывода.
PCT/RU2020/000089 2020-02-21 2020-02-25 Способ и система выявления вредоносных файлов в неизолированной среде WO2021167483A1 (ru)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20919950.4A EP3968197A4 (en) 2020-02-21 2020-02-25 METHOD AND SYSTEM FOR DETECTING MALICIOUS FILES IN A NON-ISOLATED ENVIRONMENT
US17/586,010 US20220164444A1 (en) 2020-02-21 2022-01-27 Method and system for detecting malicious files in a non-isolated environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2020107922 2020-02-21
RU2020107922A RU2722692C1 (ru) 2020-02-21 2020-02-21 Способ и система выявления вредоносных файлов в неизолированной среде

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/586,010 Continuation US20220164444A1 (en) 2020-02-21 2022-01-27 Method and system for detecting malicious files in a non-isolated environment

Publications (1)

Publication Number Publication Date
WO2021167483A1 true WO2021167483A1 (ru) 2021-08-26

Family

ID=71067495

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2020/000089 WO2021167483A1 (ru) 2020-02-21 2020-02-25 Способ и система выявления вредоносных файлов в неизолированной среде

Country Status (4)

Country Link
US (1) US20220164444A1 (ru)
EP (1) EP3968197A4 (ru)
RU (1) RU2722692C1 (ru)
WO (1) WO2021167483A1 (ru)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556653B1 (en) * 2019-02-26 2023-01-17 Gen Digital Inc. Systems and methods for detecting inter-personal attack applications
RU2745371C1 (ru) * 2020-09-24 2021-03-24 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Способ и система прогнозирования рисков кибербезопасности при разработке программных продуктов
RU2745369C1 (ru) * 2020-09-24 2021-03-24 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Способ и система оценки вероятности возникновения критических дефектов по кибербезопасности на приемо-сдаточных испытаниях релизов продуктов
RU2759087C1 (ru) * 2020-12-07 2021-11-09 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система статического анализа исполняемых файлов на основе предиктивных моделей
WO2024044559A1 (en) * 2022-08-22 2024-02-29 SentinelOne, Inc. Systems and methods of data selection for iterative training using zero knowledge clustering

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170006045A1 (en) * 2015-06-30 2017-01-05 AO Kaspersky Lab System and method of detecting malicious files on mobile devices
US20170262633A1 (en) * 2012-09-26 2017-09-14 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
RU2654146C1 (ru) 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
US20180165452A1 (en) * 2016-12-13 2018-06-14 Acer Incorporated Electronic device and method for detecting malicious file
US20190005239A1 (en) 2016-01-19 2019-01-03 Samsung Electronics Co., Ltd. Electronic device for analyzing malicious code and method therefor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2755780T3 (es) * 2011-09-16 2020-04-23 Veracode Inc Análisis estático y de comportamiento automatizado mediante la utilización de un espacio aislado instrumentado y clasificación de aprendizaje automático para seguridad móvil
US20170068816A1 (en) * 2015-09-04 2017-03-09 University Of Delaware Malware analysis and detection using graph-based characterization and machine learning
CN107392019A (zh) * 2017-07-05 2017-11-24 北京金睛云华科技有限公司 一种恶意代码家族的训练和检测方法及装置
RU2679785C1 (ru) * 2017-10-18 2019-02-12 Акционерное общество "Лаборатория Касперского" Система и способ классификации объектов
RU2706883C1 (ru) * 2018-06-29 2019-11-21 Акционерное общество "Лаборатория Касперского" Система и способ снижения количества ложных срабатываний классифицирующих алгоритмов
RU2708356C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Система и способ двухэтапной классификации файлов
US10880328B2 (en) * 2018-11-16 2020-12-29 Accenture Global Solutions Limited Malware detection
EP3903183A1 (en) * 2019-02-05 2021-11-03 Rezilion Ltd Automatic mitigation of corrupted or compromised compute resources
US11113397B2 (en) * 2019-05-16 2021-09-07 Cisco Technology, Inc. Detection of malicious executable files using hierarchical models

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170262633A1 (en) * 2012-09-26 2017-09-14 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
US20170006045A1 (en) * 2015-06-30 2017-01-05 AO Kaspersky Lab System and method of detecting malicious files on mobile devices
US20190005239A1 (en) 2016-01-19 2019-01-03 Samsung Electronics Co., Ltd. Electronic device for analyzing malicious code and method therefor
US20180165452A1 (en) * 2016-12-13 2018-06-14 Acer Incorporated Electronic device and method for detecting malicious file
RU2654146C1 (ru) 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
US20180365420A1 (en) * 2017-06-16 2018-12-20 AO Kaspersky Lab System and method of detecting malicious files with the use of elements of static analysis

Also Published As

Publication number Publication date
EP3968197A1 (en) 2022-03-16
US20220164444A1 (en) 2022-05-26
RU2722692C1 (ru) 2020-06-03
EP3968197A4 (en) 2023-01-18

Similar Documents

Publication Publication Date Title
RU2722692C1 (ru) Способ и система выявления вредоносных файлов в неизолированной среде
Han et al. MalDAE: Detecting and explaining malware based on correlation and fusion of static and dynamic characteristics
Ahmed et al. A system call refinement-based enhanced Minimum Redundancy Maximum Relevance method for ransomware early detection
Hashemi et al. Graph embedding as a new approach for unknown malware detection
Le et al. Deep specification mining
Alrabaee et al. Fossil: a resilient and efficient system for identifying foss functions in malware binaries
CN111400719B (zh) 基于开源组件版本识别的固件脆弱性判别方法及系统
Eschweiler et al. Discovre: Efficient cross-architecture identification of bugs in binary code.
Cen et al. A probabilistic discriminative model for android malware detection with decompiled source code
Kim et al. Improvement of malware detection and classification using API call sequence alignment and visualization
Yan et al. Exploring discriminatory features for automated malware classification
EP3330879B1 (en) Vulnerability discovering device, vulnerability discovering method, and vulnerability discovering program
US20070239993A1 (en) System and method for comparing similarity of computer programs
US10747880B2 (en) System and method for identifying and comparing code by semantic abstractions
BR102015017215A2 (pt) método implementado em computador para classificação de aplicativos móveis, e, programa de computador codificado em um meio de armazenamento não-trasitório
JP7115552B2 (ja) 解析機能付与装置、解析機能付与方法及び解析機能付与プログラム
RU2728498C1 (ru) Способ и система определения принадлежности программного обеспечения по его исходному коду
US11960597B2 (en) Method and system for static analysis of executable files
Rhode et al. Lab to soc: robust features for dynamic malware detection
CN112000952B (zh) Windows平台恶意软件的作者组织特征工程方法
US11947572B2 (en) Method and system for clustering executable files
Wang et al. GraphSPD: Graph-based security patch detection with enriched code semantics
CN112148305A (zh) 一种应用检测方法、装置、计算机设备和可读存储介质
Zhao et al. VULDEFF: Vulnerability detection method based on function fingerprints and code differences
Alrabaee A stratified approach to function fingerprinting in program binaries using diverse features

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20919950

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020919950

Country of ref document: EP

Effective date: 20211210

NENP Non-entry into the national phase

Ref country code: DE