|
OpenSSL Heartbleed の悲惨な失敗は、人々が長らく疑っていたことを明確に証明しています。つまり、オープンソース コードは検査目的のみであるからといって、完全に検査されて安全であるとは限らないということです。 これは非常に重要です。オープンソースソフトウェアのセキュリティは、コードを検査し、バグのあるコードを迅速に削除または修正する、多数の熟練プログラマーに完全に依存しているからです。これはリーナスの法則にも言及されています。「十分な数の目があれば、すべての問題は明らかになる」 しかし、OpenSSLの使用後に何が起こったのかを見てみましょう。ドイツのミュンスター大学のプログラマー、ロビン・セッゲレマン氏は、OpenSSLのコードを更新し、新しいHeartbeatキープアライブ機能を追加しました。しかし残念なことに、彼は特定の変数が実際に有効かどうかを確認するための必要なコード検証を実施していませんでした。OpenSSL開発チームのメンバーも、アップデートをリリースする前にこの確認を実施しておらず、これらの見落としがHeartbleedバグの主な要因となりました。 コードにバグがないと判断された場合、一人のレビュー担当者だけでなく、複数のレビュー担当者が集まっても、この些細な欠陥を見つけることはできないでしょう。このHeartbleedバグは、OpenSSL、ブラウザ、そしてウェブサーバーで2年間も存在し続けましたが、オープンソースコミュニティは誰も発見しませんでした。これは、十分なレビュー担当者がいなかったためと言えるのでしょうか? 商用チャネルにはオープンソース コードを監査する能力がありません。 同様に懸念されるのは、OpenSSLがF5 Networks、Citrix Systems、Riverbed Technology、Barracuda Networksといった企業が提供するハードウェア製品の主要コンポーネントとして、導入前に十分なデューデリジェンスが実施されないまま使用されていることです。これは、セキュアクラウドゲートウェイベンダーであるForum SystemsのCEO、マムーン・ユヌス氏によって明らかにされました。 同氏は次のように語った。「OpenSSL を商用化するのであれば、ベンダーにはより厳しい監視を行う責任がある。オープンソース コンポーネントを基盤とした企業を立ち上げるつもりなら、コードの所有権は不可欠だからだ。」 しかし、ユヌス氏は、ベンダーはOpenSSLを自社のハードウェア製品における便利なボルトとしてしか捉えておらず、オープンソースであるという理由で、他の開発者が既にOpenSSLのコードをレビュー済みだと思い込み、レビューの責任を負わないと考えている。「これはオープンソースの視点から考えることに起因する怠慢です」とユヌス氏は述べている。ユヌス氏は、商用ベンダーはオープンソースコードのピアレビューの実装と、コードにバグがないことを確認するための静的および動的解析ツールの活用に、可能な限り多くのリソースを投入すべきだと提言している。 OpenSSL と Truecrypt は、オープンソース コード レビューの欠点を明らかにしました。 多くのオープンソースプロジェクトは現在、Seggelemann氏やOpenSSLチームの他のメンバーの責任を明確に特定することが難しいという問題に直面しています。厳格なコードセキュリティ監査の実施は、非常に時間がかかり、技術的に高度な作業です。言い換えれば、非常にコストがかかります。 もう一つのオープンソースプロジェクトは、暗号化プログラム「TrueCrypt」です。このプロジェクトは10年前に始まり、そのセキュリティ機能は今では誰でも閲覧できるようになっています。しかし最近、IndiegogoとFundfillでの資金調達キャンペーンを通じて最終的に6万ドルの資金を集め、TrueCryptのコードが適切なセキュリティ監査を受けるのに役立ちました。 コード監査人は次のように述べています。「全体的に、ブートローダーのソース コードと Windows カーネル ドライバーのソース コードは、ソース コードの期待される基準を満たしていません。」 懸念すべきことに、彼らはコードレビューのために人材を大量に雇用し始めたのは、不正行為が明るみに出た後のことでした。オープンソースコミュニティには過去10年間、コードレビューを行う十分な機会がありましたが、現実には、適切に実施するための時間、スキル、そしてリソース(資金を含む)がコミュニティには不足しています。 セキュリティを隠すことは決して良い考えではありませんが、脆弱性が明らかになったら、すぐに修正する必要があります。OpenSSLチームがこれを実行できるかどうかは不明です。特に、プロジェクトにはフルタイムのメンテナーが1人しかいないため、OpenSSLを使用するソフトウェア製品とハードウェア製品の両方、そしてOpenSSLソフトウェア自体も、タイムリーなアップデートとメンテナンスが必要です。 ポストHeardbleed時代においては、セキュリティ意識の強化がさらに重要になります。 OpenSSLのようなオープンソースプロジェクトのセキュリティを懸念する人々に朗報があります。Linux FoundationがHeartbleed事件を受けて設立した新しいプロジェクト、Core Infrastructure Initiative(CII)が、独自の方法でこれらのプロジェクトを支援する予定です。CIIの目的は、インターネットの機能に不可欠なOpenSSLのようなソフトウェアプロジェクトに資金を集中させることです。 「私たちの世界経済は多くのオープンソースプロジェクトによって成り立っています」と、Linux Foundationのエグゼクティブディレクター、ジム・ゼムリン氏は述べています。「より多くの開発者やメンテナーがフルタイムのメンテナンス業務を担えるよう支援することで、彼らの努力を通して重要なオープンソースプロジェクトを包括的に支援できるようになります。」 CIIからの支援には、セキュリティ監査、コンピューティングおよびテストインフラなどへの資金提供も含まれます。これまでにGoogle、Microsoft、Facebookなどの寄付者から提供された約400万ドルの資金は、今後3年間のCIIによるオープンソースプロジェクトの維持に十分すぎるほどです。 |