一种静态代码扫描方法和装置制造方法及图纸

技术编号:18203907 阅读:47 留言:0更新日期:2018-06-13 06:11
本发明专利技术公开了一种静态代码扫描方法和装置。其中所述方法包括:获取待扫描的安卓应用的源代码;调用多个代码扫描引擎分别对所述源代码进行扫描,得到所述多个代码扫描引擎分别输出的扫描结果报告;其中,所述多个代码扫描引擎分别根据不同的扫描规则进行代码扫描;根据所述代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。该技术方案有效地改善了使用单一代码扫描引擎进行代码扫描必然存在弱势扫描项的问题,对多种代码扫描引擎进行组合,扬长避短,实现了对代码全面彻底的扫描,大大提升了扫描的精度。

【技术实现步骤摘要】
一种静态代码扫描方法和装置
本专利技术涉及计算机
,特别涉及一种静态代码扫描方法和装置。
技术介绍
静态源代码扫描是近年被人提及较多的软件应用安全解决方案之一。它是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些语义缺陷、安全漏洞的解决方案。目前的静态扫描技术已经从90年代时候的,编码规则匹配这种由编译技术拓展过来的分析技术向程序模拟全路径执行的方向发展,由此,这种模拟执行相对的执行路径比动态执行更多,能够发现很多动态测试难以发现的缺陷。目前,PMD、FindBugs等多种代码扫描引擎都可以执行代码扫描,这些引擎各有优点,但也有其不足,无法满足开发者的需求。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的静态代码扫描方法和装置。依据本专利技术的一个方面,提供了一种静态代码扫描方法,包括:获取待扫描的安卓应用的源代码;调用多个代码扫描引擎分别对所述源代码进行扫描,得到所述多个代码扫描引擎分别输出的扫描结果报告;其中,所述多个代码扫描引擎分别根据不同的扫描规则进行代码扫描;根据所述代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。可选地,所述获取待扫描的安卓应用的源代码包括:接收通过前端页面输入的安卓应用的源代码的路径信息;根据所述源代码的路径信息,从代码服务器获取所述源代码。可选地,该方法进一步包括:接收通过前端页面输入的代码权限信息;根据所述代码权限信息登录所述代码服务器后,再根据所述源代码的路径信息从代码服务器获所述源代码。可选地,所述多个代码扫描引擎分别根据自身固有代码漏洞扫描规则进行代码扫描,且不同的代码扫描引擎具有不同的固有代码漏洞扫描规则。可选地,在调用多个代码扫描引擎分别对所述源代码进行扫描之前,该方法进一步包括:为所述多个代码扫描引擎中的至少一个下发预设控制规则;所述预设控制规则限制相应代码扫描引擎在进行代码扫描时只可使用其固有代码漏洞扫描规则中的指定的一个或多个。可选地,该方法进一步包括:根据代码扫描引擎性能优劣表,为不同的代码扫描引擎确定不同的预设控制规则;所述代码扫描引擎性能优劣表中保存了各类代码扫描引擎的扫描优势信息和扫描劣势信息。可选地,各代码扫描引擎的扫描规则包括如下中的一种或多种:判断敏感信息是否保存在非安全对象中/在日志中输出,是则判定源代码中存在安全隐患;判断重写的函数是否使用了指定函数进行过滤,否则判定源代码中存在漏洞;判断源代码中是否包含不安全的函数,是则判定源代码中存在漏洞;判断可导出组件的数量是否超过预设值,是则判定源代码中存在安全隐患;判断组件权限是否过低,是则判定源代码中存在安全隐患。可选地,该方法进一步包括:接收通过前端页面输入的最终的扫描结果报告的输出方式配置信息;根据所述输出方式配置信息,将所述最终的扫描结果报告以指定输出方式输出。依据本专利技术的另一方面,提供了一种静态代码扫描装置,包括:获取单元,适于获取待扫描的安卓应用的源代码;扫描单元,适于调用多个代码扫描引擎分别对所述源代码进行扫描,得到所述多个代码扫描引擎分别输出的扫描结果报告;其中,所述多个代码扫描引擎分别根据不同的扫描规则进行代码扫描;整合单元,适于根据所述代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。可选地,所述获取单元,适于接收通过前端页面输入的安卓应用的源代码的路径信息;根据所述源代码的路径信息,从代码服务器获取所述源代码。可选地,所述获取单元,进一步适于接收通过前端页面输入的代码权限信息;根据所述代码权限信息登录所述代码服务器后,再根据所述源代码的路径信息从代码服务器获所述源代码。可选地,所述多个代码扫描引擎分别根据自身固有代码漏洞扫描规则进行代码扫描,且不同的代码扫描引擎具有不同的固有代码漏洞扫描规则。可选地,该装置进一步包括:控制单元,适于为所述多个代码扫描引擎中的至少一个下发预设控制规则;所述预设控制规则限制相应代码扫描引擎在进行代码扫描时只可使用其固有代码漏洞扫描规则中的指定的一个或多个。可选地,所述控制单元,适于根据代码扫描引擎性能优劣表,为不同的代码扫描引擎确定不同的预设控制规则;所述代码扫描引擎性能优劣表中保存了各类代码扫描引擎的扫描优势信息和扫描劣势信息。可选地,各代码扫描引擎的扫描规则包括如下中的一种或多种:判断敏感信息是否保存在非安全对象中/在日志中输出,是则判定源代码中存在安全隐患;判断重写的函数是否使用了指定函数进行过滤,否则判定源代码中存在漏洞;判断源代码中是否包含不安全的函数,是则判定源代码中存在漏洞;判断可导出组件的数量是否超过预设值,是则判定源代码中存在安全隐患;判断组件权限是否过低,是则判定源代码中存在安全隐患。可选地,该装置进一步包括:输出单元;所述获取单元,进一步适于接收通过前端页面输入的最终的扫描结果报告的输出方式配置信息;所述输出单元,适于根据所述输出方式配置信息,将所述最终的扫描结果报告以指定输出方式输出。由上述可知,本专利技术的技术方案,使用多种代码扫描引擎对获取到的安卓应用的源代码进行扫描,每个代码扫描引擎可以使用不同的代码扫描规则,分别输出独立的扫描结果报告,将这些扫描结果报告进行整合后可以得到最终的扫描结果报告。该技术方案有效地改善了使用单一代码扫描引擎进行代码扫描必然存在弱势扫描项的问题,对多种代码扫描引擎进行组合,扬长避短,实现了对代码全面彻底的扫描,大大提升了扫描的精度。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种静态代码扫描方法的流程图;图2示出了根据本专利技术一个实施例的一种静态代码扫描装置的结构示意图;图3示出了根据本专利技术一个实施例的另一种静态代码扫描装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的一种静态代码扫描方法的流程图,如图1所示,该方法包括:步骤S110,获取待扫描的安卓应用的源代码。步骤S120,调用多个代码扫描引擎分别对源代码进行扫描,得到多个代码扫描引擎分别输出的扫描结果报告;其中,多个代码扫描引擎分别根据不同的扫描规则进行代码扫描。其中,代码扫描引擎可以为PMD、FindBugs等开源代码扫描引擎,也可以根据用户的需求选择更合适的代码扫描引擎。步骤S130,根据代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。可见,图1所示的方法,使用多种代码扫描引擎对获取到的安卓应用的源代码进行扫描,每个代本文档来自技高网...
一种静态代码扫描方法和装置

