脆弱性を見つける人、対応する人、使う人、皆がハッピーになるヒントとはCODE BLUEレポート(1/2 ページ)

2014年12月18日、19日の2日間にわたって開催された日本発のセキュリティカンファレンス「CODE BLUE」には、国内はもちろん、イスラエルやベルギー、スウェーデン、米国、ロシア、韓国、香港など、多様な国から約450人が参加した。多数の講演の中から、脆弱性情報の扱い方に関する話題をピックアップしてお届けする。

» 2015年01月13日 18時00分 公開
[高橋睦美,@IT]

 不幸なことに、2014年はセキュリティ事件の「当たり年」となった。HeartbleedやShellshock、Poodleといった深刻な脆弱性が相次いで発覚し、多くの技術者が対応に追われた他、史上最悪規模といわれるクレジットカード情報漏えい事件や顧客情報漏えい事件が発生した。12月には、ソニーピクチャーズに対する不正アクセス事件が発生し、米国や北朝鮮など、国家を巻き込む問題に発展している。

 この不穏な時代にセキュリティ技術者が果たせる役割は何だろうか——2014年12月18日、19日の2日間にわたって開催された日本発のセキュリティカンファレンス「CODE BLUE」には、国内はもちろん、イスラエルやベルギー、スウェーデン、米国、ロシア、韓国、香港など、多様な国から約450人が参加。最新のセキュリティ情報や脆弱性情報の取り扱い方に関するセッションが行われた。

さまざまな国からの参加者で会場は埋まった

ハッカーは世界を救える

 初日のキーノートには、セキュリティアナリストで、「TED」カンファレンスのスピーカーでもあるケレン・エラザリ氏が登場。「サイバーセキュリティの5つの問題—セキュリティ専門家&ハッカーはどう世界を救うのか」と題した講演を通じて、「セキュリティ専門家は世界を守る手助けができる」と会場に呼び掛けた。

ケレン・エラザリ氏

 エラザリ氏はまず、2014年に発生したさまざまなセキュリティ事件を振り返り、「世の中に二種類の組織がある。一つはハックされた組織。もう一つはハックされたことに気付いていない組織だ」というセキュリティ業界の有名なジョークに触れた。そして「技術は常に変化するものであり、次に何が起こるかを予想することは難しい。一つだけ確かなことは、この先も必ず何らかのセキュリティ問題が起こり、ほとんど全ての人が攻撃を受ける可能性があるということだけだ」と言う。

 そして、その攻撃に対峙する、情報時代における「免疫システム」が必要だとエラザリ氏は述べた。ハッカーやセキュリティ専門家、ベンダーらはそれぞれが免疫システムの一部であり、協調して問題に対処していく姿勢が必要だという。

