一种基于代码动态分析的移动应用源代码安全审计系统技术方案

技术编号:23787476 阅读:44 留言:0更新日期:2020-04-15 00:42
本申请公开了一种基于代码动态分析的移动应用源代码安全审计系统,包括:代码扫描引擎模块、应用展现层模块和数据存储模块;应用展现层模块为系统的前端界面,提供外部系统集成接口;代码扫描引擎模块与应用展现层模块协作,实现代码安全扫描任务的规划、创建、扫描和报告生成;数据存储模块用于系统的数据保存。本申请采用虚拟执行技术,解决了第一代和第二代基于模式匹配、数据流/控制流分析等技术存在的效率低下、准确度不高的问题;减少了在应对无效漏洞上所浪费的人力和时间成本,也降低由于传统代码扫描工具漏报给公司带来的安全风险;可以根据公司的实际需求进行定制化,进一步提升效率,以尽量低的成本全面提高公司的代码安全水平。

A mobile application source code security audit system based on code dynamic analysis

【技术实现步骤摘要】
一种基于代码动态分析的移动应用源代码安全审计系统
本专利技术属于网络安全
,涉及一种基于代码动态分析的移动应用源代码安全审计系统。
技术介绍
随着时代的发展,信息技术深远地影响着人们的工作和生活。但是在给人们带来便利的同时,信息技术也成为了新的犯罪手段。信息系统中的黑客攻击比传统犯罪行为更加隐蔽,更加难以预防。在无声无息中,人们的信息资产甚至是物理安全都有可能会受到损害。防御性的设备,包括防火墙、IDS、IPS等的引入,一定程度上提高了系统的安全水准,但是这些设备并不能有效地预防应用级别的攻击,尤其是不能有效防御系统中未知漏洞0day的攻击。每次一个新的0day攻击,带来的都是整个互联网大范围的沦陷。目前,国家电网公司(以下简称公司)信息系统规模庞大,版本迭代速度快,开发和维护工作繁重,同时更要兼顾信息安全。信息系统研发人员普遍缺乏安全技术知识和安全意识,不愿意或者不能够编写出安全的程序代码。公司开展信息安全工作的成本很高,但收益和成效难以量化。最重要的是,公司缺乏能够真正高效、准确、深入的发掘代码层面安全漏洞的自动化解决方案。第一代代码扫描技术,一般用于开源的代码扫描工具。采用的主要是关键词和模式匹配技术,只适用于检测最简单、明显的安全漏洞,实用价值十分有限。第二代代码扫描技术,基于形式化的逻辑和数学理论进行静态代码分析,是目前业界的主流。它比第一代技术多了对于程序代码全局逻辑的理解能力,但是静态模型的精确度较低,误报率高,需要具备安全知识的专业人员花费大量时间进行复查和纠错,工作效率低。r>当前公司开展的代码安全检测工作主要依赖于美国的Fortify和以色列的Checkmarx。随着公司对电力信息系统安全要求不断提高,当前国外代码安全检测装置在实际工作中存在以下几点弊端:1.无法自主可控:在国家能源局组织编制的《电力行业网络安全行动计划(2018-2020年)》中明确指出:“坚持自主创新,加速推动电力系统自主可控和核心技术突破”;2.不符合行业特性:由于电力信息系统安全性要求较高且具有鲜明的行业特性,国外的代码安全检测产品无法提供定制化服务;3.成本费用较高:国外的安全检测产品维保升级费用高,通常每年维保升级费用是购买工具采购价格的25%以上。
技术实现思路
为解决现有技术中的不足,本申请提供一种基于代码动态分析的移动应用源代码安全审计系统,凭借对代码逻辑的有效理解,提供高效率低误报的代码安全扫描能力,为用户构建高效安全的开发体系,在大大降低企业信息安全资源投入的前提下,全面提高IT系统的整体安全水准。为了实现上述目标,本申请的第一件专利技术采用如下技术方案:一种基于代码动态分析的移动应用源代码安全审计系统,所述移动应用源代码安全审计系统包括:代码扫描引擎模块、应用展现层模块和数据存储模块;所述应用展现层模块为移动应用源代码安全审计系统的前端界面,提供外部系统集成接口;所述代码扫描引擎模块与应用展现层模块协作,实现代码安全扫描任务的规划、创建、扫描和报告生成;所述数据存储模块用于移动应用源代码安全审计系统的数据保存。本专利技术进一步包括以下优选方案:优选地,所述代码扫描引擎模块包括虚拟中间语言代码翻译器、安全扫描规则模块、虚拟执行器和扫描报告生成器;所述虚拟中间代码翻译器负责将被扫描项目/产品代码翻译成虚拟中间语言代码,并在翻译的过程中对被分析程序指令进行简化,仅保留与安全漏洞相关的信息,提高代码安全扫描效率和准确率;所述安全扫描规则模块用于定义不同安全漏洞类型的特征和安全扫描规则;所述虚拟执行器加载并执行转换后的虚拟中间语言代码,并根据安全扫描规则挖掘潜在的安全问题;所述扫描报告生成器对代码分析过程中发现的安全问题进行分类和去重,并对发现的安全漏洞进行安全威胁等级定级。优选地,所述扫描报告生成器对发现的安全漏洞进行严重、高危、中危或低危安全威胁等级定级。优选地,所述代码扫描引擎模块与应用展现层模块协作,完成代码安全扫描任务的规划、创建、扫描和报告生成,过程为:通过代码扫描引擎模块中的安全扫描规则模块预定义不同安全漏洞类型的特征和安全扫描规则;应用展现层模块创建源代码扫描任务后,调用代码扫描引擎模块;代码扫描引擎模块中,虚拟中间代码翻译器对虚拟代码进行翻译后由虚拟执行器进行扫描检测,结合扫描规则对代码进行动态分析并逐一进行判断,最终利用扫描报告生成器生成相应的源代码安全缺陷审计报告。优选地,所述安全漏洞类型包括权限检查漏洞、组件分析漏洞、广告模块分析漏洞、敏感API分析漏洞、第三方组件分析漏洞、代码注入分析漏洞、信息存储分析漏洞、资源未释放分析漏洞、敏感信息泄露分析漏洞、糟糕的实践漏洞和侵犯隐私漏洞。优选地,代码扫描引擎模块在扫描过程中按照安全漏洞类型相应的特征识别源代码存在的安全漏洞:所述权限检查漏洞通过提取权限,探测是否申请过多的权限、自定义权限是否被使用以及授权是否存在风险;所述组件分析漏洞通过列举所有组件,分析组件是否是对外公开,是否正确设置权限,是否正确设置属性以及权限是否被覆盖;所述广告模块分析漏洞通过提取所有的广告模块分析广告模块漏洞;所述敏感API分析漏洞通过列举所有的敏感的API和调用栈分析敏感API漏洞;所述第三方组件分析漏洞通过分析使用的第三方组件是否存在漏洞;所述代码注入分析漏洞通过分析系统是否存在SQL注入、XSS、反射和动态加载导致代码执行等漏洞;所述信息存储分析漏洞通过分析信息存储的位置和方式是否正确;所述资源未释放分析漏洞通过分析应用系统使用的资源在使用完之后是否被释放;所述敏感信息泄露分析漏洞分析信息在传输和存储时是否有被泄露的可能;所述糟糕的实践漏洞包括应用启用调试模式、弱认证、使用内部API和组件缺乏权限设置;所述侵犯隐私漏洞包括未经过用户的允许收集用户的隐私信息。优选地,所述代码扫描引擎模块在代码扫描过程中,将转换后的虚拟中间语言代码加载到虚拟机中,强制启动虚拟执行器运行;虚拟执行器在受控制的运行过程中,动态跟踪并分析程序代码的运行期行为,从而更全面准确的理解程序逻辑。优选地,虚拟执行器动态跟踪并分析程序代码的过程如下:步骤一:将转换后的虚拟中间语言代码加载到虚拟机中;步骤二:根据预设的分析目标,查找虚拟中间语言代码中存在的潜在安全风险点;步骤三:逐条读取潜在安全风险点所在方法的指令,并模拟数据堆栈,得到流入风险点的数据;步骤四:对得到的流入风险点的数据进行评估,如果数据尚存在未知的部分,代码扫描引擎找出该位置部分数据的来源方法,未知的部分作为新的潜在安全风险点,返回执行步骤三,直到所有流入风险点的数据性质均确定,则对该方法的动态分析完成,输出动态分析得到的数据;步骤五:虚拟执行器中的代码分析引擎根据安全扫描规则判断动态分析得到的数据是否会引起真正的安全问题本文档来自技高网...

