基于汇编指令序列相似度的程序行为识别方法和系统技术方案

技术编号:15254740 阅读:53 留言:0更新日期:2017-05-02 21:54
本发明专利技术提供了基于汇编指令序列相似度的程序行为识别方法和系统,涉及软件行为识别分析技术领域,包括:获取目标程序中的汇编指令序列;根据汇编指令序列中的汇编指令,建立六元组模型;根据六元组模型得到汇编指令序列的相似度;分别从时间复杂度和空间复杂度上对汇编指令序列的相似度进行优化,将优化的汇编指令序列的相似度和关键常量构建识别模型,并采用机器学习算法对目标程序进行识别。本发明专利技术从汇编指令级别出发,全面地获取底层的程序行为信息,在有效去除混淆干扰行为的基础上,提高软件行为识别的准确率。

Program behavior recognition method and system based on assembly instruction sequence similarity

The present invention provides a program behavior recognition method and system assembly instructions based on sequence similarity, involving software behavior recognition analysis technology, including: obtaining the target program in assembler instruction sequence; according to the assembly instructions in a sequence of assembly instructions, establish six tuple model; according to the similarity of six tuple model assembly instructions respectively from the time sequence; the complexity and the space complexity of assembly instruction sequence similarity to optimize the similarity and key constant optimization of assembly instruction sequences to construct the recognition model, and uses machine learning algorithms to identify the target program. In the invention, the program behavior information of the bottom layer is obtained from the assembly instruction level, and the accuracy rate of the software behavior recognition is improved on the basis of effectively removing the interference behavior.

【技术实现步骤摘要】

