中間者攻撃によりSNSアカウント情報などが窃取される可能性のあるAndroidアプリ 46
ストーリー by hylom
とりあえず注意喚起 部門より
とりあえず注意喚起 部門より
headless 曰く、
Android向けセキュリティーツールを提供するAppBugsによると、Androidアプリの中にはSSLの実装に問題があるものも多いという。メジャーなSNSやクラウドサービスのアカウント情報を使用する人気アプリでも、こういった問題を抱えるものが発見されているそうだ(AppBugs、Social Plugin Vulnerabilities、VentureBeat)。
AppBugsのブログ記事でリストアップされているアプリは14本だが、リストは随時更新されており、その後3本が追加されて計17本となっている。これらのアプリはいずれもサーバー証明書を正しく検証しないため、中間者攻撃が可能となる。リストアップされているのは大半が100万ダウンロード以上の人気アプリであり、1億4千万人以上が影響を受ける可能性があるという。
リストアップされているアプリは以下のとおり。なお、既に問題が修正済みのFoxit MobilePDFは除外している。皆さんがご利用のアプリは含まれているだろうか。
- MeituPic
- Astro File Manager with Cloud
- gReader
- Windows Live Hotmail Push Mail
- JustUnFollow
- Brother iPrint & Scan
- Software Data Cable
- FriendCaster Chat
- PrintHand Mobile Print
- Phone for Google Voice & GTalk
- Instachat
- InstaMessage
- InstaG
- Wondershare PowerCam
- ES File Explorer File Manager
- SkyDrive Assistant
OneDrive など ログイントークンを無効にできない Android アプリもなんとかすべき (スコア:5, 興味深い)
Microsoft 製を含む大多数の Android アプリに存在する「脆弱性」であって、HTTP Over TLS の脆弱な実装と合わせて対処すべきだと思うので投稿します。
最近、ユーザーが、ログイントークン・セッションIDを無効にできない Android アプリ・Webサービスが急増しています。以前は別の端末からログインすると前の端末から自動ログアウトされるサービスが多かったので問題が無かったのですが、マルチデバイスに対応する際に何故か危険な実装となってしまったのだと思います。
本日、Android に OneDrive (v3.1.1) をインストール・サインインして、検証したところ、
これは、とっても恐ろしい現実的な脅威です。Android スマホを紛失してしまったことに気が付いたとしても、ログイントークンを無効にできないので、拾った人が OneDrive アプリでデータのダウンロード・追加・削除がし放題な状況が続きます。上記のように、パスワードを変更しても駄目で、ログイントークンを無効にする手段が存在しないことから、速やかにアカウントのデータを削除して、新たなアカウントを作り直すしかありません。Android 端末は初期化をしてもログイントークンが復元できることが多い [security.srad.jp]ので、古くなって使わなくなった端末を手放すのも危険といえます。
一方、Goolge は、Google 製のアプリを含めて Web上の管理ページからログイントークンを個別に無効にすることが可能で、またパスワードを変更することで全てのログイントークン・セッションIDが無効になるという安全な仕様となっています。他社も Google を見習うべきです。
OneDrive 脆弱性の件 - 追記・訂正1 (スコア:2)
新たな事実が判明したので追記します。
2015年07月02日 13:22 に行った、「パスワードの変更」または「信頼済みデバイスをすべて削除」から、時間的にかなり遅れて、ログイントークンが無効になったようです。
なお、エラーメッセージが表示されて1秒未満でパスワード入力画面に飛ばされたので(自動リダイレクトになっていたのか誤タップしたのかのどちらか)、メッセージの内容を正確に読み取ることはできませんでしたが、ログインが無効になったことを示すような内容でした。
原因としては、ログイントークンの無効化の処理に時間がかかるようになっているのか、ログイントークンを一定時間ごとに自動更新する仕様となっており「パスワードの変更」または「信頼済みデバイスをすべて削除」によって自動更新でエラーとなった可能性が考えられます。
なお、エラーメッセージが表示されて1秒未満でパスワード入力画面に飛ばされたので(自動リダイレクトになっていたのか誤タップしたのかのどちらか)、メッセージの内容を正確に読み取ることはできませんでしたが、ログインが無効になったことを示すような内容でした。
「拾った人が OneDrive アプリでデータのダウンロード・追加・削除がし放題な状況が続きます。」の「し放題な状況が続きます」を「約1日程度し放題な状況が続きます」に訂正します。
ただ、ログイントークンの無効化が行われるまで結構な時間があるので、端末を拾った人が OneDrive アプリでデータのダウンロード・追加・削除が行える時間的な猶予があり「脆弱性があるといえる状態」なことには変わりありません。
Re: (スコア:0)
特定のデバイスの表示と全体の状況を同じと思った理由はありますか?
もっとひどいのは (スコア:0)
MACアドレスとか端末IDをログイントークンにしているサービスもあります。
仮想OSの検証時にそこらへんを0埋めしていると他人のアカウントにログインされたりで驚きます。
Re: (スコア:0)
「簡単ログイン」の悪夢がより悪化して跳ね返ってきてるというか、
偽クライアント用意すれば偽装し放題な自主申告の項目で認証している上に、
その項目自体全く秘匿されてないってもうどうしようもないレベルのゴミですね…
驚くというかブチ切れて良いよ、それ。とりあえずIPAか何かに通報したい。
Re: (スコア:0)
> とっても恐ろしい現実的な脅威です。
Google「しょうがないなあ [google.com]」
現実的って言葉使うならもう少し現実的に考えたほうがいいと思うよ。
OneDriveがクソなのは同意だよ。
Android デバイス マネージャーはあてにならない (スコア:2)
そう突っ込まれそうだったので、「Android 端末は初期化をしてもログイントークンが復元できることが多い」と書いておいたんですが……。「端末を探す」機能で探せば良いという意味だとしたら、GPSが有効になっていないと機能しないという糞仕様なので、難しいと思います。GPSを常に有効にしているとバッテリー消費が激しいので、マップアプリを使うときなど以外は無効にしている人が多いのでは? 統計を取ったわけではありませんが、私の周囲の人はWiFiやGPSは使うときだけ有効にしています。
Android のデータ削除機能はデータの管理領域を削除(削除フラグが立っているようなもの)しているだけ [security.srad.jp]なので、パソコンでマウントしてから、量販店で売っている「データ復旧ソフト」を使うだけで復元できます。root 化が必要な場合も、ワンクリックで root化するアプリがネットに流れています。データ復旧には市販のソフトを使うだけでよく、ご丁寧に Android ではアプリ毎にデータが保存されるディレクトリが決まっていますから、ログイントークンをそのままコピーすることも簡単です。(Android 5 で改善されたかどうかは検証していないのでわかりません)
ということで、十分に現実的な危険だと思います。ちなみに、通信内容を改ざんして中間者攻撃を行うには、Androidからログイントークンを取り出すのよりも、はるかに高度で専門的な知識が必要です。
Re: (スコア:0)
紛失した端末を鳴らす、ロックする、データを消去する
言いたかったのはここ。
> GPSを常に有効にしているとバッテリー消費が激しいので
最近は現実的にそれほど問題ではない。
Android 5.1 以外ならばロック状態で初期化可能 (スコア:2)
「ロック」された状態であっても、スマホの電源を切ってから、「電源ボタン」+「音量上げボタン」+「音量下げボタン」を同時長押しすると、「Android system recovery」という画面になって「wipe data/factory reset」ができます。これには、Google アカウントのID・パスワードも、ロック解除コードも必要ありません。
これをすると「端末の初期化」機能を使った後の状態となるので、#2840952 [security.srad.jp] で書いたのと同様のことができてしまいます。
操作手順は、リカバリモードで端末をリセットする [google.com]にある通りです。ただし、Android 5.1 以降 では「リカバリ メニューを使用して端末をリセットする場合は、セットアップ処理の際に端末に関連付けられている Google ユーザー名とパスワードを入力する必要があります」 [google.com]とのことで、この方法は使えないようです。
確かに昔と比べるとGPSの電池消費量は減っているようですね。
Re: (スコア:0)
ロックを解除しないで工場出荷状態に戻した場合にどれだけ工場出荷前のアプリをインストールできるの?
Re: (スコア:0)
「工場出荷前のアプリ」とはプリインストールアプリ?
工場出荷状態なんだからインストール状態になると思うんですが、ロック状態からだと何か違ったりするんですかね?
でも、どっちにせよマウントさえ出来ればよいので関係ない話と思いますが。
Re: (スコア:0)
ストレージの痕跡抹消(乱数書き込みや0フィル)までやってないから、
出荷時状態まで戻しても管理権限さえ得られればファイルの復元が可能。
そもそもユーザーデータ領域の痕跡を掘り出すのが目的だから入ってたアプリを入れ直す必要なんて無い。
# 究極では分解してeMMC端子を引き出してSDカードリーダーに繋げば端末リセットも不要だが、工作的な難易度はちと高いか
Re: (スコア:0)
ファクトリリセットしても、ファイルシステム上の管理情報上消えてないってことで合ってる?
(生ストレージとしてみればデータの残骸があることは理解できる)
そこまで調査されるような動機を持たれるようなら、もうロックもファクトリリセットも関係ないと思う。
Re: (スコア:0)
MSのヘルプの方では、「信頼済みとして指定したデバイスにアクセスできなくなった場合 (ノート PC を紛失したり、盗まれたりした場合)、アカウントのセキュリティ保護のため、Microsoft アカウントからすべての信頼済みデバイスを削除することをお勧めします」と書かれているので、それってヤバイバグか(仕様上の)不具合なんじゃない?スラドだけじゃなくてMS公式のサポート掲示板にも、アプリやOSバージョン等の詳しい情報を添えて投稿してみた方がいいんじゃないかな…。
https を使うなら 「サーバの証明書の検証」だけでは不十分 (スコア:2)
多くの解説サイトや書籍が、TLS (や既に過去の遺物である SSL) と HTTP Over TLS [ietf.org] (所謂 https) というレイヤーの全く違う規格を混同した記事を書いているせいか、誤解している人が多いようですが、 TLS として正しく「サーバ証明書の検証」 [wikipedia.org] したとしても HTTP Over TLS における成り済まし攻撃は防げません。
もっと具体的にいうと、OpenSSL を使っているならSSL_CTX_set_verify [openssl.org] で、TLS としての「サーバ証明書の検証」ができますし、これで TLS としての「サーバ証明書」の検証が終わったことになりますが、それだけでは不十分なのです。何故ならば、通信を改ざんした悪意のある第三者が、別の証明書(悪意のある第三者がCAから正規に購入した別の証明書、つまりクラッカーが秘密鍵を持っている正規CA発行の証明書)にすり替えたとしても検証(RFC上正しいTLSとしての検証でも)に通ってしまうからです。
TLS を http で用いる場合(HTTP Over TLS)には、RFC [ietf.org] によると、subjectAltName か Common Name を検証しなくてはなりません。
これは結構鬼門でして、コモンネームの位置づけ The (soon to be) not-so Common Name [globalsign.com] を読んでいただくと分かりやすいですが、ブラウザ等の実装を考えますと今のところは subjectAltName ではなく Common Name を使わざるを得ない現状です。
Common Name の検証は、多くの TLSライブラリ(OpenSSL も含む)ではできません。従って、プログラマーが自前で Common Name を検証するためのコードを用意する必要がある ケースが多いと思います。Android SDK の場合は Warnings About Using SSLSocket Directly [android.com] を参考にして下さい。
Re:https を使うなら 「サーバの証明書の検証」だけでは不十分 (スコア:2, 参考になる)
要約:HTTPS等はTLSの証明書チェーンの検証に加えてCommonNameをチェックしないと通信が他所を向いたとき等に大穴があくので、みんなWarnings About Using SSLSocket Directly [android.com]を参考にチェックするコード書いてね。
Re: (スコア:0)
多分、自分所のサーバーで使ってる証明書の一部をアプリに持たせて検証させたほうが簡単で早いね。
どーせアプリ自体が改竄されたらそのクライアントは諦めるしか無いんだし。
Re:https を使うなら 「サーバの証明書の検証」だけでは不十分 (スコア:1)
GnuTLSでは
gnutls_server_name_set
wolfSSLでは
wolfSSL_check_domain_name
でドメイン名を指定すればCommon Nameのチェックができますよ
効果的セキュリティアラート (スコア:1)
「アプリの名前だけ並べられてもわかんねえよ!!せめてアイコン並べれば気がつくよ」
「アイコン後で変えられたらどうする?」
「もういいよ!!Google様がリスト作ってチェックしてくれよ!!
金はいいからアンインストールするかどうかはこっちで決めっからよ!!」
散歩してたら、なんか大声でしゃべっている人がいたのが聞こえた。
#幻聴が出た覚えがないな
#存在自体がホラー
Re:効果的セキュリティアラート (スコア:1)
s/Google様/第三者の監査機関が認定した企業/
#存在自体がホラー
Re:効果的セキュリティアラート (スコア:1)
でも、OSに置いとくほうが安全ではあるんだよなあ....
#存在自体がホラー
ライブラリ (スコア:0)
このアプリ全部がSSLを0から実装したとは思えないので
SSL/TLSの実装にどんなライブラリを使っていたのか気になります
Re: (スコア:0)
http://stackoverflow.com/questions/19723415/java-overriding-function-t... [stackoverflow.com]
こんな感じの開発用コードを入れたままリリースしてしまったか、そもそも証明書を買う金をけちったか。
Re: (スコア:0)
ルート証明書は購入しなくても手に入るでしょ
端末にあらかじめ入ってるルート証明書を利用する手だってあるわけで
Re: (スコア:0)
証明書について理解してるのかとても不安になるコメントだ…
Re: (スコア:0)
証明書なんて買わなくても問題ない。
オレオレ証明書で問題なのは誰の証明書かわからないってことで、アプリでは分かってるんだから、それをチェックすれば問題ない。
そのチェックをしないことが問題になってるんでしょ?
そもそも (スコア:0)
魍魎跋扈するアプリストアにおいて、公式ベンダ以外のアプリに認証情報晒すって時点でかなりキツイ。
実は毒入りなアプリを踏むリスクと、中間者攻撃を受けるリスク、どっちが上かな?
Re: (スコア:0)
自作すりゃ良いじゃん
Re: (スコア:0)
跳梁跋扈?
ES File Explorer File Manager 使ってるけど (スコア:0)
ファイルマネージャーに認証情報なんか必要だったっけ?
Re: (スコア:0)
え?使ってないの?マジ?
普通は使ってるもんだけど。
Re: (スコア:0)
クラウドストレージに直接アクセスする機能がありますよ
その際にクラウドストレージにログインします
Re: (スコア:0)
ES File Explorer File Managerって
オラインストレージも対応しているから必要でしょ
やっつけ (スコア:0)
建前上は対策しなきゃならんのだろうけど
穴だらけのスマホの時点で
セキュリティなんて気にするだけ無駄なんじゃないかな
むしろセキュリティきにせずに
カジュアルに使う専用って割り切った方が楽
セキュリティ気にする用途の時だけ
ガチガチに固めたPC使うっていうような
用途別の使い分けでさ
Re:やっつけ (スコア:1)
Re: (スコア:0)
無数のアプリが穴を開けまくるので、収拾がつかないので諦める。
と言っているように思えるんだけど、それでいいんだろうか。
Googleがアプリの審査時にチェックすべきじゃないのかな。
スマホって意外とPC以上に個人情報を持っていたりするので、それのセキュリティを諦めるという人とはお付き合いしたくないな。
かくいう自分もAndroidユーザなんだが、セキュリティが高いことで評判のあるWindows Phoneに乗り換えたい。
MSから本気のLumiaが出るという噂もあるので期待してるが、日本はまた蚊帳の外かもしれない。
Re: (スコア:0)
逆じゃね?
スマホに個人情報入れるような無責任な人と距離置いたほうがいい
仕事なら仕方ないけどプライベートは切り分けたほうがいい
# スマホはSIMなしWi-Fiかもしくはお手軽SIM別買いで
Re: (スコア:0)
スマホに個人情報入れずに何に使っているんだろうか…
Re: (スコア:0)
通話とメールはガラケー
ネット専用でMVNOでスマホとかじゃないの
自分も安く買ったスマホをネット閲覧や地図ぐらいにしか使ってないな
Re:iOSには決して矛先を向けないところのソースは信用できない (スコア:1)
特定プラットフォーム限定で調査を始めるのが普通だと思うよ。
気になるんなら、自分でiOSプラットフォームで同じ調査をしてみれば?
#調査にだって金がかかるというのに、なんでそれが分からん人がいるんだオル.
Re: (スコア:0)
そもそも「Android向けセキュリティーツールを提供する」企業がどうしてiOSアプリの調査をしなくちゃならんのか。
Re: (スコア:0)
> #調査にだって金がかかるというのに、なんでそれが分からん人がいるんだオル.
調査を潰すオカネを出してるリンゴさんが常に安全安心ってことになるわけです
Re:iOSには決して矛先を向けないところのソースは信用できない (スコア:1)
リンク忘れてますよ。
http://www.blendtec.com/ [blendtec.com]
#存在自体がホラー
Re: (スコア:0)
iOSに矛先を向けたところでこの問題の危険性が下がるわけじゃないでしょ…
アップル憎しで目がくらんでません?