オープンソースソフトウェアはあらゆるところに存在します。オープンソースパッケージは、モバイルアプリ、eコマースプラットフォーム、人工知能、電気自動車、ストリーミングサービスなど、あらゆるものの構築に利用されています。現在の推定では、ソフトウェアの70~90%がオープンソースを利用しています。
開発者がオープンソースを活用する企業では、イノベーションは絶えず行われ、反復作業は短期間で行われます。しかし、サードパーティ製のコード(オープンソースパッケージを含む)はセキュリティリスクをもたらす可能性があり、オープンソースパッケージが広く利用されるほど、そのパッケージ内のセキュリティ脆弱性の影響は大きくなります。オープンソースパッケージを利用する開発者や企業は、これらのパッケージに伴うリスクを真に理解し、そのリスクを軽減する方法を知る必要があります。
SnykとLinux Foundationは、オープンソース・エコシステムの現状調査に協力しました。この調査は、開発者がリスクをどのように検知し対処するか、そして組織がオープンソース・コンポーネントのテストを自動化・改善するためにどのような対策を講じる必要があるかに焦点を当てています。

オープンソースパッケージの人気が高まり(そして習慣的に依存している)にもかかわらず、多くの組織が依然としてオープンソースセキュリティに関する適切なポリシーとガバナンスを整備していないことが調査で明らかになりました。また、オープンソースパッケージの脆弱性管理方法に関する理解の不足と、組織のセキュリティポリシーに対する信頼の低さも懸念されます。実際、中規模企業から大規模企業の27%は、確立されたセキュリティポリシーを整備していません。
オープンソースにおける大きなリスクとは何でしょうか? また、企業はどのようにそれらのリスクを管理できるのでしょうか?
1. 依存関係は複雑さをもたらすことを理解する
平均的なプロジェクトには、79 の直接的な依存関係にわたる 49 の脆弱性があります。
ソフトウェアサプライチェーンが複雑化するにつれ、オープンソースのセキュリティはより大きな課題となっています。現代のアプリケーションはほぼすべて、他のコンポーネントに依存するコンポーネントで構築されており、数百ものコンポーネントと多層的な依存関係を含むサプライチェーンを形成しています。ソフトウェアサプライチェーンは、広く使用されている小規模なライブラリの脆弱性を悪用できるため、悪意のある攻撃者にとって魅力的な侵入口となっています。Log4Shellを覚えていますか? Log4Shellは、ログに記録される受信データをRCE(リモートコード実行)攻撃に対して脆弱にしました。これは、人気のオープンソースロギングフレームワークの重大な弱点、つまり依存関係に潜む脆弱性でした。
直接的な依存関係のセキュリティに自信を持っている組織はわずか24%です。また、37%の組織が依存関係の追跡は容易であると回答している一方で、これらの依存関係は必ずしも安全な状態にあるとは限りません。
2. セキュリティポリシーで基礎を築く
オープンソースパッケージの開発と利用について明確に規定したセキュリティポリシーを策定している組織はわずか49%です。これは、リソースが限られている小規模組織では当然のことです。しかし、当社の調査では、中規模から大規模企業の27%がセキュリティポリシーを策定していないことも明らかになりました。これらの企業が処理しているデータ量を考慮すると、27%という数字は憂慮すべき数字です。
オープンソースセキュリティポリシーを持たない組織に所属する回答者のうち、30%は、チーム内にオープンソースセキュリティ対策の責任者がいないことを容易に認識しています。明るい材料として、回答者の70%が、明確なポリシーが定義されていないにもかかわらず、組織内にオープンソースセキュリティ対策の責任者がいることを認識しているという点が挙げられます。これは、トップダウン型のセキュリティポリシーを持たない組織であっても、セキュリティチャンピオンとして活動している人がいることを示唆しているのかもしれません。
3. 適切なツールと戦略を活用する
73%の組織がソフトウェアセキュリティを向上させるためのベストプラクティスを探しています。しかし、これは何を意味するのでしょうか?
まず、前述の通り、セキュリティポリシーの優先順位付けと(そのポリシーの所有権の)確保が不可欠です。さらに、組織はより安全なアプリケーションの構築を支援する多様なツールに投資する必要があります。SCA (ソフトウェア・コンポジション・アナリシス)ツールに加えて、組織はセキュリティテストに関する好みに応じて他のツールも使用しています。SAST (静的アプリケーション・セキュリティ・テスト)ツールは35%の組織で、IaC(インフラストラクチャ・アズ・コード)は35%の組織で、Webアプリケーション・スキャナーは32%の組織で使用されています。これらのソリューションはそれぞれ独自のセキュリティ上のメリットをもたらします。
回答者の半数以上が、安全なソフトウェア開発のためのトレーニングと認定資格の取得にも関心を示しました。これは、信頼性の高いオープンソースセキュリティプラクティスの構築方法を学ぶことへの関心が高まっていることを示しています。また、開発者にベストプラクティスの学習と認定資格の取得を奨励することへの関心も高まっています。幸いなことに、開発チームが優れたオープンソースセキュリティプラクティスについて考え、それを実践するためのトレーニングを提供するリソースは数多くあります。認定プログラムも広く提供されています。例えば、OpenSSFの安全なソフトウェア開発コースでは、トレーニングコースと修了認定の両方が提供されています(OpenSSFはLinux Foundationの一部です)。Snykも、開発者向けに設計された無料のセキュリティ教育情報の完全なライブラリを提供しています。
オープンソースセキュリティの未来:ポリシー、ツール、ベストプラクティス
オープンソース パッケージを安全に使用するには、多くの組織がまだ採用していない開発者のセキュリティに関する新しい考え方が必要です。
すべての組織には、CISO、あるいは主要なセキュリティ責任を担う担当者またはチームが必要です。CISOが主要なセキュリティ能力を備え、活用できる環境が整っていれば、オープンソースセキュリティポリシーも策定できます。実行可能なポリシーを導入し、CISOと開発者から組織全体に浸透させ、チーム全体で共有する必要があります。
ソフトウェア・セキュリティ・ツール市場は、ソースコード管理からビルド、パッケージング、デリバリー、そしてデプロイメントまで幅広く網羅しています。組織は平均2.8種類のセキュリティツールを利用しており、SCA(ソフトウェア・コンポジション・アナリシス)ツールとSAST(静的アプリケーション・セキュリティ・テスト)ツールは、オープンソース・セキュリティ対策に最も多く利用されています。ソフトウェア・セキュリティは各ステップにわたって管理する必要があり、2~3種類のツールだけですべてを実現することは現実的ではありません。組織は、追加のセキュリティ・ツールを詳しく検討し、最も価値を提供できる分野を特定する必要があります。
オープンソースソフトウェアのサプライチェーンのセキュリティを向上させるための主要な方法として、セキュアなソフトウェア開発のためのベストプラクティスを理解することが73%の組織によって挙げられています。ベストプラクティスへの関心が高まっている主な理由は、セキュアなソフトウェアの構築には開発ライフサイクル全体が関わってくるためです。ソースコード管理、ビルドサービス、パッケージングからソフトウェアの配信と展開に至るまで、プロセスの各ステップには、従うべき数多くのベストプラクティスが存在します。ベストプラクティスに関する多くのコースや認定プログラムが利用可能です。将来的にセキュリティ体制を強化したい組織は、これらのプログラムを活用するべきです。
オープンソースは今後も成長を続けるでしょう。来年の今頃までに、より多くの企業がオープンソースのセキュリティに関して強固な立場を築いていることが理想です。