ハッカーが1つのリンクでAndroidスマートフォンをワイプしないようにする方法

Galaxy S IIIトップ画面

Androidエコシステムは昨日、単純なリンク(オンラインで開くだけのもの)が一部のAndroidデバイスの完全なワイプをトリガーする可能性があることを明らかにし、衝撃を受けました。Ravi Borgaonkar研究員がこの悪用を明らかにし、(もちろん)すべての注目を集めたデバイスは、最も売れているSamsung Galaxy S IIIでした。Samsungはすでにこの脆弱性に対するパッチを発行しています。しかし、他の多くのAndroidスマートフォンは明らかに同じエクスプロイトに対して脆弱であることがわかりました。問題の原因は、標準のAndroidダイヤラにあります。Googleが数か月前に問題にパッチを適用したとしても、その修正は現在のAndroidデバイスには適用されなかった可能性があり、多くの人がそれを受け取ることはありません。

懸念の原因はありますが、あからさまなパニックはありません。このエクスプロイトの仕組みと、Androidユーザーが自分自身を保護するためのヒントをいくつか紹介します。

USSDとは?

新しいAndroidエクスプロイトは、ほとんどの電話に組み込まれているUSSDまたは非構造化補足サービスデータと呼ばれるプロトコルに依存しています。 USSDはテキストメッセージングプロトコルと少し似ていますが、電話ユーザー間のショートメッセージの送信に使用されるのではなく、デバイスメーカーと携帯通信会社の両方が電話とネットワークのアドオンサービスを構築できるようにすることを目的としています。テキストメッセージと同様に、USSDメッセージは短い(最大182文字)ですが、テキストメッセージとは異なり、実際にはデバイスとネットワークエンドポイント間の双方向ネットワーク接続を開くことができるため、SMSメッセージよりも応答性が高く、リアルタイムのインタラクティブサービスに使用されます。

プリペイド電話サービスに依存している人々は、おそらくUSSDサービスを使用して残りのプリペイド残高を確認しているでしょう。たとえば、T-Mobileのプリペイドユーザーはダイヤル  #999#して残高を確認します。それがUSSDです。ただし、USSDはモバイル決済サービスなどのより洗練されたアプリケーションをサポートできます。実際、これは、一部の開発途上国が北米やヨーロッパよりもモバイル決済に進んでいる理由の1つです。他のサービスは、Twitter、Facebook、およびその他のソーシャルネットワーキングサービス用のソーシャルネットワーキング機能を構築していますが、これらは通常、新興市場のフィーチャーフォンでのみ見られます。

USSDはGSM電話(AT&TやT-Mobileなどのキャリアによる標準ユーザー)に実装されていますが、VerizonやSprintなどのCDMA通信事業者の電話を使用している場合でも、すぐに使えるというわけではありませ。多くのUSSDコードはローカルデバイスでアクションをトリガーし、USSDをサポートするモバイルオペレーターを必要としません。 CDMAネットワーク用に構築された多くの電話は、これらのコードに応答します。

USSDは、定義上、構造化されていません。つまり、電話は同じUSSDコードのセットをサポートしていません。さまざまなメーカーや携帯電話会社は、USSDの機能やサービスを開発する方法について、主に自分の本能に従っています。Nokiaの電話で1つの処理を実行するUSSDコードは、LGの電話でまったく別の処理を実行する場合もあれば、まったく実行しない場合もあります。ただし、よく使用されるコードの1つはです*#06#。このコードは、多くの場合、デバイスの一意のIMEI(International Mobile Equipment Identity)番号を表示します。

電話:私の話

Ravi Borgaonkar(USSDの脆弱性、Samsung)

USSDは新しいものではなく、Androidに対する新しい脅威でもありません。 Ravi Borgaonkarが示したのは、USSDコードと「tel:」URLプロトコルの驚くほど単純な組み合わせでした。 Webリンクや電子メールアドレスなどのURLプロトコルを見たことがhttp:ありmailto:ます。これらはそれぞれとです。ただし、他にも何百ものURLプロトコルがあります。

このtel:プロトコルにより、ユーザーはWebブラウザーから電話番号をダイヤルできるようになります。たとえば、tel:555-1212は、ほとんどのアメリカ人を全国的なディレクトリアシスタンスに接続する必要があります。Borgaonkarのデモンストレーションでは、tel:URLスキームと特定のUSSDコードを組み合わせました。これは、ご想像どおり、一部のAndroidデバイスの出荷時設定へのリセットを実行できます。Borgaonkarは、このファクトリーリセットUSSDを「Samsungの悲劇」と呼んでいます。これは、Samsungのワイプコマンドの実装にユーザーの介入が含まれていないためです。他の一部のデバイスには同様のファクトリーリセットコマンドがありますが、少なくともユーザーからの手動確認が必要です。

理論的には、攻撃者が実行する必要があるのはWebサイトに悪意のあるURLを埋め込むことだけであり、そのページを読み込む脆弱なデバイスはすべて工場出荷時のデフォルトにリセットされます。(場合によっては、SIMカードの消去も含まれます。)

これは電話の内蔵ブラウザの脆弱性だと考えたくなりますが、Androidの場合はデフォルトのAndroidダイヤラにあります:Borgaonkarは、QRコード、WAPプッシュSMSメッセージ、および(in Galaxy S IIIの場合)NFC経由でも。ブラウザを関与させる必要はありません。Androidフォンで番号をダイヤルできるアプリは、USSDコマンドをトリガーする可能性があります。

