2016/06/27

Uber の些細なバグが大きな脅威に発展

2016 年 6 月 27 日 MARC LALIBERTE 著

イギリスとポルトガルに拠点を持つコンサルティング会社である Integrity が先日、Uber のバグ発見懸賞金プログラムに参加し、興味深い調査結果を公開しました。ご存知の方も多いと思いますが、バグ発見懸賞金プログラムとは、企業や団体が懸賞金を出して、自社製品の脆弱性をセキュリティ研究者に報告してもらおうというものです。研究者に懸賞金を出すことで、発見した脆弱性を闇市場に売り渡す代わりに開発元に報告してもらい、脆弱性の解決に役立てることを目的としています。

Integrity は先週、Uber のバグ発見懸賞金プログラムでの経験を公開し、Uber の API やモバイルアプリのいくつかの分野でバグを発見したプロセスと、報告後に Uber によって修正された複数の脆弱性を明らかにしました。もちろん、その記事は必見で、お読みになることをお勧めしますが、ここでは、いくつかのハイライトをご紹介することにします。

Uber は、新規ユーザー向けのプロモーションや緊急時帰宅用の他の乗り合いサービスとの共同プログラムで、料金割引のプロモーションコードを発表することがあります。Integrity が実施したテストで、Uber のアプリにこのようなプロモーションコードの「総当たり方式」での使用の対策が欠落していることがわかりました。Integrity は 1,000 以上の有効なプロモーションコードを短時間で見つけましたが、Uber は当初、それらのプロモーションコードは公開されているものだとして、Integrity の調査を受け付けませんでした。Integrity がその後に、ワシントン地区のカープール(相乗り通勤)コミュニティの緊急帰宅プログラム向けの 100 ドル分のプロモーションコードを発見したことで、Uber がこの総当たり方式に関するバグを認め、この脆弱性は修正されました。

Integrity はさらに、実際の乗車時に Uber の携帯電話アプリからトラフィックを傍受し、割り勘用の Uber の API に電話番号を送信することで Uber のユーザー ID をエミュレーションできることを発見しました。これを他のバグと組み合わせることで、それらのユーザー ID を利用し、対応する Uber ユーザーの個人用メールアドレスに簡単に割り出すことができたということです。

さらに驚くべきことに、(上記のバグを使って取得した) 乗客のユーザー ID を使えば、ユーザーの乗車記録の詳細も入手できることがわかりました。これには、具体的には、乗車日、運賃、乗車した全経路の地図が含まれます。これらのバグをまとめて使うと、乗客の電話番号さえわかれば、そのユーザーの Uber の全乗車記録を恐ろしいほど細かいレベルまで取得できることがわかりました。

ただし、これらの脆弱性がすべて Uber に報告され、現在までにすでに修正されているので、ご安心ください。Integrity の記事は、セキュリティの些細な問題であっても、積み重なれば、大きな脅威になる可能性があることを示す、重要な例であると言えるでしょう。Web アプリのユーザー ID のエミュレーションは、単独では、個人情報流出につながる可能性があるという程度の問題かもしれません。けれども、それらのユーザー ID から、機密性の極めて高い情報を読み取られることになれば、問題は深刻化します。

Uber が Integrity の研究者と協力してこれらの問題をすぐに解決したのは、適切な対応だったと言えるでしょう。アプリケーション開発に携わっている方にはぜひ、外部のセキュリティ研究者からの報告に常に耳を傾けるようにしていただきたいと思います。社内の品質監査だけですべての脆弱性を発見するのは不可能で、だからこそ、外部の研究者が脅威からの保護・対策で重要な役割を果たすのです。– Marc Laliberte