Watch

Q&A: Facebookは外部のバグハンターの協力を得て、どのように製品セキュリティに取り組んでいるのか

Q&A: Facebookは外部のバグハンターの協力を得て、どのように製品セキュリティに取り組んでいるのか
ペテロエラート
ピーター・オエラート

ピーター・オエラート氏はFacebookの製品セキュリティ担当ディレクターで、世界中の15億人以上が使用するアプリと機能のセキュリティを確保するためのソーシャルネットワークの取り組みを指揮しています。

コンサルティングとスタートアップでの経験を持つ元 Microsoft セキュリティ ソフトウェア エンジニアである彼は、今週 GeekWire オフィスに立ち寄り、Facebook のセキュリティ対策、スタートアップのセキュリティの状況、Facebook のセキュリティ維持におけるホワイトハット ハッカーの役割などについて話し合いました。

以下の会話のポッドキャストを聞いて、書き起こしを読み続けてください。

トッド・ビショップ:あなたは今、FTCの会議のためにシアトルに来ていますね。今日、そこでどんなメッセージを発信したのですか?

Peter Oehlert:私は FTC の Start With Security イベントに参加し、さまざまなテクノロジーを開発している新興企業と実際に話し合い、セキュリティを会社の構造や開発中の製品に組み込む方法について少しアドバイスしようとしました。

Todd Bishop:これは興味深いトピックです。なぜなら、多くのスタートアップ企業が、最小限の実行可能な製品を市場に投入しようとしているため、セキュリティがチェックリストの最後の項目になっていることがよくあるからです。

Facebookセキュリティピーター・オエラート:ええ、確かに多くの企業がそう考えがちです。過去には多くの企業がそうやって起業して成功を収めてきましたが、脅威を取り巻く環境は大きく変化しており、かつてのようにデータ収集会社を立ち上げて規模が大きくなるまでリスクを負わない、といった時代は終わりました。実際、これらの新しいスタートアップ企業も、他の企業と同様に、リスクの高いインターネット環境に参入しているのです。

トッド・ビショップ:彼らにとって最も重要なアドバイスは何でしたか?

Peter Oehlert:その通りです。今回のセッションで特に重要だったのは、全員が自社製品のセキュリティ確保に責任を持つようにすることです。これは、製品を開発している開発者やエンジニアだけの問題ではなく、特にスタートアップが小規模な場合は、社内の全員の責任です。もう一つの重要なポイントは、プロセスを開始することが非常に重要だということです。たとえMVP(最小限の実行可能な製品)を開発している段階でも、定期的に時間を確保することで、最初からセキュリティを組み込むことができるようになります。

トッド・ビショップ:スタートアップが使える共通ツールはありますか?スタートアップではよくあることのようですね。自分たちが使えるツールを開発した他の人を参考にするんです。Facebookや他のベンダーがやっていることで、新しいアプリを開発する際に参考にできるものはありますか?

Peter Oehlert:はい、その通りです。サミットでは様々なツールについて話し合いました。私と同じパネルディスカッションに参加していた、元Microsoftの同僚が、Microsoftがセキュリティ開発ライフサイクル(SDL)の一環としてリリースしたツールについていくつか話していました。具体的なフレームワークについてですが、多くのスタートアップ企業が特定のアプリケーションスタックに注力しており、そのスタックには特有のセキュリティ特性が備わっているという話をしました。フレームワークはセキュリティに影響を与える可能性があります。つまり、まさに「自分がアプリケーションを構築しようと考えているもののセキュリティ特性は何か?」という問いを投げかけることが重要なのです。これはスタートアップ企業にとって、事業を軌道に乗せる上で非常に役立つはずです。

Facebookの製品セキュリティ

トッド・ビショップ:分かりました。あなたはFacebookのプロダクトセキュリティ担当ディレクターですね。以前はMicrosoftで勤務されていましたね。コンサルタントとして、そしてご自身のスタートアップ企業にも携わっていらっしゃいますね。現在の仕事内容はどのようなものですか?Facebookでのあなたの責任範囲と業務内容について教えてください。

