シノプシス ソフトウェア・インテグリティ・グループはブラック・ダックになりました 詳細はこちら

close search bar

申し訳ありませんが、この言語ではまだご利用いただけません

close language selection

2024 OSSRA レポート:オープンソース・コンポーネントの古いコードのリスク

Fred Bals

Apr 16, 2024 / 1 min read

オープンソース内のゾンビコードに気を付ける

2024 年のオープンソース·セキュリティ&リスク分析(OSSRA)レポートでは、オープンソース・ソフトウェア利用者の保守の実践を改善することが重要であることを強調し、多くの組織が、使用しているオープンソース・コンポーネントを最新の状態に保つのに大幅な遅れが生じていることによって引き起こされるセキュリティ上の懸念をまとめています。このレポートは、ほとんどの商用コードベースに古いコンポーネントが含まれており、その91%は利用可能な最新バージョンより10バージョン以上前のコンポーネントが含まれているという厳しい状況を明らかにしています。さらに、コードベースの49%には、過去24か月以内に開発活動がなかったコンポーネントが含まれていました。


ゾンビコードのリスクを低減するには保守が重要

ゾンビコード(あるいはデッドコード)とは、アプリケーションの機能に使用されなくなったか必要ではなくなったにも関わらず、コードベース内に残されているコードを指します。ゾンビ映画と同じように、ゾンビコードにはさまざまな種類があります(速いゾンビと遅いゾンビ、またはドラマ「THE LAST OF US」の菌類のゾンビと従来の「ナイト・オブ・ザ・リビング・デッド」のゾンビを思い出してください)。架空のアンデッドと同様に、ゾンビコードは予期せぬときに出現し、予期せぬ複雑な事態を引き起こす可能性があります。 オープンソースの利用に関して言えば、ゾンビコードの最も重大な危険は、悪用されやすくなった古いコードです。

組織がソフトウェアを開発しているか使用しているかにかかわらず、ほとんどのソフトウェアにはオープンソースが含まれています。2024年のOSSRA レポートによると、監査されたコードの96%にオープンソースが含まれていました。また、一部の業界(航空宇宙や通信を含む)では、コードベースの100%にオープンソースが含まれていました。また、多くの分野で、リスク評価されたコードベースのかなりの割合に高リスクの脆弱性が含まれており、その中には製造業では87%、IoTでは50%に含まれていました。

オープンソース・コンポーネントを更新しないことで、利用者がアプリケーションをこれらの脆弱性を悪用する可能性のある潜在的な攻撃にさらし、データ侵害やその他のセキュリティ問題につながる可能性があります。

リスク評価されたコードベースの91%が、現在のバージョンより大幅に古いオープンソースを使用していることが判明しており、OSSRA レポートでは、特に人気のあるオープンソース・コンポーネントに関しては、利用者自身がコードを最新の状態に保つため、より適切に取り組む必要があることを明らかにしていますが、これは、オープンソースの、古い脆弱なバージョンを使用すると、悲惨な結果が生じる可能性があるからです。たとえば、2024 年の OSSRA レポートで報告された上位10件の脆弱性のうち、第2位は、信頼できないコードの実行に使用される可能性のあるクロスサイト・スクリプティング(XSS)の脆弱性です。この問題は4年ほど前にjQuery 3.5.0でパッチが提供されたにも関わらず、OSSRA レポートのデータが示すように、セキュリティリスクをスキャンしたコードベースの3分の1では、脆弱性が悪用される可能性のあるjQuery の古いバージョンを使用していることが判明しました。

セキュリティの問題以外にも、古いオープンソースは全体的な技術的負債の原因となっており、バグやパフォーマンスの改善が見逃され、最終的には対処する必要がある互換性の問題も発生します。 時間の経過とともに、この技術的負債によりアプリケーションの保守がより困難になり、コストがかかるようになり、長期的な実行可能性や有効性が妨げられる可能性があります。 ゾンビ オープン ソースは、古いコンポーネントや非アクティブなコンポーネントのライセンス条項に関する説明やサポートを得ることが難しいため、ライセンス コンプライアンスに影響を与える可能性さえあります。

オープンソースの保守の実践を改善する3つのステップ

OSSRAレポートの調査結果に基づいて、オープンソースの保守の実践を改善し、ゾンビコードに関連するリスクを軽減するための措置を講じることができます。

  • 自動化ツールの実装:ソフトウェア・コンポジション解析(SCA)などの自動化ツールを使用することで、古いコンポーネントや脆弱性の特定が容易になります。OSSRAレポートが指摘しているように、特定のアプリケーションには平均して500を超えるオープンソース・コンポーネントが含まれており、これは自動化セキュリティ・テスト(AST)の重要性を示すのに良い例です。大規模なソフトウェアに対する手動テストは、効率が悪く、網羅度の観点からも自動化されたテストが必要になります。手動プロセスとは異なり、自動化されたオープンソースのテストと管理は速やかに一貫して実行できることから、開発者はデリバリー・スケジュールや生産性に影響を与えることなく、開発プロセスの早い段階で問題を特定することが可能になります。
  • 定期的な更新サイクルの確立:オープンソース・コンポーネントを更新するための定期的な頻度を確立することで、潜在的に脆弱な、古いゾンビコードが残存する可能性を低減することができます。特に頻繁にメンテナによる活動が行われている、人気のあるプロジェクトのオープンソース・ライブラリを使用している場合は、定期的な更新の頻度を設定することをお勧めします。
  • ソフトウェア部品表 (SBOM) を作成、維持する:オープンソース・コンポーネントの正確で最新のSBOMは、コードの品質の高さ、コンプライアンス、安全性を確保するために重要です。包括的なSBOMには、アプリケーション内のすべてのオープンソース・コンポーネントと、それらのコンポーネントのライセンス、バージョン、パッチのステータスがリストされます。SBOMを自分で作成するためのリソースがない場合、またはSBOMをすぐに作成する必要がある場合、シノプシスのSBOMサービスはソフトウェアのセキュリティ監査を実行しSBOMを生成できます。これは、監査済みのSBOMを生成、提供したい組織にとっては有用ですが、顧客または規制のコンプライアンスのためにベースラインSBOMが必要です。

ドラマや映画に登場するゾンビと同じように、たったひとつの、ゾンビのオープンソース・コンポーネントが意図しない脆弱性などのリスク源となり、大混乱を引き起こす可能性があることを忘れないでください。2024年のOSSRAレポートが示すように、開発、運用しているソフトウェアにオープンソースを導入している組織(文字通りすべての組織)は、ソフトウェア・サプライチェーン・リスク管理の一環として、オープンソースのメンテナンス・リスクを積極的に管理する必要があります。 時代遅れのオープンソース・コンポーネントをソフトウェアから排除することは、すべてのオープンソースの利用者の最優先事項である必要があります。最初にやるべき事は、オープンソースの保守の実践状況を検証して、改善が必要かどうかを確認することです。

Continue Reading

Explore Topics