
minder v0.3.1
软件供应链安全平台

|
|
|
| | 
安装 | 文档 | 发布版本
Minder 是什么?
Minder 是一个开源平台,帮助开发团队和开源社区构建更安全的软件,并向他人证明所构建的内容是安全的。Minder 通过提供一组检查策略来帮助项目所有者主动管理其安全态势,从而最小化软件供应链中的风险,并向下游消费者证明其安全实践。
Minder 允许用户注册仓库并定义策略,以确保仓库和工件配置一致且安全。策略可以设置为仅告警或自动修复。Minder 提供了一组预定义的规则,也可以配置为应用自定义规则。
Minder 可以部署为 Helm chart,并提供一个 CLI 工具 minder。Custcodian 还提供了一个免费使用的托管版 Minder。Minder 被设计为可扩展的,允许用户集成其现有的工具和流程。
特性
- 仓库配置与安全: 简化跨仓库的安全设置和策略的配置与管理。
- 主动安全执行: 通过设置精细策略(仅告警或自动修复),持续执行最佳实践安全配置。
- 工件证明: 使用开源项目 Sigstore 持续验证软件包是否已签名,确保其防篡改。
- 依赖管理: 通过帮助开发者做出更好的选择并强制执行控制,管理依赖安全态势。Minder 集成了 OSV(并可与其他 SCA API 集成),以实现基于依赖风险级别的策略驱动依赖管理。
公共实例
Custcodian 在 api.custcodian.dev 提供了免费使用的 Minder 公共实例。这是自 0.0.89 版本起使用 minder CLI 时的默认实例。该实例对公共仓库免费使用;对于私有仓库,使用此云托管实例可能需要额外付费。
快速开始(< 1 分钟)
使用 Minder 上手不到一分钟,只需以下几步:
- 安装 Minder
- 登录 Minder
- 运行
minder quickstart创建你的第一个策略
仅需几秒钟,你将注册仓库并启用所有仓库的密钥扫描保护!🤯
安装
选择你喜欢的方式安装 minder:
MacOS(Homebrew)
确保已安装 Homebrew。
brew install minder
Windows(Winget)
确保已安装 Winget。
winget install mindersec.minder
下载发布版本
从 minder/releases 下载最新版本。
从源码构建
按照从源码构建指南从源码构建 minder 和 minder-server。
登录 Minder
要使用 Minder 的公共实例(api.custcodian.dev)与 minder 配合,请运行:
minder auth login --grpc-host api.custcodian.dev
(此 API 主机自 0.0.89 版本起为默认值。)完成后,你应该会看到 Minder 服务器设置为 api.custcodian.dev。
运行 Minder 快速启动
quickstart 命令将引导你创建 Minder 中的第一个策略,注册仓库,并在几秒钟内为你的仓库启用密钥扫描保护。
为此,请运行:
minder quickstart
这将提示你注册你的提供商,选择你想要的仓库,创建 secret_scanning 规则类型,并创建一个启用了所选仓库密钥扫描的策略。
要查看策略状态,请运行:
minder profile status list --profile quickstart-profile --detailed
你应该会看到整体策略状态以及每个已注册仓库的规则评估状态的详细视图。
Minder 将持续跟踪你的仓库,并使用 remediate 功能确保修复与期望状态的任何偏差,或者使用 alert 功能在需要时发出告警。
恭喜!🎉 你现在已成功创建了你的第一个策略!
下一步是什么?
你现在可以继续探索 Minder 的功能,添加或移除更多仓库,创建包含各种规则的更多策略,等等。Minder 的功能远不止密钥扫描。
secret_scanning 规则只是 Minder 支持的众多规则类型之一。
你可以在此处查看由 Minder 团队维护的现成规则和策略的完整列表 - mindersec/minder-rules-and-profiles。
如果那里没有你需要的功能,Minder 被设计为可扩展的。用户可以创建自己的自定义规则类型和策略,并确保其安全态势的具体细节得到证明。
现在你已经完成所有设置,可以继续对 Minder 的公共实例运行 minder 命令,在那里你可以管理已注册的仓库、创建策略、规则等,从而确保你的仓库配置一致且安全。
有关 minder 的更多信息,请参阅:
路线图
Minder 社区正在积极开发 Minder 的新功能和改进。
你可以在此处找到我们的路线图。
如果你希望请求或贡献功能或改进,请使用以下问题模板
开发
本节介绍如何从源码构建和运行 Minder。
从源码构建
先决条件
你需要以下工具 - Go、Docker 和 Docker Compose。
要构建和运行 minder-server,你还需要 ko。
要通过 make test 运行测试套件,你需要 gotestfmt 和 helm。
要调用 run-docker make 目标,你需要 yq。
克隆仓库
git clone [email protected]:mindersec/minder.git
构建
运行以下命令构建 minder 和 minder-server(二进制文件将位于 ./bin/ 目录):
make build
要将 minder 与 Minder 的公共实例(api.custcodian.dev)一起使用,请运行:
minder auth login --grpc-host api.custcodian.dev
完成后,你应该会看到 Minder 服务器设置为 api.custcodian.dev。
如果你想针对本地 minder-server 实例运行 minder,可以使用 --grpc-host=localhost 和 --grpc-port=8090 标志,或者按照以下步骤使用配置文件。
初始配置
为 minder 创建初始配置文件。你可以通过以下方式完成:
cp config/config.yaml.example config.yaml
为 minder-server 创建初始配置文件。你可以通过以下方式完成:
cp config/server-config.yaml.example server-config.yaml
你还需要为 minder-server 设置一个 OAuth2 应用程序。
完成后,使用适当的值更新配置文件。
请参阅相关文档了解操作方法 - 文档。
运行 minder-server
通过运行以下命令启动 minder-server 及其依赖服务(keycloak 和 postgres):
make run-docker
配置社交登录(GitHub)
minder-server 使用 Keycloak 作为 IAM。要登录,你需要设置一个 GitHub OAuth2 应用程序并配置 Keycloak 使用它。
在此处为 GitHub 创建一个 OAuth2 应用程序。选择
New OAuth App 并填写详细信息。回调 URL 应为 http://localhost:8081/realms/stacklok/broker/github/endpoint。
为你的 OAuth2 客户端创建一个新的客户端密钥。
使用你上面创建的 client_id 和 client_secret,通过运行以下命令在 Keycloak 上启用 GitHub 登录:
make KC_GITHUB_CLIENT_ID=<client_id> KC_GITHUB_CLIENT_SECRET=<client_secret> github-login
运行 minder
确保当前目录中存在 config.yaml 文件,以便 minder 可以使用它。
针对你的 Minder 本地实例(localhost:8090)运行 minder:
minder auth login
完成后,你应该会看到 Minder 服务器设置为 localhost:8090。
默认情况下,如果配置文件不存在,minder CLI 将指向 Custcodian 云环境,但创建用于运行服务器的 config.yaml 将使 CLI 指向你的本地开发环境。如果你明确想使用其他实例,可以设置 MINDER_CONFIG 环境变量指向特定配置。我们在 config 目录中检查了用于本地开发和 Custcodian 云环境的配置。
开发指南
你可以在开发者指南中找到有关开发过程的更详细信息。
Minder API
贡献
我们欢迎对 Minder 的贡献。请参阅我们的贡献指南了解更多信息。
- Minder 社区定期举行会议。你可以在 OpenSSF 社区日历上找到会议安排。
- 项目章程和治理文档维护在 mindersec/community 仓库中。
溯源
Minder 项目遵循软件供应链安全与透明的最佳实践。
所有发布的资产:
- 具有生成且可验证的 SLSA 构建级别 3 溯源。更多信息请参阅 SLSA 网站。
- 在发布期间使用 Sigstore 项目进行签名和验证。这确保了它们防篡改,任何人都可以验证。
- 随发布版本生成并发布了 SBOM 存档。这使得用户可以了解项目的依赖关系及其安全态势。
许可证
Minder 采用 Apache 2.0 许可证。