【更新】北朝鮮のサイバー犯罪グループLazarusとの関連が想定されるマルウェアフレームワークMATAについて
Kasperskyのブログにて、北朝鮮のサイバー犯罪グループLazarusとの関連が想定されるマルウェアフレームワークMATAの調査内容が公開されました。
同マルウェアフレームワークは2018年4月に確認されており、ペイロードを取得するローダー、追加モジュールの取得や事項を行うオーケストレータなどが含まれており、Windows版、Linux版、macOS版が存在するとのことです。
本記事では、同フレームワークの概要について、調査記事を参考に記載します。
目次
MATAフレームワークへの感染地域
Kasperskyの調査によると、MATAフレームワークへの感染が確認された地域は以下です。
- ポーランド
- ドイツ
- トルコ
- 韓国
- 日本
- インド
また、被害に遭った組織として、以下を挙げています。
- ソフトウェア開発会社
- eコマース会社
- ISP(インターネットサービスプロバイダー)
攻撃者の狙い
Kasperskyによると、感染が確認された組織への調査結果より、攻撃者の狙いがある程度わかっているとのことです。
攻撃者は、組織への侵入後、データベースの発見を試み、発見次第、クエリを実行して、顧客リストの取得を行いました。
このことから、顧客のデータベースを一つの狙いとしていることがわかります。
また、VHDランサムウェアを配布するためにMATAフレームワークの利用した痕跡も確認されており、これについては、別途記事が公開されるとのことです。
Lazarusとの関連
タイトルにもある通り、MATAフレームワークはLazarusとの関連が強く疑われます。
Lazarusについて軽くおさらいしておくと、Lazarusは別名HiddenCobraとも呼ばれており、US-CERTからも定期的に調査内容や利用マルウェアが公開されています。
ちなみに、このHiddenCobraはUS-CERTが用いる呼び名で、セキュリティベンダやニュースサイトではLazarusと呼ばれることが多い印象です。
今回のMATAフレームワークとLazarusの関連も、まさにUS-CERTが公開しているサンプルManuscryptの亜種との間に見られたものです。
レポート自体は2017年の12月に公開されたものが該当します。
https://us-cert.cisa.gov/sites/default/files/publications/MAR-10135536-B_WHITE.PDF
このレポートに記載された検体0137f688436c468d43b3e50878ec1a1fについて、検体中にc_2910.clsおよびk_3872.clsのファイル名が確認されたことに起因しています。
さらにManuscryptの亜種自体、MATAフレームワークと類似の構造をとっており、セッションID、スリープの感覚、C2アドレスの数、感染を示す日付情報、C2アドレスおよびポートなどの情報を構成情報として持っています。
Windowsバージョン
Windowsバージョンを構成するコンポーネントとして、以下の図が紹介されています。
攻撃者はローダーを利用して、暗号化されたペイロードを読み込みます。
このペイロードが図でいうところのオーケストレータにあたるかどうかは定かでないものの、被害組織のほとんどすべてに、ローダーとオーケストレータが含まれていたとのことです。
ローダーについて
ローダーを実行する親プロセスは C:\Windows\System32\wbem\WmiPrvSE.exe であることが確認されています。
WmiPrvSE.exeは名前の通りWMI実行のためのホストプロセスであり、実行したローダーを起点に感染活動を拡大している様子から、リモートアクセスを行った上で組織内への横展開を試みたのではないかと予想できます。
インシデント調査の勘所として、攻撃の成功時に見られる痕跡については、JPCERT/CCが過去に「インシデント調査のための攻撃ツール等の実行痕跡調査に関する報告書」として公開しているので、参考にしていただくとよいかと思います。
ちなみに、痕跡の見方は、PDF版の「3.16. ツールおよびコマンドの実行成功時に見られる痕跡」に書いてあります。
https://www.jpcert.or.jp/research/20160628ac-ir_research.pdf
オーケストレータについて
Kasperskyが今回確認したオーケストレータのバージョンは3.1.1でタイムアウト値として20分が指定されていることが確認されています。
オーケストレータは暗号化されたデータをレジストリキーから読み込み復号化することで、機能を実行します。
もし、レジストリキーが存在しない場合は、マルウェアにあらかじめハードコードされたデータを利用します。
オーケストレータは一度に15のプラグインをロードでき、その方法として、以下の三つがあります。
- HTTP/HTTPSで特定のサーバにアクセスして取得
- 特定のDiskパスから暗号化されたデータを取得
- MataNet専用コネクションを用いて取得
MataNetというのはTLS1.2を用いた専用の通信で、MataNetが用意する、クライアントモードとサーバモードを利用することで、ノード間の通信を実現します。
サーバモードでは、先述のc_2910.clsを証明書用の公開鍵として、k_3872.clsを秘密鍵として利用しますが、感染端末での利用は確認されていないようで、C2サーバでのみ利用される様子でした。
MataNetの通信において、以下のメッセージIDにより、通信内容が指定されるようでした。
メッセージID | 説明 |
---|---|
0x400 | 現在のMataNetセッションを完了し、論理ドライブの数が変更されるか、新しいアクティブユーザーセッションが開始されるまで、次のセッションを遅らせます。 |
0x500 | 構成レジストリキーを削除し、次の再起動までMATAの実行を停止します。 |
0x601 | 構成データをC2に送信します。 |
0x602 | 新しい構成データをダウンロードして設定します。 |
0x700 | 被害者ID、内部バージョン番号、Windowsバージョン、コンピューター名、ユーザー名、IPアドレス、MACアドレスなどの感染したホストの基本情報をC2に送信します。 |
0x701 | 被害者ID、内部バージョン番号、セッションタイムアウトなどの構成設定をC2に送信します。 |
また、オーケストレータがダウンロードするプラグインの例とその説明も公開されています。
プラグイン名 | 説明 |
---|---|
MATA_Plug_Cmd.dll | パラメータを指定してcmd.exe /cまたはpowershell.exeを実行し、コマンド実行の出力を受け取ります。 |
MATA_Plug_Process.dll | プロセスの操作を行います。(プロセスの一覧表示、プロセスの強制終了、プロセスの作成、ログオンユーザーセッションIDを使用したプロセスの作成) |
MATA_Plug_TestConnect.dll | ポートまたはIPアドレスレンジなどTCP接続における情報を確認します。(pingをホストやIPに送信する) |
MATA_Plug_WebProxy.dll | HTTPプロキシサーバを作成します。サーバは指定されたポートでTCP接続を待ち受け、クライアントからHTTPサーバへのCONNECT要求を処理して、クライアントとサーバ間のすべてのトラフィックを転送します。 |
MATA_Plug_File.dll | ファイルを操作します。(受信データを指定ファイルに書き込み、指定ファイルのLZNT1圧縮後の送信、指定フォルダの%TEMP%\~DESKTOP[8random hex].ZIP圧縮と送信、指定ファイルの検索、ファイルの検索、ファイルとフォルダの一覧表示、ファイルへのタイムスタンプ付与)。 |
MATA_Plug_Load.dll | PIDとプロセス名を使用してDLLファイルを特定のプロセスに挿入するか、XORされたDLLファイルを特定のプロセスに挿入し、オプションで引数を指定してエクスポート関数を呼び出します。 |
MATA_Plug_P2PReverse.dll | 一方のMataNetサーバともう一方の任意のTCPサーバの間を接続し、それらの間でトラフィックを転送します。両側のIPとポートは、このインターフェースへの呼び出しで指定されます。 |
Linuxバージョン
Linuxバージョンとしても、MATAフレームワークは確認されており、異なるファイルを含んでいたとのことです。
- Windows版のMATAオーケストレータ
- Linux版のMATAオーケストレータ
- フォルダ探索のためのLinuxツール
- Atlassian Confluence Serverの脆弱性CVE-2019-3396の利用を試みるスクリプト
- socat(正規ツール)
ちなみに、Linux版のMATAフレームワークについては、Dacls RATとして、昨年末に中国のセキュリティベンダNetlab 360により公開されています。
Linux版の挙動として、起動時に/var/run/init.pidからPIDを読み取ることで、既に実行されているかどうかを確認し、/proc/%pid%/cmdline 配下のファイルと /flash/bin/mountd 配下のファイルの比較を行います。
ちなみに、この /flash/bin/mountd というパスが特徴的でおそらく、ディスクを持たないルータやFW、IoTデバイスなどをターゲットとしている様子がうかがえます。
先述のWindows版のプラグインとLinux版プラグインとの対応票が公開されているので、そちらも掲載します。
Linuxプラグイン | 対応するWindowsプラグイン |
---|---|
/bin/bash | MATA_Plug_Cmd |
plugin_file | MATA_Plug_File |
plugin_process | MATA_Plug_Process |
plugin_test | MATA_Plug_TestConnect |
plugin_reverse_p2p | MATA_Plug_P2PRevers |
なお、Linux版のMATAにはlogsendという独自プラグインがあり、ポート番号8291(MikroTikルータの独自ポート)やポート番号8292(Bloomberg Professionalの独自ポート)やアクセス可能なIPをランダムに探索するスキャン機能を実装しているとのことです。
そして、コネクションが確立されると攻撃者のC2へログが転送される仕組みになっています。
macOSバージョン
macOSに対して感染を試みるMATAマルウェアは、Virustotal上に2020年の4月、確認されたとのことでした。
このファイルはMinaOPTというオープンソースのmacOS用二要素認証アプリケーションを細工したものだとのことです。
https://github.com/MinaOTP/MinaOTP-MAC
このmacOS用MATAも他のMATA同様、プラグインベースで行われるようで、実装しているプラグインはLinux版と類似しているとのことです。
唯一違うのはplugin_socksという追加のプラグインがあるくらいで、その役割はplugin_reverse_p2pと同じくプロキシサーバのようなものだとのことです。
関連情報(2020年7月28日夕方更新)
本日、記事を上げた数時間後にKasperskyより追加の記事が公開されました。 本記事の文中でも紹介したVHDランサムウェアについてですね。
Lazarus on the hunt for big game | Securelist
ここでは、概要のみ記載します。
感染の流れとして、VPNゲートウェイの脆弱性を起点に組織内に侵入し、権限昇格およびADを侵害したのちにWMIでの横展開とVHDランサムウェアへの感染を実現しています。
また、セキュリティベンダーSentinelOneからもLazarusに関する調査記事が公開されています。
本件も、概要のみ抜粋します。
- LazarusがmacOSを狙った4種類のマルウェアを確認
SentinelOneの記事では、より詳細が書かれているので、興味を少しでも持たれた方は、読んでいただくことをオススメします。
まとめ
今回、Kasperskyの記事をベースにLazarusが利用するMATAフレームワークについて、読み解いてみました。
最近、標的型攻撃や攻撃グループの独自マルウェアについては、読んでいなかったので、個人的には面白いように感じました。
実際に、被害に遭った組織に所属しているわけでも、セキュリティベンダのIRチームにいるわけでもないので実情はわかりませんが、北朝鮮から日本もターゲットにされているってことなんですかね。
先日、米国のニュースでも中華系攻撃グループに所属するハッカーが訴訟されたみたいなニュースがありましたが、そのあたり含め、また気になるニュースがあれば、掘り下げて、必要に応じて、記事にまとめようかと思います。