V4: パッケージ管理要件

管理目標

再利用を目的としたオープンソースコンポーネントは多くの場合エコシステム固有のパッケージリポジトリに公開されます。 一元化されたリポジトリは Maven, .NET, NPM, Python など多くのビルドシステムに存在します。 さらに組織内部のリポジトリではファーストパーティコンポーネントの再利用や信頼できるサードパーティコンポーネントへのアクセスを提供するものがあります。

パッケージマネージャは多くの場合ビルドプロセス中に呼び出されます。コンポーネントバージョンを解決し、リポジトリからコンポーネントを取得します。

パッケージマネージャと一元化されたリポジトリを使用することには、ビジネス、技術、セキュリティの面で大きなメリットがありますが、攻撃者の標的となることも少なくありません。 ベストプラクティスを実施することでソフトウェアサプライチェーンの危殆化のリスクを劇的に減らすことができます。

検証要件

#

説明

L1

L2

L3

4.1

バイナリコンポーネントはパッケージリポジトリから取得している

4.2

パッケージリポジトリのコンテンツはオープンソースコンポーネントの信頼できる起点と一致している

4.3

パッケージリポジトリは強力認証を必要としている

4.4

パッケージリポジトリは多要素認証コンポーネント発行をサポートしている

4.5

パッケージリポジトリコンポーネントは多要素認証で発行されている

4.6

パッケージリポジトリはセキュリティインシデントレポートをサポートしている

4.7

パッケージリポジトリはセキュリティインシデントレポートを自動化している

4.8

パッケージリポジトリはセキュリティ問題を発行者に通知している

4.9

パッケージリポジトリはセキュリティ問題をユーザーに通知している

4.10

パッケージリポジトリはバージョン管理で特定のソースコードにコンポーネントバージョンを関連付ける検証可能な方法を提供している

4.11

パッケージリポジトリはコンポーネント更新時に監査可能性を提供している

4.12

パッケージリポジトリはパッケージを本番リポジトリに公開するためにコード署名を必要としている

4.13

パッケージマネージャはリモートリポジトリからパッケージを取得する際にパッケージの整合性を検証している

4.14

パッケージマネージャはファイルシステムからパッケージを取得する際にパッケージの整合性を検証している

4.15

パッケージリポジトリはすべての対話に TLS の使用を強制している

4.16

パッケージマネージャはリポジトリへの TLS 証明書チェーンを妥当性確認しており、妥当性確認が失敗した場合には安全に失敗している

4.17

パッケージリポジトリはコンポーネントを公開する前に静的コード解析を要求または実行しており、他の人が結果を利用できるようしている

4.18

パッケージマネージャはコンポーネントコードを実行していない

4.19

パッケージマネージャはパッケージインストールを機械読み取り可能な形式でドキュメント化している

Last updated

Was this helpful?