【技术保护点】
1.一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:/n所述移动应用源代码安全审计系统包括:代码扫描引擎模块、应用展现层模块和数据存储模块;/n所述应用展现层模块为移动应用源代码安全审计系统的前端界面,提供外部系统集成接口;/n所述代码扫描引擎模块与应用展现层模块协作,实现代码安全扫描任务的规划、创建、扫描和报告生成;/n所述数据存储模块用于移动应用源代码安全审计系统的数据保存。/n

【技术特征摘要】
1.一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:
所述移动应用源代码安全审计系统包括:代码扫描引擎模块、应用展现层模块和数据存储模块;
所述应用展现层模块为移动应用源代码安全审计系统的前端界面,提供外部系统集成接口;
所述代码扫描引擎模块与应用展现层模块协作,实现代码安全扫描任务的规划、创建、扫描和报告生成;
所述数据存储模块用于移动应用源代码安全审计系统的数据保存。


2.根据权利要求1所述的一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:
所述代码扫描引擎模块包括虚拟中间语言代码翻译器、安全扫描规则模块、虚拟执行器和扫描报告生成器;
所述虚拟中间代码翻译器负责将被扫描项目/产品代码翻译成虚拟中间语言代码,并在翻译的过程中对被分析程序指令进行简化,仅保留与安全漏洞相关的信息,提高代码安全扫描效率和准确率;
所述安全扫描规则模块用于定义不同安全漏洞类型的特征和安全扫描规则;
所述虚拟执行器加载并执行转换后的虚拟中间语言代码,并根据安全扫描规则挖掘潜在的安全问题;
所述扫描报告生成器对代码分析过程中发现的安全问题进行分类和去重,并对发现的安全漏洞进行安全威胁等级定级。


