複数の Android アプリに SSL 証明書を適切に検証しない脆弱性

(Android や iOS を含め)携帯端末アプリには珍しくないので「あーまたやらかしてら」とあまり気に留めてなかったのですが,どうやらかなりヤバイみたいです。

Finding Android SSL Vulnerabilities with CERT Tapioca | certcc
Vulnerability Note VU#582497 - Multiple Android applications fail to properly validate SSL certificates
JVNVU#90369988: 複数の Android アプリに SSL 証明書を適切に検証しない脆弱性

どういうことかというと, US CERT が今回の脆弱性について調査してみたら Flurry を含む複数のライブラリに脆弱性があったようです(ちなみに Flurry は fix されてます)。それでこれらのライブラリを利用しているアプリを調べてみたらあまりに多すぎて「こりゃああかん!」って事になったようです。 CVSS base 値は 8.3 です。かなりヤバイです。

ちなみに US CERT では問題のあるライブラリとアプリの一覧を Google Spreadsheet で公開しています。COOL ですね。日本のお役人なら Excel シートで公開していたでしょう(笑) 調査は MalloDroid と呼ばれる検証ツールで行われたようです。 MalloDroid で検証できなかったアプリについて一部は個別にテストを行っているみたいです(Spreadsheet の “Vulnerable” が yes になってるアプリ)。

Android 端末ユーザは,このリストを参照して問題のあるアプリ(“mallodroid broken” が FALSE 以外のアプリ)の使用を控えて下さい(SSL の中間者攻撃は,普通はいくつかの条件(公衆無線 LAN を使っている,無線 LAN を暗号化してないもしくは暗号化が弱い,信頼出来ない Proxy を経由している,等)が揃わないと成立しません)。可能であれば作者に改善を促すよう働きかけるのもいいかもしれません。

作者の方は,問題のあるライブラリを使って SSL 通信をしてないかチェックしてみて下さい。現時点で Flurry と Chartboost は修正版が出ているようですが,それ以外でリストにあるライブラリを使っている場合はライブラリの変更(容易ではないですが)を含めて対策を検討する必要があります。すぐに対策できない場合はとりあえず「SSL に問題がある」というアナウンスだけでもしておくべきです(正しいインシデント・レスポンスはユーザの信頼をかち得ます。ピンチはチャンス)。