ピーター・オエラート:その通りです。Facebookで本当に興奮した点の一つは、Facebookが行っている活動の幅広さです。製品セキュリティの分野では、私に大きな影響を与える機会が数多く与えられました。普段の業務としては、チームの方向性を見極め、アプリケーション開発において組織全体が常にアプリケーションセキュリティに重点を置いていることを確認することに多くの時間を費やしています。そうすることで、開発する製品が本当に回復力の高いものになるのです。

トッド・ビショップ: Facebookのプラットフォームで直面しているセキュリティ、脆弱性、そしてそれらを悪用する可能性のある脅威は、従来のOS(Windowsなど)と比べてどのような違いがありますか?主な類似点と相違点は何でしょうか?

ピーター・オエラート:多くの類似点があると思います。それは、セキュリティ上の脆弱性を探し、修正するために私たちが用いてきたのと同じ種類のプロセスと手法が、それが適用されるテクノロジーに依存しないということです。FacebookでもMicrosoftでも、そして他の多くの企業でも、それらは同じようにうまく機能しています。

最終的に異なるのは、テクノロジーそのものに関するものです。Webアプリケーションで直面する脆弱性の種類は、オペレーティングシステムのシナリオで発生する脆弱性とは少し異なります。私たちが探している脆弱性の種類や、それらを修正する方法も多少異なりますが、脆弱性を特定し修正するために実際に行う手順の多くは同じです。

トッド・ビショップ:現在、最も大​​きな脅威は何でしょうか?どのような種類のものですか?コードを悪用する人でしょうか?ソーシャルエンジニアリングでしょうか?現状の悪質な行為の状況を教えていただけますか?

ピーター・オエラート:ええ、その通りです。セキュリティは非常に広範なテーマで、様々な状況で問題が発生する可能性があります。私が特に注力している製品セキュリティに関して言えば、Facebookのようなウェブサイトで目にする多くの情報は、実際には他の多くのウェブサイトとそれほど変わりません。OWASPという素晴らしい組織が「OWASP Top 10」というレポートを公開していますが、これは基本的にウェブアプリケーションの脆弱性のワースト10をまとめたものです。これらの脆弱性の多くは、Facebookだけでなく他の企業にも共通しています。

Facebookが実現した素晴らしいことの一つは、脆弱性のクラス全体を排除することに重点を置くのではなく、脆弱性を排除するための安全なフレームワークを構築したことです。OWASP Top 10のクロスサイトスクリプティングで1位にランクされている問題は、実際にはそれほど対処する必要がなくなりました。なぜなら、それを排除するための優れたフレームワークを構築したため、開発者が実際に脆弱性を持ち込むことが非常に困難になったからです。

Todd Bishop:クロスサイトスクリプティングとは何ですか? 聞いたことはありますが、バッファオーバーフローのような古典的なものとは違いますね。

Peter Oehlert:バッファオーバーフローとは異なります。クロスサイトスクリプティングは、アプリケーションがユーザー入力をコードとして扱う可能性のあるWebページの脆弱性です。その結果、攻撃者はアプリケーションにコードを送信し、攻撃者が指定した動作をするように解釈されてしまいます。つまり、攻撃者はアプリケーションの実行中に独自のロジックを導入することができ、あらゆる悪質な行為が可能になります。

トッド・ビショップ:誰かがこの技術や他の技術を使って、Facebook経由でユーザーのコンピュータを乗っ取る可能性はありますか?これは潜在的な脆弱性でしょうか?

ピーター・オエラート氏:通常、ユーザーのコンピュータを制御できるほどのものではありません。多くのウェブアプリケーションのセキュリティ脆弱性は、ブラウザ内の機能を悪用できる程度に限られています。つまり、この脆弱性によってQuickenファイルからデータが読み取られるというよりも、むしろ攻撃者が被害者としてFacebook上で望むことを何でもできるようになるという危険性の方が大きいのです。

Todd Bishop: 私たちの生活の多くはブラウザ内で行われており、ブラウザは Web のオペレーティング システムとなっています。完璧な例えではないかもしれませんが、人々が現在そこに存在しているのとほぼ同じで、かつて OS 内にあったのと同じです。

