SSTエンジニアブログ

SSTのエンジニアによるWebセキュリティの技術を中心としたエンジニアブログです。

CODE BLUE 2018 『CoinMinerはあいまい』の聴講レポート

はじめに

こんにちは!新卒エンジニアの西尾です。

先日のCODE BLUE 2018に参加して、個人的に一番内容が理解できて興味があった『CoinMinerはあいまい』というセッションの聴講レポートを書いていきます。
(全体の参加レポートについては別の記事として上げる予定です)

セッション概要

本記事は、ブロックチェーントラックで発表されたトーマス・ロッチア氏とオムリ・モーヤル氏による『CoinMinerはあいまい』の聴講レポートとなります。
セッション概要は下記の通りです。

コインマイナーは増加傾向にあり、メディアや研究コミュニティ内においてもこの数ヵ月でランサムウェアを完全に置き換えることになった。暗号化したユーザーのデータを人質にして利益を得ていたランサムウェアと異なり、コインマイナーはハイジャックしたコンピュータのリソースを使い利益を得る。コインマイナーは検出されずに隠れ続けている限り利益を上げていく。
この講演では、コインマイナーの秘匿戦略の未調査領域や、被害者から発見されないようにする機能にフォーカスし、それらと戦うための方策やツールを提供する。
コインマイナー(クリプトジャッキングとも呼ばれる)は未知で新しい脅威であり、エクスプロイットキットの作者やトロイ、スパムbotなど多くの既知のマルウェアグループにおける収益の主要な柱になっている。その評判や受けが高まっていることから、効果的な対策を明らかにすることは非常に重要である。この講演者両名はマルウェア対策技術の分野における専門家であり、この講演が他の研究者にとってのコインマイナー対策とリファレンスとなることを目指している。 今回の講演においてコインマイナーハンティングがより簡単に、よりスケールする、多くのオープンソースツールを我々は公開する予定である。

聴講レポート

このセッションでは、主に悪意のあるマイナー(マイニングマルウェア)の種類や特徴について発表されていました。
ここでは、発表の流れに沿ってレポートと感想を書いていきます。

悪意のあるマイニングの概要

  • 悪意のあるマイナーの99%はMoneroを採掘する
    • ウォレットアドレスの匿名性が高いため
    • Moneroそのものが悪いわけではない(お金と同じ)
  • マイナーはワームに依存する
    • 多くのPCに感染させるほど、それだけPCリソースを使えるのでより稼げる
    • たくさん感染させた方が稼げるという意味では、ランサムウェアと似ている
  • Cryptojacking(Webマイニング)
    • ブラウザ・JSを利用するだけでマイニング可能
    • 多くはcoinhiveが悪用されている
    • 簡単にマイニングコードを挿入できることが攻撃者にとってメリット
  • Dos攻撃と似た影響
    • マイニング時には多くのPCリソースを消費するため、その分電気料金が上がる
    • データセンターなどが攻撃を受けた場合、非常に大きな影響を受ける
    • クラウドサーバが攻撃を受けた場合にも、利用率が上がるため料金が上がってしまう

感想等

Moneroのような匿名性が高い仮想通貨は、「誰が誰に送金したか」の追跡が難しくなるため、犯罪者に人気です。実際、マネーロンダリングにも悪用されているみたいです。
Web改ざんによるマイニング(Cryptojacking)については、以前私のブログにも書いた通り、数行のスクリプトを書くだけでマイニングすることが可能です。また、マイニングスクリプトが改ざんによって埋め込まれたのか、それともWeb管理者が意図的に埋め込んだのかの判断が難しいため、改ざんに気づきにくく、攻撃者にとってのメリットが大きいと思われます。

マイニングマルウェアの紹介

  • WaterMiner
    • ゲームのトロイの木馬
    • XMRigでマイニング
    • タスクマネージャーを開くとマイニングを停止する
      • ゲームが原因でPCが重くなったと被害者に勘違いさせる
  • Eviral
    • キーボードをフック
    • 他のウォレットアドレスを見つけると、自分らのものに置き換える
  • UIWIX
    • 200以上の検知回避手法が用いられている
    • 詳細はトレンドマイクロが解析している
  • xiaoba
    • Webサーバ上のJSをインジェクションする
  • GhostMiner
    • XMRigでマイニング
    • アンチウイルスソフトを回避する
    • 競合相手を締め出す機能(マイナーキラー)
      • 他のマイナーをkillする
  • Adylkuzz
    • 感染すると、まずバッチを作成(脆弱性の修正?)
    • 他のマイナーが感染しないようにする
  • 他の検知回避テクニック
    • PC負荷を小さくすることで、被害者に気づかれないように長期的にマイニングする
    • マウス・キーボード、スクリーン動作などを検知することで、マイニングの実行を止める
      • ユーザがPCを使っていない間(例えば寝てるとき)だけマイニングを実行
    • タスクバーの下にブラウザウィンドウを隠して、Webマイニングを行うケースもある

感想等

マイニングマルウェアについてはそれなりに調べたつもりでしたが、半分ほど初めて聞いたマルウェアでした。検知回避手法についても、ユーザがPCを使っていない時だけマイニングを行うなど、手口が巧妙化していることに驚きました。
また、攻撃者同士の縄張り争いのようなものが行われていることから、マイニングマルウェアに感染させる攻撃がかなり流行っていることがうかがえます。
マイニング時に用いられるツールは、やはりXMRigが一般的のようですね。

対策

  • モニタリングツールを使ってCPU動作を監視
  • minerkillerの利用
  • マイニングプールとの接続を検知
    • マイニングプールと通信を行う際のプロトコルが特徴的なので、それを利用する
  • CoinBlockerListsの利用
    • マイニングプールのドメインやIPリスト
  • 一般ユーザ向けの対策(Webマイニング)
    • AdBlockerなどのツールを利用

感想等

現状では悪意のあるマイニングの効果的な対策は無く、開発中という印象です。CPUに負荷がかかったとしても、マイニングとは限らないし、負荷をかけないケースもあるので。通信を見るとしても、直接マイニングプールと接続せずに、攻撃者のサーバを中継したり、通信を暗号化したりすると厄介だと思われます。
また、攻撃者がマイニングによってたくさんの利益を得ているとしたら、より攻撃の巧妙化が進んで対策が難しくなりそうですね…

質疑応答

  • coinhiveの正当性
    • 使い方に問題があって、閲覧者に承認を求める形式であれば良い
    • アラートを出さず、閲覧者の同意を得ずにひっそりとマイニングするのはよくない
    • ただ、97%が悪意のある使い方をしており、正当に使っているのはたった3%である
  • マイニングプールについて
    • マイニングプールの管理に問題がある
    • セキュリティ技術者が犯罪者のウォレットアドレスをプールに提供しても、プール側が特に対応を行ってくれない

全体の感想

私も不正なマイニングに興味を持っていて色々と調査したつもりでしたが、今回の講演で初めて知ったことも多くあり、とても有意義なセッションとなりました。
また、今回の講演で印象に残ったのは、仮想通貨やマイニング行為自体は悪いものではなく、あくまでニュートラルだということです。仮想通貨も結局は普通のお金と同じで、良いようにも悪いようにも使えると。
coinhiveやXMRig自体が悪だ!という風潮にならないようにしていきたいですね…