トレンドマイクロは、8つの脆弱性/脆弱性攻撃ツールの利用と辞書攻撃によってWebサーバ、ネットワークドライブ、および外付けドライブを狙い、仮想通貨発掘ツール(コインマイナー)を送り込む新しいマルウェアファミリを確認しました。このマルウェアは、作成するレジストリと主なコンポーネントの名称にちなんで「BlackSquid」と名付けられました。以下のようなBlackSquidの特徴は、このマルウェアの危険度を高いものにしています。
- 検出回避機能:仮想環境、デバッグ、サンドボックスを検知してインストールを中止
- 拡散機能:ワームのような挙動によってネットワーク内で拡散
- 8つの脆弱性/脆弱性攻撃ツールを利用:「EternalBlue」、「DoublePulsar」、「CVE-2014-6287」、「CVE-2017-12615」、「CVE-2017-8464」、複数のバージョンが影響を受ける「ThinkPHP」の3つの脆弱性
現在のところ、BlackSquidの背後にいるサイバー犯罪者は、さらなる改良のためにこのマルウェアが利用する手口の有効性をテストしている段階にあると考えられます。今回トレンドマイクロが入手した検体は最終的なペイロードとして仮想通貨「Monero」を発掘するコインマイナー「XMRig」をダウンロードしますが、将来別のペイロードが利用されることも十分考えられます。
2019年5月最終週においてBlackSquidの検出数が多い国はタイおよび米国でした。
■侵入経路
BlackSquidは以下の3つの侵入経路からシステムを感染させます。
- ユーザが訪問した不正なWebサイトからのダウンロード
- ネットワークドライブまたは外付けドライブを介した拡散
- Webサーバへの感染
■検出回避の手口
BlackSquidは以下の条件のうち少なくとも1つが満たされている場合、検出およびブロックを避けるために直ちに感染活動を停止します。
- 対象システムのユーザ名が、サンドボックスでよく使用されている以下のユーザ名のいずれかに等しいこと。
- Avira
- COMPUTERNAME
- CWSX
- Kappa
- NMSDBOX
- VBOX
- WILBERT-SC
- XPAMASTC
- XXXX-OS
- cuckoo
- cwsx-
- nmsdbox
- qemu
- sandbox
- virtual
- wilbert-sc
- xpamast-sc
- xxxx-ox
- ディスクドライブのモデルが以下のいずれかに等しいこと
- Avira
- Kappa
- VBOX
- Qemu
- Sandbox
- test
- virtual
- vitual
- vmware
- vware
- デバイスドライバ、プロセス、ダイナミック・リンク・ライブラリが以下のいずれかに等しいこと
- Anubis.exe
- api_log.dll
- Cuckoo.exe
- dir_watch.dll
- ImmunityDebugger.exe
- OllyDBG.EXE
- OllyICE.exe
- Sandboxie.exe
- sandboxiedcomlaunch.exe
- sandboxierpcss.exe
- sbieDLL.dll
- SbieDrv.sys
- SbieSvc.exe
- SXIn.dll
- vboxdrv.sys
- VBoxGuestAdditions.sys
- vboxnetadp.sys
- VBoxRes.dll
- Vboxusb.sys
- Vboxusbmon.sys
- windbg.exe
- x64_dbg.exe
他にも、デバッグレジスタをチェックしてハードウェアブレイクポイントが確認された場合、アンチデバッグフラグに「1」を、確認されなかった場合「0」を代入するコードが見つかっています。このフラグが「1」であれば感染を継続し、「0」であれば活動をスキップします。しかし、本記事執筆時点(2019年6月3日)では、このフラグの値として「0」がハードコードされていることから、このアンチデバッグ機能は開発中であると考えられます。
図1:ハードウェアブレイクポイントをチェックしフラグに値を設定するコード(上)
フラグの値として「0」(活動のスキップを意味)がハードコードされている(下)
■拡散の手口
「EternalBlue」および「DoublePulsar」の利用
上記3つの条件のどれにも当てはまらない場合、BlackSquidは感染活動を継続します。最近のいくつかの事例における仮想通貨発掘マルウェアと同様に、BlackSquidもまた、ネットワークを介して拡散するためにServer Message Block(SMB)における遠隔からのコード実行(Remote Code Execution、RCE)脆弱性を突く攻撃ツール「EternalBlue」および「DoublePulsar」を利用します。
図2:脆弱性攻撃ツール「EternalBlue」および「DoublePulsar」のコマンドライン
図3:445番および139番ポートに対するSMBの脆弱性を突く攻撃
ネットワークドライブを介した拡散
BlackSquidはネットワークドライブおよび外付けドライブに自身のコピーを作成し、Windows ShellにおけるRCE脆弱性「CVE-2017-8464」を利用して実行します。この脆弱性を利用すると、ローカルシステムのユーザと同じ権限で任意のコードを実行することが可能です。
図4:「CVE-2017-8464」を利用してマルウェアを実行
Webサーバへの感染
ネットワークを介した拡散の他に、BlackSquidはWebアプリケーションの脆弱性を利用してWebサーバを感染させます。初めに、「GetTickCount」関数によって取得した値をシードとしてランダムなIPアドレスを生成します。次に、このIPアドレスの死活をチェックし、生きていた場合、脆弱性の利用または辞書攻撃によって攻撃します。
図5:ランダムに生成したIPアドレスの死活をチェックするコード
利用された脆弱性の中でも、主に中国で利用されているWebアプリケーション開発フレームワーク「ThinkPHP」の3つの脆弱性は、このフレームワークの複数のバージョンに影響を与えます。これらの脆弱性は、HTML アプリケーションを開くために Windows に標準搭載されたプログラム「mshta.exe」を使用してペイロードのメインのコンポーネントをダウンロードし実行するために利用されます。ただし、脆弱性を利用するコードの1つには数字の「1」とすべきところをアルファベットの「l」とした誤りがあり、機能しないコードとなっていました。
図6:「ThinkPHP」の脆弱性を利用する「BlackSquid」のコード
図7:「ThinkPHP」の脆弱性を利用するコードで確認された誤り
BlackSquidは、HTTPファイルサーバ「Rejetto」のRCE脆弱性「CVE-2014-6287」を利用して「mshta.exe」を実行します。この脆弱性を利用すると、検索文字列にnullバイト(%00)を含む細工したHTTPリクエストを送信することにより、任意のコード実行が可能になります。
図8:「CVE-2014-6287」を利用する特別に細工したリクエスト
BlackSquidは、「Apache Tomcat」の脆弱性「CVE-2017-12615」も利用します。この脆弱性を利用すると、特別に細工したHTTP PUTリクエストを送信して「JavaServer Pages(JSP)」ファイルをアップロードすることにより、サーバで任意のコードを実行することが可能になります。
図9:特別に細工したHTTP PUTリクエスト
図10:HTTPリクエストのメッセージボディ
BlackSquidは、この脆弱性を利用して「mshta.exe」を実行し、対象のWebサーバにBlackSquidのメインのコンポーネントをダウンロードして実行します。
図11:JSPファイルを介してBlackSquidのメインのコンポーネントを実行するコード
また、BlackSquidは、不正なiframeを追加することで、以下の既知のWebサーバに含まれるHTMLファイルを感染させることも可能です。
- C:\inetpub\
- C:\xampp\
- C:\wamp\
- C:\phpStudy\PHPTutorial\WWW\
図12:感染したHTMLファイルに追加されたiframeタグ
■仮想通貨の発掘
攻撃の中で、BlackSquidは仮想通貨発掘ツール「XMRig」のコンポーネントを2つダウンロードして実行します。これらのコンポーネントは両方とも64ビット版のMoneroマイナーですが、1つはBlackSquidのリソースに含まれており、もう1つはシステムにダウンロードされます。リソースに含まれたものがメインのコインマイナーです。このコインマイナーはWQL(WMI Query Language)を使用して「Nvidia」および「AMD」製のビデオカードが対象システムに搭載されているかチェックし、搭載されている場合GPUリソースを使用して仮想通貨を発掘するために2つ目のコンポーネントをダウンロードします。
図13:コインマイナー「XMRig」
■まとめ
検出回避や攻撃の手口を考慮すると、BlackSquidは感染システムに重大な被害をもたらし得る巧妙なマルウェアだと言えます。しかし、エラーを含むコードや意図的にスキップされた機能を考慮すると、このマルウェアは開発およびテストの段階にあると考えられます。今後、不正アクセスや情報窃取などのさまざまな攻撃に利用されるかもしれません。あるいは、GPUリソースの有無によってコンポーネントを使い分けながら最も多くの利益を上げられる方法を調査しているのかもしれません。さらに、彼らは、大きな資本投下はせずに特定の標的を定めようとしている可能性もあります。そのように考えられる理由は、BlackSquidが利用する脆弱性攻撃コードおよび手口の大多数がアンダーグラウンドで共有されているものであることや、「Shodan」のような有料のサービスを利用して対象を絞り込まずにランダムに生成したIPアドレスに攻撃を仕掛けている点です。
BlackSquidが利用するすべての脆弱性に対して、数年前から修正プログラムが利用可能になっています。そのため、適切に更新プログラムおよび修正プログラムを適用している法人組織はこのマルウェアの影響を受けることはないと考えられます。正規ベンダが公開した修正プログラムを適用し、システムを継続的に更新することが推奨されます。また、レガシーソフトウェアに対しては、信頼できるベンダが提供する仮想パッチの適用を検討してください。企業は、ゲートウェイからエンドポイントにわたって脅威および不正なURLをブロックすることができる多層的な防御を有効化することが推奨されます。
■トレンドマイクロの対策
ネットワーク脅威防御ソリューション「TippingPoint」は、以下のMainlineDV filterによりこの脆弱性を利用する攻撃を検出します。
- 2383: CVE-2017-0144 – Remote Code Execution – SMB (Request)
- 2390: EQUATED – SMB (Response)
- 2498: CVE-2017-12615 – APACHE TOMCAT Remote Code Execution via JSP Upload – HTTP (Request)
- 2722: CVE-2017-0146 – Remote Code Execution – SMB (Request)
- 2786: ThinkPHP 5x Remote Code Execution – HTTP (Request)
- 2922: CVE-2014-6287 Rejetto HttpFileServer RCE Exploit – HTTP (Request)
- 2923: BLASQUI Webshell – HTTP (Request)
- 3227: CVE-2014-6287 Rejetto HttpFileServer RCE Exploit – HTTP (Request)
- 3228: BLASQUI Webshell – HTTP (Request)
- 3229: ThinkPHP 5x Remote Code Execution – HTTP (Request)
※調査協力:Jay Bradley Nebre、Jemimah Mae Molina、Earle Maui Earnshaw
■侵入の痕跡(Indicators of compromise、IoCs)
侵入の痕跡はこちらを参照してください。
参考記事:
- 「BlackSquid Slithers Into Servers and Drives With 8 Notorious Exploits to Drop XMRig Miner」
By Johnlery Triunfante
翻訳: 澤山 高士(Core Technology Marketing, Trend Micro™ Research)