Peter Oehlert:ええ。以前はブラウザをバッファとして利用することで、ユーザーがマシン上で操作するのを防いでいた方がずっと効果的でしたが、最近ではユーザーが関心を持つものはほとんどすべてインターネット上のクラウドサービス上に存在しています。そのため、これらをすべて修正することがより重要になっています。

トッド・ビショップ:あなたはFacebookの社内エンジニアと頻繁に連携し、彼らが開発している製品のセキュリティを確保していますね。Facebookに新しいエンジニアが入社した際に、前職での経験とは異なる、特に重点的に指導する点は何でしょうか?

Peter Oehlert:ええ、その通りです。エンジニアとの関わり方において、トレーニングは確かに重要な要素だと考えています。プロダクトセキュリティチームは、エンジニアのオンボーディングプロセスであるブートキャンプで、全エンジニアが受講するトレーニングコースを主導しています。彼らが本当に学ぶことは、まずフレームワークへの信頼です。多くのスタートアップ企業のように必ずしも十分なリソースを持っているわけではありませんが、Facebookはセキュリティ脆弱性の発見を非常に困難にする優れたフレームワークの開発に多額の投資を行ってきました。これにより、開発者はコードを書く際に脆弱性が存在するかどうかを気にすることなく、実際に達成したいことに集中できます。

私たちが特に重視しているもう一つの点は、プロダクトセキュリティチームがエンジニアと連携し、真摯にサポートしてくれることです。Facebookのセキュリティチームは、社員に「これはダメだ」と言いふらすようなセキュリティチームではありません。私たちはエンジニアと真剣に協力し、「それは素晴らしいアイデアですね。安全に実現するにはこうします」と声をかけ、「だめです」と言うのではなく、「いいえ、それはやめてください」と声をかけています。

驚くべきバグ

トッド・ビショップ:これまで見た中で最も驚いたバグや攻撃は何ですか?Facebookに入社して約1年になりますが?

Peter Oehlert:そうですね、約 1 年です。

トッド・ビショップ:あなたが「うわっ」と思ったり、解決しようとして 24 時間も眠れなかったりした原因は何ですか?

ピーター・オエラート:いくつか異なる攻撃について考えてみましょう。その中で、驚くべき攻撃が一つありました。これは、既に構築済みの技術を駆使して防御する優れたフレームワークを備えているにもかかわらず、多くの点で想定外の攻撃だったという点です。Messenger.com のリリース時には、ホワイトハットレポートを多数受け取りました。ホワイトハットについてはお話ししていませんでしたが、製品セキュリティチームが運営するバグバウンティプログラムについても同様です。このバグバウンティプログラムを通じて、クロスサイトリクエストフォージェリと呼ばれる脆弱性が存在するという報告を多数受けました。まさに、当社のウェブサイトに存在するこの特定の脆弱性です。

このような事態を防ぐためのフレームワークはあったので、リリースしようとしている新製品にこのような脆弱性があったことは非常に驚きでした。私たちのフレームワークが、人々が行っている他の作業とどのように関連しているかについての理解が、少し不十分だったことが判明しました。セキュリティ担当者数名が確認していたにもかかわらず、フラグが1つ欠けていることに気づかなかったのです。それはたった1行のコードで済むという単純なものでした。優れたフレームワークを持っていても、正しく使用されていることを確認する必要があることを改めて認識させられる、重要な指摘でした。

トッド・ビショップ:興味深いですね。これらすべてにはまだ人間的な要素が残っていますね。

ピーター・オエラート:コードですから、やろうと思えばコードで様々なことを実現できます。プロセスの最終段階で人間が確認し、連携して動作するか確認するといった作業がなくなる日が来るとは思えません。私たちは、スケールアップやインパクトの拡大に​​役立つツールを数多く開発し、より広範な影響を与えられるように尽力していますが、結局のところ、私たちの仕事には多くの思考が関わっています。

トッド・ビショップ:あなたはマイクロソフト、Facebook、そして他の企業で働いた経験があります。Facebookの企業文化を、これまで働いた他の企業と比べてどう思いますか?

