恶意程序特征提取方法和系统技术方案

技术编号:15241150 阅读:94 留言:0更新日期:2017-05-01 01:12
本发明专利技术提供了恶意程序特征提取方法和系统,涉及恶意程序识别技术领域,包括利用静态分析技术提取被测目标的静态信息;在沙箱中运行被测目标,监控被测目标的调用函数并进行拦截,对调用函数进行处理,得到行为信息;在沙箱的作用下,利用二进制动态插装技术对被测目标进行动态二进制插装,干涉控制流并获取控制流信息;获取被测目标的当前动态执行基本块信息,并给基本块设置编号,记录基本块的调用编号序列以及每个基本块对应的相关信息,得到汇编指令流快照信息;对静态信息、控制流信息、汇编指令流快照信息和行为信息进行特征提取,得到多维特征信息。本发明专利技术可以对恶意程序进行深度的特征提取,提高了恶意程序识别的准确度和精度。

Malicious program feature extraction method and system

The invention provides a malicious program feature extraction method and system, relates to malware identification technology, including extracting static information of the measured target using static analysis techniques; in a sandbox running object, call the function to monitor the measured target and intercept, swap with the function for processing, get the information in the sandbox behavior; under the effect of using dynamic binary instrumentation technology of dynamic binary instrumentation target is measured, interference control flow and access control flow information; obtaining information of the current dynamic basic block execution of the measured target, and to the block set number, record the basic block call number sequence and related information corresponding to each basic block. Get snapshot of assembly instruction stream information; static information, control flow information, assembly instructions for feature extraction flow snapshot information and behavior information, Multidimensional feature information. The invention can extract the depth feature of the malicious program, and improve the accuracy and precision of the malicious program identification.

【技术实现步骤摘要】