力を合わせて「免疫システム」の実現を

 エラザリ氏は講演の中で、セキュリティの課題に取り組むに当たって留意が必要な5つのポイントを挙げた。

 一つ目は、「サイバースペース」の領域は拡大しており、いわゆるインターネットやWebの世界だけでなく、さまざまな「モノ」も含めた広範な範囲を守っていかなくてはならないということだ。「いま、銀河系で一番使われている言語は何だと思いますか? クリンゴン語ではありません。Javaです」と同氏が言うように、コンピューターやWebサーバーだけでなく、車やATM、時計、さらにはスマートホームなど、さまざまなものがソフトウェアを搭載してインターネットにつながっており、「近い将来、ハッキングされる可能性がある」という。

 その流れは、身の回りのものだけでなく、航空機や船舶の管制システムや衛星、GPSなど、生活を支えるさまざまなインフラにも及んでおり、万一悪用されれば、人命にまで危害が及ぶ恐れもある。WWWだけでなく、幅広いもの全てがサイバーセキュリティの対象領域であるとした。

 2つめは、サイバー犯罪者、いわゆる「Bad Guys」側に負けずに、守る側も情報を共有し、コラボレーションを進め、対策のイノベーションを進めていく必要があるということだ。

 エラザリ氏は、オンラインバンキングマルウェアの「Zeus」やランサムウェアの「CryptoLocker」、広告に見せかけてマルウェアに感染させる「マルバタイジング」といった実例を挙げ、皮肉なことに「サイバー犯罪者は非常にクリエイティブで革新的で、しかも協力を進めている。新しいテクノロジを活用し、時にはソースコードを共有したりして、収益を上げようと活動している」と指摘した。

 この動きに対抗するには、対策する側も同様に、情報を共有し、コラボレーションし、さまざまなイノベーションを起こしていく必要がある。「恥ずかしいからという理由で攻撃を受けたことを明らかにしない組織もあるというが、今や、誰もが攻撃を受ける恐れのある時代だ。情報を共有するということは、コミュニティ全体、エコシステム全体に対する優しさ(Care)だ」(エラザリ氏)。

 3つ目は、脆弱性に関する情報を公表していくことの重要性だ。近年、政府組織が意図的に脆弱性情報を公表せず、諜報活動などに利用していたとする報道があった。特定の組織が膨大な予算を投じてゼロデイ脆弱性を探し出している。それも、世界を安全にするためではなく、他の目的で使っていたという。

 エラザリ氏は、この問題に対する解決策は「バグを自分一人のものにしておくのではなく、広く公表することだ」と述べた。同氏は、米国のある判事が言ったという「最善の消毒方法は、日の光のもとにさらすこと」という言葉を引き合いに出して、「ソフトウェアのバグや脆弱性も同様だ。脆弱性を公表し、コミュニティの力を使ってみんなでセキュアにしていくことが重要だ。脆弱性が分からなければ免疫系は強くならない」と言う。

 その実例として同氏は、「バグバウンティプログラム」に触れた。自社製品やサービスに存在する脆弱性情報を受け付け、発見者に報奨金を支払う取り組みで、Facebookをはじめ、米国の大手インターネット企業で始まりつつある他、インターネット上では、HackerOneのようなバグ報奨金プログラムも開始されている。また、「Exploit Database」には多数の脆弱性情報が公開されており、「これを見るとたくさんの脆弱性があることに驚くかもしれない。中には、あなた自身の会社が使っていたり、作っているものが含まれるかもしれない」とエラザリ氏は述べた。

 4つ目は、これもたびたび指摘されていることだが、「最も弱い鎖から侵入を受ける」ということだ。「われわれはエコシステムの一員として、いろいろなサービスやパートナー、顧客とともに仕事をしている。たとえ自社がセキュリティに投資していても、パートナーなどを経由してハッキングされる可能性がある」(エラザリ氏)。事実、クレジットカード情報漏えいが発生した米ターゲットはメンテナンス業者経由で侵入されたし、ロッキード・マーチンへの不正アクセスは、導入していたRSAのワンタイムパスワード情報が盗まれたことが足掛かりとなった。

 「セキュリティの世界ではしばしば、境界が最前線であるという誤解があるが、今やセキュリティ企業も一個人も関係なく、全員が最前線に立たされている」(エラザリ氏)。

 問題を解決するには、セキュリティに関して全体の底上げが必要であり、そのためにセキュリティ専門家は、プロとして一般の人々をサポートし、知識を伝えていくべきだとした。海外では、セキュリティ専門家が一般ユーザーに基本的なスキルを教える「Crypto Party」や、ボランティアで脆弱性を調査する「Red Cyber」といった例があるという。専門家は免疫システムの一部として、こうしたさまざまな活動を通じてセキュリティに関する知識を強化していくことができるという。

 最後の5つ目は、セキュリティ専門家らと一般の人々との間のギャップを埋めていくことだ。ギャップを埋めるには、まず何が問題なのかを理解してもらう必要がある。「サイバー攻撃とはいったいどのようなもので、何が起きているのか」といった事柄について、一般の理解を深めていくことが大事だとエラザリ氏は述べた。これは、対策に必要な予算を確保する際に障壁となりがちな、企業経営層とのギャップにもいえることだ。

 エラザリ氏は最後に、「われわれが力を合わせることで、この状況を変え、サイバースペースを安全なものにしていくことができる」と会場に呼び掛け、国境を越えた専門家の連携に期待を寄せた。

