合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
译者 | 陈峻
审校 | 重楼
在现代开发环境中,持续集成(CI)和持续交付(CD)管道对于向最终用户交付软件的变更已是“家常便饭”。这导致了过去在部署之后才执行安全测试的传统方法,对于每天可能要进行数十甚至数百次部署的场景而言,已不再有效。
安全测试人员为了能够轻松地自动运行和协调一系列开箱即用的安全测试工具,也往往需要一个模块化的工具链。而secureCodeBox正是这样一个基于Kubernetes(又称 K8s)的、可被用于对软件项目进行持续安全扫描的工具。它能够被集成到CI/CD管道中,自动扫描变更,并向开发人员提供测试结果,以便他们在部署之前修复软件问题。
总的说来,secureCodeBox的架构如下图所示:
secureCodeBox的架构图
而且,由于Kubernetes作业可以按需启动,并只在需要时才使用资源,因此它能够在扫描活动之间节省大量资源。同时,其另一个优势在于,所有不必要的扫描工件或元数据都会在Kubernetes作业执行之间被删除。
如图所示,负责处理这一流程的主要组件便是secureCodeBox操作器(Operator)。该操作器通过为每个步骤触发相应的Kubernetes作业来协调扫描,即:从扫描活动开始,到解析结果,再到修改和持久化结果。整个过程无需依赖人工安全审查,而且具有可扩展性,可以轻松添加更多的扫描器作为新的Kubernetes对象。
SecureCodeBox可以使用Helm图表在Kubernetes中进行部署。毕竟Helm在K8s中不需要太多的部署工作,而且部署的对象可以通过Helm变量轻松调整。
下面,我将使用Minikube创建一个本地Kubernetes集群。这里,Minikube并不是为生产环境的用例而设计的,不过您可以用它来测试性部署在K8s中。
首先,我们使用如下命令,以 4 个CPU和2048 MB内存的方式启动Minikube:
minikube start --cpus=4 --memory=2048m
TOP