System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件安全,具体提供一种基于源程序与可执行代码双模态融合的恶意行为识别方法。
技术介绍
1、软件目前已经融入人们生活的方方面面,人们已然习惯利用各类软件完成各项日常活动。然而,软件市场的繁荣在带来便利的同时,大量恶意产品不断涌入市场,给毫无戒备的用户带来了难以估量的损害。因此,软件恶意行为识别方法的研究变得日益重要。
2、当前软件恶意行为识别主要以代码的静态分析和动态分析为主,但二者均存在一定的局限性。静态分析可以在程序运行前对其进行分析,通过分析软件代码的静态特征来识别潜在的恶意行为的方法。静态分析中,首先需要将要检测的软件代码转化为可供分析的形式,通常是通过编译器将源程序代码转换为中间表示形式,如抽象语法树(ast)或控制流图(cfg)。然后,通过分析这些中间表示形式,可以提取出代码的结构和特征,进而应用规则引擎、模式匹配、数据流分析和符号执行等静态分析技术,来识别已知的恶意代码模式或具有潜在危险的代码结构。此外,部分方法利用人工智能技术来构建分类模型,基于静态特征的特征提取方法,例如n-gram、统计特征或基于图的特征,然后使用分类算法进行训练和预测。然而,静态分析无法获取软件执行特征,对于恶意代码的变异和混淆技术免疫性较差。
3、动态分析通过监视和分析软件在运行时的行为来识别潜在恶意行为的方法。相较于静态分析,动态分析可以提供更加全面和准确的恶意行为检测。动态分析中,首先需要在受检软件的执行环境中运行,并收集执行过程中的各种信息,如系统调用、网络通信、文件操作以及内存访问等。进而通过对
4、多模态融合技术是人工智能领域中一个热门研究方向,旨在将来自不同感知模态(例如图像、语音、文本等)的信息进行有效的整合和融合,以提高多模态数据的理解和处理能力。随着技术的不断进步,多模态融合在许多领域中都有着广阔的应用前景。在安全性检测领域,越来越多的方法开始从多模态融合的角度整合不同模态的软件行为特征,以支持软件恶意行为识别。虽然现有方法可以支持安全性检测任务,但现在的多模态检测方法其实还是单一数据源下的多模态,而非不同模态数据间的融合分析。这些方法往往选择静态或动态程序分析中的多个特征(例如:api、权限、操作码等)进行融合,得到统一的特征表示训练分类器支持恶意行为识别任务,这一融合本质上是多特征融合而非多模态融合,因此融合的特征仍然是对软件某个模态行为的刻画,并不全面。此外,当前方法在特征融合过程中对于特征处理较为粗糙,未进行特征对齐操作,降低了融合特征质量。同时,鉴于当前方法所选择的特征通常需要特征工程和领域背景知识进行支持。一方面解析适合建模软件行为的特征工程需要大量分析时间,并且由于恶意行为特征在不断演化,需要定期分析时下数据,对行为特征进行更新维护。另一方面需要丰富的从业经验积累,才能获得领域背景知识。这些因素使得现有方法在恶意行为识别任务上存在较大局限。
技术实现思路
1、本专利技术为解决上述问题,提供了一种基于源程序与可执行代码双模态融合的恶意行为识别方法,以软件与用户交互ui界面为索引对源程序代码进行切分,并利用atg图描述代码片段间关联关系,从用户对软件的使用角度刻画软件行为,获取具有潜在威胁的代码片段作为源程序模态信息;将软件的可执行代码用rgb图像表示,作为机器语言模态信息;以软件源代码中源程序编程语言模态信息与可执行二进制码中的机器语言模态信息进行融合,对软件行为进行多层次、全方位刻画,以实现恶意行为的深层次发掘。
2、本专利技术提供的基于源程序与可执行代码双模态融合的恶意行为识别方法,包括:s1:获取软件ui界面的活动转移图atg,依据活动转移图atg对源程序进行切片,并获取源程序代码片段的向量表示,得到编程语言模态信息;将软件的可执行代码用rgb图像表示,并获取rgb图像的向量表示,得到机器语言模态信息;
3、s2:建立基于多头自注意力机制的双模态信息融合模块,基于编程语言模态信息和机器语言模态信息生成预训练数据集;
4、以预训练数据集为输入,通过自监督对比学习策略预训练双模态信息融合模块,以实现编程语言模态信息和机器语言模态信息在融合过程中的特征对齐;
5、s3:在双模态信息融合模块的输出端添加恶意行为识别模块,恶意行为识别模块由前馈网络和带有sigmoid激活函数的输出层构成;
6、基于编程语言模态信息和机器语言模态信息生成训练数据集;
7、以训练数据集为输入,依据二元交叉熵损失训练恶意行为识别模块,通过前馈网络反馈双模态信息融合模块的调优信息,通过输出层输出恶意行为识别结果。
8、优选的,s1中,编程语言模态信息的解析过程如下:
9、通过动态分析源程序获取软件运行时的ui界面状态及跳转关系,建立活动转移图atg;
10、通过反编译方法解析活动转移图atg中节点对应的源程序代码片段;
11、利用unixcoder模型获取源程序代码片段的向量表示,组成编程语言模态信息。
12、优选的,通过droidbot动态分析源程序获取软件运行时的ui界面状态及跳转关系。
13、优选的,s1中,机器语言模态信息的解析过程如下:
14、从软件的可执行代码中提取字节码,并转化为十六进制数,将连续的3个十六进制数分别作为代表rgb通道的三个值,得到表示不同颜色通道的图像矩阵构成rgb图像;
15、将rgb图像分割为n个补丁,通过resnet模型将每个补丁转换为向量表示,组成机器语言模态信息。
16、优选的,预训练数据集的生成过程为:
17、将同一软件的编程语言模态信息和机器语言模态信息构建为特征数据对,将其作为正样本,其中,表示编程语言模态信息,表示机器语言模态信息;
18、以0.5的概率随机将特征数据对中的机器语言模态信息替换为另一软件的机器语言模态信息,获得负样本;
19、将正样本和负样本合并构成预训练数据集,其中特征数据对表示为:
20、或;
21、其中,为特征数据对的标签,=1表示该特征数据对属于同一软件,=0表示该特征数据对不属于同一软件。
22、优选的,通过自监督对比学习策略预训练双模态信息融合模块的过程如下:
23、选择一个由2层的transformer编码器构成的特征融合神经网络和带有softmax层的全连接层网络结构构建双模态信息融合模块,transformer编码器的输入维度为768,注意力头的数量为6;
24、将预训练数据集中所有特征数据对输入特征融合神经网络,将其输出中[cls]标记的向量作为融合向量,将融合向量输入带有softmax层的全连接层网络结构,用于判断特征数据对中的编程语言模态信息和机器语言模态信息是否属于同一软本文档来自技高网...
【技术保护点】
1.一种基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,包括:
2.如权利要求1的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,所述S1中,所述编程语言模态信息的解析过程如下:
3.如权利要求2的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,通过DROIDBOT动态分析源程序获取软件运行时的UI界面状态及跳转关系。
4.如权利要求1的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,所述S1中,所述机器语言模态信息的解析过程如下:
5.如权利要求1的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,所述预训练数据集的生成过程为:
6.如权利要求5的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,通过自监督对比学习策略预训练所述双模态信息融合模块的过程如下:
7.如权利要求6的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,所述训练数据集的生成过程为:
8.如权利要求7的基于源程序与可执行
9.如权利要求7的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,利用所述测试数据集对所述恶意行为识别模块输出的恶意行为识别结果进行验证。
...【技术特征摘要】
1.一种基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,包括:
2.如权利要求1的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,所述s1中,所述编程语言模态信息的解析过程如下:
3.如权利要求2的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,通过droidbot动态分析源程序获取软件运行时的ui界面状态及跳转关系。
4.如权利要求1的基于源程序与可执行代码双模态融合的恶意行为识别方法,其特征在于,所述s1中,所述机器语言模态信息的解析过程如下:
5.如权利要求1的基于源程序与可执行代码双模态融合的恶意行为识别方法,其...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。