Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

スマホアプリのSSLサーバ証明書の検証不備について

9,113 views

Published on

  • Be the first to comment

スマホアプリのSSLサーバ証明書の検証不備について

  1. 1. 1 スマホアプリのSSLサーバ 証明書の検証不備について 谷口 隼祐
  2. 2. 2 自己紹介 最近行った、牛久大仏 がんばれ!茨城県
  3. 3. なぜ、今回OWASP Nightで話そうと 思ったのか? 3  とあるアプリの脆弱性がJVN公表された際のコメントがきっかけ  SSL通信周りの脆弱性判断は、判断のブレが大きい印象  現状では「SSLを使ってない=脆弱性」とは言い難い(個人見解)  ただし、スマホ周りを取り巻く環境の変化によって、脆弱性判断 も変わっていくかもしれない…  この発表が、脆弱性判断の議論の材料になればいいな
  4. 4. 4 いざ勢いで申し込んだものの _人人人人人人人人人人人_ > 大御所に挟まれてる! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ _人人人人人人人人人人人_ > まさかのギリギリ補欠!! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
  5. 5. 5 SSLで通信しないことは脆弱性か?  SSLは「お・も・て・な・し」  現状では、SSLで通信しないことだけを以って脆弱性とはいえない  SSLで通信の安全性を高めるか否かは、サービス提供者のポリシー 次第 ⇒ 脆弱性対策の実施とはまた別の話  利用者としては、より安全なサービスを使いたいので、サービス 提供者は積極的にセキュリティポリシーを公開するとよいと思う ここでの脆弱性の定義は、「情報セキュリティ早期警戒パートナーシップガイド ライン」に準拠することにします。 定義の詳細は、下記ガイドラインを参照ください。 http://www.ipa.go.jp/files/000002991.pdf
  6. 6. では、脆弱性と判断できる例って? (ウェブサイト編)  セキュリティポリシーに違反している   6 ポリシーでSSLで通信するといいつつ、実際には平文通信 SSLが適切に使われていない  サーバ証明書の有効期限が切れている  オレオレ証明書を使っている  フォームの送信先はSSLを使っている(https)が、フォームの設置 ページにはSSLを使っていない(http) [ご参考] HTTPSを使う際に入力フォームのページからそうしないといけない理由はなんですか- QA@IT http://qa.atmarkit.co.jp/q/2028
  7. 7. では、脆弱性と判断できる例って? (ソフトウェア編)  セキュリティポリシーに違反している   7 ポリシーでSSLで通信するといいつつ、実際には平文通信 SSLが適切に使われていない  ソフトウェア側でSSLサーバ証明書を適切に検証していない  SSL通信に暗号化のみを求めて、当該処理を実装している可能性  開発時やデバッグ用に一時的にオレオレ証明書を許可していたのを忘 れてリリースしてしまった可能性 接続先のサーバの正当性を確認しなければ、安全な通信 は実現できない
  8. 8. 8 SSLサーバ証明書の検証不備とは  不正な SSL サーバ証明書を使用 しているサーバであっても警告 を出さずに接続してしまう問題  中間者攻撃 による通信の盗聴や 改ざんなどが行なわれても、 ユーザが気づけない 出典:JVNDB-2012-000037 - JVN iPedia - 脆弱性対策情報データベー ス http://jvndb.jvn.jp/ja/contents/2012/JVNDB-2012-000037.html
  9. 9. 9 JVN公表されたアプリ 公開日 JVN番号 アプリ名 アプリ種類 2013/08/19 JVN#75084836 Yahoo!ショッピング Androidアプリ 2013/08/19 JVN#68156832 ヤフオク! iOS/Androidアプリ 2013/06/07 JVN#39218538 ピザハット公式アプリ Androidアプリ 2012/05/25 JVN#39707339 Opera 2012/04/26 JVN#82029095 spモードメールアプリ Androidアプリ 2008/04/23 JVN#76788395 mylo COM-2  ブラウザ 組み込みブラウザ JVN公表されたアプリは対策済み  ベンダが対策してくれたからこそ、JVN公表できている  ベンダ自身が届出をしてくることもある  ベンダ自身が届出をしたのかどうかは、IPAからのメールで判別可能
  10. 10. 10 検証環境  スマートフォン  Nexus7(Android4.3)  iPhone5s(iOS7.0.3) プロキシ(ノートPC)経由で無線LAN接続する  ノートPC  Fiddler リモートからのFiddlerへのアクセスを許可 HTTPSをキャプチャする
  11. 11. 11 アプリの挙動(証明書検証不備)  キャプチャした通信に、HTTPS通信が混じっている  エラーが発生せずに、いつも通りにアプリが使える
  12. 12. 12 アプリの挙動(証明書エラー)  証明書に関するエラーを表示する  アプリ起動時に証明書に関するエラー メッセージを表示し、アプリを終了する  証明書に関するエラーメッセージを表示し、 アクセスするか否かを利用者に選択させる
  13. 13. 13 アプリの挙動(その他エラー)  証明書に関するエラーではないものの、通信処理にエラーが発 生した旨をメッセージを表示する  アプリ起動時にエラーメッセージを表示し、アプリを終了する  SSL通信のページのみ表示されない
  14. 14. 14 検証した結果  証明書の検証に不備のあるアプリ   約30アプリ中、2アプリに証明書の検証不備があった 証明書を検証するアプリ  証明書を検証し、問題があればエラーメッセージを出すアプリは多いものの、 証明書に問題があることを通知するアプリは少なかった  エラーメッセージの内容によっては、電波が悪かったり、サーバメンテナンス 等の問題と捉えられかねないものもあった (攻撃は防ぐことはできているが)利用者は攻撃されている可能性に気 づけない。メッセージ内容はこれでいいのか?
  15. 15. 15 スマホアプリを取り巻く状況  公衆無線LANサービスの利用が一般的になってきた   信用のおけない無線LANアクセスポイントに接続するリスクが増えた スマホアプリにはアドレスバーがないものが多い    利用者が能動的に接続先や接続プロトコルを確かめることが困難である 利用しているスマホアプリを信用するしかない 常時SSLを提供するサービスが増えてきた  そのようなサービス用のクライアントアプリは対応が必須 冒頭で、SSLは「お・も・て・な・し」と言いましたが、こと スマホアプリにおいては、必須になっていくかもしれません
  16. 16. 16 ご参考 出典:ソニーデジタルネットワークアプリケーションズ株式会社 Android アプリ脆弱性調査レポート 2013年10月版(pdf) http://www.sonydna.com/sdna/solution/android_vulnerability_report_201310.pdf
  17. 17. 17 まとめ  SSLを使用するならば、適切に使用しましょう  スマホアプリを取り巻く状況を鑑み、積極的にSSLを使用してい きましょう  証明書に関するエラーを表示する際には、どのようなメッセー ジがよいのか意見募集中  利用者が安全でない環境でネットワーク接続している可能性を伝えるとよ い?それとも、単純にエラーが出た旨だけ伝えるほうがよい? って今日の話、1年以上前に徳丸さんが日記にほぼ書いてますやん orz スマートフォンアプリケーションでSSLを使わないのは脆弱性か | 徳丸浩 の日記 http://blog.tokumaru.org/2012/02/is-smartphone-application-without-ssl.html

×