Heart bleedのその後:オープンソースのセキュリティに対する新たな取り組み

インターネット上で大勢の意見が一致することはなかなか無いものだ。例えあったとしても、「Heartbleedのようなバグはもう起こらない」という意見だけは絶対にあり得ないはずだ。

Google、Amazonウェブサービス、Cisco、Dell、Facebook、富士通、IBM、Microsoft、NetApp、RackspaceにVMWareといった企業のバックアップを受け、Linuxファウンデーションはインターネットやその他の重要な情報システムに重大な影響を及ぼすプロジェクトの支援を目的としたCore Infrastructure Initiative(CII)を発足した。多くのプロジェクトは、その通信や商業的なインターネットの重要性にもかかわらず、資金や開発リソースの不足に悩んでいる。

CIIは出来たばかりであり、運営委員たちはまだミーティングすら開いていない。というわけで現状この団体がどのような事をするかという詳細についてはよくわかっていない。

しかしながら不明瞭な部分があったとしても、この様な重要なプロジェクトに対しては賞賛せざるを得ない。もちろん詳細も大事だ。Heartbleedが過ぎ去ったからもう安全だなどという勘違いは誰も望まないのだから。Heartbleedはオープンソースのイメージを傷つけてしまった。次に同じような深刻な事態が起これば、オープンソースに対する支援が揺るぎかねない。

そうだとすれば不名誉なことだ。Heartbleedの様な例はあったが、それでもオープンソースのコードは商用のものよりも堅牢であるからだ。

Heart Bleed : 事実は小説よりも奇なり

lonely-developerオープンソース(コードの追加改変は殆どの場合ボランティアに依存している)の最たる利点と言われていることの一つに、コードが多くの目に触れる為、深刻なバグが少ないという点が挙げられる。

多くの場合はそのとおりで、ソフトウェアのテストを行う Coverityによると、オープンソースのコードは商用のそれを凌ぐという。驚きだろうか? そんなことはないはずだ。ポピュラーなオープンソースプロジェクトでは、数千もの人が開発やコードレビューに貢献しているのに対し、商用ソフトの場合はリソース的にずっと限られているし、機密保持の縛りなどで立ち上げに困難がつきまとうこともある。

残念ながら全てのオープンソースプロジェクトがこの様にうまく行っているわけではない。通信セキュリティプロトコルであり、Heartbleedの餌食になったあのOpenSSLも、そんなプロジェクトの一つだった。

この潜在的に非常に大きな影響力を持つバグは、研究者である一人のドイツ人開発者、ロビン・セゲルマンによるミスから始まった。普段ならコードは出稿前にレビューを受ける。そして彼のOpenSSLのHeartbeat拡張に関するコードは出稿前に、セキュリティスペシャリスト、ステファン・ヘンソンによるレビューを受けている。彼もこのミスは見落とした。

というわけでHeartbleedはこの二人が始点となった。しかしOpenSSLのチームが一丸となっていたとしても、状況は大きくは変わらなかっただろう。というのも、開発チームには数えるほどの人数しかおらず、中心となるメンバはこの他にたった二人しかいないからだ。さらに、この重要な非商用プロジェクトは、年間たった2000ドルの寄付で運営されていたのだ。

こんなにも重要なセキュリティ・プロジェクトが年間たった数千ドルで綱渡りの運営を続けた結果、悪気のない二人の手によってインターネット中を覆いつくしたミスを生み出したというのだ。これがつくり話だとしたら一体誰が信じるだろうか?

CIIの狙いは、OpenSSLや他のメジャーなオープンソースプロジェクトにおいて、深刻なバグを放置しないことだ。そのためのプランとは、プロジェクトに足りていない人と資金を供給することである。

オープンソースを完全なものに

linux-easter-eggインターネット上のセキュリティは、事実上OpenSSLの上に成り立っている。しかしながらオープンソースプロジェクトでは入念なセキュリティ審査を受けることはない。そのための資金や人のリソースがないからだ。

これはLinuxファウンデーションの観点からすると受け入れがたい。

