情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

LINEが監視される「Skygofree」の標的は日本ユーザーなのかについての調査メモ

Android (719) セキュリティ (78) マルウェア (6)

現在、Yahoo!ニュースにも「LINEを監視 マルウェア発見」として取り上げられて話題となっている「Skygofree」ですが、そのYahoo!ニュースに掲載された記事の中では「ターゲットは日本のユーザーである可能性が高いと分析」と紹介されていました。

少し、その周辺部分の説明が気になったので、元となっている記事をたどってみた結果気が付いたことをメモしておきます。

Yahoo!ニュース掲載の「Skygofree」の記事

現在、Yahoo!ニュースに記載されて、「アップデートされていないAndroidは多いから危険」「日本がターゲット」「LINEが監視される」と大きな話題となっているのが次のページです:

この転載元の記事が、Internet Watchの次の記事です:

気になった部分

この記事で気になったのは、

「しかし、脆弱性を突くためのターゲットデバイスの多くが日本で発売された端末であり、さらに日本で有名なメッセージングアプリ『LINE』がその監視対象であることから、このスパイウェアの標的は日本のユーザーであると推測できる」と指摘。 引用元

の部分でした。

(1)「脆弱性を突くためのターゲットデバイスの多くが日本で発売された端末」と(2)「日本で有名なメッセージングアプリ『LINE』がその監視対象である」を理由にして、「このスパイウェアの標的は日本のユーザーである」という開発者の意図を推測していることが気になりました。

現時点で確認できているSkygofreeの感染はすべてイタリアであると紹介されているため、それだけを考えれば「このスパイウェアの標的はイタリアのユーザーである」と推測するのが自然だからです。日本がターゲットなのに、イタリア向けの誘導サイトばかり作られたことになります。

ここで「意図」というのを強調するのは、「日本のデバイスでも『動作する』ものを作った」という話と、「日本のデバイスを『狙って』作った」というのとでは、だいぶ脅威の大きさ(時間的な猶予・対象となるユーザー規模)が違ってくるからです。

日本を狙って作られたとなれば、日本でちゃんと動作するように開発が進められているはずで、誘導サイトもすぐ作られる危険があり、差し迫った脅威かつ、影響を受けるユーザーが多くなる可能性が高い脅威であると考えられます。

「日本がターゲット」の出所をたどる(デバイスリストについて)

情報源となっているマカフィー公式ブログの記事を開くと、該当部分を確認することができました:

現時点では、日本国内の通信キャリアを騙り、偽のシステムアップデートのインストールに誘導するようなフィッシングページは発見されていません。しかし、脆弱性を突くためのターゲットデバイスの多くが日本で発売された端末であり、さらに日本で有名なメッセージングアプリ「LINE」がその監視対象であることから、このスパイウェアの標的は日本のユーザーであると推測できます。 引用元

そして、「脆弱性を突くためのターゲットデバイスの多くが日本で発売された端末」という部分については、もう少し詳しく、以下のように説明されています:

このスパイウェアでは、感染端末の脆弱性を効率的に攻撃するために端末のモデル名、ビルド番号、そして、利用可能な脆弱性コードの情報がデータベースとして管理されています。私たちが、そのデータベースに含まれる 端末一覧(PDF) を分析したところ、京セラ HONEY BEE 201K、サムスン Galaxy S4 SC-04E、ソニーXperia VL SOL21といった日本の通信キャリアから発売された端末がリストの半数を占めていることが判明しました。 引用元

この部分が推測の元となった分析のようです。

この時点で、「日本を狙うために、日本のデバイスをたくさんターゲットデバイスに載せたんだ」という解釈もできますが、「たまたまSkygofreeが利用したライブラリに、(もともといろいろなメーカーが毎年何種類ものデバイスを発売している)日本のデバイスが多数載っていただけ」かもしれない、と感じ、もう少し詳しく調べてみようと思いました。

カスペルスキーの分析結果PDF

今の引用文中にあった「端末一覧(PDF)」のリンク先は、カスペルスキーの次のブログ(Securelist)のAppendixにあるPDFそのもので、そのPDFの内容については、以下の通り説明されています:

