Table of contents
ソフトウェアの脆弱性管理
アクティビティ ID: GGI-A-22 (EN)
説明
コードの安全性は、最も安全性の低い部分と同程度です。よく知られた過去の、あるいは最近の事例 (heartbleed1、equifax2、Sunburst on SolarWinds3、Log4Shell4 など) は、組織が直接開発していない部分のコードの脆弱性をチェックすることの重要性を示しています。脆弱性が露出した場合の影響は、データ漏洩 (評判に多大な影響) からランサムウェア攻撃、ビジネスを脅かすサービスの利用不可まで多岐にわたります。また、規制もソフトウェアサプライチェーンのサイバーセキュリティに関する事業体の役割と責任を強制することができます (EU CRA5、US EO 140286)。
オープンソースソフトウェアは、主に次の理由から、プロプライエタリソフトウェアよりも脆弱性管理が優れていることが知られています。
- オープンなコードとプロセスの問題を見つけて修正しようとする目が増えています。
- オープンソースプロジェクトは脆弱性を修正し、パッチと新しいバージョンをはるかに迅速にリリースします。
たとえば、プロプライエタリ ソフトウェアに関する WhiteSource の調査 (EN) では、オープンソースコンポーネントで見つかった脆弱性の 95% は、分析時点ですでに修正プログラムがリリースされていました。したがって、問題はコードベースとその依存関係の両方の脆弱性をより適切に管理することです。それがクローズドソースかオープンソースかは関係ありません。
これらのリスクを軽減するには、ソフトウェア資産の評価プログラムと、定期的に実行される脆弱性チェックプロセスを設定する必要があります。影響を受けるチームに警告し、既知の脆弱性を管理し、ソフトウェア依存関係からの脅威を防ぐツールを実装します。
機会評価
ソフトウェアを使用する企業は、次の脆弱性に注意する必要があります。
- インフラストラクチャ (クラウドインフラストラクチャ、ネットワークインフラストラクチャ、データストアなど)
- ビジネスアプリケーション (HR、CRM ツール、社内および顧客関連のデータ管理)
- 社内のコード (会社の Web サイト、社内開発プロジェクトなど)
- すべての直接的および間接的なソフトウェアおよびサービスの依存関係
脆弱性の ROI は、何か悪いことが起きるまでほとんどわかりません。脆弱性の真のコストを見積もるには、大規模なデータ侵害やサービスが利用できなくなった場合の影響を考慮する必要があります。
同様に、社内のセキュリティ関連の問題における秘密主義や隠蔽文化は、どんなことがあっても避けなければなりません。代わりに、脆弱性の状態に関する情報を共有して議論し、開発者から経営幹部まで、適切な人々から最適な回答を得る必要があります。
ソフトウェアの脆弱性を慎重に管理してサイバー攻撃を防ぐことの利点は多岐にわたります。
- 評判リスクの回避
- 悪用による損失の回避 (DDoS、ランサムウェア、攻撃後に代替 IT システムを再構築する時間)
- データ保護とサイバーセキュリティの規制の遵守
OSS ソフトウェアの脆弱性の管理は、組織内のシステムとサービスのセキュリティにグローバルに対応する、より大規模なサイバーセキュリティプロセスの一部にすぎません。
進捗評価
脆弱性を監視する専任の担当者またはチームと、開発者が頼りにできる使いやすいプロセスが必要です。脆弱性評価は継続的インテグレーションプロセスの標準的な部分であり、担当者は専用のダッシュボードで現在のリスク状態を監視できます。
次の検証ポイントは、このアクティビティの進捗状況を示しています:
- 社内のすべてのソフトウェアとサービスが既知の脆弱性について評価および監視されている場合、アクティビティはカバーされます。
- 日常の開発ルーチンで問題が発生するのを防ぐために、専用のツールとプロセスがソフトウェア生産チェーンに実装されている場合、アクティビティはカバーされます。
- 担当者またはチームが、CVE/脆弱性リスクの露出に対する評価を担当しています。
- 担当者またはチームが、関係者 (SysOps、DevOps、開発者など) に CVE/脆弱性をディスパッチする責任を負っています。
ツール
- GitHub ツール
- GitHub は、プラットフォームでホストされているコードを保護するためのガイドラインとツールを提供しています。詳細については、GitHub Docs (EN)を参照してください。
- GitHub は、依存関係の脆弱性を自動的に特定する Dependabot (EN) を提供しています。
- Eclipse Steady (EN) は、Java および Python プロジェクトの脆弱性を分析し、開発者が脆弱性を軽減するのに役立つ無料のオープンソースツールです。
- OWASP dependency-check (EN): オープンソースの脆弱性スキャナー。
- OSS Review Toolkit (EN): 設定された脆弱性データ サービスから、使用されている依存関係のセキュリティアドバイザリを収集できるオープンソースオーケストレーター。
リソース
- MITRE の CVE の脆弱性データベース (EN) 。NIST の NVD のセキュリティデータベース (EN)、および CVE Details (EN) などのサテライトリソースも参照してください。
- Google の新しい取り組みであるオープンソースの脆弱性 (EN)も確認してください。
- OWASP ワーキンググループは、商用およびオープンソースの世界の両方から脆弱性スキャナーのリストを Web サイト (EN)で公開しています。
- J. Williams および A. Dabirsiaghi。安全でないライブラリの残念な現実、2012 年。
- オープンソース依存関係の脆弱性の検出、評価、および軽減 (EN)、Serena Elisa Ponta、Henrik Plate、Antonino Sabetta、Empirical Software Engineering の第 25 巻、3175 ~ 3215 ページ (2020 年)。
- オープンソースソフトウェアの脆弱性に対する修正に関する手動でキュレートされたデータセット (EN)、Serena E. Ponta、Henrik Plate、Antonino Sabetta、Michele Bezzi、Cédric Dangremont。また、前述のデータセットを実装するためのツールキット (EN)も開発中です。
次のアクティビティの提案
- GGI-A-24 - 主要な指標の管理 (EN) 特定された脆弱性を可視化します。これにより、人々はソフトウェアがどれだけ安全であるかを認識し、適切な依存関係を選択することの重要性を実証できます。