油断すると、セキュリティに対する意識が薄れてしまいます。パスワードをもう一度入力しなければ解除できないような、煩わしいプロンプトが表示される回数が増えるほど、何を求められているのか注意を払わなくなる可能性が高くなります。もちろん、ここで私が言っているのは、iOS で表示される、一見ランダムで、時に頻繁に表示される Apple の iCloud ログインポップアップメッセージのことです。
iOSのメールアプリのHTML処理に、ある種の脆弱性が発見されました。これは、メッセージを無視したいというユーザーの欲求を悪用し、ユーザーが望む情報だけをメッセージに与えてしまうというものです。これはリモートコントロールやシステムアクセスを可能にするエクスプロイトではありません。むしろ、フィッシング詐欺を働くトロイの木馬の一種であり、不注意なユーザーも警戒心の強いユーザーも騙して、他の場所で利用可能な認証情報を不正な場所に入力させようとします。
この脆弱性を投稿したJan Souček氏によると、この脆弱性は1月にAppleに報告されたとのことです(ただし、彼はAppleのセキュリティ報告用メールアドレスではなく、バグ報告を行なったとのことです)。また、1月には問題を示す動画も投稿されています。Souček氏はTwitterで、Appleのセキュリティチームが1月からこの問題を認識していたことを確認しました。
2 段階認証を使用すればこのバグから保護されますが、Apple は iOS 9 でさらに強力なサポートを計画しています。
Appleの広報担当者は、「今回の概念実証によって影響を受けた顧客は把握していませんが、今後のソフトウェアアップデートで修正に取り組んでいます」と述べています。Appleは、Apple IDの2段階認証は、攻撃者にリモートアクセスできない2つ目の要素の使用を要求することで、他のフィッシング攻撃と同様に、今回のフィッシング攻撃を阻止できると確認しました。(AppleはiOS 9で、より強力なネイティブ2段階認証のサポートを計画しています。)
ポップオーバーをやめる
iOSを復元またはアップグレードした後、そして時には再起動した後に、iCloud、iMessage、その他のサービスへのログインダイアログが大量に表示されます。これは、Appleのクラウドサービスに紐付けられたApple IDが2つあることが一因です。Appleはアカウントと購入履歴の統合をうまく行ってくれないためです。古いApple IDはiCloud同期に、新しいApple IDはiTunesでの購入に使用しています。
時々、同じアカウントの同じパスワードと思われるものを6回から10回入力しないと、ダイアログが表示されなくなることがあります。これはシステム設計のまずさであり、AppleがiOS 9で改善してくれることを期待しています。たとえ2要素認証が必要な場合でも、同じリソースへの認証情報は、繰り返し要求するのではなく、短期間でまとめて管理するべきです。
ソウチェク氏が開発し、数日前にコードリポジトリに投稿されたこのフィッシング攻撃は、水曜日にArs Technicaのダン・グッドイン氏によって初めて報告された。メールの脆弱性を巧妙に利用したものだ。(グッドイン氏は、この脆弱性は4月にiOS 8.3で発生したと報告しているが、動画は1月のものであり、開発者はバグレポートを提出したことを認めている。)
メールアプリはHTMLをレンダリングできますが、リッチメッセージを表示する他のメールアプリと同様に、メール本文に関係のない、あるいは悪意のある目的で使用される可能性のあるタグやコンテンツをフィルタリングします。Součekは、HTMLページやテンプレートのヘッダー部分によく使われるタグを用いて、読み込み直後、あるいは一定の時間を置いてユーザーを別のページにリダイレクトします。これは、ページに「このリソースは移動されました」などの表示や「X秒お待ちください」といったメッセージが表示されるときに見られるものです。
メールは更新リクエストをフィルタリングできないため、悪意のあるHTMLメールはHTMLのあらゆる情報を含むページを読み込むことができます。脆弱性のないメールクライアント(Webメールやネイティブメールなど)は、この再読み込みを処理しません。処理するクライアントは、フィッシングメッセージの送信先メールアドレスが事前に入力された、モーダルなiCloudログインダイアログとそっくりなページを読み込みます。
メールはメッセージ内のフォームを解析して許可するため、リロードなしでもこのフィッシング攻撃が可能になりますが、メールメッセージが読み込まれた後に、見かけ上のポップアップダイアログがオーバーレイ表示される方が、より説得力があります。私たちはこのような動作に慣れています。
これらの要素の組み合わせを悪用するには、この手法が使われているメッセージを確認する必要があります。iCloudのスパムフィルタリングは、ヘッダータグ情報などの共通要素をすぐに検出するため、通過するメッセージはごくわずかでしょう。
兆候を読む
注意深いユーザーであれば、次のようなメッセージが表示された場合に気付くでしょう。
メッセージはメール アプリの電子メール部分にのみ表示されます。
メールをスクロールするとダイアログもスクロールします。
フォーカス (カーソルが配置されている場所) がフォームのパスワード フィールドに移動しても、キーボードは自動的に表示されません。
フィールドをタップしてキーボードが表示されると、フォームのように送信用の「Go」という単語が表示されます。
Home キーを押すとダイアログが閉じますが、実際のログイン メッセージではそうではありません。
読者の皆様、きっと心の中で微笑んで「こんなのに騙されるわけない」と思うかもしれませんね。でも、財布かハンドバッグの中を見て、私が入れたトランプを見つけてください!クラブの8ですか?探している間に、いつものセキュリティカードをフォルジャーのインスタントセキュリティに交換しました。
私が言っているナンセンスなことは、私たちでさえ、自己満足的な私でさえ、自分たちはそのようなフィッシングには騙されないほど洗練されていると思っている、ということだけです。それから、iCloud のログインダイアログを最後に見たのはいつだったか思い出そうとします。そして、私は詐欺の兆候を探さずに、単に入力してしまったのでしょうか? (私は 2 段階認証を有効にしているので、ほとんどの場合、私をフィッシングするのは無駄です。ほとんどの iCloud ユーザーは 2 段階認証を有効にしていません。)
Appleは、同じことを不必要に頻繁に表示することで、私たちに機械的な対応をさせています。セキュリティプロンプトの必要性を集約することでプロンプトを減らすこと(例えば、12回の検査で12回の注射ではなく1回の採血)は、ユーザーの注意力を向上させます。
この欠陥は簡単に修正できるはずです。AppleがiOS 8でこの脆弱性を悪用し、iOS 8が廃止される前に修正してくれることを願っています。しかし、Appleはユーザーから正当な承認を得る方法も再考すべきです。フィッシングは、私たちが気に留めないようなものに似せた場合にのみ機能します。