一种基于制造技术

技术编号:39806981 阅读:15 留言:0更新日期:2023-12-22 02:41
本发明专利技术涉及一种基于

【技术实现步骤摘要】
一种基于SCA构建扫描编译环境的组件检测方法及装置


[0001]本专利技术涉及软件安全
,尤其涉及一种基于
SCA
构建扫描编译环境的组件检测方法及装置


技术介绍

[0002]SCA(
软件组成分析
)
中的构建扫描是指通过对软件构建过程中产生的中间文件进行扫描和分析,以检测其中是否存在潜在的安全漏洞或依赖组件的漏洞,这种扫描方式可以在软件构建过程中及时发现问题,避免在部署和运行时才发现漏洞带来的风险和成本

[0003]目前主流的
SCA
检测主要有两种:一种是在客户端进行检测,其依赖于客户端的电脑环境;另一种是在服务端进行检测,统一配置检测环境;在客户端检测的不足在于用户可能会通过
SCA
扫描一些非常用开发语言的工程相关漏洞,但是客户端电脑环境可能并不具备这些语言的开发环境,此时用户可能会觉得按照多种语言的开发环境复杂,有一定难度

此外,客户端的性能和稳定性也可能受到影响,例如扫描过程可能会占用过多的系统资源或导致系统崩溃

服务端的不足在于,虽然能够统一大部分的语言环境,但是一种语言可能存在多个环境不兼容的情况,使得一些老的项目扫描构建会失败

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


技术实现思路

[0005]本专利技术的目的在于克服现有技术的缺点,提供了一种基于
SCA
构建扫描编译环境的组件检测方法及装置,解决了现有技术存在的问题

[0006]本专利技术的目的通过以下技术方案来实现:一种基于
SCA
构建扫描编译环境的组件检测方法,所述检测方法包括:
[0007]检测资源准备步骤:生成
Dockerfile
文件,执行
Docker
命令构建
Docker
镜像,并将构建好的
Docker
镜像上传至
Docker
镜像私服;
[0008]待测项目上传步骤:将待测项目上传至指定目标下,并以目录外层名称命令基于当前扫描
ID
进行命名后发送扫描任务消息至消息队列;
[0009]扫描服务解析及拆解步骤:接收扫描任务中的消息,对待测项目进行初步分析以及根据包管理器类型拆解任务,并发送任务到消息队列,等待相关资源任务进行处理;
[0010]资源调度服务步骤:根据不同类型的资源申请进行处理和调度,实现资源管理和分配;
[0011]包管理器扫描步骤:在构建扫描容器资源启动成功后,接收消息队列的广播消息,并拉取符合当前容器标识的构建检测任务,在获取到具体消息后对待检测项目指定目标进行检测

[0012]所述扫描服务解析及拆解步骤具体包括以下内容:
[0013]接收扫描任务中的消息,通过读取指定名称的文件分析获取待测项目中使用的包
管理器类型和目录位置,并与资源调度服务进行通信,发起资源申请,在资源创建成功后按照包管理器类型拆解任务,并发送任务到消息队列,等待相关资源任务进行处理

[0014]所述资源调度服务步骤具体包括以下内容:
[0015]资源调度服务接收到资源申请后,在构建扫描的情况下申请一个构建扫描容器;
[0016]判断当前容器中是否存在相应的构建扫描容器未销毁,如果存在,则更新最大存活时间,并更新可调度资源令牌

响应令牌和相关资源信息;
[0017]如果当前容器中不存在相应的构建扫描容器未销毁,资源调度服务查询是否存在对应的镜像,如果存在,则拉起一个新的容器,如果不存在,则从脚本管理服务中拉起一个脚本,执行脚本创建一个
Docker
镜像;
[0018]在成功创建一个构建扫描容器后,资源调度服务返回创建成功的结果,完成资源的分配和调度

[0019]所述包管理器扫描步骤中,在对待检测项目指定目标检测成功后,将检测结果写入预设文件中,以便于后续
SCA
分析,同时想资源调度服务发起标识任务完成的消息,如果检测失败,则向资源调度服务发起标识任务失败的消息,并记录失败原因

[0020]所述生成
Dockerfile
文件,执行
Docker
命令构建
Docker
镜像具体包括以下内容:
[0021]创建
Dockerfile
文件:创建包含构建
Docker
镜像所需指令和配置信息的
Dockerfile
文件,并在
Dockerfile
文件中定义基础镜像

添加文件

