This post is also available in: English (英語)
概要
昨年、パロアルトネットワークスの脅威インテリジェンスチームUnit 42は、Google Play のアプリに悪意のあるIFramesに感染したものが多く含まれるという件について報告しました。最近、私たちはこれとよく似た事例をGoogle Playで発見しました。ただし今回は、悪意のあるIFramesではなく、悪意のあるMicrosoft Windows 実行ファイルに145個のGoogle Playアプリが感染していることが分かった、という事例です。本稿の発見内容についてはすでにGoogleのセキュリティチームに報告済みで、すべての感染したアプリはGoogle Playから削除されています。
注目すべきは、これらの感染したAPKファイルAndroidデバイスに対してはなんの脅威ももたらさない点でしょう。というのも、埋め込まれたWindows実行ファイルのバイナリは、Windowsシステム上でしか実行できず、Androidプラットフォーム上で活動することはないからです。ただし、これらのAPKファイルが感染しているという事実から、開発者たちがマルウェアによる侵害を受けたWindowsシステム上でソフトウェア開発をしている、ということは分かります。こうした感染は、ソフトウェアサプライチェーンに対する脅威と言えます。なぜなら、ソフトウェア開発環境の侵害が大規模攻撃において非常に有効な戦術であることはすでに証明済みだからです。たとえば、KeRanger、XcodeGhost、NotPetyaなどがその好例でしょう。
感染したアプリの多くは、Google Playに2017年10月から11月の間にリリースされていました。ということは、これらのアプリは半年以上同ストアに存在していた、ということになります。感染したアプリの中には、星4つ以上の評価を受け、1000 台以上にインストールされているものが含まれています。
図1: 感染したアプリ。評価が4.0で1000回以上ダウンロードされている
興味深いことに、同一の開発者が作成しているアプリでも、感染アプリとそうでないアプリとが混じっていることが確認されました。この理由は、開発者がアプリごとに異なる開発環境を使っていたためと考えられます。
感染したアプリには「Learn to Draw Clothing (洋服の描きかた)」という洋服のスケッチをしたりデザインをしたりする方法を教えるアプリや、「Modification Trail (カスタムトレイル)」というトレイル バイクのカスタマイズのアイデアを表示するもの、「Gymnastics Training Tutorial (体操トレーニングのチュートリアル)」という体操で健康を保つアイデアを見つけるアプリなどが含まれていました。
図 2: ある1人の開発者がリリースしたアプリ。 赤でマークしたものはWindowsキーロガーに感染している
これら感染アプリの中には、APK ファイルの異なる場所に異なるファイル名で複数回悪意のあるPEファイル(Windows実行ファイル)に感染しているものもありました。ただし、すべての感染アプリに共通して感染しているPEファイルは、主に2つでした。
弊社WildFireクラウドベース分析サービスの解析結果によれば、ある1つのPEファイルがGoogle Play上のアプリを含む142個のAPKファイルに感染していました。2つめのPEファイルは21個のAPKファイルに感染していました。15個のAPKサンプルには、この両方のPEファイルが感染していました。感染したAPKバンドルの中には、ほかの悪意のあるPEファイルを含むものもありました。これら開発者のマシンは様々なマルウェアファミリに重度に感染した状態にあるようです。
これらすべての悪意のあるPEファイルを調査した結果、私たちはある1種のPEファイルがほとんどのAndroidアプリに感染していること、その悪意のある活動内容がキーロギングであることを突き止めました。 キーロガーは、Windowsシステム上でキー入力を記録しようとします。 これにはたとえばクレジットカード番号、社会保障番号、パスワードなどの機微な情報なども含まれます。また、これらのファイルには、正当なものに見せかけるための偽の名前がつけられています。たとえば、「Android.exe」、「my music.exe」、「COPY_DOKKEP.exe」、「js.exe」、「gallery.exe」、「images.exe」、「msn.exe」、「css.exe」などです。
同WildFireによる分析では、この悪意のあるPEファイルは、Windows システム上で実行した際、次のような疑わしい活動を行いました:
- 実行ファイル、隠しファイルをWindowsのシステム フォルダに生成し、自身のコピーも行う
- 再起動後に自動実行されるようWindowsのレジストリを書き換える
- 長期間スリープするよう試みる
- IPアドレス87[.]98.185.184にポート8829経由で接続する、疑わしいネットワーク接続活動を行う
潜在的損害と緩和策
悪意のあるPEファイルは直接はAndroidホスト上で実行できません。ただし、APKファイルがWindowsマシン上でアンパックされてPEファイルがうっかり実行されてしまったり、同じ開発者が別のWindowsベースのソフトウェアをリリースしたり、この感染が原因でAndroidプラットフォーム上でも実行可能な別の悪意のあるファイルに感染したり、ということがあれば、状況はさらに悪化することになります。
パロアルトネットワークス製品をお使いのお客様は、WildFireとTraps for Androidにより保護されています。WildFireはこれら感染アプリを自動的に検出します。Traps for AndroidはWildFireを利用して自動的に悪意のあるアプリを遮断し、ユーザーに通知し、悪意のあるアプリからAndroidデバイスを保護します。
開発環境はソフトウェア開発ライフサイクルの要です。何よりも先に、開発環境をセキュアに保つ努力が必要です。この努力を怠れば、ほかにどんなセキュリティ対策を導入しても無駄に終わってしまいます。
謝辞
本稿の解析におけるパロアルトネットワークスRyan Olson氏のサポートに感謝します。
付録
感染アプリ内で見つかったPEファイル:
- 9af18bd1bc68e0f49f8935a8cf662729cc1cec773f0237188762cebe75d48521
- bdfabde9e45693a218e0391005f32e3546dedd0bc757cea2012ad42afdbe2f06
- cadee0451947759cae1c94545ca910486e504c6544f6e60ba0a176b31df44abf
- 11ada55cc9dfcbafe969510b0711b110a8991b5deca2f296b895969958a66559
- 138f338653c82b86ea94829058a0e0bc18940903f6d7a01a7f0c2ba47f68e7e2
- 99074b45b20f794c35b72dbd6af2380497b8b482814822d88ca9c1c5cf83a400
- 57b345f635bf77f5b0da01248a1b798cbd8deb2c66306303ca595f3ccfaa8fbe
- e355275030efa1ddb8bc233095c189a9cc6586ba241a1c4b7a9fe1875945bbf7
- 355c640a0cd3793f0e6ed96dd8175afe32d6bae7a8f8d1f1496167e5f2191195
- 88bdf6e443300988e160204778d859fb5a0dca775876ff8b079a4eb886ad4372
- 78c91a6071e73e7b0ebd10ff7a4a62d3412fe0f281e4ac064eeedbf707b15b22
- 524c780f3f35c5c9dd1bd935affe312f89ff851d51f9df21e78730134d4e7c50
- cb09e6e28e2e0e3c031d99cb122ca767a23ecea1a2e98cb6d8bcf6ff7e61151e
- b0442ad97086c4850133dcc72746f877cbbdb0b037374e598e231f8728dcda0c
- 07b07b74743364451876dca12531cdd515feff6264745be49add094388537685
- edfadee37e5dd0e045d211ba9b09c2ac0f267790ac4ef8d7f9beced25d94c1fc
- 493d95c5222a86d581110d7c38b62a4e2015bf782ddac04c5a7e576a0955a727
- 5889a05fc1f161fe23ec9e3dfeb35ac225621f3c5c7019df7afa14aefdb96235
- 78f936fd6a8cabc39c727976ab9c2c6ceeb5be690186e2a729f59adaad7b3f4c
- 7268ea040b7ca1ab79d3f1eac279cf4cbc072c706b70672eba8d84387f76b3bf
- 688d39cfa1f581e841a896963b83081960844cdf06d3c71e7eab2746e498d5b1
- df74876a564d38bf8fd3275fd0a429ee74c3f67b2e78f59d97c2ec8a7143bd9a
Google Play上で見つかった感染APKファイルの一覧
SHA256 ハッシュ | アプリ名 | パッケージ名 |
1896ed8d12f5a7c3046acd929e64cc97e8acb020e40c1b3a2001b30003f50883 | Baby Room | com.KamarBaYi.odieapps |
290b7f930361d06e8f8c93aa9f97405d6b4b9fef7f9ac13c3c73c8966cf0e83a | Motor Trail | com.MotorTraiL.odieapps |
b2fec79084611ad8abed3354399b2e759e903ec15976b9d10ac05e548964a1e9 | Tattoo Name | com.TatToNaMa.odieapps |
b828b870a317693a0ae0544b9d0ffddcf6442da4d1979f6f8ccafcbe5c96d1e3 | Car garage | coml.GaRaSiMobiL.odieapps |
86661a4a611484f8db2593bfae241db9b53274a1736ec668335f878ed24795e4 | Japanese Garden | com.TaMaNJapanG.odieapps |
79e77835c9690ca0bc6d376659dd15f50e396bbc573fcc7293d458d8002f6a60 | Koi fish | com.IkanKoI.odieapps |
91bb8594e118338f38de22e96e89cc5e11d619da3ec3dc0ecada13720111a588 | House Terrace | com.TeRaSRumaH.odieapps |
c41a8edaa85344e48a75843447358ea7a092fe1061bca79ac535abf467112eda | Skirt Design | com.DesainRokK.odieapps |
52d9df500ae7684d58c2bf65fb6852da1440e79b07a049f72585ccf8665e9d64 | Yoga Meditation | com.MeditasiYoga.odieapps |
21fce35139cfdf1145855987b6e3306adf26c3b60ba59b1c364a3d7d44bc5285 | Shoe rack | com.RaKSepatU.odieapps |
4739a7d1317fee0a7a885a00468d9749bb7da5c5f1696408deaa736fa2aab6e9 | Unique T-shirt | com.KaoSUniK.odieapps |
bc49cec1896f7f4542ff8712da8475bf5e55abe7558918c260492467eb03ef6f | Mens Shoes | com.SepatuPriA.odieapps |
7345975ca29d16e3b55309e84f6249990878482ed55e597269fdd0cb77a290ff | TV RuanG TaMu | com.TVRuanGTaMu.odieapps |
ecb04d5359949bfbbc64fd7bedd8fde3a5b9703784fea8d758a3a643117165b0 | Idea Glasses | com.IdeaKacamata.odieapps |
a21f4e9536dcbcd810fbfcdff8f6cce5b6338f1d5df7ba45abd1a5f4ed8dca76 | Fashion Muslim | com.FashioNMusLiM.odieapps |
41386181f9e7dc8085d6a117607cd79346744d925e5d2ca67759742fbac47e51 | Bracelet | com.GelangTut.odieapps |
fceda65ea8624af018c072c60ed5fcb8b6bb00832fb63559e819463d2ba9db4e | Clothing Drawing | com.BusanaMenggambar.odieapps |
c5b24cf5d348a6fe3ad543f70379c7d9fa60a8e9bac03d6ea387fcdbcbbca932 | Minimalist Kitchen | com.DapuRMiniMaLis.odieapps |
c36e7566e2e92898162006b9922d9d8f450867224b67d2346f70d7e76b1cbae6 | Nail Art | com.SeNiKuKu.odieapps |
0039f9b2faac6146bddc2831fdfa6a03327f77d3954a1a27ab66e6b0b5952a3a | Ice cream stick | com.StikEzKriM.odieapps |
a8687cb35ee453958dc1757608505f3c5a7f137909f517acb7a850316d0e87b4 | Roof | com.AtapRumaH.odieapps |
7da49a0122444b2087a582d142c82375541544fd765f29b9b3f7728e598b54e0 | Children Clothes | com.BusanaAnaK.odieapps |
7312c5ba59f89350b13fe93107233a06c79a68eedff0eb082ef7a5f24bec76e2 | Home Ceiling | com.PlaFoNRumaH.odieapps |
bf00efc96cf3ecdd3069afbbfae53aeb79910848721fe50d64410760790f1a27 | PoLa BaJu | com.PoLaBaJU.odieapps |
892f883d3588ee952888cccb4bb9bb33092f1be924d981e69595a758daca8c86 | Living room | com.RuanGTaMu.odieapps |
5a1693d255e5f487214fd1cd46c0cff8d5375903459c7f87ae17f636fa470e32 | Bookshelf | com.RakBuKu.odieapps |
906cd586d8f7388c1fbb0581b926aa4b2dc5534d460cc3ba011198d26a1dfe16 | Knitted Baby | com.RajutanBayI.odieapps |
96bd87c8bd8772b1f11b3e4771889b4d2d81739cd2ef7494a3ff54fc28e711f6 | Hair Paint | com.CaTRambuT.odieapps |
54380fa8c12f6333a22fd0c728e615e92470565e96c7b39ae2f1d7e30584fc31 | Wall Decoration | com.DekoraSiDinding.odieapps |
b6671808dbc226c11697c54d000b6a30213478c141d96aa4c3d52fa5243cff16 | Painting Mahendi | com.MelukisMehndi.odieapps |
525c515e3e8c0d6007ab79f05a64c42951b440db4ab12f397218efa9692faa84 | Bodybuilder | com.Binaragawan.odieapps |
399058e95153600a471d94309a6c3e87f3851647fb003f6d4289fa5b5df389a4 | Couple shirts | com.KaosCouple.odieapps |
44066a23057ee93bed27737e8f444150c29c68b14bc9b21419f549188e436103 | Unique Graffiti | com.GrafitiUniK.odieapps |
1fcd61a10c170d259fca12e52d1930018adafad5613551b5bbb14987de1c7cfd | Paper flower | com.BungaKerTas.odieapps |
0b85488788f7f83e879f41591d674b50d4daafb60094918391d98f143ba54ddc | Night gown | com.BaJuTiDuR.odieapps |
cb11dd259fa4fc0c1b4ee878cfb3c2df2a0a6ecab83276e33185ba7ce45c46ba | Wardrobe Ideas | com.IdeLeMaRi.odieapps |
4091c8acea954fffd22be4c0675c440cf1fe4620d6659b8d23d8d3a2fc815e20 | Dining table | com.MejaMakaN.odieapps |
9412ca41b7c9aebaeef05fe5c45bf5c5d998e5da44d5a7a495f5ba06c00feea0 | Gymnastics | com.LatiHaNSeNaM.odieapps |
761032267b9659cd04676fce55e602a87e43cb4c75c58fa61486cc73da0016c6 | Use Child | com.PakaiAnAnak.odieapps |
14bffba23e2bf4a61b4a54f1ef5027225290eab7f10d4c663570629e456cf51e | Window Design | com.DesainJenDeLa.odieapps |
5dca7151c50ce88102b1fc5c0dd984c57202ad7c67f25be231d64cf1d52da437 | Hijab StyLe | com.HijabStyLe.odieapps |
3350f4eb55c2f00c1ba0380044a1a6670a4eddc5cbabf903f2ad2e266eab58d2 | Wing Chun | com.TeknikWingChuni.xsadroid |
c99a6e7e5d066076bacfad9142e3cf01855525782d638ccfe9ce7cd57d11ca5c | Fencing Technique | com.TeknikAnggar.xsadroid |