В работе рассматривается предлагаемый подход к анализу экземпляров вредоносного программного обеспечения, содержащего механизмы, направленные на сокрытие вредоносных функциональных возможностей. Описаны наиболее распространенные механизмы самозащиты, применяемые во вредоносном программном обеспечении, и существующие подходы к их преодолению. Приведены результаты статистического анализа функций, присутствующих в выборках легитимных и вредоносных исполняемых файлов.
На основе кластеризации функций составлен перечень опасных операций, связанных с вредоносными функциональными возможностями.
Предложен итерационный подход к максимизации покрытия кода, исследуемой при динамическом анализе программы, основанный на применении символьного выполнения для определения условий осуществления вредоносных операций.
< ... >
The paper considers an approach to the analysis of malware instances which contain mechanisms aimed at hiding malicious functionality. The article describes the most common self-protection mechanisms used in malicious software and also existing approaches of overcoming them. The results of statistical analysis of the functions present in the samples of legitimate and malicious executable files are given. The differences of the programs used in target attacks are described. A list of dangerous operations related to malicious functionality is present on the basis of clustering of functions.
It is also proposed an iterative approach to maximizing the coverage of code investigated during dynamic analysis of the program which is based on the use of symbolic execution to determine the conditions for malicious actions.
Keywords:
malware detection, malicious activity, dangerous behavior, trigger-based behavior, backdoors, behavioral analysis, symbolic execution, machine learning, clusteringre