Facebook Connect等のソーシャルログインがハッカーに情報をさらけ出す

FacebookやTwitter、Google等のアカウントを使ってWebサービスやアプリにログインする際は気をつけてほしい。OAuth 2.0やOpenIDといった広く使われているオープンソースのシステムの欠陥を用いて、攻撃者があなたを悪意のあるサイトにこっそりリダイレクトし、個人的なデータにアクセスするかもしれない。

中国人の大学院生、ジン・ワンは先日、”covert redirect”という脆弱性について発表した。この脆弱性についてはこれまでにも指摘されたことがあったが、新たに注目を集めたことでより一般的な攻撃手段となりえる。同時にこの脆弱性の修復を求める圧力も強まるだろう。

この脆弱性はFacebookやAmazon、GoogleなどのWeb認証に用いられているOAuth2.0やOpenIDといったテクノロジに端を発している。攻撃者はこの脆弱性を利用して、ユーザーがFacebookやGoogleを経由してログインしていると思っているアクセス先になりすましたサイトに誘導し、アクセス権限に応じて連絡先などの個人情報や、Google Appsの場合は保存されてるデータにアクセスすることができる。ワンは「Webサイトのパートナーサイトに対する過信から起こる結果だ」という。

Heartbleedの再来というわけではない

「これはHeartbleedの再来だとか、この世の終わりだとかいうわけではない。しかし注意が換気されるべき問題だ」とCloudLockのマーケティングディレクターであるケビン・オブライアンはいう。「これに目新しい点があるとしたら、社会的な現象を引き起こすということだ」。彼はワンが展開するこの脆弱性の告知キャンペーンを引き合いに出し、脆弱性が知れ渡ると、攻撃もそれに応じて頻発すると付け加えた。

ワンはこの脆弱性を2月に見つけた。彼は「この脆弱性をついた攻撃が既に起きたかどうかは分からない」と言っている。

ソーシャルログインサービスには、開発者に対するアピールポイントがいくつかある。Amazonの場合は、そのログインサービスを「数百万人の顧客への安全な接続性と、パーソナライズされたユーザエクスペリエンスの提供」と開発者に向けて説明している。ソーシャルログインをWebサービスやモバイルデバイスに組み込むことは容易で、ユーザーはAmazonのIDとパスワードを使って簡単にログインすることができる。

ここでのポイントは、ユーザーがAmazonを信用する場合、Amazonのログインサービスを使用しているサードパーティーも信頼するという点だ。これは開発者が自前の認証システムを用意すること無しに、やるべき事に集中する事を可能にするが、そのかわりにセキュリティ自体がオープンソースのOAuth2.0プロトコルに依存するということでもある。

セキュリティの欠陥を引き起こすもう一つの問題

今回の問題は、単にOAuth自体の脆弱性だけにあるわけではない。FacebookやGoogle、Amazonといった企業がどのように実装したかという問題でもある。

例えばFacebookの場合、開発者にホワイトリストの使用を推奨している。これはリダイレクト先を安全なURLに限定することで、結果的にOAuthのセキュリティ・ホールを回避するものだ。しかしこれは強制されているものではなく、結局多くの開発者が使用していない。

ワンがFacebookにこの問題を報告した時、FacebookはOAuth2.0についてのリスクは理解していると回答した。しかしながら全てのアプリケーションにホワイトリストの使用を義務付けるのを怠った事もあり、短期間での問題の収束は成し得なかったという。

ワンはGoogle、LinkedIn、Microsoft、Yahoo、Paypal、Weibo、Taobao、GitHub、QQにも同様の報告をメールで行った。返ってきた答えは以下のようなものだ。

Googleからは「この問題については認識しており、現在調査中です」と返ってきた。

LinkedInは「この問題については取り組むつもりです」という一文をブログに投稿した。

Microsoftは「問題を調査した結果、脆弱性はサードパーティー側によるものです」と回答した。これはワンが報告したものとは異なる内容だった。Microsoftはまた、サードパーティーにこの報告をした方がいいとも勧めてきた。

Weiboは「この脆弱性は深刻なものと思われるので、対応については開発者と相談してみる」と回答。

Taobaoは理由を明らかにせず対応をうち切った。

YahooとPaypalからは報告後数ヶ月たっても音沙汰が無い。

VK.com、Mail.Ruなどについては、セキュリティ問題についての報告先が分からなかったのでメールしなかった。

この脆弱性が修正されるまで、Facebook、Twitter、GoogleなどOAuth2.0を使用しているサイト経由でログインするときは気をつけてほしい。オブライアンは、「サイト閲覧中に突然初めて見るようなソーシャルログインの情報要求があれば、その時は一旦考えた方がいい」と言っている。

Pocket