著录项信息
专利名称 | 软件安装包的安全检测方法、客户端、服务器以及系统 |
申请号 | CN201410300240.3 | 申请日期 | 2014-06-26 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2014-09-24 | 公开/公告号 | CN104063664A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/56 | IPC分类号 | G;0;6;F;2;1;/;5;6查看分类表>
|
申请人 | 北京奇虎科技有限公司;奇智软件(北京)有限公司 | 申请人地址 | 天津市滨海新区滨海科技园高新六路39号9-3-401号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 三六零科技集团有限公司 | 当前权利人 | 三六零科技集团有限公司 |
发明人 | 冯成蹊;刘敦俊;张东谊;杨新权 |
代理机构 | 北京智汇东方知识产权代理事务所(普通合伙) | 代理人 | 康正德;范晓斌 |
摘要
本发明提供了一种软件安装包的安全检测方法、客户端、服务器以及系统。其中软件安装包的安全检测方法包括获取由用户上传的软件安装包;使用预置的特征库对软件安装包进行特征匹配,其中特征库中预先保存有多项特征信息,每项特征信息标识了软件安装包执行一种安全加固方法后的至少一种特征;按照特征匹配的结果生成软件安装包的检测结果。使用本发明的方案,通过对软件安装包的分析,得到该软件安装包是否已经进行过安全加固以及进行安全加固的类型,从而提醒用户根据安全加固的分析结果提高软件安装包的安全性。
1.一种软件安装包的安全检测方法,包括:
获取由用户上传的软件安装包;
使用预置的特征库对所述软件安装包进行特征匹配,其中所述特征库中预先保存有多项特征信息,每项所述特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征;
按照特征匹配的结果生成所述软件安装包的检测结果,按照特征匹配的结果生成所述软件安装包的检测结果包括:
根据匹配出的特征信息确定所述软件安装包所进行的安全加固的类型;
按照确定出的安全加固的类型生成所述检测结果,所述检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。
2.根据权利要求1所述的方法,其中,获取由用户上传的软件安装包包括:
接收由用户通过指定网址的网页上传的软件安装包和所述软件安装包的开发信息;
匹配保存所述软件安装包和所述开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。
3.根据权利要求1所述的方法,其中,使用预置的特征库对所述软件安装包进行特征匹配包括:
对所述软件安装包进行解包;
对解包出的文件进行扫描,以确定与所述文件匹配的所述特征库中的特征信息。
4.根据权利要求1至3中任一项所述的方法,其中,所述每项特征信息包括:
安全加固过程中加入的函数的信息和/或动态链接库的信息。
5.根据权利要求1至3中任一项所述的方法,其中所述预置的特征库的生成步骤包括:
分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;
提取修改代码的特征,与所述加固项目匹配进行保存为所述特征库的特征信息。
6.一种软件安装包的安全检测服务器,包括:
安装包获取模块,配置为获取由用户上传的软件安装包;
特征匹配模块,配置为使用预置的特征库对所述软件安装包进行特征匹配,其中所述特征库中预先保存有多项特征信息,每项所述特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征;
结果生成模块,用于按照特征匹配的结果生成所述软件安装包的检测结果,并下发给安全检测客户端,并且所述结果生成模块还配置为:
根据匹配出的特征信息确定所述软件安装包所进行的安全加固的类型;
按照确定出的安全加固的类型生成所述检测结果,所述检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。
7.根据权利要求6所述的服务器,其中所述安装包获取模块还配置为:
接收由用户通过指定网址的网页上传的软件安装包和所述软件安装包的开发信息;
匹配保存所述软件安装包和所述开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。
8.根据权利要求6所述的服务器,其中所述特征匹配模块还配置为:
对所述软件安装包进行解包;
对解包出的文件进行扫描,以确定与所述文件匹配的所述特征库中的特征信息,所述每项特征信息包括:安全加固过程中加入的函数的信息和/或动态链接库的信息。
9.根据权利要求6至8中任一项所述的服务器,还包括特征库生成模块,配置为:
分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;
提取修改代码的特征,与所述加固项目匹配进行保存为所述特征库的特征信息。
10.一种软件安装包的安全检测方法,包括:
向安全检测服务器上传软件安装包以及所述软件安装包的开发信息;
接收所述安全检测服务器下发的所述软件安装包的检测结果,所述检测结果由所述安全检测服务器使用预置的特征库对所述软件安装包进行特征匹配得出,所述特征库中预先保存有多项特征信息,每项所述特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征,所述检测结果的生成步骤包括:根据匹配出的特征信息确定所述软件安装包所进行的安全加固的类型,按照确定出的安全加固的类型生成所述检测结果,所述检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果;
根据所述检测结果生成安全分析报告。
11.根据权利要求10所述的方法,其中,向安全检测服务器上传软件安装包以及所述软件安装包的开发信息包括:
通过指定网址的网页上传的所述软件安装包,并提交所述软件安装包的开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。
12.根据权利要求10或11所述的方法,其中,根据所述检测结果生成安全分析报告包括:
解析检测结果,以确定所述软件安装包的安全加固的类型;
按照所述安全加固的类型对所述软件安装包进行安全评分;
生成包含所述安全加固的类型以及所述安全评分的安全分析报告。
13.根据权利要求12所述的方法,其中,在确定所述软件安装包的安全加固的类型之后还包括:
按照所述安全加固的类型生成对所述软件安装包的安全建议;
将所述安全建议添加至所述安全分析报告中,并提供进行安全加固的操作选项。
14.一种软件安装包的安全检测客户端,包括:
安装包上传模块,配置为向安全检测服务器上传软件安装包以及所述软件安装包的开发信息;
接收模块,配置为接收所述安全检测服务器下发的所述软件安装包的检测结果,所述检测结果由所述安全检测服务器使用预置的特征库对所述软件安装包进行特征匹配得出,所述特征库中预先保存有多项特征信息,每项所述特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征,所述检测结果的生成步骤包括:根据匹配出的特征信息确定所述软件安装包所进行的安全加固的类型,按照确定出的安全加固的类型生成所述检测结果,所述检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果;
报告生成模块,配置为根据所述检测结果生成安全分析报告。
15.根据权利要求14所述的客户端,其中,所述安装包上传模块还配置为:
通过指定网址的网页上传的所述软件安装包,并提交所述软件安装包的开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。
16.根据权利要求14或15所述的客户端,其中,所述报告生成模块包括:
解析子模块,配置为解析检测结果,以确定所述软件安装包的安全加固的类型;
评分子模块,配置为按照所述安全加固的类型对所述软件安装包进行安全评分;
报告输出子模块,配置为生成包含所述安全加固的类型以及所述安全评分的安全分析报告。
17.根据权利要求16所述的客户端,其中,所述报告生成模块还包括:
安全建议子模块,配置为按照所述安全加固的类型生成对所述软件安装包的安全建议,将所述安全建议添加至所述安全分析报告中,并提供进行安全加固的操作选项。
18.一种软件安装包的安全检测系统,包括:
根据权利要求6至9中任一项所述的安全检测服务器;
根据权利要求14至17中任一项所述的安全检测客户端,所述安全检测服务器与所述安全检测客户端网络连接。
软件安装包的安全检测方法、客户端、服务器以及系统\n技术领域\n[0001] 本发明涉及信息安全领域,特别是涉及一种软件安装包的安全检测方法、客户端、服务器以及系统。\n背景技术\n[0002] 安卓(Android)平台发展迅速,已经逐渐成为了移动终端的最普及的操作系统,同时基于其中的软件应用数目也十分巨大,与其他移动终端操作系统相比,安卓系统为应用开发者提供了更多的功能接口,其中很多系统底层接口,提高了系统的可扩展性,但同时也为恶意软件提供了便利,针对安卓系统的木马等恶意软件也更容易被实现,目前已有的针对安卓系统的恶意软件可以通过伪装的方式,骗取用户安装并授予一定的权限,之后滥用这些权限在后台执行一些特定行为,包括窃取用户隐私骗取资费等行为。然而与之并生的安全问题却始终没有得到良好的解决,安全威胁越来越多,且威胁程度也在逐步加深,无论对开发者还是用户都带来了不良的影响。\n[0003] 而且对于一些正常的安卓系统应用,也存在通过非法拷贝、逆向工程、反编译、调试、破解、二次打包、内存截取等手段来威胁安卓系统的安全,不仅危害了使用用户,也给正常应用开发者造成严重的损害。\n[0004] 基于以上问题,现有技术中出现了多种安卓应用的安全加固方法,通过对安卓应用进行加密、防反编译、防代码混淆等加固措施,然而由于加固方法所采用的方案不同,加固的效果也不同,有些加固后并不能达到防止暴力破解的效果,而且由于安卓系统版本和硬件处理器不同,也会导致加固后的应用兼容性不高的问题。但是现有技术中缺乏对安卓软件安装包加固前后的安全检测方法。\n发明内容\n[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的软件安装包的安全检测客户端、服务器以及系统和相应的软件安装包的安全检测方法。\n[0006] 本发明一个进一步的目的是要加强安卓软件安装包被逆向工程破解,保护开发者的利益。\n[0007] 本发明另一个进一步的目的是要提高软件安装包安全性。\n[0008] 依据本发明的一个方面,提供了一种软件安装包的安全检测方法。该软件安装包的安全检测方法包括:获取由用户上传的软件安装包;使用预置的特征库对软件安装包进行特征匹配,其中特征库中预先保存有多项特征信息,每项特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征;按照特征匹配的结果生成软件安装包的检测结果。\n[0009] 可选地,获取由用户上传的软件安装包包括:接收由用户通过指定网址的网页上传的软件安装包和软件安装包的开发信息;匹配保存软件安装包和开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。\n[0010] 可选地,使用预置的特征库对软件安装包进行特征匹配包括:对软件安装包进行解包;对解包出的文件进行扫描,以确定与解包出文件匹配的特征库中的特征信息。\n[0011] 可选地,每项特征信息包括:安全加固过程中加入的函数的信息和/或动态链接库的信息。\n[0012] 可选地,按照特征匹配的结果生成软件安装包的检测结果包括:根据匹配出的特征信息确定软件安装包所进行的安全加固的类型;按照确定出的安全加固的类型生成检测结果,检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。\n[0013] 可选地,预置的特征库的生成步骤包括:分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;提取修改代码的特征,与加固项目匹配进行保存为特征库的特征信息。\n[0014] 根据本发明的另一方面,提供了一种软件安装包的安全检测服务器。该安全检测服务器包括:安装包获取模块,配置为获取由用户上传的软件安装包;特征匹配模块,配置为使用预置的特征库对软件安装包进行特征匹配,其中特征库中预先保存有多项特征信息,每项特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征;结果生成模块,配置为按照特征匹配的结果生成软件安装包的检测结果,并下发给安全检测客户端。\n[0015] 可选地,安装包获取模块还配置为:接收由用户通过指定网址的网页上传的软件安装包和软件安装包的开发信息;匹配保存软件安装包和开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。\n[0016] 可选地,特征匹配模块还配置为:对软件安装包进行解包;对解包出的文件进行扫描,以确定与文件匹配的特征库中的特征信息,每项特征信息包括:安全加固过程中加入的函数的信息和/或动态链接库的信息。\n[0017] 可选地,结果生成模块还配置为:根据匹配出的特征信息确定软件安装包所进行的安全加固的类型;按照确定出的安全加固的类型生成检测结果,检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。\n[0018] 可选地,以上软件安装包的安全检测服务器还包括特征库生成模块,配置为:分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;提取修改代码的特征,与加固项目匹配进行保存为所述特征库的特征信息。\n[0019] 特别地,本发明又提供了一种软件安装包的安全检测方法。该软件安装包的安全检测方法包括:向安全检测服务器上传软件安装包以及软件安装包的开发信息;接收安全检测服务器下发的软件安装包的检测结果,检测结果由安全检测服务器使用预置的特征库对软件安装包进行特征匹配得出;根据检测结果生成安全分析报告。\n[0020] 可选地,向安全检测服务器上传软件安装包以及软件安装包的开发信息包括:通过指定网址的网页上传的软件安装包,并提交软件安装包的开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。\n[0021] 可选地,根据检测结果生成安全分析报告包括:解析检测结果,以确定软件安装包的安全加固的类型;按照安全加固的类型对软件安装包进行安全评分;生成包含安全加固的类型以及安全评分的安全分析报告。\n[0022] 可选地,在确定软件安装包的安全加固的类型之后还包括:按照安全加固的类型生成对软件安装包的安全建议;将安全建议添加至安全分析报告中,并提供进行安全加固的操作选项。\n[0023] 根据本发明的一方面,又提供了一种软件安装包的安全检测客户端。该安全检测客户端包括:安装包上传模块,配置为向安全检测服务器上传软件安装包以及软件安装包的开发信息;接收模块,配置为接收安全检测服务器下发的软件安装包的检测结果,检测结果由安全检测服务器使用预置的特征库对软件安装包进行特征匹配得出;报告生成模块,配置为根据检测结果生成安全分析报告。\n[0024] 可选地,安装包上传模块还配置为:通过指定网址的网页上传的软件安装包,并提交软件安装包的开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。\n[0025] 可选地,报告生成模块包括:解析子模块,配置为解析检测结果,以确定软件安装包的安全加固的类型;评分子模块,配置为按照安全加固的类型对软件安装包进行安全评分;报告输出子模块,配置为生成包含安全加固的类型以及安全评分的安全分析报告。\n[0026] 可选地,报告生成模块还包括:安全建议子模块,配置为按照安全加固的类型生成对软件安装包的安全建议,将安全建议添加至安全分析报告中,并提供进行安全加固的操作选项。\n[0027] 根据本发明的另一方面,又提供了一种软件安装包的安全检测系统。该安全检测系统包括以上介绍的任一种安全检测服务器和以上介绍的任一种的安全检测客户端,安全检测服务器与安全检测客户端网络连接。\n[0028] 本发明的技术方案,可以通过对软件安装包的分析,得到该软件安装包是否已经进行过安全加固以及进行安全加固的类型,从而提醒用户根据安全加固的分析结果提高软件安装包的安全性。\n[0029] 进一步地,本发明的方案利用客户端上传待评价的软件安装包,由服务器完成软件安装包的安全加固分析,生成检测结果,以便软件开发者采取下一步措施,无需软件开发者进行过多的操作,用户体验高。\n[0030] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。\n[0031] 根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。\n附图说明\n[0032] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:\n[0033] 图1是根据本发明一个实施例的软件安装包的安全检测系统的示意图;\n[0034] 图2是根据本发明一个实施例的软件安装包的安全检测服务器100的示意图;\n[0035] 图3是根据本发明一个实施例的软件安装包的安全检测客户端200的示意图;\n[0036] 图4是根据本发明一个实施例的软件安装包的安全检测方法的示意图;\n[0037] 图5是根据本发明一个实施例的另一种软件安装包的安全检测方法的示意图;\n[0038] 图6是根据本发明一个实施例的软件安装包的安全检测方法中上传安装包的效果图;\n[0039] 图7是根据本发明一个实施例的软件安装包的安全检测方法中安全分析报告的第一效果图;\n[0040] 图8是根据本发明一个实施例的软件安装包的安全检测方法中安全分析报告的第二效果图;以及\n[0041] 图9是根据本发明一个实施例的软件安装包的安全检测方法中安全分析报告的第三效果图。\n具体实施方式\n[0042] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。\n各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。\n[0043] 图1是根据本发明一个实施例的软件安装包的安全检测系统的示意图。软件安装包的安全检测系统一般性地可包括:通过网络连接的安全检测服务器100和安全检测客户端200。\n[0044] 用户通过安全检测客户端200将待检测的软件安装包上传至安全检测服务器100,由安全检测服务器100对上传的软件安装包进行检测后,将检测结果返回给安全检测客户端200,从而生成分析报告,并可以进一步提供加固建议,以便用户采用相应措施。\n[0045] 图2是根据本发明一个实施例的软件安装包的安全检测服务器100的示意图。该安全检测服务器100一般性地可以包括:安装包获取模块110、特征匹配模块120、结果生成模块130、特征库生成模块140,以上模块可以根据本实施例的安全检测服务器100的功能灵活进行配置。\n[0046] 在以上模块中,安装包获取模块110获取由用户上传的软件安装包。例如,安装包获取模块110可以收由用户通过指定网址的网页上传的软件安装包和软件安装包的开发信息;匹配保存软件安装包和开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。为便于用户操作,可以采用浏览器/服务器模式(Browser/Server,浏览器/服务器模式),从而统一了客户端,将核心部分集中到服务器上,简化了系统的开发、维护和使用。因此,在一种可选实施例中,安装包获取模块110可以利用web(网页)方式接收待评价的软件安装包以及该软件安装包的开发信息。\n[0047] 另外安装包获取模块110获取软件包并不局限于web方式,也可以在用户侧安装专门的客户端,用于上传待检测的软件安装包。本实施例可以根据具体使用环境选择获取模块110的工作模式。\n[0048] 特征匹配模块120使用预置的特征库对软件安装包进行特征匹配,其中特征库中预先保存有多项特征信息,每项特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征。以上特征信息可以包括安全加固过程中加入的函数的信息和/或动态链接库的信息,这些信息可以通过对应用常见的加固方法后的安装包进行分析得出并保存。\n[0049] 特征匹配模块120的一种可选流程为对软件安装包进行解包;对解包出的文件进行扫描,以确定与文件匹配的特征库中的特征信息。特征库中包括多类加固方法遗留的特征信息。例如软件安装包在应用不同种类的加固方法,可能会在代码中添加相应的函数,或者在软件安装包添加相应的文件,这些函数和文件就构成了软件加固的特征信息,从而可以通过这些特征信息对应得出进行的加固方法的种类。\n[0050] 结果生成模块130按照特征匹配的结果生成软件安装包的检测结果,并下发给安全检测客户端200。一种可选的方式为结果生成模块130根据匹配出的特征信息确定软件安装包所进行的安全加固的类型;按照确定出的安全加固的类型生成检测结果,检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。\n[0051] 特征库生成模块140可以分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;提取修改代码的特征,与所述加固项目匹配进行保存为所述特征库的特征信息。\n[0052] 安全加固方法的种类是有限的,有些安全加固方法采用的技术也有相似之处,因此,为实现本实施例的软件安装包的检测方法,可以预先搜集已有的所有的安全加固方法,并进行分析,提取出不同加固方法对代码的修改内容,包括添加的函数、变量、文件,形成特征信息。相应地,每种安全加固方法对软件安装包的的加固项目也是确定的,例如有些加固方法可能对软件安装包的资源进行了保护,防止对资源进行篡改和窃取,而另一些则没有进行资源保护,仅仅对源代码进行防反编译包括,此时可以将不同方法执行后的特征与其进行加固的项目匹配保存入特征库。在分析软件安装包时,可以通过对软件安装包查询是否存在对应的特征,确定其所使用的加固方案和所加固的项目,从而给出相应的加固建议。\n[0053] 本实施例的安全检测客户端200与上述安全检测服务器100网络连接,以上传待检测软件安装包,并向用户输出安装包的检测结果。图3是根据本发明一个实施例的软件安装包的安全检测客户端200的示意图。该安全检测客户端200一般性地可以包括:安装包上传模块210、接收模块220、报告生成模块230,其中报告生成模块230可以进一步设置有解析子模块231、评分子模块232、报告输出子模块233、安全建议子模块234中的一个或多个。\n[0054] 安装包上传模块210向安全检测服务器100上传待检测的软件安装包以及软件安装包的开发信息,上传的方式可以通过指定网址的网页上传,通过网页填写并提交软件安装包的开发信息。开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。\n[0055] 安全检测服务器100对安装包上传模块210上传的软件安装包使用预置的特征库对软件安装包进行特征匹配后,得出检测结果并下发,接收模块220接收安全检测服务器\n100下发的软件安装包的检测结果。\n[0056] 报告生成模块230根据检测结果生成安全分析报告,以供软件安装包的开发者根据该安全分析报告了解加固风险和破解隐患,从而可以采取进一步措施。报告生成模块230的一种结构为包括解析子模块231、评分子模块232、报告输出子模块233、安全建议子模块\n234中的一个或多个。\n[0057] 解析子模块231解析接收到的检测结果,以确定软件安装包的安全加固的类型,评分子模块232按照安全加固的类型对软件安装包进行安全评分;报告输出子模块233生成包含安全加固的类型以及安全评分的安全分析报告。例如可以安全分析报告中可以将可执行文件的保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果分类进行评分。\n[0058] 另外,安全建议子模块234还可以按照安全加固的类型生成对软件安装包的安全建议,将安全建议添加至安全分析报告中,并提供进行安全加固的操作选项。例如对安全检测得分较低的软件安装包,提醒用户进行加固保护,并提供进行安全加固的操作选项。\n[0059] 以上安全检测客户端200可以包括个人电脑、平板电脑、智能手机等具有上传和显示功能的终端。\n[0060] 本发明实施例还提供了软件安装包的安全检测方法,该软件安装包的安全检测方法可以由以上实施例介绍的任意一种软件安装包的安全检测客户端200或安全检测服务器\n100来执行,以提高安卓软件安装包的安全性,防止被暴力破解。图4是根据本发明一个实施例的软件安装包的安全检测方法的示意图,该软件安装包的安全检测方法可由以上介绍的安全检测服务器100来执行,该软件安装包的安全检测方法包括以下步骤:\n[0061] 步骤S402,获取由用户上传的软件安装包;\n[0062] 步骤S404,使用预置的特征库对软件安装包进行特征匹配;\n[0063] 步骤S406,按照特征匹配的结果生成软件安装包的检测结果。\n[0064] 以上步骤中特征库中预先保存有多项特征信息,每项特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征。这些特征信息可以对现有的加固方法进行测试分析得出,可以包括安全加固过程中加入的函数的信息和/或动态链接库的信息。一般而言,不同加固方法加入的函数以及动态链接库(.so文件),有些还会增加其他文件,这些加入的函数、文件的信息可以构成软件加固的特征,由于不同种类的加固方法遗留的特征不同,因此可以利用这些加固过程中产生的改变作为特征信息,并进行采集总结,最终生成特征库。然后利用特征库中已有的特征与待检的软件安装包进行特征匹配,得出该软件安装包是否经过加固以及所采用的加固方法,从而检测软件安装包的防破解能力。\n[0065] 具体地,预置的特征库的生成步骤可以包括:分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;提取修改代码的特征,与加固项目匹配进行保存为所述特征库的特征信息。特征库可以根据最新的安全加固方法的变化进行更新,以确保特征库的准确性。\n[0066] 步骤S402可以采用web方式进行数据获取,例如一种可选流程为:接收由用户通过指定网址的网页上传的软件安装包和软件安装包的开发信息;匹配保存软件安装包和开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。这些开发者信息可以用于对软件开发包进行验证。在步骤S402之后,需要对上传的软件安装包进行安全性扫描,确认软件安装包不包括木马或其他恶意程序,确保不对含有恶意成分的软件安装进行保护。\n[0067] 步骤S404的一种可选流程为:对软件安装包进行解包;对解包出的文件进行扫描,以确定与解包出文件匹配的特征库中的特征信息。扫描的过程可以对文件名、代码进行扫描,查找代码中是否包括与特征库中特征信息匹配的加固函数或者是否包括与特征库中特征信息匹配的加固文件,以得出软件安装包中与特征库中的特征信息匹配的特征。\n[0068] 另外,步骤S406还可以根据匹配出的特征信息确定软件安装包所进行的安全加固的类型;按照确定出的安全加固的类型生成检测结果,检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。\n[0069] 本实施例还提供了一种由安全检测客户端200执行的软件安装包的安全检测方法,图5是根据本发明一个实施例的另一种软件安装包的安全检测方法的示意图,该安全检测方法包括以下步骤:\n[0070] 步骤S502,向安全检测服务器上传软件安装包以及软件安装包的开发信息;\n[0071] 步骤S504,接收安全检测服务器下发的软件安装包的检测结果;\n[0072] 步骤S506,根据检测结果生成安全分析报告。\n[0073] 在以上步骤中,检测结果由安全检测服务器100执行步骤S402至步骤S406的流程,使用预置的特征库对软件安装包进行特征匹配得出。\n[0074] 相应地,也可以向安全检测服务器上传软件安装包以及软件安装包的开发信息包括:通过指定网址的网页上传的软件安装包,并提交软件安装包的开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息。图6是根据本发明一个实施例的软件安装包的安全检测方法中上传安装包的效果图,用户通过网页或其他平台上传软件安装包时,会展示如图6所示的界面,在用户点击“上传”按钮后,会展开本地目录供用户选择待检测的软件安装包,输入框中相应显示上传的软件安装包的包名,“上传失败常见问题及解决办法”的链接可将用户的界面引导至常见问题的介绍页面,用于用户自行解决上传过程中出现的问题,例如网络不通、上传停止或者其他有关加固的问题。如果点击“立即加固”会弹出新页面,将用户引导到加固保加固页面。此外,还可以进一步增加上传进度、检测进度等状态信息的展示功能。\n[0075] 步骤S504可以首先解析检测结果,以确定软件安装包的安全加固的类型,然后按照安全加固的类型对软件安装包进行安全评分,从而生成包含安全加固的类型以及安全评分的安全分析报告。安全分析报告可以包括以下内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。其中,加固建议可以按照安全加固的类型生成对软件安装包的安全建议;将安全建议添加至安全分析报告中,并提供进行安全加固的操作选项。\n[0076] 图7至图9分别是根据本发明一个实施例的软件安装包的安全检测方法中安全分析报告的三个效果图,如图,在用户打开安全分析报告的详情页后,可以展开具体的评分项和检测结果,以供用户查看具体得分项情况,其中图7示出了软件安装包未进行任何安全加固措施的安全分析报告,其中,DEX(安卓系统上可执行文件的类型)文件保护检测、代码混淆检测、防二次打包检测、源代码加密检测各项的结果均为未保护,应用安全评分为0,因此给出的安全建议为:安全检测得分较低,应用极易被反编译/破解,建议立即进行加固。如果用户点击“立即加固”的按钮,可以直接加载加固应用列表,对可以加固的应用直接提交加固。以上检测结果的项目与软件安装包进行过的加固方法对应,一般确定出其使用的安全加固方法,就可以对应的所保护的项目。\n[0077] 图8示出了对软件安装包进行部分加固措施的安全分析报告,例如根据该软件安装包中包含的加固特征对应得出了其所进行的加固方法,而且该加固方法仅是针对代码混淆检测和防二次打包检测两个项目进行了加固处理,但是该类加固方法对DEX文件保护检测和源代码加密检测两项未进行加密。在得出以上检测结果后,可以给出应用总体安全评分为40分,因此给出的安全建议为:应用核心文件未作保护,源代码有泄露风险,建议立即进行加固保护,如果用户点击“立即加固”的按钮,可以将该应用直接提交加固。\n[0078] 图9示出了对软件安装包进行完整加固措施的安全分析报告,确定该软件安装包所使用的加固方法对所有检测项目均已进行了保护,因此应用总体安全评分为100分,因此给出的安全建议为:已经完成安全保护。\n[0079] 以上图中示出的保护类型可以根据反编译和破解的手段进行调整,以确保软件安装包的安全性。\n[0080] 使用本实施例的方法,可以通过对软件安装包的分析,以得到该软件安装包是否已经进行过安全加固以及进行安全加固的类型,从而提醒用户根据安全加固的分析结果提高软件安装包的安全性,无需软件开发者进行过多的操作,用户体验高。\n[0081] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。\n[0082] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。\n[0083] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。\n[0084] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。\n[0085] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的客户端模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的软件安装包的安全检测服务器和安全检测客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。\n[0086] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。\n[0087] 至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。\n[0088] 本发明实施例还提供了A1.一种软件安装包的安全检测方法,包括:\n[0089] 获取由用户上传的软件安装包;\n[0090] 使用预置的特征库对所述软件安装包进行特征匹配,其中所述特征库中预先保存有多项特征信息,每项所述特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征;\n[0091] 按照特征匹配的结果生成所述软件安装包的检测结果。\n[0092] A2.根据A1所述的方法,其中,获取由用户上传的软件安装包包括:\n[0093] 接收由用户通过指定网址的网页上传的软件安装包和所述软件安装包的开发信息;\n[0094] 匹配保存所述软件安装包和所述开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。\n[0095] A3.根据A1所述的方法,其中,使用预置的特征库对所述软件安装包进行特征匹配包括:\n[0096] 对所述软件安装包进行解包;\n[0097] 对解包出的文件进行扫描,以确定与所述文件匹配的所述特征库中的特征信息。\n[0098] A4.根据A1至A3中任一项所述的方法,其中,所述每项特征信息包括:\n[0099] 安全加固过程中加入的函数的信息和/或动态链接库的信息。\n[0100] A5.根据A1至A4中任一项所述的方法,包括:按照特征匹配的结果生成所述软件安装包的检测结果包括:\n[0101] 根据匹配出的特征信息确定所述软件安装包所进行的安全加固的类型;\n[0102] 按照确定出的安全加固的类型生成所述检测结果,所述检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。\n[0103] A6.根据A1至A5中任一项所述的方法,其中所述预置的特征库的生成步骤包括:\n[0104] 分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;\n[0105] 提取修改代码的特征,与所述加固项目匹配进行保存为所述特征库的特征信息。\n[0106] 本发明实施例还提供了B7.一种软件安装包的安全检测服务器,包括:\n[0107] 安装包获取模块,配置为获取由用户上传的软件安装包;\n[0108] 特征匹配模块,配置为使用预置的特征库对所述软件安装包进行特征匹配,其中所述特征库中预先保存有多项特征信息,每项所述特征信息标识了软件安装包执行一类安全加固方法后的至少一种特征;\n[0109] 结果生成模块,用于按照特征匹配的结果生成所述软件安装包的检测结果,并下发给安全检测客户端。\n[0110] B8.根据B7所述的服务器,其中所述安装包获取模块还配置为:\n[0111] 接收由用户通过指定网址的网页上传的软件安装包和所述软件安装包的开发信息;\n[0112] 匹配保存所述软件安装包和所述开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。\n[0113] B9.根据B7所述的服务器,其中所述特征匹配模块还配置为:\n[0114] 对所述软件安装包进行解包;\n[0115] 对解包出的文件进行扫描,以确定与所述文件匹配的所述特征库中的特征信息,所述每项特征信息包括:安全加固过程中加入的函数的信息和/或动态链接库的信息。\n[0116] B10.根据权利要求B7至B9中任一项所述的服务器,其中结果生成模块还配置为:\n[0117] 根据匹配出的特征信息确定所述软件安装包所进行的安全加固的类型;\n[0118] 按照确定出的安全加固的类型生成所述检测结果,所述检测结果包括以下至少一项内容:加固建议、文件保护检测结果、代码混淆检测结果、防二次打包检测结果、源代码加密检测结果。\n[0119] B11.根据B7至B9中任一项所述的服务器,还包括特征库生成模块,配置为:\n[0120] 分析安全加固方法执行过程中对软件安装包的代码的修改,以及该安全加固方法对软件安装包的加固项目;\n[0121] 提取修改代码的特征,与所述加固项目匹配进行保存为所述特征库的特征信息。\n[0122] 本发明实施例还提供了C12.一种软件安装包的安全检测方法,包括:\n[0123] 向安全检测服务器上传软件安装包以及所述软件安装包的开发信息;\n[0124] 接收所述安全检测服务器下发的所述软件安装包的检测结果,所述检测结果由所述安全检测服务器使用预置的特征库对所述软件安装包进行特征匹配得出;\n[0125] 根据所述检测结果生成安全分析报告。\n[0126] C13.根据C12所述的方法,其中,向安全检测服务器上传软件安装包以及所述软件安装包的开发信息包括:\n[0127] 通过指定网址的网页上传的所述软件安装包,并提交所述软件安装包的开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。\n[0128] C14.根据C12或C13所述的方法,其中,根据所述检测结果生成安全分析报告包括:\n[0129] 解析检测结果,以确定所述软件安装包的安全加固的类型;\n[0130] 按照所述安全加固的类型对所述软件安装包进行安全评分;\n[0131] 生成包含所述安全加固的类型以及所述安全评分的安全分析报告。\n[0132] C15.根据C14所述的方法,其中,在确定所述软件安装包的安全加固的类型之后还包括:\n[0133] 按照所述安全加固的类型生成对所述软件安装包的安全建议;\n[0134] 将所述安全建议添加至所述安全分析报告中,并提供进行安全加固的操作选项。\n[0135] 本发明实施例还提供了D16.一种软件安装包的安全检测客户端,包括:\n[0136] 安装包上传模块,配置为向安全检测服务器上传软件安装包以及所述软件安装包的开发信息;\n[0137] 接收模块,配置为接收所述安全检测服务器下发的所述软件安装包的检测结果,所述检测结果由所述安全检测服务器使用预置的特征库对所述软件安装包进行特征匹配得出;\n[0138] 报告生成模块,配置为根据所述检测结果生成安全分析报告。\n[0139] D17.根据D16所述的客户端,其中,所述安装包上传模块还配置为:\n[0140] 通过指定网址的网页上传的所述软件安装包,并提交所述软件安装包的开发信息,所述开发信息包括以下任一种或多种:所述软件安装包的名称、版本、应用功能描述、开发者信息。\n[0141] D18.根据D16或D17所述的客户端,其中,所述报告生成模块包括:\n[0142] 解析子模块,配置为解析检测结果,以确定所述软件安装包的安全加固的类型;\n[0143] 评分子模块,配置为按照所述安全加固的类型对所述软件安装包进行安全评分;\n[0144] 报告输出子模块,配置为生成包含所述安全加固的类型以及所述安全评分的安全分析报告。\n[0145] D19.根据D18所述的客户端,其中,所述报告生成模块还包括:\n[0146] 安全建议子模块,配置为按照所述安全加固的类型生成对所述软件安装包的安全建议,将所述安全建议添加至所述安全分析报告中,并提供进行安全加固的操作选项。\n[0147] 本发明实施例还提供了E20.一种软件安装包的安全检测系统,包括:\n[0148] 根据B7至B11中任一项所述的安全检测服务器;\n[0149] 根据D16至D19中任一项所述的安全检测客户端,所述安全检测服务器与所述安全检测客户端网络连接。
法律信息
- 2022-07-29
专利权的转移
登记生效日: 2022.07.19
专利权人由北京奇虎科技有限公司变更为三六零科技集团有限公司
地址由100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更为300450 天津市滨海新区滨海科技园高新六路39号9-3-401号
专利权人由奇智软件(北京)有限公司 变更为空
- 2017-04-05
- 2014-10-22
实质审查的生效
IPC(主分类): G06F 21/56
专利申请号: 201410300240.3
申请日: 2014.06.26
- 2014-09-24
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-12-19
|
2012-06-28
| | |
2
| |
2013-09-04
|
2012-12-28
| | |
3
| |
2009-03-25
|
2008-11-13
| | |
4
| |
2010-08-18
|
2010-03-15
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |