MozillaSecurity/orion
GitHub: MozillaSecurity/orion
Mozilla 安全团队开发的 monorepo 微服务 CI/CD 系统,用于自动化构建和发布模糊测试基础设施中的 Docker 容器镜像。
Stars: 49 | Forks: 13

用于在单个仓库中将多个 Docker 容器作为微服务进行构建和发布的 Monorepo。
## 目录
- [目录](#table-of-contents)
- [什么是 Orion?](#what-is-orion)
- [它是如何运作的?](#how-does-it-operate)
- [构建说明与开发](#build-instructions-and-development)
- [使用方法](#usage)
- [测试](#testing)
### 什么是 Orion?
Orion 是一个构建环境,用于我们在 Fuzzing 基础设施中运行的容器化服务(例如 [libFuzzer](https://github.com/MozillaSecurity/orion/tree/master/services/libfuzzer))。
### 它是如何运作的?
CI 和 CD 由 Taskcluster 和 [Orion Decision](https://github.com/MozillaSecurity/orion/tree/master/services/orion-decision) 服务自主执行。只有在修改了特定服务的文件或修改了父镜像时,才会启动构建过程。每个镜像在发布到 [Docker registry](https://hub.docker.com/u/mozillasecurity/) 并作为 [Taskcluster artifacts](https://community-tc.services.mozilla.com/tasks/index/project.fuzzing.orion) 之前,都会被标记为最新的 `revision` 或 `latest`。有关每个服务的更多信息,请查看每个服务相应的 README.md,或访问 [Wiki](https://github.com/MozillaSecurity/orion/wiki) 页面获取常见问题解答和 Docker 备忘录。
### 构建说明与开发
#### 使用方法
您可以在本地构建、测试和推送,这非常适合本地测试。以下命令是通用的,
并且每个服务可能在其 README.md 中定义了更具体的说明。
```
TAG=dev
docker build -t mozillasecurity/service:$TAG ../.. -f Dockerfile
```
... 或者测试最新的构建版本:
```
TAG=latest
```
在本地运行 fuzzer:
```
eval $(TASKCLUSTER_ROOT_URL=https://community-tc.services.mozilla.com taskcluster signin)
LOGS="logs-$(date +%Y%m%d%H%M%S)"
mkdir -p "$LOGS"
docker run --rm -e TASKCLUSTER_ROOT_URL -e TASKCLUSTER_CLIENT_ID -e TASKCLUSTER_ACCESS_TOKEN -it -v "$(pwd)/$LOGS":/logs mozillasecurity/service:$TAG 2>&1 | tee "$LOGS/live.log"
```
... 使用 `-e VAR=value` 添加 fuzzer 需要的任何环境变量。一些 fuzzer 镜像会修改内核 sysctls,并且需要使用 `docker run --privileged`。
#### 测试
在 Taskcluster 中启动构建任务之前,每个 shell 脚本和 Dockerfile 都会经历代码检查和测试过程,这可能会中止后续的每个任务。为确保您的 Dockerfile 能够通过检查,我们建议您在提交前安装 [`pre-commit`](https://pre-commit.com/) 钩子(`pre-commit install`),并在推送提交之前运行服务文件夹中定义的任何测试。
标签:Cutter, DevSecOps, Docker, Docker Registry, Fuzzing, libFuzzer, NIDS, Orion, Pipeline, pocsuite3, Taskcluster, 上游代理, 单仓多项目, 安全防御评估, 容器化, 开源框架, 持续交付, 持续集成, 特权提升, 网络安全, 网络安全研究, 自动化构建, 自动化部署, 请求拦截, 软件测试, 逆向工具, 隐私保护