基于容器化部署的静态代码分析方法及系统与流程

文档序号:37229250发布日期:2024-03-05 15:37阅读:13来源:国知局
基于容器化部署的静态代码分析方法及系统与流程

本发明涉及软件代码检测,尤其涉及一种基于容器化部署的静态代码分析方法及系统。


背景技术:

1、静态代码分析(static code analysis)又称为静态程序分析,是一种不运行程序的方式下,通过词法分析、语法分析等技术对静态代码进行分析,验证代码是否满足规范性、安全性等指标的一种代码分析技术。

2、为了提高开发效率和软件质量和安全,越来越来的软件开发团队使用ci/cd(继续集成/持续部署)开发流程,并且将静态代码分析工具集成进来,提高代码质量检测效率。很多企业面临大批量静态代码并发分析任务时通常采用物理主机分布式部署方法,这种方法存在如下问题:

3、1、由于静态代码分析引擎工作时需占用大量内存和cpu资源,分布式部署需要将分析引擎部署到多台服务器上,占用大量服务器资源。

4、2、由于静态代码分析引擎可能依赖的环境和物理主机上安装的程序依赖的环境和配置有冲突,无法做到环境隔离。

5、3、无法实现快速部署和扩展。


技术实现思路

1、本发明的目的是提供一种可快速启动大量的代码检查任务,而不需要持续占用大量的服务器资源的基于容器化部署的静态代码分析方法及系统。

2、为了实现上述目的,本发明公开了一种基于容器化部署的静态代码分析方法,其包括:

3、构建目标引擎的镜像,所述目标引擎用于静态代码分析;

4、将所述镜像导入安装有容器的服务器上;

5、在所述服务器上,依据所述镜像启动一个或多个所述容器,并将与待分析源码相对应的源码参数传入启动的所述容器,以获得一个或多个引擎容器;

6、所述引擎容器向管理平台发送启动进行代码分析的请求,所述管理平台用于管理所述引擎容器的工作;

7、所述管理平台根据所述引擎容器的请求创建静态代码分析的第一任务,并将该第一任务放入队列中;

8、当所述管理平台存在空闲资源时,启动所述第一任务,以通过所述引擎容器对待分析源码进行检测;

9、当检测结束后,所述管理平台将所述引擎容器移除并销毁

10、较佳地,所述引擎容器向管理平台发送启动进行代码分析的请求时,还同时启动与该引擎容器相对应的心跳定时器,基于该心跳定时器定时向所述管理平台发送心跳信息;

11、当检测结束后,所述引擎容器将分析结果输出到目标文件中,并销毁与该第一任务相对应的所述引擎定时器;

12、所述管理平台在预设时间内将未收到心跳信息的所述引擎容器移除并销毁。

13、较佳地,通过命令行参数或环境变量将所述源码参数传入启动的所述容器。

14、较佳地,所述源码参数包括源码存放的位置、访问秘钥以及源码语言信息。

15、较佳地,还对所述源码参数进行校验。

16、较佳地,所述引擎容器向所述管理平台发送启动进行代码分析的请求前,所述引擎容器通过授权秘钥对请求参数进行签名,所述管理平台对所述引擎容器的签名进行身份校验。

17、本发明还公开一种基于容器化部署的静态代码分析系统,该分析系统基于如上所述的静态代码分析方法工作。

18、本发明还公开另一种基于容器化部署的静态代码分析系统,其包括:

19、一个或多个处理器;

20、存储器;

21、以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的基于容器化部署的静态代码分析方法的指令。

22、本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的基于容器化部署的静态代码分析方法。

23、与现有技术相比,本发明上述技术方案公开的静态代码分析方法具有如下有益技术效果:

24、1、使用容器化部署静态代码分析引擎,可以通过镜像启动多个代码分析引擎容器进行扫描分析,不需要分布式部署到多台服务器,极大的节省服务器资源;

25、2、漏洞分析完成后,可停止并销毁容器,释放服务器资源,从而使得服务器资源得到合理利用;

26、3、通过引擎容器的布置,可以将分析引擎及其依赖配置封装在独立的容器中,引擎容器在隔离的运行环境中工作,避免了与物理主机其它程序的冲突和干扰,保证了更加可靠、稳定的代码分析过程;

27、4、所述管理平台存在空闲资源时才会启动所述引擎容器,从而避免因运行过多的引擎容器导致服务器资源使用殆尽而分析失败的情况发生。



技术特征:

1.一种基于容器化部署的静态代码分析方法,其特征在于,包括:

2.根据权利要求1所述的基于容器化部署的静态代码分析方法,其特征在于,所述引擎容器向管理平台发送启动进行代码分析的请求时,还同时启动与该引擎容器相对应的心跳定时器,基于该心跳定时器定时向所述管理平台发送心跳信息;

3.根据权利要求1所述的基于容器化部署的静态代码分析方法,其特征在于,通过命令行参数或环境变量将所述源码参数传入启动的所述容器。

4.根据权利要求1所述的基于容器化部署的静态代码分析方法,其特征在于,所述源码参数包括源码存放的位置、访问秘钥以及源码语言信息。

5.根据权利要求4所述的基于容器化部署的静态代码分析方法,其特征在于,还对所述源码参数进行校验。

6.根据权利要求5所述的基于容器化部署的静态代码分析方法,其特征在于,所述引擎容器向所述管理平台发送启动进行代码分析的请求前,所述引擎容器通过授权秘钥对请求参数进行签名,所述管理平台对所述引擎容器的签名进行身份校验。

7.一种基于容器化部署的静态代码分析系统,其特征在于,该分析系统基于权利要求1至6任一项所述的静态代码分析方法工作。

8.一种基于容器化部署的静态代码分析系统,其特征在于,包括:

9.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至6任一项所述的基于容器化部署的静态代码分析方法。


技术总结
本发明公开了一种基于容器化部署的静态代码分析方法及系统,该方法包括:构建目标引擎的镜像;将镜像导入安装有容器的服务器上;在服务器上,依据镜像启动一个或多个容器,并将与待分析源码相对应的源码参数传入启动的容器,以获得一个或多个引擎容器;引擎容器向管理平台发送启动进行代码分析的请求;管理平台根据引擎容器的请求创建静态代码分析的第一任务,并将该第一任务放入队列中;当管理平台存在空闲资源时,启动第一任务;当检测结束后,管理平台将引擎容器移除并销毁。上述静态代码分析方法有效地利用了容器化技术,解决了静态代码分析引擎的部署、运行和管理问题,节省服务器资源,具有高度隔离性,并提高了代码质量检测的效率。

技术研发人员:蔡琦,万振华,王颉,徐瑞祝,陆庆尚
受保护的技术使用者:深圳开源互联网安全技术有限公司
技术研发日:
技术公布日:2024/3/4
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1