ピーター・オエラート:ええ、確かに。Facebookの文化にセキュリティがいかに深く根付いているか、少し驚きました。私が本当に理解したのは、Facebookの使命は人々、世界中のすべての人々をつなぐことであり、その使命の一部として、セキュリティは文化全体に浸透しているということです。

他の企業では、セキュリティがこの時点で正しく実装されているか、次の時点で正しく実装されていないかを確認するためのチェックボックス付きのゲートを備えた、かなり厳格なリリースプロセスを採用しているところがありますが、Facebookでは、人と人、セキュリティチームとエンジニアの連携を重視しています。エンジニアが自分たちが構築しているものに責任を持ち、その影響と、すべてのユーザーデータを保護し、適切に管理することの重要性を真に理解していることを信頼しています。これは私たちにとってうまく機能しており、それは主に、私たちが自らに課した非常に大きな使命と、それが組織全体に浸透していることにかかっていると思います。

Facebook開発者トッド・ビショップ:もし間違っていたら訂正していただきたいのですが、2015年の初めには、注目を集めた大規模な消費者データ侵害事件が相次ぎました。この印象は間違っているでしょうか?少なくとも大きなニュースの見出しに関しては、ここ数ヶ月は少し落ち着いているように感じます。振り返ってみると…もしかしたら、私たちはただそれに鈍感になっているだけかもしれません。よく分かりません。

ピーター・オエラート:ええ。大規模な消費者情報漏洩については、正確な頻度を言うのは難しいですね。私自身、確かにたくさん経験しています。昨年、データを紛失したという手紙を何通受け取ったかは覚えていませんが、少なくとも6通は受け取りました。もしかしたらもっと多かったかもしれません。

Todd Bishop:セキュリティ担当者として、このような通知を受け取ったらどう思いますか?

ピーター・オエラート氏:私はいつもイライラしています。消費者の立場からすると、「データを渡したのに、相手が行ってしまったら、データを失った」という状況に似ています。… データに対するコントロールはほとんどなく、全く自分のコントロールの外にあり、責任も負わないものが、誰かが失ってしまうのです。

業界全体の観点から私が考えているもう一つの点は、この分野で成功を収めている企業にとって、他業界や、テクノロジー分野やこれらの業務運営に少し慣れていない人々と協力することがいかに重要かということです。彼らを育成するために、私たちにはどれほどの責任があるのでしょうか。Facebookは様々な方法でそれを実現してきたと思います。例えば、業界との連携です。スタートアップ企業と話し合い、彼らの事業にどのようにセキュリティを組み込めるかを議論するなどです。

私たちが構築しているフレームワークについて少しお話ししました。私たちは、それらのフレームワークのいくつかをオープンソース化しました。これは、他社が私たちの成功例を模倣し、私たちが構築したフレームワークを採用して同様のメリットを享受できるようにするためです。

Todd Bishop:オープンソースと言えば、Threat ExchangeやOSQueryのようなものを思い浮かべますか?それとは何でしょうか?

Peter Oehlert: Threat Exchangeは、様々な企業が脅威に関する情報を共有できるプラットフォームです。これは製品セキュリティチームの取り組みとは少し異なります。私たちは、どのように製品を構築するかという点に重点を置いています。Threat Exchangeは、データセンターやマシン、企業資産の運用に重点を置いたプラットフォームです。もし私が脅威に遭遇し、近隣の誰かが同じ脅威に遭遇した場合、エコシステム全体がそれらの脅威から学び、潜在的なセキュリティホールをより迅速に塞ぐことができるようになります。個々の企業が実際に何が起こっているかを隠すよりも、集団として行​​動することで、悪意のある攻撃者に対する防御力を高めることができるというのが、この考え方の真髄です。