本专利技术涉及软件行为识别分析
,尤其是涉及基于汇编指令序列相似度的程序行为识别方法和系统。
技术介绍
当今社会,越来越多的用户、企业遭受着恶意软件攻击带来的经济损失,如何识别程序中的行为已经成为信息安全领域重要的研究内容,并在软件相似度判别、恶意软件分析领域都发挥着重要的作用。程序行为识别其核心技术是对程序的行为语义结构的类型和功能特征进行特征抽取和鉴别分类的技术,按照技术原理划分,当前的程序行为识别技术分为基于源代码的程序识别技术、基于静态中间代码生成的识别技术和基于动态程序行为监控的功能识别技术。其中,基于源代码的程序识别技术直接对高级编程语言进行分析,拥有最全面的语义结构信息从而能够达到较高的识别准确度,但是无法对二进制程序进行识别。基于静态中间代码生成的识别技术的识别效率高,但是由于不考虑程序的实际运行流程导致识别准确度低,而且无法应对程序常采用的代码混淆技术。基于动态程序行为监控的功能识别技术能够分析程序的实际执行流程,避免代码混淆技术带来的干扰。该技术在获取动态执行流程的同时丢失了静态语义结构信息,提高了程序功能特征分析和提取的难度,使得目前国内外研究的识别范围单一,无法满足广义程序功能识别的需求。
技术实现思路
有鉴于此,本专利技术的目的在于提供基于汇编指令序列相似度的程序行为识别方法和系统,从汇编指令级别出发,全面地获取底层的程序行为信息,在有效去除混淆干扰行为的基础上,提高软件行为识别的准确率。第一方面,本专利技术实施例提供了基于汇编指令序列相似度的程序行为识别方法,所述方法包括:获取目标程序中的汇编指令序列;根据所述汇编指令序列中的汇编指令,建立六元组模型;根据所述六元组模型得到所述汇编指令序列的相似度;分别从时间复杂度和空间复杂度上对所述汇编指令序列的相似度进行优化,将优化的所述汇编指令序列的相似度和关键常量构建识别模型,并采用机器学习算法对所述目标程序进行识别。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述根据所述六元组模型得到所述汇编指令序列的相似度包括:对所述六元组模型中的元素进行量化,得到每个所述元素对应的权值;根据所述每个所述元素对应的权值得出所述汇编指令之间的相似度,并根据所述汇编指令之间的相似度得出所述汇编指令序列的相似度。结合第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述六元组模型中的元素包括操作码编码、操作数编码、标志寄存器编码、读写操作编码、嵌套深度编码和时间戳编码,所述对所述六元组模型中元素进行量化,得到每个所述元素对应的权值包括:对所述操作码编码进行量化,当所述操作码编码完全相同时,则在所述操作码编码的编码函数中返回第一数值,并将所述第一数值作为第一返回值;当所述操作码编码所属类别相同时,则在所述操作码编码的编码函数中返回第二数值,并将所述第二数值作为所述第一返回值;当所述操作码编码所属类别不同时,返回第三数值,并将所述第三数值作为所述第一返回值;或者,对所述操作数编码进行量化,当所述操作数编码的读写模式相同时,且所述操作数编码被标记为重要,则在所述第一返回值的结果增加第四数值;当所述操作数编码的所述读写模式相同时,且所述操作数编码被标记为不重要,则在所述第一返回值的结果增加第五数值;当所述操作数编码的存储类型相同时,则在所述第一返回值的结果增加第六数值;或者,对所述标志寄存器编码进行量化,根据所述汇编指令对应的标志寄存器描述操作码对所述标志寄存器的影响,确定第二返回值。结合第一方面的第二种可能的实施方式,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,所述根据所述每个所述元素对应的权值得出所述汇编指令之间的相似度包括:根据下式计算所述汇编指令间的相似度:SimIn=SimC*(μb*SimB+μs*SimS)μb+μs=1,0≤SimC≤1,0≤SimB≤1,0≤SimS≤1其中,所述SimIn为所述汇编指令间的相似度、所述SimC为所述操作码编码和所述操作数编码的相似度;所述SimB为所述读写操作编码的相似度;所述SimS为所述嵌套深度编码和所述时间戳编码的相似度,所述μb和所述μs分别为赋给所述读写操作编码以及所述操作码编码和所述操作数编码的权值。结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,所述分别从时间复杂度和空间复杂度上对所述汇编指令序列的相似度进行优化包括:在所述时间复杂度上,建立基本块的相似度二维表格;以两两所述基本块的执行序号作为关键值,根据所述关键值计算两两所述基本块的相似度,并以所述基本块的相似度来计算所述汇编指令序列的相似度;在所述空间复杂度上,使用滚动数组计算所述汇编指令序列的相似度,其中所述滚动数组设置为两层。第二方面,本专利技术实施例还提供基于汇编指令序列相似度的程序行为识别系统,包括获取单元、建模单元、比对单元、优化单元和识别单元;所述获取单元,用于获取目标程序中的汇编指令序列;所述建模单元,用于根据所述汇编指令序列中的汇编指令,建立六元组模型;所述比对单元,用于根据所述六元组模型得到所述汇编指令序列的相似度;所述优化单元,用于分别从时间复杂度和空间复杂度上对所述汇编指令序列的相似度进行优化;所述识别单元,用于根据经优化的所述汇编指令序列的相似度和关键常量构建识别模型,并采用机器学习算法对所述目标程序进行识别。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,所述比对单元,还用于对所述六元组模型中的元素进行量化,得到每个所述元素对应的权值;根据所述每个所述元素对应的权值得出所述汇编指令之间的相似度,并根据所述汇编指令之间的相似度得出所述汇编指令序列的相似度。结合第二方面的第一种可能的实施方式,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,所述六元组模型中的元素包括操作码编码、操作数编码、标志寄存器编码、读写操作编码、嵌套深度编码和时间戳编码,所述比对单元包括:对所述操作码编码进行量化,在所述操作码编码完全相同的情况下,则在所述操作码编码的编码函数中返回第一数值,并将所述第一数值作为第一返回值;在所述操作码编码所属类别相同的情况下,则在所述操作码编码的编码函数中返回第二数值,并将所述第二数值作为所述第一返回值;在所述操作码编码所属类别不同的情况下,返回第三数值,并将所述第三数值作为所述第一返回值;或者,对所述操作数编码进行量化,在所述操作数编码的读写模式相同的情况下,且所述操作数编码被标记为重要,则在所述第一返回值的结果增加第四数值;在所述操作数编码的所述读写模式相同的情况下,且所述操作数编码被标记为不重要,则在所述第一返回值的结果增加第五数值;在所述操作数编码的存储类型相同的情况下,则在所述第一返回值的结果增加第六数值;或者,对所述标志寄存器编码进行量化,根据所述汇编指令对应的标志寄存器描述操作码对所述标志寄存器的影响,确定第二返回值。结合第二方面的第二种可能的实施方式,本专利技术实施例提供了第二方面的第三种可能的实施方式,其中,所述比对单元,还用于根据下式计算所述汇编指令的相似度:SimIn=SimC*(μb*SimB+μs*SimS)μb+μs=1,0≤SimC≤1,0≤SimB≤1,0本文档来自技高网...