3.根据权利要求2所述的一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:
所述扫描报告生成器对发现的安全漏洞进行严重、高危、中危或低危安全威胁等级定级。


4.根据权利要求2所述的一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:
所述代码扫描引擎模块与应用展现层模块协作,完成代码安全扫描任务的规划、创建、扫描和报告生成,过程为:
通过代码扫描引擎模块中的安全扫描规则模块预定义不同安全漏洞类型的特征和安全扫描规则;
应用展现层模块创建源代码扫描任务后,调用代码扫描引擎模块;
代码扫描引擎模块中,虚拟中间代码翻译器对虚拟代码进行翻译后由虚拟执行器进行扫描检测,结合扫描规则对代码进行动态分析并逐一进行判断,最终利用扫描报告生成器生成相应的源代码安全缺陷审计报告。


5.根据权利要求2所述的一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:
所述安全漏洞类型包括权限检查漏洞、组件分析漏洞、广告模块分析漏洞、敏感API分析漏洞、第三方组件分析漏洞、代码注入分析漏洞、信息存储分析漏洞、资源未释放分析漏洞、敏感信息泄露分析漏洞、糟糕的实践漏洞和侵犯隐私漏洞。


6.根据权利要求5所述的一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:
代码扫描引擎模块在扫描过程中按照安全漏洞类型相应的特征识别源代码存在的安全漏洞:
所述权限检查漏洞通过提取权限,探测是否申请过多的权限、自定义权限是否被使用以及授权是否存在风险;
所述组件分析漏洞通过列举所有组件,分析组件是否是对外公开,是否正确设置权限,是否正确设置属性以及权限是否被覆盖;
所述广告模块分析漏洞通过提取所有的广告模块分析广告模块漏洞;
所述敏感API分析漏洞通过列举所有的敏感的API和调用栈分析敏感API漏洞;
所述第三方组件分析漏洞通过分析使用的第三方组件是否存在漏洞;
所述代码注入分析漏洞通过分析系统是否存在SQL注入、XSS、反射和动态加载导致代码执行等漏洞;
所述信息存储分析漏洞通过分析信息存储的位置和方式是否正确;
所述资源未释放分析漏洞通过分析应用系统使用的资源在使用完之后是否被释放;
所述敏感信息泄露分析漏洞分析信息在传输和存储时是否有被泄露的可能;
所述糟糕的实践漏洞包括应用启用调试模式、弱认证、使用内部API和组件缺乏权限设置;
所述侵犯隐私漏洞包括未经过用户的允许收集用户的隐私信息。


7.根据权利要求2所述的一种基于代码动态分析的移动应用源代码安全审计系统,其特征在于:
所述代码扫描引擎模块在代码扫描过程中,将转...

【专利技术属性】
技术研发人员:刘冬兰刘新马雷张昊王睿于灏王文婷常英贤陈剑飞赵晓红赵洋赵勇吕国栋王晓峰任天成井俊双刘鑫
申请(专利权)人:国网山东省电力公司电力科学研究院国家电网有限公司
类型:发明
国别省市:山东;37

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

1