‘device.db’ is a database used by the exploit. It contains two tables – ‘supported_devices’ and ‘device_address’. The first table contains 205 devices with some Linux properties; the second contains the specific memory addresses associated with them that are needed for successful exploitation. You can find a full list of targeted models in the Appendix. 引用元

If the infected device is not listed in this database, the exploit tries to discover these addresses programmatically. 引用元

ここではこのリストの元になっているデータベースファイルについて、「各デバイス+バージョンごとに異なる『脆弱性の利用を成功させるのに必要な情報(メモリアドレス)』」を管理している、としており、もしこのリストに載っていないデバイスについても、そのアドレスを発見しようと試みるのだそうです。

つまり、「日本の端末が多い」と言われていたのは、この「脆弱性情報を管理しているデータベースに載っているデバイス」のことです。

Skygofreeとandroid-rooting-toolsとの関連

このカスペルスキーのブログを読んでいくと、この脆弱性情報データベースの紹介の少し後ろの部分に、気になる記述がありました。

After an in-depth look, we found that the exploit payload code shares several similarities with the public project android-rooting-tools. 引用元

今回の「Skygofree」が、「android-rooting-tools」というGitHub上で公開されているプロジェクトのコードと共通点が多いという指摘です(android-rooting-toolsは、root権限を取得するための関連ツール)。

デバイスリストの由来はandroid-rooting-tools/android_device_database?

そこで、android-rooting-tools のリポジトリを眺めてみると、android-rooting-tools/android_device_databaseというリポジトリが見つかりました。

その「db_init.sql」には、またに「デバイス名」「バージョン」「脆弱性の種類」「メモリアドレス」がセットで掲載されており、カスペルスキーのブログで紹介されている、脆弱性情報データベースの中身を確認した際のスクリーンショットに載っているメモリアドレスとの対応関係・値の一致を確認することができました。

カスペルスキーのスクリーンショット上部にある「device=HTL21, build_id=JSS15J」では「device_id」という通し番号(脆弱性と直接関係なくデータベースを作った人の作り方次第で決まる番号)が「50」となっていますが、この番号さえも、「db_init.sql」の記載と一致していました。

実際、「カスペルスキーに掲載されている、Skygofreeに含まれているデバイスの一覧(PDF)」および、「android_device_databaseに含まれている最新のdb_init.sql」の両者を加工して、アルファベット順に並べてdiffをとったところ、両者の差がわずかであることが分かりました

どうやら、Skygofreeのデバイスリストの由来は、android-rooting-toolsというツールに含まれているデバイスリストにあるようです(両者共通の由来があるとも考えられますが、コードが類似しているというカスペルスキーの指摘を加味)

これらのことから、「日本のデバイスが多い」というのもあくまで「android-rooting-toolsという脆弱性を利用するためのツールに登録されていたデバイス一覧に日本のデバイスが多い」ということであり、「Skygofreeの作者が日本のデバイスをたくさんターゲットに登録した」というわけではなさそうです。

これだけ考えるとまだ「日本が標的」とは言いにくいような気がします。

もし「Skygofreeが日本を攻撃のターゲットにしている」と言うのであれば、例えば「android-rooting-toolsが他のツールに比べて日本のデバイスが多く、Skygofree作者は日本を狙うためにこのツールを選んだ」というような、追加の分析も必要そうです。

というのも、実は「イタリアを狙うSkygofreeを作るためにandroid-rooting-toolsを使ったのだけれど、便利だから利用しているandroid-rooting-toolsには日本語のデバイスが多いらしい。ただ作者本人も特にそのことは意識してなかった」というパターンも十分にありそうなので。

「2012年~2013年ごろの時期に発売されたモデルが多い」という特徴の背景について

この分析をしている中で、追加で気が付いたことがあります。

話題のYahoo!ニュース掲載記事の中には、次の記載があります:

また、それらの端末は、2012~2013年ごろの時期に発売されたモデルが多いことから、OSやファームウェアのソフトウェアアップデートが提供されなくなった古い端末がターゲットになっていると、マカフィーでは指摘している。 引用元

Twitter上などでは「セキュリティーアップデートが提供されない古い端末」の古さを直接表現している「2012~2013年ごろの時期に発売されたモデル」という部分が注目されています。

ただ、先ほど確認した「android-device-tools」の最新版の最終コミットは「2015年10月5日」でした

