一种多语言环境中扫描工具任务调度的处理方法与流程

文档序号:35195028发布日期:2023-08-21 15:10阅读:27来源:国知局
一种多语言环境中扫描工具任务调度的处理方法与流程

本发明涉及软件安全,尤其涉及一种多语言环境中扫描工具任务调度的处理方法。


背景技术:

1、扫描工具对软件代码的检测能力是建立在具体的语言特性基础上的,由于不同编码语言都有各自特点,某类型安全扫描工具针对特定编程语言的代码扫描往往依赖于语言特有的编译构建环境,比如大部分的静态分析工具都需要语言完成编译之后才能分析其安全问题,简单来说,扫描工具对软件代码的扫描,针对不同的语言需要针对性的进行相应依赖环境的预处理及编译支持。

2、目前针对某类型工具的软件代码质量检测主要有以下两种方式:1、利用扫描工具提供的命令行工具,直接或间接的在应用服务主机执行工具扫描命令进行扫描。这种方式直面扫描工具和服务主机环境,除要求对扫描工具、服务运维环境等本身有较高的熟悉度外,为了对扫描语言进行预处理,还要求对扫描的特定语言有一定的熟悉度;而且这种直面扫描工具的方式耦合性太高,不同的工具不同的语言无法整合成标准的流水线工作,不便于工程化实践;2、利用任务编排工具如jenkins等进行流水线任务编排作业,利用编排工具本身对扫描工具的插件化支持来进行扫描。此种方式其本质只不过借助常见的流水线工具做一定的任务编排等工作,语言环境的预处理等仍是比较繁杂的操作,而且针对特定的扫描工具需要在任务编排工具上安装相应扫描工具插件,一定程度上存在插件安装、支持度是否充分等问题,尤其一些不太流行的扫描工具,可能编排工具如jenkins上根本就不支持相关插件。

3、需要说明的是,在上述背景技术部分公开的信息只用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、本发明的目的在于克服现有技术的缺点,提供了一种多语言环境中扫描工具任务调度的处理方法,解决了现有技术因为语言本身依赖的环境问题导致代码分析扫描困难的问题。

2、本发明的目的通过以下技术方案来实现:一种多语言环境中扫描工具任务调度的处理方法,所述处理方法包括:

3、s1、用户通过扫描工具管理平台选择扫描工具、标签名称以及扫描工具配置参数,分析扫描工具的命令特点,设置驱动其扫描命令执行的第一指令,第一指令接收扫描工具管理平台下发的扫描工具配置参数,依次执行扫描工具的命令;

4、s2、判断此时是否存在空闲节点,如果存在,则调用持续集成工具的接口通过主节点创建扫描任务,并通过子线程进行扫描任务的监控;

5、s3、主节点根据任务配置绑定的运行节点的标签名称拉取对应标签的环境镜像,启动运行或者选择实际的从节点执行扫描任务,并通过扫描工具管理平台轮询监控扫描任务,直到扫描结束。

6、所述s2的步骤具体包括以下内容:

7、s201、将持续集成工具采用一主多从的架构模式,主从节点采用容器化和/或非容器化方式部署;

8、s202、持续集成工具的接口通过主节点调用获取运行节点数量及配置的允许节点数量,判断此时是否存在空闲节点,如果不存在则轮询等待;

9、s203、主节点接收扫描工具管理平台下发的任务创建调用请求创建扫描任务,扫描工具管理平台通过子线程进行扫描任务的监控。

10、所述s3的步骤中通过持续集成工具中的容器插件拉取对应标签的环境镜像,在容器插件的插件配置中配置好连接信息以及主节点配置信息,如果主节点采用容器化的部署方式则通过当前容器插件进行编排管理,如果主节点采用非容器化的部署方式或不在当前配置的容器插件环境,地址信息则为具体的可连接地址。

11、如果所述从节点采用容器化的部署方式,则配置针对不同语言扫描所需的环境需求的持续集成工具从节点容器镜像,其具体设置流程包括:

12、从现有资源中获取持续集成工具从节点的基础容器镜像;

13、在基础容器镜像上安装或者添加对应语言的编译构建依赖的环境;

14、将制作好的容器镜像发送到私有的镜像仓库。

15、所述配置针对不同语言扫描所需的环境需求的持续集成工具从节点容器镜像时,将持续集成工具从节点容器执行的第一指令以及第一指令内部封装调用的扫描工具命令路径通过容器卷挂载的方式将外部命令路径挂载到容器内部,持续集成工具的从节点运行时调用外部宿主机的命令。

16、如果所述从节点采用非容器化的部署方式,则通过持续集成工具新建节点配置节点的标签名称、执行节点数量和依赖的环境变量;

17、所述执行节点为从节点启动的子线程,所述依赖的环境变量包括根据语言环境特点的相关依赖配置以及扫描工具管理平台集成的各类型扫描工具所需的扫描命令环境。

