欲深いサイバー犯罪者は GitHub でマルウェアをホストする

悪意のある Chrome 拡張機能もインストールする暗号通貨マイニング マルウェアが GitHub でホストされ、誰でもダウンロードできるようになっています。

サイバー犯罪者達は暗号通貨マイニング マルウェアを GitHub にアップロードし続けています。他のプロジェクトをフォーク(Github で他人のプロジェクトのコピーを作成する)し、そのプロジェクトをビルドする、もしくは、ひな形として使用した後、マルウェアの新しいコミットをプロジェクトにプッシュしています。これまでフォークされてきたプロジェクトは、無作為に選ばれているようです。対象の GitHub リポジトリ一覧を本稿の最後に掲載しています。

マルウェアの背後にいるサイバー犯罪者は、フォークしたプロジェクトのディレクトリ構造においては、悪意のある実行可能ファイルを非表示にしています。ユーザーは、オンライン ゲームやアダルト サイトに表示されるフィッシング広告や偽のアダルト ゲーム サイトで、Flash Player が最新ではないなどの警告を受け、だまされてマルウェアをダウンロードします。マルウェアはマイニングだけでなく、悪意のある Chrome 拡張機能もインストールします。これが偽の広告を挿入し、バックグラウンドで広告をクリックすることで、欲深いサイバー犯罪者はさらに多くの利益を得ています。

image14.png

感染ベクトル

悪意のある実行可能ファイルは、ユーザーが直接 GitHub からダウンロードする必要はありません。その代わりに、マルウェアはフィッシング広告キャンペーンによって拡大します。フィッシング広告が表示されたサイトにアクセスし、広告をクリックすると、実行可能ファイルがダウンロードされます。