先ほどのdiffで「android-device-tools」側には掲載があって、Skygofreeのリスト側には掲載がないデバイスとして「F-05E」や「204HW」があったのですが、F-05Eがリストに追加されたのが2015年8月、204HWが追加されたのが2014年12月でした。

このように、GitHubを見て見るとSkygofreeのデバイスリストに含まれる端末リストの大半は、そもそも2014年以前に記載されたものであり、2012年~2013年発売のモデルが中心、というのは、それを加味して解釈する必要がありそうで、最近のデバイスが狙われていないというより、デバイスリスト自体の更新がされていないという状態のように見えます。

Skygofree側で追加した対象デバイスについて

一方でdiffを確認すると、「Skygofree」のリスト側にしかないデバイスもありました:

  • ALCATEL ONE TOUCH 6030X Jelly Bean
  • Dynamic_Maxi
  • GT-I8190
  • HUAWEI G610-U20
  • HUAWEI Y330-U01

ただし、これらのデバイスについてGoogle検索をしても、日本語の情報が見当たらず、海外向けに追加されたものと考えられました。

ここから、やはりそこまで日本のデバイスを意識してはいないのかも知れない、とも考えられます(さらにややこしいパターンとしては、android-device-toolsから派生した別ツールが中間にあり、デバイスを追加したのはその別ツールの作者であり、Skygofree作者の意図ではない可能性も)

「日本がターゲット」の出所をたどる(LINEの情報を収集、について)

もう一つ、日本が標的であると考える上でキーになっているのが「LINE」対応です。こちらの部分については、まだ気になりはするものの、あまり調べられていません。

Yahoo!ニュースに掲載されている文章では、次のようにLINE対応について触れられています:

Skygofreeが監視対象としているメッセージングアプリの1つとしてLINEが含まれており、その連絡先と通話履歴の収集を試みるようになっている点に着目。しかも、そのコマンド処理の優先順位は、Viber、Messanger、Facebook、WhatsAppとったアプリではなく、LINEが真っ先に行われるようになっているという。 引用元

この元となっているマカフィー公式ブログの文章はこちらです:

このLINEアプリ内のユーザー情報を収集するコードが、スパイウェアのプログラムに実装されていることからも、このスパイウェアの標的はLINEアプリの利用者数が多い国を狙っているものと推測することができます。 引用元

特に、「コマンド処理の優先順位」と言われている部分の元になっているのは次の部分です:

下記スクリーンショットに示すように、LINEの連絡先および通話履歴を収集しようとしています。コマンド処理の優先順位として、Viber、Messanger、Facebook、WhatsAppを抑え、真っ先にLINEに関する情報を収集しているのは偶然ではないのかもしれません。 引用元

マカフィー公式ブログに掲載されているコードのスクリーンショットを見ると分かるのですが、if文の最初の条件で「command.contains("line")」を判定して、それ以降else ifを使って「viber, messenger, facebook」と判定しています。これが「コマンド処理の優先順位」と言われている理由なのですが、「command」の中身が分からないのでなんとも言えません。

注意する必要があることに変わりはない

今回調べてみた結果からすると、言われているほど「日本がターゲット」ではなさそうに見えてきました。

しかし一方で、Skygofreeに関して「日本なら安心」ということは全くなく、日本で販売されていたデバイスでも動作すると考えられるため、現在は存在が確認されていないものの、今後誘導するサイトが登場して広まれば、脅威となることに変わりはありません

これはマカフィー公式ブログでも言及されているとおりです:

今後、スパイウェアをインストールさせようとするフィッシングページがマルウェア作者によって作成される可能性がありますので、私たち日本のユーザーは気を付けなければなりません。 引用元

とはいえ、特別「Skygofreeのために対策する」という方法があるわけではないですし、あったとしてもそれだけ対策して別のマルウェアにやられては仕方ないので、今回の場合であれば「ソフトウェアアップデートを行い最新版にする」「アップデートが提供されなくなった古い端末は利用しない・買い換える」あたりが重要で、他にも「普段見慣れない画面が表示されたら、その画面が本物なのかGoogle検索する」であったり、「ウイルス対策ソフトをインストールする」などの、一般的なマルウェア対策(ウイルス対策)を心がける・試みることをおすすめします。

コメント(0)

新しいコメントを投稿