脆弱性情報のコーディネーションの重要性

 CODE BLUEの記者説明会の場では、CODEBLUE実行委員の鵜飼裕司氏(FFRI)が、「センシティブな情報をどのように共有していくかは課題の一つ。今までと同じやり方では難しく、時代とともに変わっていく必要がある。『安全な社会をどう実現するか』という目的に向け、どうさじ加減を取るかを、いろいろな人と話し合ってしっかり議論していく必要がある」と述べ、CODE BLUEをそうした共通のコンセンサス作りの場の一つとしていきたいとした。

 エラザリ氏も同様に、「世界は日々変わっていくため、情報共有のやり方に対する意識を変えていく必要がある」とコメントした。特に、医療機器や自動車といったIT以外の領域では、脆弱性情報が不用意に公開されると、身体や生命に関わってくる恐れもある。このため「こうした分野では、コーディネートされた情報公開というアプローチが求められるのではないか。脆弱性を見つける独立した研究者やハッカーとうまく調整を進め、連携して情報を公開することによって、脆弱性をきちんと修正し、人の生命を救えるのではないか」という。

 CODE BLUE 2日目の講演「マイクロソフトの脆弱性調査:ベンダーでありながら発見者となるために」では、米マイクロソフトのデイヴィッド・シードマン氏が、サードパーティ製品に見つかった脆弱性情報の「コーディネート」の取り組みについて紹介した。

米マイクロソフトのデイヴィッド・シードマン氏

 「脆弱性とマイクロソフト」というと、マイクロソフトはもっぱら「脆弱性を指摘される側」という印象が強い。しかし実は、開発プロセスの中でサードパーティ製品の脆弱性を見つけることがあり、そうした情報を当該ベンダーに伝え、対処を依頼してきたという。同社はこのプロセスを、Microsoft Vulnerability Research(MSVR)を通して標準化された手順で進めている。シードマン氏はその担当者だ。

 MSVRでは、同社社員が発見した他ベンダーの製品やオープンソースソフトウェア、あるいは家庭用ルーターなど、多数のサードパーティ製ツールの脆弱性を検証し、当該ベンダーに報告してきた。その基本にあるのは「Coordinated Vulnerability Disclosure」(コーディネートされた情報公開)というコンセプトだ。

 マイクロソフト社員が発見したものであっても、その社員が個人的にベンダーに通知し、対応を依頼すればいいという考え方もあるかもしれない。だが、マイクロソフトという組織として脆弱性報告のプロセスやルールを定めた理由の一つは「Windowsにとって、サードパーティのコードは重要だから」(同氏)。

 マイクロソフトは、自社製品/サービスに対するバグバウンティプログラムも実施しているが、MSVRの役割は、サードパーティ製品に関する脆弱性情報を検証し、整理して開発元に伝え、対応を支援し、修正パッチが公開された後に情報をアドバイザリの形で公開することであり、報奨金制度とは目的が異なる。シードマン氏によるとMSVRは「適切な人に適切な情報を提供し、脆弱性に関する情報を伝達する際の『ミスコミュニケーション』を防ぐこと」を念頭において活動しているそうだ。

関連サイト

Microsoft Vulnerability Research (MSVR)

http://technet.microsoft.com/en-us/security/dn467919.aspx


