
シアトルのセキュリティスタートアップは、パブリックドメインから脆弱なコードを排除しようとしている
クリストファー・バッド著

コピー&ペーストをセキュリティ上のリスクと考えますか?そう考えるべきです。
コードの再利用(コピー&ペーストなど)によって広がるコードの脆弱性は、決して軽視できるものではありません。バッファの未チェック化といった小さなエラーが、数十、あるいは数百ものプロジェクトや製品に蔓延する可能性があります。オープンソースプロジェクトのコードサンプルにおいては、特にリスクが深刻です。コードの再利用と共有を容易にするオープンソースの特性は、脆弱性が広範囲に拡散しやすく、稼働中のシステムを侵害の危険にさらすことになります。
これは、ワカス・ナジール氏がコンサルティング業務中に目にしていた状況です。ナジール氏は、シアトルを拠点とするセキュリティスタートアップ企業Digitsecの創業者兼CEOの一人であり、クライアントのより安全なソフトウェア開発支援に注力しています。
ある日、ナジールと彼のチームはクライアントのプロジェクトのコードレビューを行っていました。レビュー中に、企業全体のセキュリティ侵害につながる可能性のある脆弱性を発見しました。さらに詳しく調査したところ、その脆弱性はオープンソースのコードサンプルから持ち込まれたものであることが判明しました。ナジールと彼のチームはクライアントの脆弱性を修正しましたが、元のコードサンプルは依然として公開されており、他のプロジェクトでそのサンプルが再利用されていたため、同じ脆弱性が新しいプロジェクトに持ち込まれていました。

コード再利用に伴うリスクはセキュリティ業界では以前から認識されていましたが、誰も取り組もうとしませんでした。問題の規模、範囲、そして規模は、控えめに言っても非常に大きなものです。しかし、ナジール氏は動揺しませんでした。クライアントのために問題を解決して先に進むのではなく、彼とチームはより大きな問題に真正面から取り組むことを決意したのです。
そして、脆弱性のあるコードを排除する (EVC) プロジェクトのアイデアが生まれました。
EVCは野心的なプロジェクトです。このプロジェクトは、パブリックドメインから脆弱なコードを排除することを目指しています。このプロジェクトは共同作業です。Nazir氏とDigitsec氏が先頭に立っています(Nazir氏は現時点で最も積極的な貢献者です)。しかし、世界をより安全な場所にしようと努力するすべての人に開かれています。
EVC には 3 つの重点領域があります。
- オープンソースのコードサンプルはWeb上で入手可能
- OpenSSLやWebkitのような注目度の高いオープンソースプロジェクト
- 問題への意識を高めるための教育活動
EVCは、公開されているオープンソースのコードサンプルにおける脆弱性の問題に対処するため、研究者とコードサンプルの所有者の間の情報仲介役として活動しています。貢献者は特定した問題をEVCに報告し、EVCはサイト所有者に問題に関する情報を伝え、脆弱性の修正または注釈の追加を促します。
2012年7月25日(水)、EVCは脆弱性のあるコードサンプルを自動的にスキャンするWebクローラー「EVC Probe」をリリースし、一歩前進しました。これにより、脆弱性のある公開コードサンプルの特定と所有者への通知プロセスを自動化することで、プロセスの迅速化を目指しています。
EVCはオンラインポータルを運営しており、登録済みの貢献者は潜在的な問題を報告し、問題のステータスを確認することもできます。他の脆弱性ブローカーとは異なり、EVCの目的は宣伝活動ではないため、報告は保護され、貢献者のみがアクセスできます。
EVCはDigitsecからの支援に加え、プロジェクトの資金調達のためスポンサーを探しています。現在はStach & Liu氏という別のスポンサーがいますが、積極的に他のスポンサーも探しています。
EVCはより良い職場環境の実現を目指していますが、独立した非営利団体ではありません。Digitsecの日常業務の一環として運営されています。しかしながら、現時点では、このプロジェクトの目標は、コードサンプルの脆弱性を排除し、人々に問題を認識してもらうことで、世界をより安全にすることです。
この問題を説明するために、ナジール氏は非常に分かりやすい例え話を用います。「あなたは路上でチューインガムを食べますか?」と彼は問いかけます。「では、なぜコードを再利用することの影響を理解せずに、誰かのコードを再利用するのでしょうか?」
ポスト・アレーのガム・ウォールからわずか数ブロック離れた、デジットセックのパイオニア・スクエアにあるオフィスで、ナジールと話をしました。彼がそう言った時、私はあそこに貼られたガムのことを考えました。そして、彼らが解決しようとしている問題の規模と範囲のほんの一部に過ぎないことに気づきました。
ナジールはこれが大きな問題であることを認識しており、現実的な目標を掲げています。目標は脆弱なコードをパブリックドメインから削除することですが、彼にとって成功は一つ一つの修正サンプルごとに測られるのです。