DUICUO

今日の世界におけるオープンソースのセキュリティ問題

多くの人がオープンソースソフトウェア(OSS)の利用を支持しています。しかし、他者が既に解決した問題を解決するために、なぜコードを作り続ける必要があるのでしょうか?情報を共有し、既存のオープンソースソリューションを段階的に、そして反復的に改善していくべきではないでしょうか?こうした平等主義的な価値観は、ソフトウェアに限らず、あらゆる文明の根幹を成すものかもしれませんが、それでもなお、数千年にわたって存在してきた対立を内包しています。

オープンソースソフトウェアのセキュリティに関する問題は、誰でもソースコードを閲覧できる一方で、必ずしも閲覧するとは限らないことです。広く利用されているオープンソースプロジェクトの中には、限られた数のエンジニアによって維持されているものもあります。これらのエンジニアは生活費を稼ぐ必要もあるため、自発的に時間と労力を惜しみなく投入することができません。

より複雑なオープンソースプロジェクトであっても、これは問題となります。例えば、Linuxカーネルプロジェクトは3,000万行を超えるコードで構成され、修正が必要なバグが数百個存在し、約2,000人のアクティブな開発者がいます。アクティブな開発者一人当たり、15,000行を超えるコードを記述しています。

Linux Foundationの最近の調査によると、アプリケーションには平均5.1件の未解決の重大な脆弱性があり、企業の41%がオープンソースソフトウェアのセキュリティに自信を持てていないことが明らかになりました。さらに悪いことに、オープンソースセキュリティ戦略を策定している企業はわずか49%に過ぎません。

オープンソースソフトウェアにセキュリティ上の脆弱性があったとしても、修正される保証はありません。調査によると、脆弱性の修正には現在平均97.8日かかり、そのソフトウェアを使用している企業は数ヶ月間攻撃に対して脆弱な状態に置かれています。オープンソースソフトウェアのセキュリティは、この点で見落とされがちです。善良な人がコード内のバグや脆弱性を見つけて修正できるのと同様に、悪意のある人もそれらを見つけて悪用する可能性があります。

脆弱性の発見、報告、修正をボランティアコミュニティだけに頼るのは、時間のかかるプロセスです。オープンソースの幅広いメリットを享受し続けながら、オープンソースソリューションのセキュリティ監査を専門業者に依頼することで、この問題を軽減できます。

システムセキュリティを確保するためにオープンソースソフトウェアにアップデートやパッチを適用する必要性は、特有の課題を伴います。ソリューションが特定のソフトウェアバージョンに依存している場合、ミッションクリティカルなソフトウェアを更新すると、機能の喪失や計画外のダウンタイムにつながる可能性があります。ビジネスクリティカルな状況では、大規模なコミュニティに頼るよりも、専門家を雇用してパッチを配布し、長期的なバージョンを維持する方が賢明かもしれません。

オープンソース コミュニティでよく言われるのは、「オープンソースなんだから、変えればいいじゃないか!」というものです。これは重要な点を強調しています。つまり、他の人がプロジェクトに時間、労力、お金を投資しているのに、何の見返りもなしに高いレベルのセキュリティを期待するのは不合理であり、持続不可能であるということです。

選択肢としては、計画通りにオープンソースに貢献し、コードを改良して他者に公開するか、オープンソースコードを管理し、必要に応じてデバッグを行う専門家を雇うかのどちらかです。しかし、業界としては全く貢献しないというわけにはいきません。