IPA20140919

本日、IPA(独立行政法人情報処理推進機構)から表題のプレス発表が公開されました。

IPAからのプレス発表 (http://www.ipa.go.jp/about/press/20140919_1.html)

内容は2014年9月3日に米国のCERT/CCが行った報告を踏まえたもので、複数のAndroidアプリに「SSL証明書を適切に検証しない脆弱性」があることが確認されたことから、開発者に対して注意喚起するものとなっています。
なお、CERT/CCの報告では問題が確認されたアプリのリストが公開されており、現時点で複数の日本語名のアプリを含む617のアプリが記載されています。

実はこの「SSL証明書を適切に検証しない脆弱性」は2ヶ月に1度くらいの割合でJVN (Japan Vulnerability Notes)にも報告が上がってくるもので、個人的には「何で同じ問題が色々なアプリから上がってくるのだろう?」と思っていました。
JVNが公開している脆弱性対策情報データベースをAndroidというキーワードで検索してみると「SSL証明書を適切に検証しない脆弱性」が多く報告されていることが分かります(「サーバになりすまされる脆弱性」と表記されている場合もあります)。

JVN iPedia 脆弱性対策情報データベース (http://jvndb.jvn.jp/)

多くの報告があるということは、「開発者がついやってしまうこと」が脆弱性につながっているのではないかと推測できます。
例えば以下のようなことです。

  • インターネット上で見つけたhttps通信のサンプルコードを内容を理解せずに流用してアプリを実装する
  • テスト用サーバを使ってアプリのテストする際、証明書エラーのダイアログが出ないように証明書チェックを無効化する
  • テスト項目にアプリが偽のサーバに誘導された場合について項目が無い

どれもやりがちじゃないかなぁ、と思いますが思い当たることはありませんか?

IPAのプレス発表では問題有無を確認するツールとして「アプリの脆弱性の学習・点検ツール AnCoLe」を紹介しています。
Androidアプリの脆弱性の学習・点検ツール AnCoLe (https://www.ipa.go.jp/security/vuln/ancole/index.html)
(タオソフトウェアが開発協力しています)

実装方法については、以下の資料に解説されていますので参照ください。
JSSEC「Androidアプリのセキュア設計・セキュアコーディングガイド」(http://www.jssec.org/report/securecoding.html)
(タオソフトウェアも執筆協力しています)

それからもう一つ(One more thing)。
他社のライブラリを自アプリに組み込んでいる方は、CERT/CCのリストをぜひ確認してください。ライブラリに脆弱性があることが報告されています。
リストの内容は随時更新されているようで、問題が解決されたバージョンの情報等も記載されています。現時点(2014年9月19日)で以下がリストされています。

  • Flurry(3.4.0で解決済み)
  • Chartboost(2.0.2で解決済み)
  • Adcolony(未解決)
  • MoMinis(未解決)
  • Inmobi(未解決)
  • Tapjoy(未解決)
  • Appsflyer(未解決)
  • Gameloft(未解決)
  • Zopim(未解決)
  • Fiksu(未解決)

ライブラリ内の問題は使っている側で見つけるのはとても難しいですし、残念ながらAnCoLeでも検出できません。
タオソフトウェアが提供している「Androidアプリの脆弱性診断ウェブサービス Tao RiskFinder」を使えばライブラリ内の問題も検出できます。
詳細はこちらhttps://www.taoriskfinder.com/

ブログ内の関連する記事