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 の古いバージョンを使用していることが判明しました。
セキュリティの問題以外にも、古いオープンソースは全体的な技術的負債の原因となっており、バグやパフォーマンスの改善が見逃され、最終的には対処する必要がある互換性の問題も発生します。 時間の経過とともに、この技術的負債によりアプリケーションの保守がより困難になり、コストがかかるようになり、長期的な実行可能性や有効性が妨げられる可能性があります。 ゾンビ オープン ソースは、古いコンポーネントや非アクティブなコンポーネントのライセンス条項に関する説明やサポートを得ることが難しいため、ライセンス コンプライアンスに影響を与える可能性さえあります。
OSSRAレポートの調査結果に基づいて、オープンソースの保守の実践を改善し、ゾンビコードに関連するリスクを軽減するための措置を講じることができます。
ドラマや映画に登場するゾンビと同じように、たったひとつの、ゾンビのオープンソース・コンポーネントが意図しない脆弱性などのリスク源となり、大混乱を引き起こす可能性があることを忘れないでください。2024年のOSSRAレポートが示すように、開発、運用しているソフトウェアにオープンソースを導入している組織(文字通りすべての組織)は、ソフトウェア・サプライチェーン・リスク管理の一環として、オープンソースのメンテナンス・リスクを積極的に管理する必要があります。 時代遅れのオープンソース・コンポーネントをソフトウェアから排除することは、すべてのオープンソースの利用者の最優先事項である必要があります。最初にやるべき事は、オープンソースの保守の実践状況を検証して、改善が必要かどうかを確認することです。