OSQueryに関して言えば、OSQueryは私たち自身にとって本当に必要だとわかったツールです。私たちは多数のマシンを運用していますが、それらを運用しているプラ​​ットフォームの中には、優れた情報収集能力を持つものもあれば、そうでないものもあります。OSQueryは、LinuxやMacシステムのこうした欠陥に対処するために開発されました。マシン上で何が実行されているか、どのように構成されているか、ユーザーアカウントがどのように設定されているかといったすべての構成情報を収集し、それらすべてをまとめて適切なポリシーを適用できるようにするものです。

社内では大成功を収めました。オープンソース化したものでありながら、GitHubで最も人気のあるセキュリティプロジェクトの一つです。コミュニティに受け入れられ、大変嬉しく思っています。私たちのオープンソースプロジェクトの中で、外部からの貢献が最も多いプロジェクトの一つです。コミュニティはこれを非常に高く評価し、積極的に活用しています。これは、人々が抱えていた大きなニーズを満たしていることを物語っていると思います。

Facebookユーザー向けのヒント

トッド・ビショップ:今日は「セーファー・インターネット・デー」ですね。これはあなたの専門分野ではないことは承知しています。あなたは製品のセキュリティと、Facebookの開発者が安全な製品を開発していることの保証に重点を置いていますが、一般のFacebookユーザーにとって、Facebookで知っておくべきこと、心に留めておくべきこと、すべきこと、してはいけないことは何でしょうか?

ピーター・オエラート: Facebookで消費者が自分自身を守るための優れた方法の一つは、「セキュリティチェックアップ」というツールを使うことです。このツールを使うと、設定、データの共有方法、公開されているデータ、友達とのみ共有しているデータなどを確認できます。Facebookで自分が何を共有しているのか、迅速かつ簡単に正確に把握できます。

もう1つの優れたツールは「ログイン承認」です。これは、ログイン時に追加のチェックを行い、Facebookアカウントにログインしているのが本当に本人であり、他人ではないことを確認するものです。ログイン承認に加えて、Facebookに登録されているメールアカウントにも通知が送信されます。そのため、新しいAndroidスマートフォンを購入してログインすると、Facebookから「誰かが認識していないAndroidスマートフォンからログインしているのを確認しました。本当に本人ですか、それとも誰かがあなたのアカウントに侵入しようとしたのですか?」というメールが届く可能性があります。

最後に、消費者の皆様にお伝えしたいのは、Facebookに限った話ではなく、パスワードが非常に重要です。パスワードを使い分けるのは大変だと思いますが、利用するサイトごとに異なるパスワードを設定することは非常に重要です。銀行のパスワード、Facebookのパスワード、インターネットで何かを購入した際に使った会社のパスワードなど、同じパスワードを使い分けるべきではありません。異なるパスワードを使うことは必須です。「パスワード保存」や「パスワードストア」と呼ばれる優れたツールが数多く存在します。これらのツールを使うことで、それぞれのサイトごとに個別のパスワードを作成できます。

私は家族に、これが正しい行動だと説得するために一生懸命働きかけました。習慣になれば、実際にはかなり簡単にうまくいきます。しかしそれ以上に、誰かがあなたのデータを紛失したという手紙を郵便で受け取ったとき、あなたが相手にパスワードを一つだけ教え、それが他のシステムと共有されていないなら、あなたのアカウントデータを入手した者があなたの銀行やFacebookアカウントにログインしてお金を盗んだり、あなたになりすましたりすることはないと確信できます。

トッド・ビショップ: Facebook やセキュリティ、あなたの領域に関すること、そして世間の人々が知っておくべきことについて、まだ触れていないことがあれば、他に何か伝えたいことはありますか?

ピーター・オエラート:ご存知の通り、ホワイトハットプログラムについてはあまりお話してきませんでしたが、Facebookが実施している非常にエキサイティングなプログラムだと思います。Facebookは過去5年間、バグバウンティ(私たちはホワイトハットバグバウンティと呼んでいます)を実施してきました。これまでに400万ドル以上を支払い、約2,500件ものバグが報告されています。このプログラムの仕組みは、基本的に世界中のセキュリティコミュニティと連携することです。彼らにはFacebook製品のセキュリティ脆弱性を見つけるための許可が与えられ、報告された脆弱性が正当なものであれば、報酬を支払います。発見された脆弱性に対して報酬を支払うのです。

