logo好方法网

恶意代码同源性分析方法和恶意代码同源性分析装置


技术摘要:
本发明公开了一种恶意代码同源性分析方法,该方法可以包括:获取待分析代码;利用分类模型,对该待分析代码进行识别,得到识别结果;其中,该分类模型是利用预定的恶意代码样本的结构特征训练得到的;该结构特征由基于恶意代码样本切片过滤条件,并对恶意代码样本进行  全部
背景技术:
当前网络空间安全的主要威胁之一是恶意代码通过系统漏洞或垃圾邮件等大规 模传播,进而对信息系统所造成的破坏。随着网络攻防的博弈,恶意代码呈现出隐形化、多 态化、多歧化特点,因此,对恶意代码进行分析十分必要。 无论是传统的基于规则的恶意代码分析方法,还是基于机器学习的启发式恶意代 码分类预测方法,都需要以人工的方式提取恶意代码的结构、功能和行为特征。 举例来说,现有技术一般通过以下方式予以实施: 现有技术(一):通过YARA提取工具来提取恶意代码文件中的关键字节序列,作为 表征恶意代码的特征,添加到恶意代码特征库中,然后,再通过模式匹配识别恶意代码,以 对恶意代码同源性进行分析。 现有技术(二):与现有技术(一)不同的是提取恶意代码中的关键指令序列作为表 征恶意代码的特征,以对恶意代码同源性进行分析。其中,指令序列可以是高级程序语言如 JavaScript、PHP等,也可以是二进制汇编语言指令序列。 现有技术(三):提取恶意代码中各基本块的控制流,基于恶意代码中基本块的逻 辑关系,提取代码的结构特征,然后,通过代码结构匹配来识别恶意代码,以对恶意代码同 源性进行分析。 现有技术(四):通过提取恶意代码中的数据传播路径,通过污点传播技术提取恶 意代码的数据流特征,利用数据流特征来识别恶意代码,以对恶意代码同源性进行分析。 然而,上述现有技术在实施过程中存在着如下缺陷: 上述现有技术(一)因为需要事先人为配置恶意代码特征数据库,且无法识别变化 的、未知的恶意代码而存在无法高效分析恶意代码同源性的缺陷。 上述现有技术(二)因为忽略了恶意代码的结构特征和行为特征而存在无法高效 识别恶意代码同源性的缺陷。 上述现有技术(三)因为其所提取的结构特诊无法准确地表征恶意代码的行为而 存在恶意代码同源性分析准确率低的缺陷。 上述现有技术(四)因为存在“路径爆炸”情况而无法准确地提取恶意代码关键特 征,从而存在恶意代码同源性分析准确率低的缺陷。 鉴于此,如何提高恶意代码同源性分析的效率和准确率低,是亟待解决的技术问 题。
技术实现要素:
本公开实施例的主要目的是提供一种恶意代码同源性分析方法和恶意代码同源 5 CN 111611583 A 说 明 书 2/10 页 性分析装置,以至少解决如何提高分析恶意代码同源性的效率和准确率的问题。 为了实现上述目的,根据本公开的一个方面,提供以下技术方案: 一种恶意代码同源性分析方法,所述方法至少包括: 获取待分析代码; 利用分类模型,对所述待分析代码进行识别,得到识别结果;其中,所述分类模型 是利用预定的恶意代码样本的结构特征训练得到的;所述结构特征由基于所述恶意代码样 本切片过滤条件,并对所述恶意代码样本进行二进制代码过程间切片而得到; 根据所述识别结果,确定所述待分析代码所属的网络攻击组织或网络安全事件。 进一步地,所述分类模型通过以下方式实现: 获取所述预定的恶意代码样本的多维特征向量; 确定神经网络; 将所述预定的恶意代码样本的多维特征向量作为所述神经网络的输入,并对所述 神经网络进行训练,得到所述分类模型。 进一步地,获取所述预定的恶意代码样本的多维特征向量的步骤,具体包括: 获取所述恶意代码样本的二进制代码; 通过图嵌入网络方法,提取所述恶意代码样本二进制代码过程间切片的结构特 征; 对所述恶意代码样本的二进制代码进行反汇编,得到所述恶意代码样本的基本 块; 解析所述恶意代码样本的所述基本块; 从解析结果中提取所述基本块的统计特征; 结合所述结构特征和所述统计特征,生成所述恶意代码样本的所述多维特征向 量。 进一步地,所述恶意代码样本二进制代码过程间切片通过以下方式实现: 生成所述恶意代码样本的系统依赖图; 基于恶意代码过滤条件,分析所述系统依赖图中的节点代码,以实现所述恶意代 码样本二进制代码过程间切片;所述恶意代码切片过滤条件是通过采集多源威胁情报中的 典型恶意行为,并将其映射到所述恶意代码样本的所述二进制代码中的关键实现而构建 的。 进一步地,所述生成所述恶意代码样本的系统依赖图的步骤,具体包括: 对所述恶意代码样本所有过程执行过程内切片,生成程序依赖图; 解析出所述恶意代码样本的过程间依赖关系;所述过程间依赖关系描述包括以下 一项或几项的关系:父过程调用点与子过程入口点的关系、父过程实参输入与子过程形参 输入的关系、子过程形参输出与父过程实参输出的关系; 依据所述过程间依赖关系,在所述程序依赖图中添加边特征,得到所述恶意代码 样本的所述系统依赖图。 进一步地,基于恶意代码过滤条件,分析所述系统依赖图中的节点代码,以实现所 述恶意代码样本二进制代码过程间切片的步骤,具体包括: 基于恶意代码过滤条件,将节点代码中的多赋值指令转换为中间表示; 6 CN 111611583 A 说 明 书 3/10 页 将中间表示作为多赋值指令的子过程; 降低切片粒度; 基于所述多赋值指令的子过程和降低切片粒度的结果,执行所述二进制代码过程 间切片。 进一步地,基于恶意代码过滤条件,将节点代码中的多赋值指令转换为中间表示 的步骤,具体包括: 基于所述恶意代码过滤条件,将所述节点代码中的所述多赋值指令转换为一组单 赋值指令; 将所述一组单赋值指令作为子过程,添加到所述系统依赖图中; 对所述系统依赖图执行二进制代码过程间切片,得到所述中间表示。 进一步地,根据所述识别结果,确定所述待分析代码所属的网络攻击组织或网络 安全事件的步骤,具体包括: 如果所述识别结果表示所述待分析代码与所述预定的恶意代码样本相匹配,则将 所述待分析代码与所述预定的恶意代码样本确定为同源性恶意代码;其中,所述预定的恶 意代码样本与预定的网络攻击组织或预定的网络安全事件相关联。 为了实现上述目的,根据本公开的另一个方面,还提供了以下技术方案: 一种恶意代码同源性分析装置,所述装置至少包括: 获取模块,用于获取待分析代码; 识别模块,用于利用分类模型,对所述待分析代码进行识别,得到识别结果;其中, 所述分类模型是利用预定的恶意代码样本的结构特征训练得到的;所述结构特征由基于所 述恶意代码样本切片过滤条件,并对所述恶意代码样本进行二进制代码过程间切片而得 到; 确定模块,用于根据所述识别结果,确定所述待分析代码所属的网络攻击组织或 网络安全事件。 进一步地,所述识别模块具体用于: 获取所述预定的恶意代码样本的多维特征向量; 确定神经网络; 将所述预定的恶意代码样本的多维特征向量作为所述神经网络的输入,并对所述 神经网络进行训练,得到所述分类模型。 进一步地,所述识别模块具体还用于: 获取所述恶意代码样本的二进制代码; 通过图嵌入网络装置,提取所述恶意代码样本二进制代码过程间切片的结构特 征; 对所述恶意代码样本的二进制代码进行反汇编,得到所述恶意代码样本的基本 块; 解析所述恶意代码样本的所述基本块; 从解析结果中提取所述基本块的统计特征; 结合所述结构特征和所述统计特征,生成所述恶意代码样本的所述多维特征向 量。 7 CN 111611583 A 说 明 书 4/10 页 进一步地,所述识别模块具体还用于: 生成所述恶意代码样本的系统依赖图; 基于恶意代码过滤条件,分析所述系统依赖图中的节点代码,以实现所述恶意代 码样本二进制代码过程间切片;所述恶意代码切片过滤条件是通过采集多源威胁情报中的 典型恶意行为,并将其映射到所述恶意代码样本的所述二进制代码中的关键实现而构建 的。 进一步地,所述识别模块具体还用于: 对所述恶意代码样本所有过程执行过程内切片,生成程序依赖图; 解析出所述恶意代码样本的过程间依赖关系;所述过程间依赖关系描述包括以下 一项或几项的关系:父过程调用点与子过程入口点的关系、父过程实参输入与子过程形参 输入的关系、子过程形参输出与父过程实参输出的关系; 依据所述过程间依赖关系,在所述程序依赖图中添加边特征,得到所述恶意代码 样本的所述系统依赖图。 进一步地,所述识别模块具体还用于: 基于恶意代码过滤条件,将节点代码中的多赋值指令转换为中间表示; 将中间表示作为多赋值指令的子过程; 降低切片粒度; 基于所述多赋值指令的子过程和降低切片粒度的结果,执行所述二进制代码过程 间切片。 进一步地,所述识别模块具体还用于: 基于所述恶意代码过滤条件,将所述节点代码中的所述多赋值指令转换为一组单 赋值指令; 将所述一组单赋值指令作为子过程,添加到所述系统依赖图中; 对所述系统依赖图执行二进制代码过程间切片,得到所述中间表示。 进一步地,所述确定模块具体用于:在所述识别结果表示所述待分析代码与所述 预定的恶意代码样本相匹配的情况下,将所述待分析代码与所述预定的恶意代码样本确定 为同源性恶意代码;其中,所述预定的恶意代码样本与预定的网络攻击组织或预定的网络 安全事件相关联。 与现有技术相比,本申请至少具有以下有益效果: 本公开实施例提供一种恶意代码同源性分析方法,该方法至少可以包括:获取待 分析代码;利用分类模型,对该待分析代码进行识别,得到识别结果;其中,该分类模型是利 用预定的恶意代码样本的结构特征训练得到的;该结构特征由基于恶意代码样本切片过滤 条件,并对恶意代码样本进行二进制代码过程间切片而得到;根据识别结果,确定该待分析 代码所属的网络攻击组织或网络安全事件。 本公开实施例基于二进制程序切片方法,通过采集网络威胁情报中所有网络攻击 组织或事件有关的已知恶意代码样本,再通过分析恶意代码的控制依赖关系和数据依赖关 系,来提取表征恶意代码关键恶意行为的结构特征,并建立分类模型,然后,使用该分类模 型对待分析代码进行分类识别,判断该待分析代码是否与已知网络攻击组织或事件的恶意 代码样本具有同源性进而确定待分析代码是否为恶意代码,由此提高了分析恶意代码同源 8 CN 111611583 A 说 明 书 5/10 页 性的效率和准确率。 附图说明 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其他 特征、目的和优点将会变得更明显: 图1示例性地示出了恶意代码同源性分析方法实施例的流程示意图; 图2示例性地示出了另一恶意代码同源性分析方法实施例的流程示意图; 图3示例性地示出了恶意代码同源性分析装置实施例的结构示意图。
分享到:
收藏