本专利技术涉及恶意程序识别
,尤其是涉及恶意程序特征提取方法和系统。
技术介绍
传统的应用软件恶意行为检测技术,主要包括程序恶意行为检测、文件特征和行为特征比对等方法。目前主流的恶意程序识别算法,主要是提取恶意程序的行为粒度特征,仅部分恶意程序识别算法考虑了汇编指令离散特征的提取。据统计,系统函数调用序列用到的指令频度仅占二进制指令总数的0.05%,仅提取行为特征会损失细粒度的指令信息和语义信息,无法进行深度识别和分类,使得对恶意程序识别的准确度较低。
技术实现思路
有鉴于此,本专利技术的目的在于提供恶意程序特征提取方法和系统,可以实现对恶意程序更深度的特征提取,提高了恶意程序识别的准确度和精度。第一方面,本专利技术实施例提供了一种恶意程序特征提取方法,包括:利用静态分析技术,通过编写IDApython脚本,利用IDA命令行参数自动载入并执行被测目标,记录所述被测目标的静态信息;在沙箱中运行所述被测目标,监控所述被测目标的调用函数并进行拦截,对所述调用函数进行处理,得到行为信息;在所述沙箱的作用下,利用二进制动态插装技术对所述被测目标进行动态二进制插装,对被测目标的函数进行解析,获取解析信息,动态执行所述被测目标,根据所述解析信息获取控制流信息;获取所述被测目标的当前动态执行基本块信息,并按照执行顺序给基本块设置编号,记录所述基本块的调用编号序列以及每个所述基本块对应的相关信息,用于离线重放指令流执行快照,从而得到汇编指令流快照信息;对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述多维特征信息包括汇编指令级特征,所述汇编指令级特征包括指令统计特征、循环嵌套特征和数据依赖特征,所述对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息包括:读取所述汇编指令流快照信息中的一条汇编指令字符串,提取对应的操作码信息和操作数信息,记录操作码、操作码类型、操作数和指令地址;将所述操作码和所述操作码类型对应的频度特征值加1,得到操作码频度特征和操作码类型频度特征;提取所述操作数中的常量,得到指令常量特征;判断所述操作码类型是否为控制跳转类,如果所述操作码类型是控制跳转类,则判断所述指令地址是否第一次出现,如果所述指令地址是第一次出现,则将选择结构特征值加1,得到选择结构特征;判断所述汇编指令字符串是否读取完毕,如果读取完毕,则输出所述操作码频度特征、所述操作码类型频度特征、所述指令常量特征和所述选择结构特征,作为所述指令统计特征。结合第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息还包括:读取所述汇编指令流快照信息中的指令流序列;将所述指令流序列转化为基本块序列,利用后向搜索算法,在找到所述基本块序列的一层循环时,递归搜索所述循环内的其他循环结构,得到每层循环结构数量,作为循环嵌套特征。结合第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,所述对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息还包括:读取所述汇编指令流快照信息中的一条汇编指令字符串和其上下文信息,得到源操作数信息和目的操作数信息;判断源操作数和目的操作数之间是否存在数据传播操作,如果存在,则判断所述源操作数是否为污点数据,如果所述源操作数是所述污点数据,则进行污点传播标记,得到第一污点数据列表;如果所述源操作数不是所述污点数据,则判断所述目的操作数是否为所述污点数据,如果所述目的操作数是所述污点数据,则进行污点消除标记,得到第二污点数据列表;判断所述汇编指令字符串和其上下文信息是否分析完毕,如果分析完毕,则利用变量规约和来源识别方法对所述第一污点数据列表或所述第二污点数据列表进行归纳整合,提取函数数据依赖的统计特征集合,作为所述数据依赖特征。结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,所述在沙箱中运行所述被测目标,监控所述被测目标的调用函数并进行拦截,对所述调用函数进行处理,得到行为信息包括:获取所述调用函数的调用号;根据所述调用号查找调用号与系统函数的对照表,得到与所述调用号对应的调用函数类型,从而对所述调用函数进行分类;判断分类后的调用函数是否需要干涉,如果需要干涉,则对所述分类后的调用函数进行处理。第二方面,本专利技术实施例还提供一种恶意程序特征提取系统,包括:预分析模块,用于利用静态分析技术,通过编写IDApython脚本,利用IDA命令行参数自动载入并执行被测目标,记录所述被测目标的静态信息;沙箱模块,用于运行所述被测目标,监控所述被测目标的调用函数并进行拦截,对所述调用函数进行处理,得到行为信息;控制流干涉模块,用于在所述沙箱的作用下,利用二进制动态插装技术对所述被测目标进行动态二进制插装,对被测目标的函数进行解析,获取解析信息,动态执行所述被测目标,根据所述解析信息获取控制流信息;指令流快照记录模块,用于获取所述被测目标的当前动态执行基本块信息,并按照执行顺序给基本块设置编号,记录所述基本块的调用编号序列以及每个所述基本块对应的相关信息,用于离线重放指令流执行快照,从而得到汇编指令流快照信息;特征提取模块,用于对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,所述多维特征信息包括汇编指令级特征,所述汇编指令级特征包括指令统计特征、循环嵌套特征和数据依赖特征,所述特征提取模块包括:读取所述汇编指令流快照信息中的一条汇编指令字符串,提取对应的操作码信息和操作数信息,记录操作码、操作码类型、操作数和指令地址;将所述操作码和所述操作码类型对应的频度特征值加1,得到操作码频度特征和操作码类型频度特征;提取所述操作数中的常量,得到指令常量特征;判断所述操作码类型是否为控制跳转类,如果所述操作码类型是控制跳转类,则判断所述指令地址是否第一次出现,如果所述指令地址是第一次出现,则将选择结构特征值加1,得到选择结构特征;判断所述汇编指令字符串是否读取完毕,如果读取完毕,则输出所述操作码频度特征、所述操作码类型频度特征、所述指令常量特征和所述选择结构特征,作为所述指令统计特征。结合第二方面的第一种可能的实施方式,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,所述特征提取模块还包括:读取所述汇编指令流快照信息中的指令流序列;将所述指令流序列转化为基本块序列,利用后向搜索算法,在找到所述基本块序列的一层循环时,递归搜索所述一层循环内的其他循环结构,得到每层循环结构数量,作为循环嵌套特征。结合第二方面的第一种可能的实施方式,本专利技术实施例提供了第二方面的第三种可能的实施方式,其中,所述特征提取模块还包括:读取所述汇编指令流快照信息中的一条汇编指令字符串和其上下文信息,得到源操作数信息和目的操作数信息;判断源操作数和目本文档来自技高网...