18、所述处理方法中扫描工具管理平台通过调用持续集成工具的接口获取主节点管理的标签列表和允许同时执行的任务数量;

19、所述任务数量为从节点采用容器化部署时的容器数量或者从节点采用非容器化部署时的执行节点数量,和从节点采用容器化部署时的容器数量加上从节点采用非容器化部署时的执行节点数量。

20、所述通过扫描工具管理平台轮询监控扫描任务包括:判断持续集成工具扫描任务的状态,扫描工具管理平台根据状态进行相关的业务处理;判断当前正在进行构建的任务数量,以便于扫描工具管理平台控制扫描任务的下发。

21、本发明具有以下优点:

22、1、尽量利用容器化的镜像环境来最大限度的适配支持不同语言的编译构建需求,同时任务扫描执行节点的容器化满足服务资源动态伸缩的需求,更加合理的利用服务资源。

23、2、扫描工具的命令集成并不直接通过jenkins的工具插件配置执行,而是通过工具针对性开发的shell脚本做命令的封装和驱动串联,既增加了工具参数配置的灵活性,也能够根据业务需求在shell脚本中扩展处理与扫描相关的业务逻辑。同时,shell的通用性也保证了,无需安装其它依赖环境即可在服务端环境直接执行。而且,如果客户环境有自己的devops工具,脚本也能很好的兼容,避免不同的扫描工具在用户devops工具上没有相应插件或需要重新开发适配插件,增加接入成本。

24、3、不同编程语言的扫描可以针对性的制作不同的环境镜像,扫描工具管理平台根据扫描语言的特点灵活选择控制jenkins上的实际运行环境节点,同时环境镜像可以很方便的进行迁移复用。

25、4、jenkins采用主从配置,通过主节点可以灵活控制扫描任务节点的数量等,能够实现根据用户资源供给合理分配扫描资源。



技术特征:

1.一种多语言环境中扫描工具任务调度的处理方法,其特征在于:所述处理方法包括:

2.根据权利要求1所述的一种多语言环境中扫描工具任务调度的处理方法,其特征在于:所述s2的步骤具体包括以下内容:

3.根据权利要求2所述的一种多语言环境中扫描工具任务调度的处理方法,其特征在于:所述s3的步骤中通过持续集成工具中的容器插件拉取对应标签的环境镜像,在容器插件的插件配置中配置好连接信息以及主节点配置信息,如果主节点采用容器化的部署方式则通过当前容器插件进行编排管理,如果主节点采用非容器化的部署方式或不在当前配置的容器插件环境,地址信息则为具体的可连接地址。

4.根据权利要求2所述的一种多语言环境中扫描工具任务调度的处理方法,其特征在于:如果所述从节点采用容器化的部署方式,则配置针对不同语言扫描所需的环境需求的持续集成工具从节点容器镜像,其具体配置流程包括:

5.根据权利要求4所述的一种多语言环境中扫描工具任务调度的处理方法,其特征在于:所述配置针对不同语言扫描所需的环境需求的持续集成工具从节点容器镜像时,将持续集成工具从节点容器执行的第一指令以及第一指令内部封装调用的扫描工具命令路径通过容器卷挂载的方式将外部命令路径挂载到容器内部,持续集成工具的从节点运行时调用外部宿主机的命令。

6.根据权利要求2所述的一种多语言环境中扫描工具任务调度的处理方法,其特征在于:如果所述从节点采用非容器化的部署方式,则通过持续集成工具新建节点配置节点的标签名称、执行节点数量和依赖的环境变量;

7.根据权利要求6所述的一种多语言环境中扫描工具任务调度的处理方法,其特征在于:所述处理方法中扫描工具管理平台通过调用持续集成工具的接口获取主节点管理的标签列表和允许同时执行的任务数量;

8.根据权利要求1所述的一种多语言环境中扫描工具任务调度的处理方法,其特征在于:所述通过扫描工具管理平台轮询监控扫描任务包括:判断持续集成工具扫描任务的状态,扫描工具管理平台根据状态进行相关的业务处理;判断当前正在进行构建的任务数量,以便于扫描工具管理平台控制扫描任务的下发。


技术总结
本发明涉及一种多语言环境中扫描工具任务调度的处理方法,包括:用户通过扫描工具管理平台选择扫描工具、标签名称以及配置参数,分析扫描工具的命令特点,通过第一指令接收扫描工具管理平台下发的扫描工具配置参数,依次执行扫描工具的命令;判断此时是否存在空闲节点,如果存在,则调用持续集成工具的接口通过主节点创建扫描任务;主节点根据任务配置绑定的运行节点的标签名称拉取对应标签的环境镜像,启动运行或者选择实际的从节点执行扫描任务,并通过扫描工具管理平台轮询监控扫描任务,直到扫描结束。本发明通过Jenkins采用主从配置,通过主节点可以灵活控制扫描任务节点的数量等,能够实现根据用户资源供给合理分配扫描资源。

技术研发人员:朱辉,陈少鲜
受保护的技术使用者:软安科技有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1