世界の終わりではありませんか?

脆弱性はかなり悲惨に見えるかもしれませんが、ドイツの独立系セキュリティ会社であるAV-TESTのHendrik Pilz氏とAndreas Marx氏は、この脆弱性はおそらくサイバー犯罪者にはあまり魅力的ではないと指摘しています。

「電話を一掃したりユーザーをロックアウトしたりすることは意味がないので、マルウェアの作者の大多数はこの脆弱性を悪用することに関心がないと私たちは考えています」と彼らは電子メールを介して声明で述べた。「マルウェアはシステム上で静かにしようとするため、モバイルデバイスが悪意のある、場合によっては犯罪行為に使用される可能性があります。これは稼働中のシステムでのみ機能します。」

お使いの携帯電話は脆弱ですか?

ソニーXperia PレビューサイドバイサイドサムスンギャラクシーS3 Android携帯

これまでのところ、選択されたSamsungの電話のみが、出荷時設定にリセットするUSSDコードを持っていることが実証されています。しかし、それは他のベンダーからの平均電話はしませんしていない、攻撃者が電話を拭くために使うことができると同様のコードを持っている原因のデータの損失、または潜在的にも高価なサービスのユーザーをサインアップしてください。結局のところ、それはAndroidマルウェア作者のお気に入りの娯楽です。

残念ながら、AndroidスマートフォンがUSSDベースの攻撃に対して脆弱かどうかを判断する確実な方法はありませんが、ユーザーダイヤラーが脆弱かどうか確認できます。

次のデバイスは、WebページからのUSSDコードのダイヤルに対して脆弱であることが確認されています。

  • HTC欲望HD
  • HTC欲望Z
  • HTC Legend
  • HTC One W
  • HTC One X
  • HTC Sensation(XE)(Android 4.0.3を実行)
  • Huawei Ideos
  • Motorola Atrix 4G
  • モトローラのマイルストーン
  • Motorola Razr(Android 2.3.6を実行)
  • Samsung Galaxy Ace、Beam、S Advance
  • Samsung Galaxy S2
  • Samsung Galaxy S3(Android 4.0.4を実行)

繰り返しますが、これはこれらのすべてのデバイスがUSSD経由でワイプできることを意味するものではありませ。これまでのところ、選択されたSamsung製の電話のみがUSSDコマンドでワイプ可能であることが確認されています。他の多くのデバイスがUSSDコマンドをダイヤルする可能性があります。SymbianおよびSamsungのbadaオペレーティングシステムを実行している一部のデバイスがtel:URL を使用してUSSDコマンドをダイヤルするとの報告もあります。

Borgaonkarは、ブラウザにUSSDコードをダイヤルするように説得するためにiframeを使用するテストページを提供しました—この場合、*#06#デバイスのIMEI番号を表示します:

//www.isk.kth.se/~rbbo/testussd.html

自己記述的なオタクのDylan Reeveは、Androidダイヤラが同じ*#06#USSDコードを使用してUSSDコードを処理するかどうかを明らかにできる簡単なテストページも作成しました。

//dylanreeve.com/phone.php

ただし、リーブ氏はモバイルセキュリティの専門家ではないため、この脆弱性を悪用しようとする攻撃者がいた場合、これらのテストページのいずれかをハッキングすることは、騒乱を引き起こす優れた方法です。

自分を守る方法

Android 4.1 Jelly Bean

サムスンの携帯電話をお持ちの場合 —サムスンは、脆弱性をパッチするファームウェアアップデートをすでにリリースしています。選択したSamsung製の携帯電話が現在ワイプの影響を受けやすいことがわかっている唯一のデバイスであることを考えると、Samsungの所有者がアップデートを適用することを強くお勧めします。

Androidの更新 —これまでのところ、Android 4.1 Jelly Beanを実行しているデバイスがUSSDの脆弱性の影響を受けやすいという兆候はありません。お使いのデバイスでJelly Beanが利用可能になり、更新を延期している場合は、今が良いタイミングです。残念ながら、サポートされているデバイスでJelly Beanを利用できるかどうかは、主にキャリアの裁量に任されており、モバイルオペレーターは、ネットワーク用の新しいソフトウェアの認定について遅くなっていることで有名です。USSD攻撃の可能性に対して脆弱な多くのデバイスは、Jelly Beanにアップグレードできません。

別のダイヤラを使用する — Androidのオープンプラットフォームでは回避策が提供される場合があります。Androidの組み込みダイヤラに依存する代わりに、AndroidユーザーはUSSDコマンドを通過させないサードパーティのダイヤラをインストールできます。Android 2.0以降で動作する無料のDialerOneがお気に入りです。

tel:URLをブロックする—別のアプローチは、tel:URLの処理をブロックすることです。Joerg Vossは、基本的にはダイヤラーを装った無料のNoTelURLを提供していtel:ます。ユーザーが(ブラウザーを介して、またはコードをスキャンして)URLに遭遇した場合、すぐに処理するのではなく、ダイヤラーの選択肢が提供されます。

スマートフォンをバックアップする —言うまでもありませんが、Androidスマートフォン(およびすべての連絡先、写真、メディア、データ)を定期的にバックアップしますよね?ローカルPCにバックアップする場合でも、クラウドベースのサービスにバックアップする場合でも、その他のスキームを使用する場合でも、定期的にデータを安全な場所に保存することは、紛失や盗難はもちろん、スマートフォンがワイプされた場合の最善の保護策です。