Table of contents
ソフトウェアの依存関係の管理
アクティビティ ID: GGI-A-23 (EN)
説明
オープンソースの大きな利点 (コード共有、再利用) には、自分のコードベースと同様の大きな責任が伴います。コードベースの確実な依存関係管理は、信頼性が高く安全なソフトウェアプロジェクトを成功させる鍵となります。
その結果、組織は自社のコードベースに対して既知の依存関係のリスト (ソフトウェア部品表、SBOM)を確立して維持し、特定されたプロバイダー (OSS プロジェクトまたは企業) の進化を監視する必要があります。
依存関係識別プログラムは、コードベース内で実際に使用されている依存関係を探します。その結果、組織はコードベースの既知の依存関係のリストを確立して維持し、特定されたプロバイダーの進化を監視する必要があります。
既知の依存関係のリストを確立して維持することは、次のことを可能にするものであり、前提条件でもあります。
- 知的財産とライセンスのチェック: 一部のライセンスは、依存関係であっても混在させることはできません。関連する法的リスクを評価するには、依存関係を知っておく必要があります。
- 脆弱性管理: ソフトウェア全体の脆弱性は、最も弱い部分と同じになります。Heartbleed の欠陥 (MULTI)の例を参照してください。関連するセキュリティリスクを評価するには、依存関係を知っておく必要があります。
- ライフサイクルと持続可能性: 依存関係プロジェクトのアクティブなコミュニティは、バグ修正、最適化、および新機能の明るい兆候です。
- 使用する依存関係を「成熟度」基準に従って慎重に選択する - 目標は、安全で、健全でよく管理されたコードベースと、外部からの貢献などを受け入れる活発で反応的なコミュニティを備えたオープンソースコンポーネントを使用することです。
クローズドソースの大手企業から離れるとサポートが得られなくなるのではないかと心配する人もいるかもしれません。これを回避するには、バージョン、ライセンス、サポート終了情報などの詳細を含む依存関係のデータベースを保持し、サポート (または廃止) の調査を実施して、OSS ソフトウェアを開発している組織に製品の将来のロードマップについて尋ねることをお勧めします。ほとんどの OSS 企業は複数年のサポート契約を提案しており、喜んで提供します。同様に、多くの OSS コミュニティがそのようなアンケートに回答する可能性があります。
機会評価
依存関係を特定して追跡することは、コードの再利用に関連するリスクを軽減するために必要な手順です。さらに、ソフトウェアの依存関係を管理するためのツールとプロセスを実装することは、品質、コンプライアンス、およびセキュリティを適切に管理するための前提条件です。
次の質問を検討してください。
- ソフトウェアが破損、攻撃、または訴訟された場合の会社のリスク (コスト、評判、規制違反など) は何ですか?
- コードベースは、人、組織、またはビジネスにとって重要と見なされていますか?
- アプリケーションが依存するコンポーネントのリポジトリが変更された場合はどうなりますか?
考慮すべきさまざまな手順は次のとおりです。
- ソフトウェア構成分析 (SCA) プロセスを実装し、自動化のための専用ツールを使用します。必要に応じて役立つリソース (ホワイトペーパー、ツール、エクスペリエンスレポート) がいくつかあります。
- 強固な SBOM の規律を構築および維持し、適切なツールとプロセスを使用します。間接的な依存関係 (依存関係の依存関係) も重要です。一部のツールは、再帰的戦略を使用して依存関係の完全なチェーンを特定します (ORT、Eclipse Dash など)。古いライブラリを特定し、アクティビティが少ないプロジェクトやセキュリティ報告メカニズムのないプロジェクトを監視します。
進捗評価
以下の検証ポイントは、このアクティビティの進捗状況を示しています。
- 社内で開発されたすべてのコードで依存関係が識別されます。
- 社内で実行されるすべての外部コードで依存関係が識別されます。
- 簡単にセットアップできるソフトウェア構成分析または依存関係識別手順が、継続的インテグレーションプロセスに追加できるプロジェクトで利用できます。
- 依存関係分析ツールが使用されます。
ツール
- OWASP Dependency-Check (EN): Dependency-Check は、プロジェクトの依存関係に含まれる公開された脆弱性を検出しようとするソフトウェア構成分析 (SCA) ツールです。
- OWASP Dependency-Track (EN): Dependency-Track は、CycloneDX 標準に基づくソフトウェア構成分析 (SCA) プラットフォームです。
- OSS Review Toolkit (EN): オープンソースソフトウェアの依存関係のレビューを支援するツールスイート。
- Fossa (EN): 高速でポータブルかつ信頼性の高い依存関係分析。ライセンスと脆弱性のスキャンをサポートします。言語に依存せず、20 を超えるビルドシステムと統合できます。
- Software 360 (EN)
- Eclipse Dash license tool (EN): 依存関係のリストを取得し、ClearlyDefined (EN) にライセンスの確認を要求します。
- The FOSSology Project (EN): FOSSology は、オープンソースライセンスのコンプライアンスを推進することを使命とするオープンソースプロジェクトです。
推奨事項
- 法的リスクを軽減するために、依存関係と IP 要件に関する定期的な監査を実施します。
- 理想的には、問題 (新しい依存関係、ライセンスの非互換性) が特定され、できるだけ早く修正されるように、継続的統合プロセスに依存関係管理を統合します。
- 依存関係に関連する脆弱性を追跡を継続し、ユーザーと開発者に常に情報を提供します。
- 間違ったライセンスに伴うリスクについて人々に知らせます。
- プロジェクトがコードベースでライセンスチェックを設定するための簡単なソリューションを提案します。
- その重要性を伝え、プロジェクトの CI システムに追加できるように支援します。
- 依存関係関連のリスクに対して目に見える KPI を設定します。
リソース
- 既存の OSS ライセンスされた OSS ライセンスコンプライアンスツール (EN) グループ ページ。
- フリーおよびオープンソースソフトウェアライセンスコンプライアンス: ソフトウェア構成分析ツール (EN)、Philippe Ombredanne、nexB Inc. 著。
- ソフトウェア持続可能性成熟度モデル (EN)
- CHAOSS (EN): コミュニティヘルス分析オープンソースソフトウェア
次のアクティビティの提案
- GGI-A-20 - オープンソースのエンタープライズソフトウェア (EN) まだ完了していない場合は、一部の製品のオープンソースソーシングを検討することもできます。
- GGI-A-21 - 法的コンプライアンスの管理 (EN) 知的財産とライセンスの非互換性を追跡できるようにするには、オープンソースソフトウェア内のすべての依存関係を特定する必要があります。
- GGI-A-22 - ソフトウェアの脆弱性の管理 (EN) コード資産の脆弱性を追跡できるようにするには、オープンソースソフトウェア内のすべての依存関係を特定する必要があります。