carabiner-dev/ampel
GitHub: carabiner-dev/ampel
轻量级供应链策略引擎,通过验证签名证明来确保软件来源、工具和构建环境的可信度。
Stars: 39 | Forks: 8
# 🔴🟡🟢 AMPEL
### 令人惊叹的多用途策略引擎 (and L)

Ampel 是一个轻量级的供应链策略引擎,旨在嵌入到软件开发生命周期 (SDLC) 中,通过验证已签名证明中捕获的不可伪造元数据,确保源代码、工具和构建环境是可信的。

## 证明元数据
Ampel 使用 [in-toto](https://in-toto.io/) 格式的证明,并对 sigstore bundles 提供原生验证支持。签名方案是可插拔的,这意味着可以添加其他签名验证机制。
作为供应链安全工具,Ampel 可以使用 [SLSA](https://slsa.dev) 等通用格式来检查软件来源,也可以利用 SBOM 来对依赖数据进行限制,但策略也可以针对 JSON 中的任何自定义数据编写。
该策略引擎还支持 **transformers**,它可以读取并验证证明,然后将其转换为其他格式,从而简化策略编写。
[Diagram]
例如,通过加载漏洞报告转换器,Ampel 可以将常见漏洞扫描器的输出转换为通用格式(如 OSV),允许您编写单一策略来验证任何扫描器的发现结果。
## 安装
待定
## Ampel 生态系统
Ampel 是不断壮大的工具生态系统的一部分,这些工具让软件开发人员和安全工程师能够强化他们的 SDLC 流程。Ampel 更成熟的兄弟项目包括:
- [bnd](https://github.com/carabiner-dev/bnd):一个用于证明、签名和验证数据的工具。它还具有处理证明和 sigstore bundles 的功能。
- [snappy](https://github.com/carabiner-dev/snappy):对 API 进行快照以证明其状态。
- [unpack](https://github.com/carabiner-dev/unpack):具有 SBOM 可视化和生成功能的依赖提取器。
## 策略
Ampel 采用策略即代码的模型。策略框架可以用 **JSON** 或 **HJSON** 格式编写(推荐使用 HJSON,因为它支持注释和宽松语法,可读性更好)。评估代码在支持的运行时中编写。目前 Ampel 附带 CEL (Common Expression Language) 运行时,更多运行时已在路线图中。
### 策略结构
Ampel 策略的结构在其专属文档中有详细描述。在较高层面上,一个策略由以下部分组成:
- Metadata
- Contextual Info
- Attestation Spec
- Identity Definition
- Tenets (一个或多个)
### Tenet
策略的 _tenets_(我们要坚持的那些原则)是策略的核心。每个 tenet 代表 Ampel 将根据可用证据执行的检查。
Tenet 结构包含将执行的评估代码,以检查 tenet 是否成立。
策略的 tenets 可以在两种模式下进行评估:
- `AND`:当所有 tenets 都为真时,策略评估结果为 PASS。
- `OR`:如果至少有一个 tenet 评估为真,策略将 `PASS`。这在有多种检查方式时很有用。
可以将 tenets 视为向已证明数据提出的问题:
- 此构件是否由我的 GitHub 帐户构建?
- 我的漏洞报告是否包含 HIGH CVE?
- 此仓库是否启用了 MFA?
- 此项目是否在批准的 OSI 许可证下授权?
- ...以及更多。
## 链接到合规控制
策略可以链接到安全框架控制。在根据安全框架评估构件的合规状态时,Ampel 可以将策略链接到 OSCAL 目录和配置文件中定义的控制和检查。
## 结果与结果证明
Ampel 可以报告策略状态,或者在策略评估为 `FAIL` 时阻塞流程。但评估结果包含丰富的元数据和人性化的消息,这使它们适合在各种情况下显示,例如报告、网页、CI/CD 系统等。
Ampel 的一个强大功能是评估结果也可以被证明。这意味着结果可以用作进一步策略的输入证明,使得在经过一次检查后,在下游检查复杂流程变得简单。
### 策略集
多个策略可以在一个 `PolicySet` 中一起指定。这是一种便捷的方法,可以将彼此相关的策略维护在单个文件中,以便在评估时将其提供给引擎。在 PolicySet 中关联在一起的策略的结果也可以在 ResultsSet 中一起报告。
## 版权
Ampel 由 Carabiner Systems, Inc. 根据 Apache 2.0 许可证发布。如果您发现问题,请随时提交补丁或开启 issue。我们始终欢迎反馈!
标签:DevSecOps, DNS 反向解析, DNS 解析, EVTX分析, FTP漏洞扫描, Google Gemini, GPT, Homebrew安装, in-toto, JSON策略, OSV, SBOM, SDLC加固, Sigstore, SLSA, Vercel, 上游代理, 不可伪造元数据, 代码签名, 依赖安全, 元数据认证, 安全合规, 安全编排, 文档安全, 日志审计, 构建验证, 漏洞管理, 硬件无关, 策略即代码, 策略引擎, 网络代理, 网络安全挑战, 聊天机器人安全, 跌倒检测, 软件开发工具包, 软件开发生命周期, 软件物料清单