【技术保护点】
一种恶意程序特征提取方法,其特征在于,包括:利用静态分析技术,通过编写IDA python脚本,利用IDA命令行参数自动载入并执行被测目标,记录所述被测目标的静态信息;在沙箱中运行所述被测目标,监控所述被测目标的调用函数并进行拦截,对所述调用函数进行处理,得到行为信息;在所述沙箱的作用下,利用二进制动态插装技术对所述被测目标进行动态二进制插装,对被测目标的函数进行解析,获取解析信息,动态执行所述被测目标,根据所述解析信息获取控制流信息;获取所述被测目标的当前动态执行基本块信息,并按照执行顺序给基本块设置编号,记录所述基本块的调用编号序列以及每个所述基本块对应的相关信息,用于离线重放指令流执行快照,从而得到汇编指令流快照信息;对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息。

【技术特征摘要】
1.一种恶意程序特征提取方法,其特征在于,包括:利用静态分析技术,通过编写IDApython脚本,利用IDA命令行参数自动载入并执行被测目标,记录所述被测目标的静态信息;在沙箱中运行所述被测目标,监控所述被测目标的调用函数并进行拦截,对所述调用函数进行处理,得到行为信息;在所述沙箱的作用下,利用二进制动态插装技术对所述被测目标进行动态二进制插装,对被测目标的函数进行解析,获取解析信息,动态执行所述被测目标,根据所述解析信息获取控制流信息;获取所述被测目标的当前动态执行基本块信息,并按照执行顺序给基本块设置编号,记录所述基本块的调用编号序列以及每个所述基本块对应的相关信息,用于离线重放指令流执行快照,从而得到汇编指令流快照信息;对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息。2.根据权利要求1所述的恶意程序特征提取方法,其特征在于,所述多维特征信息包括汇编指令级特征,所述汇编指令级特征包括指令统计特征、循环嵌套特征和数据依赖特征,所述对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息包括:读取所述汇编指令流快照信息中的一条汇编指令字符串,提取对应的操作码信息和操作数信息,记录操作码、操作码类型、操作数和指令地址;将所述操作码和所述操作码类型对应的频度特征值加1,得到操作码频度特征和操作码类型频度特征;提取所述操作数中的常量,得到指令常量特征;判断所述操作码类型是否为控制跳转类,如果所述操作码类型是控制跳转类,则判断所述指令地址是否第一次出现,如果所述指令地址是第一次出现,则将选择结构特征值加1,得到选择结构特征;判断所述汇编指令字符串是否读取完毕,如果读取完毕,则输出所述操作码频度特征、所述操作码类型频度特征、所述指令常量特征和所述选择结构特征,作为所述指令统计特征。3.根据权利要求2所述的恶意程序特征提取方法,其特征在于,所述对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息还包括:读取所述汇编指令流快照信息中的指令流序列;将所述指令流序列转化为基本块序列,利用后向搜索算法,在找到所述基本块序列的一层循环时,递归搜索所述循环内的其他循环结构,得到每层循环结构数量,作为循环嵌套特征。4.根据权利要求2所述的恶意程序特征提取方法,其特征在于,所述对所述静态信息、所述控制流信息、所述汇编指令流快照信息和所述行为信息进行特征提取,得到多维特征信息还包括:读取所述汇编指令流快照信息中的一条汇编指令字符串和其上下文信息,得到源操作数信息和目的操作数信息;判断源操作数和目的操作数之间是否存在数据传播操作,如果存在,则判断所述源操作数是否为污点数据,如果所述源操作数是所述污点数据,则进行污点传播标记,得到第一污点数据列表;如果所述源操作数不是所述污点数据,则判断所述目的操作数是否为所述污点数据,如果所述目的操作数是所述污点数据,则进行污点消除标记,得到第二污点数据列表;判断所述汇编指令字符串和其上下文信息是否分析完毕,如果分析完毕,则利用变量规约和来源识别方法对所述第一污点数据列表或所述第二污点数据列表进行归纳整合,提取函数数据依赖的统计特征集合,作为所述数据依赖特征。5.根据权利要求1所述的恶意程序特征提取方法,其特征在于,所述在沙箱中运行所述被测目标,监控所述被测目标的调用函数并进行拦截,对所述调用函数进行处理,得到行为信息包括:获取所述调用函数的调用号;根据所述调用号查找调用号与系统函数的对照表,得到与所述调用号...

【专利技术属性】
技术研发人员:崔宝江曹梦晨赵晶玲
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1