【技术保护点】
一种静态代码扫描方法,其中,该方法包括:获取待扫描的安卓应用的源代码;调用多个代码扫描引擎分别对所述源代码进行扫描,得到所述多个代码扫描引擎分别输出的扫描结果报告;其中,所述多个代码扫描引擎分别根据不同的扫描规则进行代码扫描;根据所述代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。

【技术特征摘要】
1.一种静态代码扫描方法,其中,该方法包括:获取待扫描的安卓应用的源代码;调用多个代码扫描引擎分别对所述源代码进行扫描,得到所述多个代码扫描引擎分别输出的扫描结果报告;其中,所述多个代码扫描引擎分别根据不同的扫描规则进行代码扫描;根据所述代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。2.如权利要求1所述的方法,其中,所述获取待扫描的安卓应用的源代码包括:接收通过前端页面输入的安卓应用的源代码的路径信息;根据所述源代码的路径信息,从代码服务器获取所述源代码。3.如权利要求2所述的方法,其中,该方法进一步包括:接收通过前端页面输入的代码权限信息;根据所述代码权限信息登录所述代码服务器后,再根据所述源代码的路径信息从代码服务器获所述源代码。4.如权利要求1所述的方法,其中,所述多个代码扫描引擎分别根据自身固有代码漏洞扫描规则进行代码扫描,且不同的代码扫描引擎具有不同的固有代码漏洞扫描规则。5.如权利要求4所述的方法,其中,在调用多个代码扫描引擎分别对所述源代码进行扫描之前,该方法进一步包括:为所述多个代码扫描引擎中的至少一个下发预设控制规则;所述预设控制规则限制相应代码扫描引擎在进行代码扫描时只可使用其固有代码漏洞扫描规则中的指定的一个或多个。6.如权利要求5所述的方法,其中,该方法进一步包括:根据代码扫描引擎性能优劣表,为不同的代码扫描引擎确定不同的预...

【专利技术属性】
技术研发人员:袁伟刘俊
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京,11

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

1