MozillaSecurity/orion

GitHub: MozillaSecurity/orion

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

Stars: 49 | Forks: 13

Orion logo

Task Status Matrix

用于在单个仓库中将多个 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, 上游代理, 单仓多项目, 安全防御评估, 容器化, 开源框架, 持续交付, 持续集成, 特权提升, 网络安全, 网络安全研究, 自动化构建, 自动化部署, 请求拦截, 软件测试, 逆向工具, 隐私保护