System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于全局代码分析的安卓恶意软件检测及变种分析系统技术方案_技高网

基于全局代码分析的安卓恶意软件检测及变种分析系统技术方案

技术编号:41301955 阅读:2 留言:0更新日期:2024-05-13 14:48
一种基于全局代码分析的安卓恶意软件检测及变种分析系统,通过特征前处理模块根据安卓应用反编译出的源代码文件,分别提取源代码的语义特征、变量数据流特征以及安卓API调用特征,得到三种不同维度的特征,特征融合模块将前处理模块中输出的安卓软件的代码语义特征、变量数据流特征以及安卓API调用特征进行融合;场景任务模块通过分类网络根据融合后的特征预测得到安卓软件的分类结果和变种分析结果。本发明专利技术借助于安卓软件逆向分析得到的工程源代码,设计基于longformer结构的代码大模型对工程中的主要源代码文件进行语义特征提取,并根据这些源代码之间调用关系,抽取源代码的结构特征,进而从代码的语义特征和结构特征两方面进行分类,更加完整、有效地提取和表征安卓软件源代码全局特征,以此实现安卓软件分类和变种软件家族式聚类,提升安卓恶意软件变种的识别和防范效率。

【技术实现步骤摘要】

本专利技术涉及的是一种信息安全领域的技术,具体是一种多层次多维度的基于全局代码分析的安卓恶意软件检测及变种分析系统


技术介绍

1、近年来,源代码特征逐渐被应用到安卓软件分类中。然而,安卓软件的代码工程量通常较大,常规的代码分析方法往往只支持少量代码片段的分析,难以从代码工程全局的角度,有效利用代码文件之间的关联性、项目运行逻辑等信息,因而在实际中,基于源代码特征的安卓软件分类方法的识别准确率不如预期。


技术实现思路

1、本专利技术针对现有安卓恶意软件数量多、变种快、现有代码分析技术识别准确率低的缺陷,提出一种基于全局代码分析的安卓恶意软件检测及变种分析系统,借助于安卓软件逆向分析得到的工程源代码,设计基于longformer结构的代码大模型对工程中的主要源代码文件进行语义特征提取,并根据这些源代码之间调用关系,抽取源代码的结构特征,进而从代码的语义特征和结构特征两方面进行分类,更加完整、有效地提取和表征安卓软件源代码全局特征,以此实现安卓软件分类和变种软件家族式聚类,提升安卓恶意软件变种的识别和防范效率。

2、本专利技术是通过以下技术方案实现的:

3、本专利技术涉及一种基于全局代码分析的安卓恶意软件检测及变种分析系统,包括:特征前处理模块、特征融合模块和场景任务模块,其中:特征前处理模块根据安卓应用反编译出的源代码文件,分别提取源代码的语义特征、变量数据流特征以及安卓api调用特征,得到三种不同维度的特征,特征融合模块将前处理模块中输出的安卓软件的代码语义特征、变量数据流特征以及安卓api调用特征进行融合;场景任务模块通过分类网络根据融合后的特征预测得到安卓软件的分类结果和变种分析结果。

4、本专利技术涉及一种基于上述系统的安卓恶意软件识别方法,包括:

5、步骤1)特征前处理:提取安卓软件的代码语义特征、变量数据流特征以及安卓api调用特征;

6、步骤2)特征融合:对步骤1得到的特征进行对齐和融合;

7、步骤3)具体业务应用:基于不同的场景需求实现安卓恶意软件的识别和相似度比对。

8、技术效果

9、本专利技术采用预训练模型对源代码进行理解,能够提取更深层次、更加全局性的安卓软件特征,进而实现基于源代码特征的安卓软件分类。得益于应用了大模型技术,这种方法对恶意软件的表征能力更强,能够有效应对代码混淆等伪装方法,解决传统的静态特征库比对等方法无法识别恶意软件变种以及新恶意软件的缺点,提供有效的恶意软件家族分析以及仿冒软件检测方法,提高新生恶意软件的识别准确率,尤其适合于当下电信网络诈骗高发的形势,能够为电信网络诈骗app的识别、封堵、变种分析、开发人员人员溯源等工作,提供良好的技术助力。

本文档来自技高网...

【技术保护点】

1.一种基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征在于,包括:特征前处理模块、特征融合模块和场景任务模块,其中:特征前处理模块根据安卓应用反编译出的源代码文件,分别提取源代码的语义特征、变量数据流特征以及安卓API调用特征,得到三种不同维度的特征,特征融合模块将前处理模块中输出的安卓软件的代码语义特征、变量数据流特征以及安卓API调用特征进行融合;场景任务模块通过分类网络根据融合后的特征预测得到安卓软件的分类结果和变种分析结果。

2.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的前处理模块包括:包括:源代码前处理单元、变量数据流前处理单元和API调用特征提取单元,其中:源代码前处理单元通过预训练模型将代码文件中的所有代码语言序列和注释语言序列的并集提取得到源代码特征,变量数据流前处理单元根据源代码中变量的依赖和调用关系,构造代码中关键变量在代码运行过程中的数据流向图,得到变量数据流特征,API调用特征提取单元统计安卓应用对安卓系统底层API的调用情况,提取得到API调用特征向量;