その広告はまず攻撃者が管理するサーバー(http://binqg.xyz/direct.php?sub3=25-114-201802141754224cef0ad22&f=setup_sex_game.exe)につながります。次にマルウェアをホストしている GitHub リポジトリにリダイレクトし、そこから悪意のある実行可能ファイルがロードされます。

null

フィッシング広告キャンペーンに加えて、サイト閲覧者にアダルト ゲームを提供することでマルウェアを拡大しているアダルト コンテンツ サイトが見つかっています。

こちらのアニメーションで、ウェブページがアクセスされた直後に悪意のあるファイルが提供される様子をご覧ください。ユーザーがページごとに表示される、[18 才以上です]、[プレイしましょう]、[ダウンロード] をクリックすると、再び同じファイルが提供されます。

実際のマルウェアの詳細

マルウェアには、GitHub でホストされる Monero マイナーが組み込まれています。このマイナーは、サイバー犯罪者によって悪意のある機能が追加されていて、その機能のひとつが、Opera、Chrome、Amigo の無料ブラウザのプロセスを終了させるというものです。マルウェアは Chrome ユーザーがターゲットであるため、Opera と Amigo の無料ブラウザのプロセスが終了される理由は不明です。これはバグによるものか、サイバー犯罪者がこれらのブラウザも標的にするマルウェアのバージョンを導入する予定があるためと考えられます。

マルウェアが最初にやることは、自分を「C:\ProgramData\VsTelemetry\vshub.exe」にコピーすることです。

マルウェアの最新のサンプルでは、次のパスが使われます。「C:\ProgramData\WindowsPerformanceRecorder\spyxx_amd64.exe」

次に 2 つのタスクのスケジュールを設定します。

“schtasks /create /tn \SystemLoadCheck /tr "C:\ProgramData\VsTelemetry\vshub.exe -loadcheck" /st 00:00 /sc daily /du 9999:59 /ri 10 /f”

1 つ目のタスクでは、開かれたすべてのページに JavaScript を挿入する Chrome 拡張機能をインストールします。このタスクは、毎日深夜 0 時にマルウェアをロードし、そのプロセスが実行されない場合は 10 分ごとに永久に繰り返すよう設定されています。感染したコンピューターが再起動されても、マルウェアはリロードします。ユーザーがプロセスを終了した場合は、10 分後に再開するようタスクのスケジュールが設定されています。

“schtasks /create /tn \Windows\VsServiceCheck /tr "C:\ProgramData\VsTelemetry\vshub.exe" /st 00:00 /sc daily /du 9999:59 /ri 2 /f”

2 つ目のタスクでは、プロセスが終了した 2 分後にプロセスを再開します。

2 つ目のタスクは、以下のオプションでマイニングします。

“-o stratum+tcp://vwwvvw.com:3333 -u 39VwaJXhVdJ7pd5XR8D8wubdFfE4dxkDaM -p x -k -cpu-priority=1 -max-cpu-usage=50 -donate-level=1”

これらのオプションについては、こちらの GitHub ページで説明しています。

-o、--url=URL マイニング サーバーの URL -u、--user=USERNAME マイニング サーバーのユーザー名 -p、--pass=PASSWORD マイニング サーバー用のパスワード -k、--keepalive タイムアウトを回避するためにキープアライブで送信(プールのサポートが必要)--cpu-priority プロセスの優先順位を設定(0 アイドル、2 通常~5 最高)--donate-level=N ドネート レベル、デフォルトは 5%(100 分間のうち 5 分)--max-cpu-usage=N 自動スレッド モード用の最大 CPU 使用率(デフォルト 75)

ユーザーに検出されないために、多くのことが行われます。「max-cpu-usage」は、感染したコンピューター上でマルウェアが使用する CPU を 50% 以下に制限します。このため、コンピューターの動作が過度に遅くなることはありません。

次に「cpu-priority」が、マルウェアより多くの CPU を消費する他のプロセスを優先させます。これにより、被害者は通常どおりにコンピューターを使用できるため、マルウェアが見つかることはありません。マイニング マルウェアが使用するもう 1 つの代表的なトリックは、タスク マネージャーが有効になると、マルウェアはマイニングを停止して見つからないようにするというものです。このトリックは今回のマルウェアでも使われています。

悪意のある Chrome 拡張機能

マルウェアが悪意のある Chrome 拡張機能を Chrome ブラウザにインストールすると、そこで興味深いことが起こります。マルウェアが旧バージョンの Chrome AdBlock 拡張機能をエクスプロイトし、それを Chrome が本物であるかのようにロードします。先に述べたように、マルウェアはすべての Chrome プロセスを終了します。これは、被害者に Chrome を再起動させて、新しい拡張機能を有効にするためです。ユーザーが拡張機能を見ずに Chrome 拡張機能ページにアクセスした場合でも、悪意のある拡張機能が含まれる拡張機能ページを表示した瞬間に、そのページは別のページにリダイレクトされます。これにより、ユーザーが悪意のある拡張機能を削除するのを防いでいます。

null

上のアニメーションは、そのリダイレクト プロセスをご覧いただくためにアバストが作成したものです。実際の速度はこの 10 倍で(アニメーション作成時に速度を下げました)、ユーザーが悪意のある拡張機能を削除するのはほとんど不可能です。

以下のファイルが Chrome 拡張機能フォルダにインストールされます。 Extensions\gighmmpiobklfepjocnamgkkbiglidom\449_0\_metadata\computed_hashes.json
Extensions\gighmmpiobklfepjocnamgkkbiglidom\449_0\_metadata\verified_contents.jsonExtensions\gighmmpiobklfepjocnamgkkbiglidom\449_0\icon128.png
Extensions\gighmmpiobklfepjocnamgkkbiglidom\449_0\manifest.jsonExtensions\gighmmpiobklfepjocnamgkkbiglidom\449_0\contentscript.js

最後の拡張機能ファイルには、悪意のあるスクリプトである contentscript.js が含まれます。Chrome はこれを AdBlock 拡張機能であると判断してロードします。

null
 
contentscript.js の難読化バージョン
 
null

上の contentscript.js の難読化されていないバージョンでは、マルウェアが Google と Yahoo の検索を標的にしていることがわかります。

興味深いのは、Google Chrome がこのプラグインを何の問題もなくロードすることです。一方でカスタム Chrome 拡張機能をロードする場合、拡張機能を実行するには、いわゆる「開発者モード」を有効にする必要があります。

悪意のあるスクリプトが実行されると、あとは通常どおりです。

null

拡張機能に含まれる悪意のあるスクリプトは、被害者の Google や Yahoo の検索結果に広告を挿入し、クリックによってお金を稼ぎます。

null

被害者が Google や Yahoo に入力した検索条件は、Google や Yahoo 以外のウェブサイトに漏洩します。その目的は多くの場合、広告でより効率的に広告で稼ぐためです。

null

Stathat.com と yandex.ru のページには、ブラウザによりバックグラウンドでアクセスされます。これらのページには広告が含まれており、サイバー犯罪者にもクリックによる利益の分け前にあずかります。

悪意のある拡張機能を削除するには、Chrome をアンインストールすると共に、ユーザー データも削除する必要があります。

署名付き証明書

サイバー犯罪者は抜け目なく、マイニング マルウェアの実行可能ファイルにデジタル署名していました。デジタル署名によってファイルがクリーンになるからです。本当にクリーンになるのでしょうか?実は違います。まったく違います。サイバー犯罪者には気の毒ですが、

image1.pngimage21.png

実行可能ファイルに署名してくれるおかげで、セキュリティ対策ツールでこのマルウェアを悪意のあるものとして検出する作業がはるかに簡単になりました。サイバー犯罪者はおそらく、これを意図していたわけではないでしょう。アバストのマシンは、上のスクリーンショットと同じ証明書を持つファイルをすべて自動的にマルウェアとしてマーキングします。

サイバー犯罪者は、その証明書が悪意のあるものとして検出されることが不満だったようです。一部のケースでは、サイバー犯罪者の署名付き証明書があるクリーンなファイルが、GitHub リポジトリにアップロードされていました。これは、クリーンなファイルを誤って悪意のあるものとして検出させるためにサイバー犯罪者が仕組んだことと思われます。

null

残念でした。

マルウェアの背後にロシア語を話す人がいる可能性

マルウェアの背後にいる作成者は、おそらくロシア語を話すか、その被害者がロシア語を話すことを想定しています。

作成者がロシア市場かロシア人を標的にしていることを示す 1 つ目の手がかりは、「SetThreadLocale」関数を呼び出すとき、ロケール引数に 1049 が設定されていることです。これはロシア語ロケール用のコードです。

image6.png

「SetThreadLocale」関数を呼び出すとき、ロケール引数にロシア語ロケール 1049 が設定されています。

このマルウェアの背後にいるサイバー犯罪者はロシア人であるか、ロシア人をターゲットにしていると思われる 2 つ目の手がかりは、マルウェアがブラウザ拡張機能を挿入しようとするとき、「\Хром\User Data\Default\」のパスを確認していることです。「Хром」はロシア語で「Chrome」を指します。ロシア語ロケールに設定されたコードは、Windows にプログラムで使用するテキスト エンコーディングを伝え、その結果プログラムはバイト D5 F0 EE EC を正しく「Хром」にデコードできます。

null

もう 1 つの手がかりが見つかったのは git コミット ログです。ここでは、すべてのコミットが UTC+03:00 タイム ゾーン(モスクワ時間)で行われていました。次のスクリーンショットをご覧ください。

null

Github でマルウェアをホストするメリット

GitHub でマルウェアをホストするのは普通ではありませんが、メリットもあります。マルウェアは無料でホストされ、しかもそれは帯域幅に制限のない信頼できるプラットフォームです。アバストのようにマルウェアを研究する者にとっては、バージョン履歴を確認できるうえ、マルウェアをリアルタイムで調べることもできます。実に役に立ちます。

null

3 件のファイルが変更されていることを示す GitHub のアップデート

null

GitHub のマルウェアに対するアップデート

Bitly の統計データ:

このキャンペーンの背後にいる抜け目ないサイバー犯罪者は、マルウェアがアクセスするリンクを以下のように Bitly を使用して短縮していました。

image22.pngimage4.png

image23.png

この統計機能は誰でも無料で利用できます。

アバストの統計データ:

アバストのバックエンド システムにより、マルウェアのダウンロードから保護したアバスト ユーザーの数がわかります。

null
null
null

 

終わりに

マルウェアは今もなお健在で、GitHub でホストされています。GitHub はマルウェアをホストするフォークされたプロジェクトを数多く削除しましたが、サイバー犯罪者はひるむことなく、GitHub に何度も繰り返しマルウェアをアップロードしています。アバストは GitHub と協力し、マルウェアが含まれる新しいリポジトリを GitHub に提供して、それを GitHub が削除しています。

悪意のある Chrome 拡張機能については、Google に連絡しました。この記事を公開した当時、Google はその拡張機能をブロックしていませんでした。(原文は英語で3月13日に公開されています)感染したユーザーは、Chrome をアンインストールする際に「閲覧データを消去する」を選択すると、悪意のある拡張機能を削除できます。

このキャンペーンの背後にいるサイバー犯罪者が、悪意のある拡張機能とマイニング マルウェアによってどれだけ稼いだかはわかりません。サイバー犯罪者の Monero の口座残高を調べようとしましたが、残念ながら Monero に拒否されました。

null

アバストはこのマルウェアを検出し、ユーザーを保護します。

マルウェアから身を守る方法

  1. アンチウイルスを使用する 万が一、これまで紹介したようなフィッシング詐欺に引っかかってしまっても、アンチウイルスがセーフティ ネットとして機能して保護します。
  2. 用心するウェブサイトを閲覧中に表示されるゲームやソフトウェアのアップデート情報など、おかしいと思われる案内に注意してください。特に怪しげなサイトで表示された場合には注意が必要です。
  3. ソフトウェアのサイトや信頼できるダウンロード ポータルに直接アクセスするソフトウェアやソフトウェア アップデートを入手する際は、ソフトウェアそのものからダウンロードしてください。

GitHub では正規のリポジトリか信頼できるフォークのみを使用するGitHub のソースをむやみにコンパイルしたり実行したりしないでください。

 

SHA256:

3F108915B8B76AB97BA1DF218D9D5DAEA6E8D9FF0A66228855777A75C125C518

8D1F269D0991513E3F471CDE239EA1C101FE44E92331CF3DF977B4937C7AA9B8

AEB1E544B8B7EC5A742C42F2C2FC35E67F14E9A5004F45A7DD2C3F89BFCD13C2

628718571F843F61A5911A102737C3E199C3DF7D1A27CD57D5E87B2869927612

0C8258768E1218CB8C6416BC32EBABF187B8A0306178D314FD7F36587752C380

343A4FEE8A3EC8B1D38BBCA137FDC76EE98E5A52CDC84E6107806EEAD95657FB

72A8325E27B88863DD57AF41816A032EF0BAE3CFCB1854F2EC0D0C7A198276C9

01E023FB753B32073FFCDF7F320F2B582B2F9DCBBB76171C514A79F2B42CF732

51F89E3E19261FC1BFE1A4B1ECFA5C9CC4029D741C66D74629205FAA41C57265

57353DF34D61AE3E8855E6F3F725AAF2FCC9609FDDFFD2ABEDADDD3D0695C56B

bit.ly addresses

bit.ly/2Bez5ee

bit.ly/2DXEcPm

bit.ly/2mrr5gZ

bit.ly/2n8aKhi

bit.ly/redir3352

List of abused GitHub repositories:

GitHub project (one of) malicious fileszopihafo/smppclientSMPP\SmppClient\flashupdate.exesugomu/windowslisteners/setup_sex_game_xp.exebuwewevew/yelp-apiv2/objective-c/flash_update_xp.execilmenupse/downtimetest/file/flash_update_xp.exedizovoz/rui2flash_update_xp.exegitoruma/proflash_update_xp.exeikpt/Exflash_update_xp.exenotdude/lemonaiddiagrams/setup_sex_game.execogocoze/resbin/setup_sex_game.exesloup0k/sloup0ksloup0k/sloup0k setup_sex_game.exesojujelin/profilegit/setup_sex_game.exeuxm1rk/gameaxns/exmoetc/setup_sex_game.exezb97/zb97SexGame.exeyogalix/localturkmaster/sample/sexGame.exenarexo/ggtest/sex_game.exedsdf4sf/olosex_game.exezijama/pullreqsbin/sexgame.exenufosaka/relicsex_game_18.exemewoko2/mewoko2sexgame.exeavui/opomnikiprintscr/sexgame.exehevicevog/zingersex_game_a.exesolgoodman/ivankasex_game_a.exebendjamin8/bendjamin101001.github.ioarchives/2018/02/sex_game_a.exe

List of malicious urls:

101games.xyz

2chrup56.ru

adobe.flashplayer.bx6tok.xyz

adobe.flashplayer.mp2pzq.xyz

adobeflashplayer.ki1ahb.xyz

adobeflashplayer.ma8cfl.xyz

adobeflashplayerb.xyz

adobeflashplayerc.xyz

adobeflashplayerq.xyz

adobflashplayerx.xyz

affshopcj.com

am9ozs.xyz

best-game.xyz

biggame1.xyz

binary-flash.xyz

binqg.xyz

bitly.wa4eri.xyz

chr0xy.xyz

flash-player.xyz

flash-update.akva-komptlt.ru

flash.or5sgw.xyz

flash.vtb-karta.ru

flashplayer-adobe64.xyz

flashplayer-win10.xyz

flashplayer.chickenkiller.com

flashplayer.chrm1.xyz

flashplayer.nb6ret.xyz

flashplayer.oi1ljg.xyz

flashplayerb.xyz

flashplayerd-4.com

flashplayerdownloadvip.com

flashplayeru.xyz

flashplayerv.xyz

flashplayupdate.xyz

go.seoclubs.pw

in-games.xyz

isb2.xyz

ki1ahb.xyz

mnmnnm.com

mp2pzq.xyz

needgames.xyz

online-game-18.xyz

qs3gas.xyz

red1r.xyz

red1r2.xyz

rp5jxi.xyz

s-games.xyz

sb1xju.xyz

setup-game.xyz

ui2ulh.xyz

update-flash-win64.xyz

updateflash.pb6xny.xyz

updateflash.xyz

ush1.xyz

win-flash.xyz

win64-flash.xyz

win64-flash.xyz

win7flash.xyz

worldonsearch.com

flashplayerd-4.com

online-game-18.xyz

xg3s.xyz

--> -->