iOSでApple IDのパスワードが盗まれるフィッシングダイアログを表示させる攻撃が発見!

iOSアプリの配信を自動化できるツール「fastlane」の創業者であるFelix Krause氏は10日(現地時間)、iOSにてユーザー名(ID)とパスワードを盗み出せるフィッシングダイアログを表示させる攻撃手法の概念実証を発表しています。

フィッシングといえば、オンラインバンキングやAmazonなどのオンラインストアのIDとパスワードを盗み出すために、本物のWebサイトと同じような偽Webサイトを作成して、利用者にIDとパスワードを偽サイトで入力させることで盗み出す攻撃手法です。

よくあるフィッシングサイトは、WebブラウザーでアクセスさせてテキストボックスにIDとパスワードを入力させますが、今回発見された攻撃手法はあたかもiOSのシステムダイアログを表示させているかのように表示するもので、今までのフィッシング攻撃とは少しひと味違ってより高度で罠にかかりやすくなっています。

【正規のダイアログと比べてみる】

01
左が正規のダイアログで、右がフィッシングダイアログ

今回、同氏がこの攻撃手法を発表した目的は、あくまで概念の証明をすることに過ぎず、この攻撃手法を実際に使うことは犯罪ですし、同氏は道徳的な理由でソースコードは開示していません。ただ、同氏はこのフィッシングダイアログを表示させるのは非常に簡単だったと述べています。

02
左がシステムが表示しているダイアログで、右がゲームアプリ上に表示したフィッシングダイアログ

iOSを搭載したiPhoneやiPadなどではたびたびユーザーにiTunesなどで利用しているアカウント「Apple ID」のパスワードを入力させます。例えば、iOSをアップデートするときやアプリをインストールするときなどに入力が求められます。

また、このApple IDのパスワード入力ダイアログは、ロック画面やホーム画面だけでなく、iCloudやGame Center、アプリ内購入にアクセスするアプリでも表示されます。

そのため、iPhoneなどのiOS利用者はApple IDのパスワードを入力するダイアログが表示されたら、自然とパスワードを入力するように“普段から訓練されている”といっても過言ではありません。

そんなユーザーに対して、本物とそっくりなパスワード入力ダイアログを表示させると、何の疑いもなくパスワードを入力してしまいそうです。

【フィッシングダイアログに引っかからないようにするためには】

このフィッシングは、システムダイアログとまったく同じように見える「UIAlertController」を利用することで、どんなアプリでもフィッシングダイアログを表示させることができるということです。

UIAlertControllerを使ったフィッシングダイアログのタチの悪い点は、iPhoneなどのライトユーザーだけでなく、技術的な知識を持った人であっても、それが正規のダイアログなのかフィッシングダイアログか判断することは困難なところです。

技術的な知識を持った人であっても簡単に正規のダイアログか、フィッシングダイアログかを判断できない攻撃手法ですが、どのようにして引っかからないようにすれば良いのでしょうか。

それはパスワード入力ダイアログが表示されたら、まずホームボタンを押してみてください。フィッシングダイアログは、悪意のあるアプリが表示しているので、アプリが閉じられれば、フィッシングダイアログも同時に閉じらます。

一方で、これがシステムダイアログ、正規のダイアログであれば、アプリを閉じてホーム画面に移ったとしても表示され続けているからです。

【メールアドレスを表示させないダイアログは?】

03

さて先ほど紹介したダイアログには、メールアドレスが表示されていました。システムダイアログであれば、自分のメールアドレスが表示されますが、フィッシングダイアログであった場合、iPhoneなどに保存されているアカウント情報にアクセスする術が今のところないため、被害者のメールアドレスを表示させることができません。

そのため、適当なメールアドレスを表示させる必要があります。その場合、被害者がまったく知らないメールアドレスが表示されているため、「これはフィッシングダイアログだ」と気付かれてしまう恐れがあります。

しかし、残念なことにメールアドレスを表示せず、「パスワード入力が必要です」とだけ表示させるシステムダイアログも存在しているため、そのダイアログをフィッシングダイアログとして表示すれば、被害者がフィッシングだと判断しづらくさせることができます。

【二要素認証を設定していれば大丈夫なんじゃないの?】

またAppleはアカウントのセキュリティーレベルを高める手段として「2要素認証機能」を提供しています。もちろん、この2要素認証を設定していれば、仮にIDとパスワードが漏れたとしても不正ログインは防げます。

ただし、iPhoneなどのiOS搭載機種を利用している人全員が2要素認証を設定しているわけではなく、あくまでオプション機能なのですべての人を保護できるわけではありません。

さらに大半の人は他のWebサービスで同じIDとパスワードを使い回していることが多いため、Apple IDのIDとパスワードが漏れてしまうと、他のWebサービスに不正ログインされる可能性も出てきます。

またIDとパスワードを入力させるフィッシングダイアログに仮にIDとパスワードを入力してサインインしてしまった場合に2要素認証コードを入力させる「フィッシングダイアログ」が表示されたら、信頼して2要素認証コードも入力してしまう可能性もあります。そうなってしまえば、仮に2要素認証を設定していたとしても攻撃者が不正ログインできる可能性が十分にあります。

今回発見されたフィッシングダイアログは、正直、筆者もひと目見ただけではそれが本物なのか偽物なのか判断できませんでした。しかも、パスワードを入力するダイアログが表示されたら条件反射的にパスワードを入力してしまいそうです。

このフィッシングダイアログを表示させるコードは公開されていませんが、もしもの時のために備えて「パスワード入力ダイアログが表示されたら、必ず一度ホームボタンを押す」ことを意識づけて行きたいと思います。

みなさんも他人ごとだと思わず、パスワード入力ダイアログが表示されたらホームボタンを押してみて、そのダイアログが正規のダイアログなのか、偽物のダイアログなのか確認することをオススメします。

記事執筆:YUKITO KATO


■関連リンク
エスマックス(S-MAX)
エスマックス(S-MAX) smaxjp on Twitter
S-MAX - Facebookページ
iOS Privacy: steal.password - Easily get the user's Apple ID password, just by asking — Felix Krause