社員が発見した脆弱性情報を適切にコーディネート

 シードマン氏によると脆弱性を発見する社員は、「趣味で見つける人もいれば、製品開発グループの担当者が見つける場合もある」(同氏)。例えば、Windowsのファイル共有機能を開発、テストする中で、Sambaの脆弱性を見つけて報告したり、付属するコーデックの脆弱性を見つけたりといった事例が過去にはあった。発見した脆弱性の扱いは、基本的に「コーディネートされた情報公開」というルールに従って処理されるが、時間外で、会社のリソースを使わずに発見した脆弱性については、バグバウンティプログラムへの応募も可能という。

 MSVRでは寄せられた情報を基に、脆弱性の内容や再現性の有無などを検証する。そして、実際に脆弱性であると判断すれば、コンセプト実証コードとともにベンダーに情報を提供し、対応を依頼する。

 このプログラムを回していく中でいくつかの発見があった。「脆弱性情報を受け取ったベンダーの対応は多様だ。大規模だからといって動きが遅いわけでもないし、小規模だから迅速に対処されるとも限らない。トップレベルのセキュリティに対する理解にも左右される」(シードマン氏)。特に、小規模な企業の場合、開発者はいてもセキュリティに関する専門家やスキルが足りず、対応に苦慮するケースもあるそうだ。

 また一方で、脆弱性発見者の中には、自分が見つけた問題を過大に評価してしまう場合もあるという。「レポートする前に、それがサードパーティにとって有用な情報であるかどうか吟味することが重要だ。リモートからのコード実行が可能といった深刻な問題は迅速に対応を依頼すべきだが、ファジングを実行して出てきた軽微な脆弱性を何百とレポートするのがサードパーティにとって手助けとなるかどうか。深刻さの度合いに応じて適切に伝えることが重要だ」(シードマン氏)。

 MSVRのようなプログラムがあれば「社員は他の仕事をしながら、詳細までは知らなくても脆弱性発見に参加でき、そのマネジメントに協力できる。社内の関係作りにも寄与しており、社員にとっても価値のあるプログラムだと思う」と同氏は述べた。

 「ShellshockやHeartbleedの問題で明らかになった通り、われわれは互いに依存している。それらのコードの一部はマイクロソフトのソフトウェアにも入っている」とシードマン氏。互いに依存している中で、脆弱性情報があまりに早く公表されてしまう(=対策が整わないうちに公表されてしまう)のも問題だと述べた。

 ではなぜ、早すぎる公表が起きるのか。例えば、脆弱性情報を報告してもなしのつぶてだったり、いつ修正されるかが明らかにされず、誤解やコミュニケーション不全が原因となって情報が公開される場合がある。「MSVRでは脆弱性公表のプロセスを定義することによって、そうした問題を起こりにくくしている」(同氏)。

経験から分かった「脆弱性報告に際してベンダーに望みたいこと」

 こうした取り組みを通じて、シードマン氏は、脆弱性情報を受け付けるベンダー側に期待したい事柄を挙げた。まず1つは「連絡先を明らかにすること。それもできれば、信頼できる宛先であることが分かるよう、公開鍵情報付きで」(同氏)。また、バグや脆弱性について話をしたいのに、最初にやり取りすることになるのはサポートセンターのスタッフということも多いそうだ。「できればセキュリティ担当者につなげてほしい」(同氏)。

 もう1つは、「クリアなコミュニケーション」だ。脆弱性情報を送った後、その受け取り確認にはじまり、再現性の有無や検証結果、修正予定時期や発見者のクレジットの扱いなどについてスムーズな返事があると、非常にやりやすいという。

 シードマン氏はさらに、「報告されたバグは1つでも、もしかすると同じような問題が他にもあるかもしれない。同じような問題がないか、ぜひコードの残りの部分も調査してほしい」とも述べている。

 「われわれも社内にセキュリティ専門家がいるが、外部のセキュリティコミュニティの人々は、自分たちが思いつかなかったような問題を探してくれる。そこにこそ、こうした取り組みの価値がある。セキュリティコミュニティの参加は重要であり、それによってマイクロソフト自身も成長できる」(同氏)。

 マイクロソフトでは、かつてBlasterやSlammerといった「痛い目」に遭った経験を生かし、開発プロセスにおいてセキュリティを重視する姿勢を強化してきた。その経験を踏まえ、「もし脆弱性が報告されたら、問題を徹底的に調査し、同じような問題が発生しないようにする一つのチャンスと捉えてほしい」と同氏は述べている。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。