界: Environment

このセクションには、ソース コード以外のものでも、作成中の製品のセキュリティにとって重要なものがすべて含まれています。この分野が対象とする問題は、ソース コードに直接関係しないため、この分野の他の部分と分けました。

Build Misconfiguration: Dynamic Dependency Version Usage

Abstract
動的バージョンを使用してビルドの依存関係を取得すると、ビルド システムが悪意のあるバイナリに対して脆弱なままになるか、システムで予期しない動作が発生する可能性があります。
Explanation
Apache Ivy の自動依存関係管理システムを使用すると、ユーザーは、特定の依存関係を一覧表示する代わりに、動的リビジョンと呼ばれるバージョン ステータスを指定できます。攻撃者が依存関係リポジトリを侵害したり、ビルド システムをだまして攻撃者の制御下でリポジトリから依存関係をダウンロードさせたりできる場合、侵害された依存関係をサイレントにダウンロードして実行するのにビルド システムが必要とするのは、動的リビジョンの指定子だけです。セキュリティ リスクに加え、動的リビジョンは、コード品質の面でリスクの要素ももたらします。動的リビジョンは、ソフトウェアのセキュリティと安定性を、ソフトウェアが使用する依存関係を開発およびリリースするサードパーティの管理下に置きます。

ビルド時に、Ivy はリポジトリに接続し、リストされたステータスに一致する依存関係を取得しようとします。

Ivy は、次の動的リビジョンの指定子を受け入れます。

- latest.integration: 依存関係モジュールの最新リビジョンを選択します。
- latest.[any status]: 少なくとも指定されたステータスを持つ依存関係モジュールの最新リビジョンを選択します。たとえば、latest.milestone は最新バージョン (マイルストーンまたはリリース) を選択し、latest.release は最新のリリースのみを選択します。
- + で終わるリビジョン: 依存関係モジュールの最新のサブリビジョンを選択します。たとえば、依存関係がリビジョン 1.0.3、1.0.7、および 1.1.2 にある場合、1.0.+ と指定されたリビジョンは 1.0.7 を選択します。
- バージョンの範囲: < や > などの範囲の数学記号を使用して、バージョンの範囲を指定できます。

例 1: 次の設定エントリは、クローバー コンポーネントの最新リリース バージョンを取得するように Ivy に指示します。


<dependencies>
<dependency org="clover" name="clover"
rev="latest.release" conf="build->*"/>
...


リポジトリが危険にさらされると、攻撃者が動的基準を満たすバージョンをアップロードするだけで、悪意のあるバージョンの依存関係を Ivy にダウンロードさせることができます。
References
[1] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-001167, CCI-001499, CCI-001749, CCI-001812
[2] Standards Mapping - NIST Special Publication 800-53 Revision 4 CM-5 Access Restrictions for Change (P1), CM-11 User-Installed Software (P1), SC-18 Mobile Code (P2)
[3] Standards Mapping - NIST Special Publication 800-53 Revision 5 CM-5 Access Restrictions for Change, CM-11 User-Installed Software, CM-14 Signed Components, SC-18 Mobile Code
[4] Standards Mapping - OWASP API 2023 API8 Security Misconfiguration
[5] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[6] Standards Mapping - OWASP Mobile 2024 M8 Security Misconfiguration
[7] Standards Mapping - OWASP Top 10 2013 A5 Security Misconfiguration
[8] Standards Mapping - OWASP Top 10 2017 A6 Security Misconfiguration
[9] Standards Mapping - OWASP Top 10 2021 A05 Security Misconfiguration
[10] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 2.2.6
[11] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0.1 Requirement 2.2.6
[12] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[13] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[14] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[15] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[16] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[17] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[18] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[19] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[20] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[21] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[22] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[23] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[24] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[25] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
[26] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-001390 CAT II, APSC-DV-001430 CAT II, APSC-DV-001440 CAT II, APSC-DV-003300 CAT II
desc.config.java.build_misconfiguration_dynamic_dependency_version