移动智能终端软件的静态行为分析方法技术

技术编号:11675968 阅读:86 留言:0更新日期:2015-07-06 02:15
本发明专利技术公开了一种移动智能终端软件的静态行为分析方法。该方法采用签名比对和机器学习思想,通过解压缩和反编译得到软件源码,并提取出类和函数调用信息和签名信息,在云端比对签名信息,并将类和函数调用信息经SDK字典应生成数值类型的特征向量,经Weka属性约减后得到最终行为特征,最后采用机器学习算法分析软件的静态行为。在保证正确率和检测率的同时,可以更细化的检测出恶意的软件行为,同时防止软件运行时产生的安全隐患,更加稳定高效的分析移动智能终端的软件行为。

【技术实现步骤摘要】

本专利技术属于软件行为分析,特别是一种基于。
技术介绍
随着移动通信技术的快速发展以及移动互联网的出现,移动智能终端在我们的生活中扮演着愈来愈重要的角色,使我们享受着丰富便捷的服务。不过,用户规模的扩大和人们对这方面技术的逐步了解,使得移动智能终端面临的安全威胁日益严重,所引发的安全问题也成为国内外的新兴研究热点之一。在面临的诸多安全隐患当中,因恶意软件造成的危害占据了绝大多数。目前,国内外针对恶意软件行为的鉴别分析已有了一些比较成熟的方法,但移动智能终端固有的特点使其不能运用已有的方法和技术。目前的软件分析技术主要分为动态方法和静态方法,静态方法是一种细粒度的检测技术,以源码为分析对象,在软件安装运行之前通过逆向手段,利用某些软件分析工具抽取静态行为特征,如函数调用序列、二进制代码片段、配置文件等并进行人工分析,从而理解软件的行为。这是一种更深入的细粒度恶意行为检测技术。不过目前针对移动智能终端上的软件的行为分析少之又少,很少考虑到终端自身的特点。
技术实现思路
1、本专利技术的目的。本专利技术的目的在于提供一种,从而检测出恶意的软件行为,保护移动智能终端的安全。2、本专利技术所采用的技术方案。,步骤如下: 本方法采用机器学习和云计算的思想进行分析处理; 第一步,通过解压缩和反编译等逆向工程手段,得到软件的源码; 第二步,比对软件签名信息,提取类和函数调用信息; 第三步,分析类和函数调用信息,经过终端系统的SDK字典映射,生成数值类型的特征向量,并用Weka软件进行属性约减,得到最终的行为特征; 第四步,将软件行为特征送入云端采用机器学习算法进行处理,从而检测出恶意的软件行为。3、本专利技术的有益效果。本专利技术与现有技术相比,其显著优点:该方法能够细化深入检测软件的每一个行为特征,并且能够在软件未运行时检测出恶意的软件行为,防止对终端造成威胁。同时采用的机器学习和云端处理思想能够更加稳定高效的分析移动智能终端的软件行为。下面结合附图对本专利技术作进一步详细描述。【附图说明】图1是静态行为检测流程图。图2是DEX文件特征向量提取流程图。图3是属性筛选流程图。【具体实施方式】实施例结合图1,本专利技术涉及一种,步骤如下: 第一步、通过解压缩得到软件包,之后用逆向工程等手段得到软件的源码。提取软件签名信息,通过计算MD5值来对比签名信息。1、签名信息的提取: 通过提取每个软件包中的签名文件的MD5校验码,并以文件名为键组成键值对,逐一进行签名信息对比分析,从而判断出软件是否被修改过。2、软件包签名比对的实现方式: 通过观察分析软件源码,解析并获取软件包中的信息。第二步、如图2所示,提取出类和函数调用信息,送入云端并经过系统给的SDK字典映射生成数值类型的特征向量。以Android为例: 获取敏感类引用信息:按照classes, dex文件头中的记录的偏移量和记录的大小,读取出类型标识符的列表(type_ids)的信息。由于类型标识符列表(typejds)属于结构体数组,其中包含了文件引用的所有类型,其元素为type_id_item结构体,名称为descriptor_idx,类型为unit,属于字符串列表的索引,主要是用来表示该类型的描述信息。根据descriptor_idx可在字符串列表(string_ids)中按照索引找到classes, dex文件的类和函数调用信息。考虑到同名自定义类,本论文仅提取Android SDK中的类,并把提取到的类作为DEX文件的特征部分。获取函数引用信息:根据classes, dex文件头中的记录的偏移量和大小,读取出类型标识符列表(method_ids)的信息,而且函数名列表(method_ids)也是一个结构体数组,其中包含了文件调用时的所有函数标识符,其元素为methocLicLitem结构体。method_id_item{ushort class_idx;ushort proto_idx;uint name_idx; }; 其中proto_idx是负责索引函数原型列表并指出该函数的原型;name_idx负责索引字符串列表并描述该函数的名称;claSS_idX是负责索引类型标识符列表并用于标识出该函数的定义类,不过不能指向基本数据类型的类。通过提取name_idx和class_idx,在字符串列表(string_ids)中可以根据索引找出该classes, dex文件中的所有相关函数调用信息,其中就包括调用的函数的名称以及该函数所属的类的名称。因此,本论文仅对存在于Android SDK中的类和函数名称进行提取,并把提取到的信息作为文件特征向量。获取字符串信息:根据classes, dex文件头中的记录的偏移量和大小,读取出类型标识符列表(string_ids)中的信息,也即字符串列表(string_ids),这也是一个结构体数组,其中的元素为string _id_item结构体,描述名称的字符串为string_data_off,其中存放的则是在数据区中的偏移量和偏移地址,提取到的类和函数调用信息都对应于此字符串的索引。读取string_data_item中的data成员即可获取真正的字符串,最终的结果采用MUTF-8编码。第三步、如图3所示,通过Weka软件对特征向量进行筛选,得到最终的软件静态行为特征。1、子集产生。通过搜索产生一些属性的子集,以此来评估数据整体。2、子集评估。按照子集产生过程中已经确定的评估准则进行评估,将符合准则的子集进行比对,找到最优子集。由于在属性选择进程停止之前,评估进程会持续进行,所以需要一个合适的停止准则。3、停止准则。该准则有三种:预先定义的迭代次数;预先定义选择的属性数;是否增加或删除任意一个属性都不会产生最优子集。4、结果有效性验证。通过对原属性集和所选子集测试比较之后,选择出最优子集,并利用样本集进行验证 第四步、在云端采用机器学习算法对行为特征进行建模分析,从而检测出恶意的软件行为。上述实施例不以任何方式限制本专利技术,凡是采用等同替换或等效变换的方式获得的技术方案均落在本专利技术的保护范围内。【主权项】1.一种,其特征在于采用机器学习和云计算方法,具体步骤如下: 第一步,通过解压缩和反编译等逆向工程手段,得到软件的源码; 第二步,比对软件签名信息,提取类和函数调用信息; 第三步,分析类和函数调用信息,经过终端系统的SDK字典映射,生成数值类型的特征向量,并用Weka软件进行属性约减,得到最终的行为特征; 第四步,将软件行为特征送入云端采用机器学习算法进行处理,从而检测出恶意的软件行为。2.根据权利要求1所述的,其特征在于:比对软件签名信息时通过计算MD5值来获得签名信息特征,通过提取每个软件包中的签名文件的MD5校验码,并以文件名为键组成键值对,逐一进行签名信息对比分析,从而判断出软件是否被修改过。3.根据权利要求1所述的,其特征在于:提取出的类和函数调用信息是在终端完成,之后把信息送入云端进行处理,并经过系统给的SDK字典映射生成数值类型的特征向量。4.根据权利要求1所述的,其特征在于:通过Weka的自带的属性选择算法对行为特征向量进行筛选,得到最终的软件静态行为特征,再采用相关及其学习算法进行分类建模本文档来自技高网...

【技术保护点】
一种移动智能终端软件的静态行为分析方法,其特征在于采用机器学习和云计算方法,具体步骤如下:第一步,通过解压缩和反编译等逆向工程手段,得到软件的源码;第二步,比对软件签名信息,提取类和函数调用信息;第三步,分析类和函数调用信息,经过终端系统的SDK字典映射,生成数值类型的特征向量,并用Weka软件进行属性约减,得到最终的行为特征;第四步,将软件行为特征送入云端采用机器学习算法进行处理,从而检测出恶意的软件行为。

【技术特征摘要】

【专利技术属性】
技术研发人员:李千目李嘉张宏
申请(专利权)人:南京理工大学常熟研究院有限公司
类型:发明
国别省市:江苏;32

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

1