Linuxはオープンソースプロジェクトにおける成功例の最たるものだ。世界中のボランティアがリーナス・トーバルズの作ったこのソフトに群がり、毎時間9つというスピードで改変が行われている。数百万行のコードに対するこういった迅速な改変は、OSの改善やバグフィックスに反映され、毎年約50万ドルの寄付が寄せられる。寄付の幾らかはリーナスに回るため、彼は全ての時間をこの開発に費やすことができるというわけだ。

Linuxファウンデーションは、CIIはオープンソースプロジェクトを支持するための重要な存在になりつつあると思っている。専業の開発者を雇ったり、コードのレビューやテスト等をアレンジするための金銭的支援を行うことで、再度Heartbleedの様なバグがチェックをすり抜けることを防げると考えているのだ。

支援対象の最初の候補は(お察しの通り)OpenSSLだ。広報によると、「主要な開発メンバーはセキュリティの向上のために金銭面の他、外部によるレビュー、より早急なパッチ適用のサポートが得られる」という。

OpenSSLはあくまで皮切りだ。Linuxファウンデーションの常務、ジム・ゼムリンは「肝心なのはこの危機において、何かの教訓を得ることだ。先を見越してリソースを確保し、重要にも関わらず金銭的に厳しい状況に置かれているプロジェクトの面倒をみ、そういったプロジェクトにリソースを供給する事が必要だ」という。

これは素晴らしいアイデアに思える。こういった動きはオープンソースの開発にまつわる問題への取り組みであるというだけではなく、重要なシステムの堅牢性を補強することにもなるからだ。

これは大掛かりなプランだ。Googleのオープンソース・エンジニアリングの責任者、クリス・ディボナはつい先週、ゼムリン氏からこのアイデアを打ち明けられたという。

Heartbleedバグを発見したのは彼の会社に務めるセキュリティエンジニアだった事を引き合いに出した上で、ディボナは次のように語った。「Googleではこれまでもオープンソースの開発を大々的に支援はしてきたが、果たして十分と言えるものだったろうか? ジムから、また同じようなことが起こる前に、どうやって再発を防止するか考えないといけないという連絡をもらった。あとはもう、『分かった、とりあえずやってみよう。どうにかしなくちゃ』みたいな感じだったよ」

他の会社が支援を表明したのは、その数日後のことだった。「みんなが抱えている問題に対して、こういった集団的なリアクションが起こった事は歴史的な瞬間だと思う」とゼムリンは言う。

CIIの支持者は増え続けている。ゼムリンやディボナと話した数時間前の水曜の晩、新たな支持者がサインしたという。これを書いてる時点で、12社が正式に支援を表明し、各社が最低3年間、毎年10万ドルの寄付をするそうだ。総額では360万ドルにのぼるという。

細々とした面倒事

funding細かい問題もいずれ解決されなければならない。運営を行う委員会は支援者、技術者、研究者や、その他オープンソースコミュニティのメンバーで構成される。彼らが一堂に会する時、「プロジェクトが支援を受けるべきかどうかの判断基準」の様な重要な事項の決定がなされなければならない。
ディボナはまた、委員会では最低限保証されるセキュリティとはどのようなものかを決定しないといけないと述べている。

ゼムリンは、オープンソースの開発精神を変えてしまうくらい、規制でがんじがらめなやり方にしてしまうことは望んでいない。「オープンソースに参加する人たちは、コミュニティの規律を尊重している。規律偏重になりすぎることで、オープンソースのいいところを潰すようなことはしたくない」と彼は言っている。

Linuxの開発を支えているLinuxファウンデーションの経験が、CIIの役に立つことだろう。ゼムリンは「我々の10年以上の経験をもってすれば、開発の停滞を起こすこと無くこれらのプロジェクトをサポートできるだろう」と言う。確かに、現にそれができるとすれば彼とそのLinuxファウンデーションをおいて他にないだろう。

クリティカルなインフラの根幹部に関わる中で、オープンソースのクリエイティブかつ自由な性質を保ち続けるのは簡単なことではない。こういった場合多くは、協会だとか厳格な規律に依存しているものだ。システムの心臓部を鼓動させ続けるための処方箋は、時として厳格なものでなければならないのかもしれない。

画像提供(Flickr より)
トップ画像:John、孤独なデベロッパーの写真:Bennett、Linux イースターエッグ:Alex Gorzen、ドル札の救命具:Chris Potter

Pocket