3.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的预训练模型包括:用于标记嵌入的全连接网络、位置嵌入层和自注意力层,其中:全连接网络对输入的代码语言序列和注释语言序列进行一次映射,得到token序列;位置嵌入层将token序列进行加权计算处理;基于Longformer网络结构的自注意力层对其大部分输入元素,只在固定窗口长度内计算局部注意力权重,对于少部分输入元素,计算全局注意力权重。

4.根据权利要求3所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的自注意力层共计32层,其中:奇数层中注意力窗口是目标元素周围连续的、彼此相邻的512个元素;偶数层中注意力窗口是目标元素周围不连续、彼此相隔为1的512个元素,对于每一层输入的前32个元素,计算其与所有元素的注意力权重,而对于其他元素,只计算其与周边512个元素的注意力权重,即注意力窗口长度为512;

5.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的数据流向图,通过以下方式构造得到:使用编译工具将代码片段解析成抽象语法树AST;从抽象语法树中提取出变量的依赖关系序列,即变量x依赖于所有能够引起其数值或者存储空间变化的其他变量,将变量依赖关系序列用有向图结构进行表示,变量序列中的每元素对应图结构中的结点,构成代码的变量依赖图;将变量依赖图通过图神经网络转化为768维的特征矩阵,即代码文件的数据流向特征。

6.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的统计安卓应用对安卓系统底层API的调用情况是指:选取768个安卓恶意应用常调用的高危API,从代码中分别统计这些高危API的被调用次数和其他常规安卓API的调用次数,利用上述API的编号、总调用次数、最高频上级API编号、最高频上级API次数、最高频下级API编号,最高频下级API次数信息,构造出768×6的嵌入向量,作为API调用特征向量。

7.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的特征融合模块包括:对齐单元、长短期记忆网络单元和加权平均单元,其中:对齐单元对代码语义特征、变量数据流特征和安卓API调用特征进行对齐,得到对齐后的特征,长短期记忆网络单元根据n个待测代码文件的768×8的特征张量进行特征融合处理,得到n个代码文件的2048×1的特征向量,加权平均单元将n个特征向量按照不同权重进行元素相加,得到1个2048×1的特征向量Fmix,作为该安卓软件源代码工程的全局特征,具体为其中:n为安卓应用的代码文件个数,第i个特征向量特征序列构成集合

8.根据权利要求7所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的对齐是指:将源代码中的每个代码文件的代码语义特征、变量数据流特征和安卓API调用特征拼接到一起;

9.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的场景任务模块包括:全连接神经网络公共结构、APP分类单元、APP相似度分析单元和APP家族分析单元,其中:APP分类单元根据全连接神经网络公共结构输出的2048维的向量得到二维的恶意APP分类结果;APP相似度分析单元根据公共网络结构输出的2048维的向量,计算与其他APP特征之间的余弦距离,分析当前APP与其他APP的相似程度;APP家族分析单元输出的2048维的向量,进行近邻传播聚类处理,将不...

【技术特征摘要】

1.一种基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征在于,包括:特征前处理模块、特征融合模块和场景任务模块,其中:特征前处理模块根据安卓应用反编译出的源代码文件,分别提取源代码的语义特征、变量数据流特征以及安卓api调用特征,得到三种不同维度的特征,特征融合模块将前处理模块中输出的安卓软件的代码语义特征、变量数据流特征以及安卓api调用特征进行融合;场景任务模块通过分类网络根据融合后的特征预测得到安卓软件的分类结果和变种分析结果。

2.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的前处理模块包括:包括:源代码前处理单元、变量数据流前处理单元和api调用特征提取单元,其中:源代码前处理单元通过预训练模型将代码文件中的所有代码语言序列和注释语言序列的并集提取得到源代码特征,变量数据流前处理单元根据源代码中变量的依赖和调用关系,构造代码中关键变量在代码运行过程中的数据流向图,得到变量数据流特征,api调用特征提取单元统计安卓应用对安卓系统底层api的调用情况,提取得到api调用特征向量;

3.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的预训练模型包括:用于标记嵌入的全连接网络、位置嵌入层和自注意力层,其中:全连接网络对输入的代码语言序列和注释语言序列进行一次映射,得到token序列;位置嵌入层将token序列进行加权计算处理;基于longformer网络结构的自注意力层对其大部分输入元素,只在固定窗口长度内计算局部注意力权重,对于少部分输入元素,计算全局注意力权重。

4.根据权利要求3所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的自注意力层共计32层,其中:奇数层中注意力窗口是目标元素周围连续的、彼此相邻的512个元素;偶数层中注意力窗口是目标元素周围不连续、彼此相隔为1的512个元素,对于每一层输入的前32个元素,计算其与所有元素的注意力权重,而对于其他元素,只计算其与周边512个元素的注意力权重,即注意力窗口长度为512;

5.根据权利要求1所述的基于全局代码分析的安卓恶意软件检测及变种分析系统,其特征是,所述的数据流向图,通过以下方式构造得到:使用编译工具将代码片段解析成抽象语法树ast;从抽象语法树中提取出变量的依赖关系序列,即变量x依赖于所有能够引起其数值或者存储空间变化的其他变量...

【专利技术属性】
技术研发人员:陆科名陈伟侯俊丞刘文斌
申请(专利权)人:上海市刑事科学技术研究院
类型:发明
国别省市:

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

1