今回で第9版となる2024年の「オープンソース・セキュリティ&リスク分析」(OSSRA) レポートでは、商用ソフトウェアにおけるオープンソースのセキュリティ、コンプライアンス、ライセンス、およびコード品質リスクの現状を詳しく調査しています。 このレポートは、合併・買収(M&A)取引中のソフトウェア・リスクを特定することを主な目的として、2023年に17の業界で1,067の商用コードベースから匿名化された結果をシノプシスBlack Duck® 監査サービスチームが分析したデータを使用しています。レポートに含まれる業界には、自動車、ビッグデータ、サイバーセキュリティ、エンタープライズ ソフトウェア、金融サービス、ヘルスケア、IoT、製造、モバイルアプリが含まれます。
OSSRAレポートの調査結果が示すように、オープンソースのコンポーネントとライブラリは、あらゆる業界のほぼすべてのアプリケーションの骨組みを形成しています。 コードベース(アプリケーションまたはサービスを構成するコードと関連ライブラリ)全体の96%にオープンソースが含まれていました。また、コードベースの全コードの77%はオープンソース由来のものです。スキャンされたすべての業界のコードベースにはオープンソースが含まれており、そのほとんどで99%~100%の割合でした。
オープンソース・コンポーネントを活用することによって得られる、市場投入までの時間の短縮、コストの削減などの開発上の利点を考慮すると、企業がソフトウェア開発プロセスの一部としてオープンソース・コンポーネントに大きく依存しているのも不思議ではありません。しかし、監査チームが特定のアプリケーション内に多数の個別のオープンソース・コンポーネントを発見したことは、「それをすべて追跡する必要がある」という課題を再認識させられるものでした。
OSSRAレポートでは、今年の特定のアプリケーションのオープンソース・コンポーネントの平均数は526であったと指摘しています。これは、自動化されたセキュリティ・テストが絶対に必要だとは言えないとしても、その重要性を示す実際的な例です。手動テストは少数のコンポーネントであれば実行可能かもしれませんが、大規模なソフトウェアでは事実上不可能になります。また、ソフトウェア・コンポジション解析(SCA)などの自動化されたソリューションを使用する必要があります。手動テストとは異なり、自動化セキュリティ・テストは迅速かつ一貫して実行できるため、開発者はデリバリ・スケジュールや生産性に影響を与えることなく、開発プロセスの早い段階で問題を特定できます。
コードベースに発見された脆弱性とライセンス・コンプライアンスの問題は、オープンソース自体とほぼ同じくらい蔓延していました。半数以上(53%)にライセンスの競合が含まれ、リスク評価(933)を含むコードベースの84%には、少なくとも1つの既知のオープンソース脆弱性が含まれており、リスク評価されたコードベースの74%には、高リスクの脆弱性が含まれており、昨年のOSSRAレポートで明らかになった、コードベースの48%のみに高リスクの脆弱性が含まれている状態から大幅に増加しています。
増加した理由として考えられることの1つは、景気低迷とそれに伴う人員削減により、脆弱性を特定してパッチを適用するために利用できる人員が制限されたのではないかということです。さらに、コードベースのほぼすべて(91%)で、コンポーネントの最新バージョンよりも10バージョン以上古いコンポーネントが含まれていることが判明しました。この数字から明らかなのは、オープンソース利用者の大多数が使用するコンポーネントを更新していないということ、そして、必然的にリスクが高まるということです。
OSSRAレポートが示す数字は、開発チームがオープンソース管理を改善し、オープンソース・コンポーネントを最新の状態に保つ必要があることを明確に示しています。オープンソースのより脆弱な古いバージョンを使用すると、悲惨な結果が生じる可能性があります。たとえば、2024年のOSSRAレポートにリストされている上位10件の脆弱性の2番目は、jQueryのバージョン1.2~3.5.0 のクロスサイト・スクリプティングの脆弱性です。 この脆弱性に対して、jQuery 3.5.0 でパッチが提供されましたが、スキャンされたコードベースの3分の1で、この問題に対して脆弱な jQueryのバージョンを依然として使用していました。この脆弱性が悪用されると、悪意のあるデータがシステムに侵入するために使用されたり、パスワードや信用情報などの機密データが漏洩したりする可能性があります。
jQueryは本質的に安全ではありません。それでも、ユーザー、開発者、メンテナーからなる大規模なコミュニティによって、よく管理されたオープンソース・ライブラリです。しかし、OSSRAレポートのデータによれば、レポートにリストされているすべてのjQueryの脆弱性には利用可能なパッチがあるにも関わらず、jQueryは最も脆弱性がある可能性が高いコンポーネントです。jQueryのユーザーだけでなく、すべてのオープンソースのユーザーにとって、古いバージョンのソフトウェアに関連する潜在的なセキュリティリスクを認識し、それらのリスク軽減措置を講じることは非常に重要です。
ほとんどのメンテナー(オープンソース・プロジェクトを牽引するコントリビュータ)は、自分が関わっているプロジェクトを最新の状態に保つことに熱心です。オープンソースの利用者にも同様の勤勉さを奨励する必要があります。オープンソースの利用者は、使用中のバージョンを常に認識し、更新の定期的なリズムを確立し、メンテナーとコントリビュータの健全なエコシステムを持つプロジェクトからのみダウンロードするなど、ソフトウェアの衛生管理を実践する必要があります。
脆弱性を含むコードベースの全体的な割合は前年と同じでしたが、高リスクの脆弱性を含むコードベースの割合が54%増加という驚異的な結果を示しました。
組織がソフトウェアを開発しているか使用しているかにかかわらず、2024年のOSSRAレポートは、ソフトウェアにオープンソース・コンポーネントが含まれていることはほぼ確実であることを示しています。これらのコンポーネントが何であるか、セキュリティやライセンスのリスクを引き起こすかどうかを正確に知っているでしょうか。そのためには、コード内のオープンソースの可視化を優先する必要があります。まだ作成していない場合は、最初のステップとして、バージョン、ライセンス、出所に関する情報など、コードに含まれる内容の詳細を示すソフトウェア部品表(SBOM)を作成して維持しましょう。
インベントリを取得し、特に攻撃者のターゲットになることが多い人気のオープンソース・コンポーネントに関しては、オープンソース・コンポーネントを最新の状態に保ちます。オープンソース・コンポーネントを常に最新の状態に保つことは、チームが開発するコードと同じ優先順位で扱う必要があります。特に頻繁にメンテナの活動が行われる人気のあるプロジェクトのオープンソース・ライブラリを使用している場合は、定期的なアップグレードの頻度上げるようにしてください。
そして、常に最新情報を入手してください。SBOM内のオープンソース・コンポーネントに影響を与える問題についての実用的なアドバイスや詳細を提供するニュースフィードや定期的に発行されるアドバイザリーを探して購読しましょう。スプレッドシートを使用してオープンソースを管理するのではなく、自動化されたSCAツールを使用し、開発者がコードの作成にエネルギーを集中できるようにします。