
Minder 是一个开源平台,帮助开发团队和开源社区构建更安全的软件,并向他人证明所构建的内容是安全的。Minder 通过提供一组检查策略来帮助项目所有者主动管理其安全态势,从而最小化软件供应链中的风险,并向下游消费者证明其安全实践。
Minder 允许用户注册仓库并定义策略,以确保仓库和工件配置一致且安全。策略可以设置为仅告警或自动修复。Minder 提供了一组预定义的规则,也可以配置为应用自定义规则。
Minder 可以部署为 Helm chart,并提供一个 CLI 工具 minder。Custcodian 还提供了一个免费使用的托管版 Minder。Minder 被设计为可扩展的,允许用户集成其现有的工具和流程。
Custcodian 在 api.custcodian.dev 提供了免费使用的 Minder 公共实例。这是自 0.0.89 版本起使用 minder CLI 时的默认实例。该实例对公共仓库免费使用;对于私有仓库,使用此云托管实例可能需要额外付费。
使用 Minder 上手不到一分钟,只需以下几步:
minder quickstart 创建你的第一个策略仅需几秒钟,你将注册仓库并启用所有仓库的密钥扫描保护!🤯
选择你喜欢的方式安装 minder:
确保已安装 Homebrew。
brew install minder
确保已安装 Winget。
winget install mindersec.minder
从 minder/releases 下载最新版本。
按照从源码构建指南从源码构建 minder 和 minder-server。
要使用 Minder 的公共实例(api.custcodian.dev)与 minder 配合,请运行:
minder auth login --grpc-host api.custcodian.dev
(此 API 主机自 0.0.89 版本起为默认值。)完成后,你应该会看到 Minder 服务器设置为 api.custcodian.dev。
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
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
确保当前目录中存在 config.yaml 文件,以便 minder 可以使用它。
针对你的 Minder 本地实例(localhost:8090)运行 minder:
minder auth login
完成后,你应该会看到 Minder 服务器设置为 localhost:8090。
默认情况下,如果配置文件不存在,minder CLI 将指向 Custcodian 云环境,但创建用于运行服务器的 config.yaml 将使 CLI 指向你的本地开发环境。如果你明确想使用其他实例,可以设置 MINDER_CONFIG 环境变量指向特定配置。我们在 config 目录中检查了用于本地开发和 Custcodian 云环境的配置。
你可以在开发者指南中找到有关开发过程的更详细信息。
我们欢迎对 Minder 的贡献。请参阅我们的贡献指南了解更多信息。
Minder 项目遵循软件供应链安全与透明的最佳实践。
所有发布的资产:
Minder 采用 Apache 2.0 许可证。