设置环境变量和运行命令;
[0022]编辑
Dockerfile
指令:通过编写基础镜像

安装依赖

复制文件

设置环境变量

暴露端口和定义容器启动指令来定义镜像的构建过程;
[0023]执行
Docker
指令构建镜像:通过
Docker
指令指定
Dockerfile
文件的路径和镜像名称,
Docker
根据
Dockerfile
指令逐步构建镜像

[0024]一种基于
SCA
构建扫描编译环境的组件检测装置,它包括检测资源准备模块

待测项目上传模块

扫描服务解析及拆解模块

资源调度服务模块和包管理器检测模块;
[0025]所述检测资源准备模块:用于生成
Dockerfile
文件,执行
Docker
命令构建
Docker
镜像,并将构建好的
Docker
镜像上传至
Docker
镜像私服;
[0026]所述待测项目上传模块:用于将待测项目上传至指定目标下,并以目录外层名称命令基于当前扫描
ID
进行命名后发送扫描任务消息至消息队列;
[0027]所述扫描服务解析及拆解模块:用于接收扫描任务中的消息,对待测项目进行初步分析以及根据包管理器类型拆解任务,并发送任务到消息队列,等待相关资源任务进行处理;
[0028]所述资源调度服务模块:用于根据不同类型的资源申请进行处理和调度,实现资源管理和分配;
[0029]所述包管理器扫描模块:用于在构建扫描容器资源启动成功后,接收消息队列的广播消息,并拉取符合当前容器标识的构建检测任务,在获取到具体消息后对待检测项目指定目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于
SCA
构建扫描编译环境的组件检测方法,其特征在于:所述检测方法包括:检测资源准备步骤:生成
Dockerfile
文件,执行
Docker
命令构建
Docker
镜像,并将构建好的
Docker
镜像上传至
Docker
镜像私服;待测项目上传步骤:将待测项目上传至指定目标下,并以目录外层名称命令基于当前扫描
ID
进行命名后发送扫描任务消息至消息队列;扫描服务解析及拆解步骤:接收扫描任务中的消息,对待测项目进行初步分析以及根据包管理器类型拆解任务,并发送任务到消息队列,等待相关资源任务进行处理;资源调度服务步骤:根据不同类型的资源申请进行处理和调度,实现资源管理和分配;包管理器扫描步骤:在构建扫描容器资源启动成功后,接收消息队列的广播消息,并拉取符合当前容器标识的构建检测任务,在获取到具体消息后对待检测项目指定目标进行检测
。2.
根据权利要求1所述的一种基于
SCA
构建扫描编译环境的组件检测方法,其特征在于:所述扫描服务解析及拆解步骤具体包括以下内容:接收扫描任务中的消息,通过读取指定名称的文件分析获取待测项目中使用的包管理器类型和目录位置,并与资源调度服务进行通信,发起资源申请,在资源创建成功后按照包管理器类型拆解任务,并发送任务到消息队列,等待相关资源任务进行处理
。3.
根据权利要求1所述的一种基于
SCA
构建扫描编译环境的组件检测方法,其特征在于:所述资源调度服务步骤具体包括以下内容:资源调度服务接收到资源申请后,在构建扫描的情况下申请一个构建扫描容器;判断当前容器中是否存在相应的构建扫描容器未销毁,如果存在,则更新最大存活时间,并更新可调度资源令牌

响应令牌和相关资源信息;如果当前容器中不存在相应的构建扫描容器未销毁,资源调度服务查询是否存在对应的镜像,如果存在,则拉起一个新的容器,如果不存在,则从脚本管理服务中拉起一个脚本,执行脚本创建一个
Docker
镜像;在成功创建一个构建扫描容器后,资源调度服务返回创建成功的结果,完成资源的分配和调度
。4.
根据权利要求1所述的一种基于
SCA
构建扫描编译环境的组件检测方法,其特征在于:所述包管理器扫描步骤中,在对待检测项目指定目标检测成功后,将检测结果写入预设文件中,以便于后续
SCA
分析,同时想资源调度服务发起标识任务完成的消息,如果检测失败,则向资源调度服务发起标识任务失败的消息,并记录失败原因
。5.
根据权利要求1所述的一种基于
SCA
构建扫描编译环境的组件检测方法,其特征在于:所述生成
Dockerfile
文件,执行
Docker
命令构建
Docker
镜像具体包括以下内容:创建
Docker...

【专利技术属性】
技术研发人员:朱辉吴涛
申请(专利权)人:软安科技有限公司
类型:发明
国别省市:

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

1