threat-research

JavaScriptを使った仮想通貨マイニングの感染拡大

1. JavaScriptコード

2017年12月6日、FortiGuard Labsは、ある侵害されたウェブサイト(acenespargc[.]com)を発見しました。ソースコードを調べてみると、暗号化された不審なスクリプトが見つかりましたが、そこではeval()関数を使ってすべての文字列が数字に変換されていました。そこで、CharCode Translatorというツールを使って数字を文字列に戻したところ、詐欺のページやフィッシングサイトにリダイレクトするリンクを特定することができました。

スクリーンショット1
スクリーンショット2

上記のスクリーンショットは簡単な例にすぎません。実際のところ、攻撃者はフィッシングコンテンツを地域ごとにカスタマイズすることができるほか、検出されるのを避けるために、ユーザー側でフィッシングページを訪問したことが検出されるとそのコンテンツが消失するようになっています。

攻撃者は、悪意のあるURLやフィッシングURL、広告URLを人間の目では気付けないようにするためにこの手法を使っています。

下記でご紹介するとおり、この手法は現在、侵害されたウェブサイトで仮想通貨をマイニングするJavaScriptを隠すために使われています。このウェブサイトを訪れたユーザーは全員が「感染」し、訪問時に使用されたコンピュータは攻撃者の思惑どおりに仮想通貨のマイニングを開始します。他人のリソースが許可なしに使用されるため、FortiGuard Labsはこれを悪意のあるアクティビティとして分類しました。


2. Packerツールを使ったCoinHiveスクリプトの隠蔽

12月28日、FortiGuard Labsはお客様からの問い合わせを通じ、もうひとつのウェブサイト(romance-fire[.]com)で上記のように高度な難読化技術が使われていることを特定しました。このウェブサイトには、仮想通貨のマイニングを実行するための悪意のあるコードが含まれていました。

エンコードされたスクリプトが見つかったため、それをPackerツールで解凍したところ、CoinHiveのスクリプトであることが判明しました。

ソースコードのJavaScript
JavaScriptの解凍 - その1

URL(hxxp://3117488091/lib/jquery-3.2.1.min.js?v=3.2.11)が正当なIPやドメインではないようでしたので調べてみました。KLOTH.NETで変換したところ、「3117488091」が185.209.23.219というIPアドレスであることがわかりました。この結果は下記のとおりです。

このサイトではURLがhxxp://185.209.23.219/lib/jquery-3.2.1.min.js?v=3.2.11に変換されました。このURLからJavaScriptの同じパターンを特定できたため、ここでもスクリプトを解凍してみました。

JavaScriptの解凍 - その2

最後の解凍が完了すると、ついにCoinHiveのURLを含むスクリプトが見つかりました。

JavaScriptの解凍 -その3

3. GitHubでのコインマイナー

私たちは2018年1月26日、訪問者が使用するコンピュータのCPUを乗っ取って、仮想通貨のマイニングを行う別のサイト(sorteosrd[.]com)を発見しました。このマイニングマルウェアでも、攻撃者はコンピュータの所有者の許可なく、仮想通貨をマイニングすることで利益を得ることができます。このサイトはウェブマスターによって使用、または侵害されたと考えられます。

ウェブサイト(hxxp://sorteosrd.com)のソースコード
ユーザーの端末に対する不正な仮想通貨マイニングの影響

上記のスクリーンショットからわかるように、コインマイナーはサイト訪問者のコンピュータの速度を大幅に減速させます。これはCPUがフルに使われるためです。


4. 侵害されたウェブサイト - 仮想通貨マイニングに感染したBlackBerryサイト

CoinHiveスクリプトによる侵害は、なんとblackberrymobile.comでも発見されています。


仮想通貨「Monero」のマイニングを目的としたアクティビティに、短時間侵害されたBlackberryのウェブサイト

5. 侵害されたウェブサイト - deepMiner によって感染したMilk New Zealand

さらに、ニュージーランド最大級の酪農場グループであるMilk New Zealandでも侵害が発見されました。同グループのウェブサイトで悪意のあるアクティビティを特定したフォーティネットのFortiGuard Labsがソースコードを調べたところ、Monero、Electroneum、SumokoinなどをマイニングするためにgithubでdeepMinerツールを使ったスクリプトが見つかりました。以下のスクリーンショットをご覧ください。

deepMinerを使用するJavaScript

上記のスクリーンショットに含まれるデータから、この種類のスクリプトではエンドユーザーに気付かれにくくするために、ドメインにDDNS (Dynamic Domain Name System) を使用することでCPU使用量の増加が50%に抑えられていることが判明しました。


6. 仮想通貨マイニングのスクリプトが埋め込まれたYouTubeの広告

仮想通貨マイニングマルウェアの問題は深刻化しています。CPUのサイクルを乗っ取って、仮想通貨のマイニングから利益を得ようとする攻撃者の数が増加の一途をたどる中、このマルウェアはますます多くの場所に現れるようになっています。1週間前にはYouTubeの広告にコインマイナーのスクリプトが埋め込まれ、数件の悪意ある広告が表示されました。幸いにも、この問題に気付いたYouTubeは2時間以内にその広告を削除しました。

YouTubeの広告に埋め込まれた悪意のあるマイニングスクリプト

コインマイナーによる乗っ取りを防止または回避するための方法は下記のとおりです。

  1. ブラウザのキャッシュを削除する。またはCCleanerソフトウェアをインストールし、不要なファイルや無効なWindowsレジストリのエントリを特定してコンピュータから削除する。
  2. ブラウザでJavaScriptを無効にする、またはスクリプトブロックツールや拡張機能を実行する。
  3. FortiClientなどのアンチウィルスソフトウェアをインストールする。
  4. AdBlockerや、Ghosteryなどの類似するツールをインストールして実行する。

FortiGuardでは、本ブログにリストアップしたすべてのURLを悪意のあるものとしてブラックリストに登録しています。


IOC:
侵害されたウェブサイト

  • acenespargc[.]com
  • www[.]romance-fire[.]com
  • milknewzealand[.]com

新たに特定された仮想通貨マイニングのURL:

  • hxxp://coinhive[.]com
  • hxxp://minerhills[.]com
  • hxxp://crypto-webminer[.]com
  • hxxp://sorteosrd[.]com
  • hxxp://greenindex[.]dynamic-dns[.]net
  • hxxps://github[.]com/deepwn/deepMiner