【技术保护点】
一种基于汇编指令序列相似度的程序行为识别方法,其特征在于,所述方法包括:获取目标程序中的汇编指令序列;根据所述汇编指令序列中的汇编指令,建立六元组模型;根据所述六元组模型得到所述汇编指令序列的相似度;分别从时间复杂度和空间复杂度上对所述汇编指令序列的相似度进行优化,将优化的所述汇编指令序列的相似度和关键常量构建识别模型,并采用机器学习算法对所述目标程序进行识别。

【技术特征摘要】
1.一种基于汇编指令序列相似度的程序行为识别方法,其特征在于,所述方法包括:获取目标程序中的汇编指令序列;根据所述汇编指令序列中的汇编指令,建立六元组模型;根据所述六元组模型得到所述汇编指令序列的相似度;分别从时间复杂度和空间复杂度上对所述汇编指令序列的相似度进行优化,将优化的所述汇编指令序列的相似度和关键常量构建识别模型,并采用机器学习算法对所述目标程序进行识别。2.根据权利要求1所述的基于汇编指令序列相似度的程序行为识别方法,其特征在于,所述根据所述六元组模型得到所述汇编指令序列的相似度包括:对所述六元组模型中的元素进行量化,得到每个所述元素对应的权值;根据所述每个所述元素对应的权值得出所述汇编指令之间的相似度,并根据所述汇编指令之间的相似度得出所述汇编指令序列的相似度。3.根据权利要求2所述的基于汇编指令序列相似度的程序行为识别方法,其特征在于,所述六元组模型中的元素包括操作码编码、操作数编码、标志寄存器编码、读写操作编码、嵌套深度编码和时间戳编码,所述对所述六元组模型中元素进行量化,得到每个所述元素对应的权值包括:对所述操作码编码进行量化,当所述操作码编码完全相同时,则在所述操作码编码的编码函数中返回第一数值,并将所述第一数值作为第一返回值;当所述操作码编码所属类别相同时,则在所述操作码编码的编码函数中返回第二数值,并将所述第二数值作为所述第一返回值;当所述操作码编码所属类别不同时,返回第三数值,并将所述第三数值作为所述第一返回值;或者,对所述操作数编码进行量化,当所述操作数编码的读写模式相同时,且所述操作数编码被标记为重要,则在所述第一返回值的结果增加第四数值;当所述操作数编码的所述读写模式相同时,且所述操作数编码被标记为不重要,则在所述第一返回值的结果增加第五数值;当所述操作数编码的存储类型相同时,则在所述第一返回值的结果增加第六数值;或者,对所述标志寄存器编码进行量化,根据所述汇编指令对应的标志寄存器描述操作码对所述标志寄存器的影响,确定第二返回值。4.根据权利要求3所述的基于汇编指令序列相似度的程序行为识别方法,其特征在于,所述根据所述每个所述元素对应的权值得出所述汇编指令之间的相似度包括:根据下式计算所述汇编指令间的相似度:SimIn=SimC*(μb*SimB+μs*SimS)μb+μs=1,0≤SimC≤1,0≤SimB≤1,0≤SimS≤1其中,所述SimIn为所述汇编指令间的相似度、所述SimC为所述操作码编码和所述操作数编码的相似度;所述SimB为所述读写操作编码的相似度;所述SimS为所述嵌套深度编码和所述时间戳编码的相似度,所述μb和所述μs分别为赋给所述读写操作编码以及所述操作码编码和所述操作数编码的权值。5.根据权利要求1所述的基于汇编指令序列相似度的程序行为识别方法,其特征在于,所述分别从时间复杂度和空间复杂度上对所述汇编指令序列的相似度进行优化包括:在所述时间复杂度上,建立基本块的相似度二维表格;以两两所述基本块的执行序号作为关键值,根据所述关键值计算两两所述基本块的相似度,并以所述基本块的相似度来计算所述汇编指令序列的相似度;在所述空间复杂度上,使用滚动数组计算所述汇编指令序列的相似度,其中所述滚动数组设...

【专利技术属性】
技术研发人员:崔宝江王崇杨俊
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京;11

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

1