[发明专利]基于随机性检验的Android软件加固检测方法在审
申请号: | 201510316849.4 | 申请日: | 2015-06-10 |
公开(公告)号: | CN105046113A | 公开(公告)日: | 2015-11-11 |
发明(设计)人: | 何能强;严寒冰;李佳;纪玉春;王新镇;马宏谋;李挺;李世淙;张淼;胡鸽;李承泽;何世平 | 申请(专利权)人: | 国家计算机网络与信息安全管理中心 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 北京中原华和知识产权代理有限责任公司 11019 | 代理人: | 寿宁;张华辉 |
地址: | 100029*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 随机性 检验 android 软件 加固 检测 方法 | ||
技术领域
本发明有关于一种软件检测方法,尤其是有关于一种基于随机性检验的Android软件加固检测方法。
背景技术
随着软件的迅速发展和快速传播,软件面临的威胁日益增多,其安全保护问题受到人们越来越多的关注。目前,针对软件的恶意攻击方法主要有软件盗版、逆向工程技术和软件代码篡改,软件加固是保护软件抵抗威胁的重要手段。常见的软件加固手段有代码混淆技术、防调试追踪技术、完整性校验、软件水印技术、白盒加密技术和软件加壳技术等。但是,相比于传统的PC平台,Android是开源的系统,开发者可以根据需求定制并开发各种各样的操作系统;而且比起其他操作系统,Android应用程序使用的开发语言主要是java,由于其二进制文件中包含了更多的类型信息,使得编译后的二进制代码classes.dex文件极易被攻击者反编译从而绕开Android的安全保护机制。总之,由于Android自身的体系结构和安全保护机制的特性,无法直接将传统PC端的软件保护技术应用到Android平台。
Android平台现有的软件保护技术有代码混淆、软件水印、反跟踪调试、软件加壳、白盒加密等。其中,软件加壳是防止软件被静态反编译或者非法篡改的常用手段,壳对可执行文件进行压缩或者加密,先于原始程序获得控制权,壳在执行过程中对原始程序进行解压缩或者解密,还原后再把程序控制权交还给原始程序。加壳软件根据加壳目的和作用可以分为两类:一是压缩壳,二是加密壳。PC平台现已有大量标准的加壳和脱壳工具,但是目前Android平台市场上针对apk的保护主要是基于dex,公开的加壳工具有DexGuard、梆梆、爱加密、ApkProtect等。软件加壳效果评估标准之一是成功效率,即检验待保护软件是否成功被加密。但是当前检验软件是否加壳一般使用人工分析,并没有有效的大批量自动化检验方法。
对于使用加密算法进行加壳的移动平台,检验当前软件是否加壳,即检验当前应用软件中是否使用了针对整体文件的加密算法。随机性测试可以检测密码算法的输出序列是否符合随机性要求,为算法能够安全运行提供保证。因此,通过随机性测试是保证加密算法安全性的前提和基础。
人们研究了多种随机序列应该满足的性质,并以此为准对所产生的序列的随机程度进行度量。目前,已公开的随机性测试方法不下数百种。不同的随机性测试方法针对不同特性的测试序列,原理并没有显著差别。迄今为止,国内外相关研究人员提出了许多种随机数生成方法,如平方取中法、同余法、斐波那契数列变形法、混沌序列法、利用系统时间和热噪声等等,同时对生成的随机数的随机性测试方法也是在不断地发展。DIEHARD测试方法和美国国家技术标准局提出的密码模块所使用的随机数发生器性能统计检测方法是比较常用的测试方法。
基于以上的分析,以随机性作为移动软件加固前后的指标是可行的。但是,以随机性作为检验软件加固的标准目前并没有学者涉及。
由此可见,上述现有的软件加固的检测方法在使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决上述存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般产品又没有适切结构能够解决上述问题,此显然是相关业者急欲解决的问题。
发明内容
本发明的目的在于克服现有的软件加固检测方法存在的不足,而提供一种基于随机性检验的Android软件加固检测方法。
本发明的目的是采用以下技术方案来实现的。本发明提出一种基于随机性检验的Android软件加固检测方法,其包括以下步骤:步骤S1,将训练样本集进行预处理后,再通过随机性检测计算确定阈值;步骤S2,将待测apk文件进行预处理后,再通过随机性检测计算得到测试数据;步骤S3,将该测试数据与该阈值进行比对,若该测试数据属于该阈值的范围内,则该待测apk文件为加固的文件,若该测试数据不属于该阈值的范围内,则该待测apk文件不是加固的文件。
本发明的目的还可采用以下技术措施进一步实现。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S1中的训练样本集包括:未加固的apk文件和加固过的同样的apk文件。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S1中的将训练样本集进行预处理包括:步骤S11,将训练样本集中的各个apk文件解压,提取apk序列的classes.dex文件;步骤S12,将所述的classes.dex文件输入随机性测试工具,进行二进制分块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心,未经国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510316849.4/2.html,转载请声明来源钻瓜专利网。