ホワイトハットレポートは、既にリリース済みの製品に関する貴重な情報源ですが、それ以上に、セキュリティコミュニティと深く関わり、彼らの成長を促す手段でもあります。このプログラムの運営によってもたらされた予期せぬ副次効果の一つは、これらの人々の生活に影響を与えることです。

最近、私たちの研究者の一人がFacebookから受け取った報奨金を学費に充てていることが分かりました。報奨金を受けた他の研究者の中には、この功績を活かそうと、Facebookのバグ発見に貢献したと名前を公表し、就職口を獲得しようとする者もいるでしょう。世界中で、私たちは全く新しい人々を支援することができます。彼らは、アメリカ国内ではなかなか顔を出さないかもしれません。なぜなら、それは非常に複雑な作業になるからです。しかし、それでも世界中から私たちを助け、彼ら自身も大きな利益を得ることができるのです。

Todd Bishop: White Hat プログラムから人材をチームに採用することはありますか?

Peter Oehlert:もちろんです。バグバウンティプログラムから数名を採用しており、実際、そのうちの何人かは、かつて応募していたバグバウンティを運営する製品セキュリティチームで今も働いています。実際、私たちがこれまでに支払った最高額のバウンティは3万3000ドル強で、そのバウンティを獲得した人物は今では私たちの従業員です。

トッド・ビショップ:そのバグは何でしたか?

ピーター・オエラート氏:このバグはシステム内でリモートコード実行を引き起こすものでした。非常に重大なバグでした。攻撃者が実質的に当社のサーバー上でコードを実行できる状態だったため、ホワイトハットによって発見され、より悪質な人物に悪用されなかったことは非常に喜ばしいことでした。彼には多額の報酬を支払いました。彼はこれまで数々の素晴らしいバグを発見してきた実績があり、「この人を雇う必要がある」と思ったのです。

トッド・ビショップ:彼らのモチベーションを保ち、喜んで来て、働いてもらえるだけの、そして実際の給料をもらえるだけの、しかし一生ビーチで暮らせるほど高額ではないだけの、十分な給料を支払うことが秘訣だと思います。

ピーター・オエラート:いいえ。確かに、それは私たちが行う最適化の一つには思えますが、実際に行うことを選択したわけではありません。私たちは、すべての支払いが可能な限り公平かつ合理的であるよう、本当に努力しています。支払い決定プロセスを全員と共有することはできないため、皆さんにはある程度の信頼をいただく必要があります。そのため、私たちは一貫性と公平性を保つために、本当に一生懸命取り組んでいます。

何か疑問や不安がある時は、必ずと言っていいほど、誰かに支払う金額を増やすという立場を取ります。誰かが何かを提出した際に、一度支払いを済ませた後、しばらく経ってからその影響が実際には誰もが認識していたよりもはるかに大きいことに気づき、再度支払いを戻したというバグもありました。

バグバウンティについてもう一つ強調しておきたいのは、セキュリティスキルを磨く絶好の機会だということです。アプリケーションセキュリティに興味があり、自分にもできることがあるなら、参考資料を読んだり、ブログを読んだり、書籍を読んだりするのも良いでしょう。もちろん、実際にキーボードを叩いて試してみることで、自分が本当に何を知っているのか理解し、報酬を受け取ることができます。

トッド・ビショップ:これは非常に根本的な質問ですが、誰かがあなたのシステムを善悪の判断でテストしているかどうか、どうすればわかるのでしょうか?つまり、まず登録して「Facebookさん、もし私があなたのシステムに侵入しても追及しないでください」と言わなければならないのでしょうか?

ピーター・オエラート:規約では、研究者が行う活動は良心に基づいて行われなければならないと定められていますが、内部統制によって何かが自動的に特定される場合もあります。研究者が行おうとしていたことが内部統制によって阻止されるような場合もあり、そのような場合には報酬を支払うことはありません。私たちは既にそのような事態から保護されています。研究者に本当に答えてほしいのは、彼らがそうした事態を回避する方法を見つけられるかどうかです。