[发明专利]一种静态代码扫描方法和装置在审
申请号: | 201611110886.0 | 申请日: | 2016-12-06 |
公开(公告)号: | CN108153664A | 公开(公告)日: | 2018-06-12 |
发明(设计)人: | 袁伟;刘俊 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝;何立春 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码扫描 扫描 引擎 扫描结果报告 源代码 方法和装置 静态代码 扫描规则 引擎输出 扫描项 有效地 整合 调用 输出 应用 | ||
本发明公开了一种静态代码扫描方法和装置。其中所述方法包括:获取待扫描的安卓应用的源代码;调用多个代码扫描引擎分别对所述源代码进行扫描,得到所述多个代码扫描引擎分别输出的扫描结果报告;其中,所述多个代码扫描引擎分别根据不同的扫描规则进行代码扫描;根据所述代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。该技术方案有效地改善了使用单一代码扫描引擎进行代码扫描必然存在弱势扫描项的问题,对多种代码扫描引擎进行组合,扬长避短,实现了对代码全面彻底的扫描,大大提升了扫描的精度。
技术领域
本发明涉及计算机技术领域,特别涉及一种静态代码扫描方法和装置。
背景技术
静态源代码扫描是近年被人提及较多的软件应用安全解决方案之一。它是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些语义缺陷、安全漏洞的解决方案。目前的静态扫描技术已经从90年代时候的,编码规则匹配这种由编译技术拓展过来的分析技术向程序模拟全路径执行的方向发展,由此,这种模拟执行相对的执行路径比动态执行更多,能够发现很多动态测试难以发现的缺陷。
目前,PMD、FindBugs等多种代码扫描引擎都可以执行代码扫描,这些引擎各有优点,但也有其不足,无法满足开发者的需求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的静态代码扫描方法和装置。
依据本发明的一个方面,提供了一种静态代码扫描方法,包括:
获取待扫描的安卓应用的源代码;
调用多个代码扫描引擎分别对所述源代码进行扫描,得到所述多个代码扫描引擎分别输出的扫描结果报告;其中,所述多个代码扫描引擎分别根据不同的扫描规则进行代码扫描;
根据所述代码扫描引擎输出的多份扫描结果报告整合出最终的扫描结果报告。
可选地,所述获取待扫描的安卓应用的源代码包括:接收通过前端页面输入的安卓应用的源代码的路径信息;
根据所述源代码的路径信息,从代码服务器获取所述源代码。
可选地,该方法进一步包括:
接收通过前端页面输入的代码权限信息;
根据所述代码权限信息登录所述代码服务器后,再根据所述源代码的路径信息从代码服务器获所述源代码。
可选地,所述多个代码扫描引擎分别根据自身固有代码漏洞扫描规则进行代码扫描,且不同的代码扫描引擎具有不同的固有代码漏洞扫描规则。
可选地,在调用多个代码扫描引擎分别对所述源代码进行扫描之前,该方法进一步包括:
为所述多个代码扫描引擎中的至少一个下发预设控制规则;所述预设控制规则限制相应代码扫描引擎在进行代码扫描时只可使用其固有代码漏洞扫描规则中的指定的一个或多个。
可选地,该方法进一步包括:
根据代码扫描引擎性能优劣表,为不同的代码扫描引擎确定不同的预设控制规则;
所述代码扫描引擎性能优劣表中保存了各类代码扫描引擎的扫描优势信息和扫描劣势信息。
可选地,各代码扫描引擎的扫描规则包括如下中的一种或多种:
判断敏感信息是否保存在非安全对象中/在日志中输出,是则判定源代码中存在安全隐患;
判断重写的函数是否使用了指定函数进行过滤,否则判定源代码中存在漏洞;
判断源代码中是否包含不安全的函数,是则判定源代码中存在漏洞;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611110886.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:页面数据处理方法及装置
- 下一篇:数据测试方法及装置