
minder v0.2.1
ソフトウェアサプライチェーンセキュリティプラットフォーム

|
|
|
| | 
インストール | ドキュメント | リリース
Minderとは?
Minderは、開発チームやオープンソースコミュニティがよりセキュアなソフトウェアを構築し、構築したものが安全であることを証明するためのオープンソースプラットフォームです。Minderは、ソフトウェアサプライチェーンに沿ったリスクを最小限に抑えるための一連のチェックとポリシーを提供し、プロジェクトオーナーがセキュリティ体制を積極的に管理し、下流の消費者に自らのセキュリティ慣行を証明することを支援します。
Minderを使用すると、リポジトリを登録し、ポリシーを定義して、リポジトリとアーティファクトが一貫して安全に構成されるようにすることができます。ポリシーはアラートのみ、または自動修復に設定できます。Minderはあらかじめ定義されたルールセットを提供し、カスタムルールを適用するように設定することもできます。
MinderはHelmチャートとしてデプロイでき、CLIツールminderを提供します。CustcodianはMinderの無料で使用できるホスト型バージョンも提供しています。Minderは拡張可能なように設計されており、ユーザーは既存のツールやプロセスと統合できます。
特徴
- リポジトリの設定とセキュリティ: リポジトリ全体のセキュリティ設定とポリシーの設定と管理を簡素化します。
- プロアクティブなセキュリティ強制: 細かいポリシーを設定して、アラートのみまたは自動修復することで、ベストプラクティスのセキュリティ設定を継続的に強制します。
- アーティファクトの証明: Sigstoreオープンソースプロジェクトを使用して、パッケージが署名されているかどうかを継続的に検証し、改ざん防止を保証します。
- 依存関係管理: 開発者がより良い選択を行い、制御を強制できるようにして、依存関係のセキュリティ体制を管理します。MinderはOSVと統合されており(他のSCA APIとも統合可能)、依存関係のリスクレベルに基づいたポリシー駆動型の依存関係管理を可能にします。
パブリックインスタンス
Custcodianは、api.custcodian.devでMinderの無料のパブリックインスタンスを提供しています。これはリリース0.0.89以降、minder CLIを使用する際のデフォルトインスタンスです。このインスタンスは公開リポジトリでは無料で使用できます。非公開リポジトリの場合は、このクラウドホスト型インスタンスの使用に追加料金が発生する場合があります。
はじめに(1分未満)
Minderのセットアップは1分もかからず、以下のように簡単です。
- 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をMinderのパブリックインスタンス(api.custcodian.dev)で使用するには、次のコマンドを実行してログインします。
minder auth login --grpc-host api.custcodian.dev
(このAPIホストは0.0.89リリース以降のデフォルトです。)完了すると、Minder Serverが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がサポートする多くのルールタイプの1つにすぎません。
Minderチームが管理するすぐに使えるルールとプロファイルの完全なリストは、mindersec/minder-rules-and-profilesにあります。
まだ見つからないものがある場合、Minderは拡張可能なように設計されています。これにより、ユーザーは独自のカスタムルールタイプとプロファイルを作成し、セキュリティ体制の詳細を証明できます。
すべての設定が完了したので、Minderのパブリックインスタンスに対してminderコマンドを引き続き実行できます。登録済みリポジトリの管理、プロファイルやルールの作成など、リポジトリが一貫して安全に構成されるようにすることができます。
minderの詳細については、以下を参照してください。
minderCLIコマンド - ドキュメントminderREST APIドキュメント - ドキュメント- Minderチームが管理するルールとプロファイル - GitHub
- Minderのドキュメント - ドキュメント
ロードマップ
Minderコミュニティは、Minderの新機能と改善に積極的に取り組んでいます。
ロードマップはこちらにあります。
機能や改善のリクエストや貢献を希望される場合は、次のIssueテンプレートをご利用ください。
開発
このセクションでは、ソースから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 Serverがapi.custcodian.devに設定されていることが表示されます。
minderをローカルのminder-serverインスタンスに対して実行する場合は、--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はIAMとしてKeycloakを使用します。ログインするには、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 Serverがlocalhost:8090に設定されていることが表示されます。
デフォルトでは、設定ファイルがない場合、minder CLIはCustcodianクラウド環境を指しますが、サーバーを実行するためのconfig.yamlを作成すると、CLIはローカル開発環境を指すようになります。別のインスタンスを明示的に使用したい場合は、MINDER_CONFIG環境変数に特定の設定を指定します。configディレクトリには、ローカル開発およびCustcodianクラウド環境の設定がチェックインされています。
開発ガイドライン
開発プロセスの詳細については、開発者ガイドを参照してください。
Minder API
貢献
Minderへの貢献を歓迎します。詳細については、貢献ガイドを参照してください。
- Minderコミュニティは定期的にミーティングを行っています。ミーティングスケジュールはOpenSSFコミュニティカレンダーで確認できます。
- プロジェクト憲章とガバナンス文書は、mindersec/communityリポジトリで管理されています。
来歴(Provenance)
Minderプロジェクトは、ソフトウェアサプライチェーンのセキュリティと透明性に関するベストプラクティスに従っています。
すべてのリリース成果物は:
- SLSA Build Level 3の生成および検証可能な来歴を持っています。詳細については、SLSAウェブサイトを参照してください。
- リリース中にSigstoreプロジェクトを使用して署名および検証されています。これにより、改ざん防止が保証され、誰でも検証できます。
- SBOMアーカイブが生成され、リリースとともに公開されています。これにより、ユーザーはプロジェクトの依存関係とそのセキュリティ体制を把握できます。
ライセンス
MinderはApache 2.0ライセンスの下でライセンスされています。