MS-SQL サーバー対象 Proxyjacking 攻撃事例の解析

AhnLab Security Emergency response Center(ASEC)は、最近不適切に管理されている MS-SQL サーバーを対象とする Proxyjacking 攻撃事例を確認した。外部に公開されていながらも単純な形態の暗号を使用している MS-SQL サーバーは Windows システムを対象とする代表的な攻撃ベクトルの一つである。一般的に攻撃者は不適切に管理されている MS-SQL サーバーを探して総当たり攻撃や辞書攻撃を通じてログインに成功した場合、感染システムにマルウェアをインストールすることができる。

この攻撃者は、以前から MS-SQL サーバーを対象に LoveMiner をインストールしており、Proxyjacking 攻撃と Cryptojacking 攻撃を一緒に実行することが特徴である。最近の攻撃に比べると Peer2Profit の Proxyware を攻撃に使用した以前とは異なり、現在は IPRoyal Pawns、Traffmonetizer、Proxyrack、PacketStream 企業の Proxyware を攻撃に使用しているという違いがある。このように様々な Proxyware が攻撃に使用されたということ以外にもマルウェアが .NET Native AOT(ahead-of-time) コンパイル方式で製作されたことも一つの特徴である。ここでは同じ攻撃者による過去の攻撃事例を簡単に紹介して、最近の攻撃に使用されているマルウェアを解析する。

1. Proxyjacking 攻撃

ASEC では、以前「Proxyware を利用して利益を受け取っている攻撃者たち」[1]の記事を通じて、最近流行っている Proxyjacking 攻撃事例を取り扱ったことがある。Proxyjacking 攻撃とは、ユーザーの同意なしに Proxyware をインストールして感染システムのインターネット帯域幅の一部を外部に共有する形で攻撃者が収益を得る攻撃方式である。

Proxyware とは、インストールされているシステムから現在使用できるインターネット帯域幅の一部を外部に共有するプログラムで、一般的にこのプログラムをインストールしているユーザーは帯域幅を提供する代わりに一定の金額を受け取っている。もし攻撃者がユーザーの同意を得ず、感染システムに Proxyware を気づかれることなくインストールする場合、感染したシステムは強制的にネットワーク帯域幅を窃取されることになり、攻撃者はこれによって収益を得る。これは Cryptojacking 攻撃と類似しているが、Proxyware の代わりにコインマイナーをインストールして感染システムのリソースで仮想通貨を採掘するという違いがある。

過去 Cisco 社の Talos のレポートで正常なインストーラーに偽装した、マルウェアを通してインストールされている Proxyjacking 攻撃事例が報告されており[2](英語外部サイト)、その後 ASEC ブログでは Adware と不適切に管理されている MS-SQL サーバーを対象とした攻撃事例を取り扱った。Proxyjacking 攻撃は Windows システムだけでなく Linux システムもターゲットにして行われており、Log4Shell 脆弱性を利用した攻撃や[3](英語外部サイト) SSH サーバーに対する攻撃を通じてインストールされた事例も[4](英語外部サイト) 報告されている。

2. 過去の攻撃事例

LoveMiner 攻撃者は 2022年6月の初めから不適切に管理されている MS-SQL サーバーを攻撃して Peer2Profit 企業の Proxyware を 「sdk.mdf」という名前でインストールした。「sdk.mdf」は Proxyware が提供するファイルであるため、これを悪用する CLR Assembly を同時に使用することで帯域幅を窃取した。[5]

Figure 1. Proxyware と CLR Assembly インストールログ

CLR Assembly である「Tmp417C.tmp」は Proxyware である「sdk.mdf」をロードし、エクスポート関数の p2p_start() を呼び出すことでユーザーに認知されることなく動作させる。p2p_start() を呼び出す際には、利益を受け取るメールアドレスを引数で伝達しなければならないため、マルウェアから攻撃者のメールアドレスを確認することができる。

Figure 2. SqlShell を利用した Proxyware の実行

CLR Assembly の名前である「SqlServerWorks.CLR.P2P.dll」は LoveMiner の CLR Assembly と類似しているが、これを通して LoveMiner 攻撃者が Proxyware を一緒に攻撃に使用していることが分かる。実際 AhnLab Smart Defense (ASD) ログでも LoveMiner と Proxyware がほぼ同時にインストールされる傾向がある。

LoveMiner はダウンローダー形式の CLR Assembly とローダー形式の CLR Assembly に分かれるが、ローダー形式の場合は内部リソース「gmp」に保存されている XMRig をメモリ上でロードする役割を担っている。「gmp」もまたカスタマイズされた XMRig であり、初期ルーティンでマイニングプールアドレスのようにマイニングに必要な情報を設定する。リソース名に使用された「gmp」文字列は、最新の攻撃でも使用されている。

Figure 3. ローダー形式の LoveMiner CLR Assembly

3. 最新の攻撃事例

ASEC では、最近 LoveMiner 攻撃者が「sdk.mdf」の代わりに「winupdate0.mdf」という名前のマルウェアを生成していることを確認した。DLL フォーマットであるマルウェアの場合、バージョン情報が「SqlserverCLRV2.NativeLib.dll」である。これは LoveMiner CLR Assembly のファイル名と類似しており、Export 関数のうち 「GmpStart」という文字列が使用されたということからも同じ攻撃者が製作したものと推定することができる根拠の一つである。

Figure 4. Dropper マルウェアのバージョン情報

「winupdate0.mdf」は Dropper マルウェアであり、感染システムに様々な Proxyware をインストールする。.NET で開発された LoveMiner の CLR Assembly とは異なり、「winupdate0.mdf」は .NET ではなく .NET Native AOT コンパイル方式で製作されたことが特徴である。.NET Native AOT は .NET 7から導入されたメカニズムで .NET コードを CIL ではなくネイティブコードで直接コンパイルする方式である。開発者の立場からすると、これを通して性能上の利点が大きくなる可能性があるが、マルウェアを分析するという観点から見ると、通常の .NET ファイルと違ってさらに多いリソースが必要になる傾向がある。[6](英語外部サイト)

 

Figure 5. .NET Native AOT コンパイル方式で製作された Dropper マルウェア

GmpStart() 関数は実質的な Dropper 機能を担っており、ランチャーマルウェアである「warpstrat.dll」と Proxyware ツールである Traffmonetizer、IPRoyal、Proxyrack、PacketStream をインストールする。GmpStart() 関数は以下のように単純な形式でそれぞれの関数で順にインストールする役割を担っており、すべてのファイルは %APPDATA% パスにインストールされる。

Figure 6. GmpStart() 関数のメインルーティン

Dropper はインストールした Proxyware を直接実行する代わりに「warpstrat.dll」を利用して間接的に実行する。「warpstrat.dll」は名前と違って EXE 実行ファイルであり、引数で伝達されたコマンドを実行させる単純な形式の .NET ランチャーツールである。

Figure 7. warpstrat ランチャーツール

4. 攻撃に使用された Proxyware

種類 パス名 ファイル 機能
Launcher %APPDATA%\ warpstrat.dll ランチャーツール
Traffmonetizer %APPDATA%\sraffzer\ sraffzer.exe など Traffmonetizer Proxyware
%APPDATA%\traffmonetizer\ settings.json など Traffmonetizer 設定ファイル
IPRoyal %APPDATA%\ SQLSERVERHUP.dll IPRoyal Proxyware
%APPDATA%\ip_royal_paws\ その他ファイル IPRoyal 設定ファイル
Proxyrack %APPDATA%\ sqlgo.exe Proxyrack Proxyware
%APPDATA%\ prokey.obj Proxyrack 設定ファイル
PacketStream %APPDATA%\ psexitnode.exe PacketStream Proxyware
Table 1. インストールされる Proxyware リスト

4.1. Traffmonetizer

最初にインストールされるものは Traffmonetizer である。[7](英語外部サイト) 攻撃者は最初に「%APPDATA%\traffmonetizer\」パスに「settings.json」ファイルを生成するが、これには攻撃者のトークン情報が保存されている。

{“Token”:”numNo223zAbqep0Eveul2JZbvh3hYRkAL1HQfg4L5tw=”,”StartWithWindows”:false,”Accepting”:true}

その後、バイナリに含まれている「s.zip」ファイルを生成し、「%APPDATA%\sraffzer\」パスに解凍する。この圧縮ファイルには Traffmonetizer プログラムが存在しており、その後 warpstrat を利用して実行させる。

Figure 8. 圧縮ファイルに含まれている Traffmonetizer ファイル

Traffmonetizer のトレイアイコンをダブルクリックすると、ここ3か月間の収益を確認することができる。このトークンを使用している攻撃者は多数のシステムを感染させることで、すでにかなりの収益を得ていると思われる。

Figure 9. Traffmonetizer を利用して攻撃者が得た収益

4.2. IPRoyal Pawns

IPRoyal Pawns は、過去の事例を含めて大半の攻撃で確認される Proxyware の一つである。[8](英語外部サイト) IPRoyal Pawns の特徴の一つは Proxyware を実行する際にアカウント情報が必要であるということだ。そのため、インストールプロセスで攻撃者のメールアドレスとパスワードを確認することができる。

Figure 10. IPRoyal Pawns Proxyware インストールに使用されるアカウント情報
  • バージョン:pawnsapp_gui 1.4.6
  • 攻撃者のメールアドレス:gmpgmp@duck[.]com

4.3. Proxyrack

Proxyrack は「device_id」であり、ランダムな文字列を生成し、これを引数として Proxyware を実行した後、ホームページから自分のアカウントにこの「device_id」を登録する形で収益を得ることができる。[9](英語外部サイト) Proxyrackは、この他にも API をサポートしているが、アカウントの API を利用して「device_id」を POST で要請して登録することもできる。

Figure 11. Device ID 登録方法

Dropper は Proxyrack の Proxyware を「%APPDATA%\sqlgo.exe」パスに生成して実行するが、その前に「prokey.obj」ファイルが存在しているかを検査する。もし存在しない場合は、ランダムな文字列を生成して「prokey.obj」 Proxyware 「device_id」ファイルに保存し、Proxyware を実行する際に「device_id」引数として使用する。Dropper では API を利用してランダムで生成した「device_id」を登録する部分が確認されないが、これは攻撃者が Dropper と一緒に「prokey.obj」ファイルを予め生成したか、それとも他の方法で「device_id」を収集したものと思われる。

–homeIp point-of-presence.sock[.]sh –homePort 443
–id [Device ID]
–version 56 –clientKey proxyrack-pop-client –clientType PoP
–ppid [PPID] –osType [OS 종류] –osRelease [OS 버전] –osArch ia32

4.4. PacketStream

PacketStream は、他の Proxyware に比べて簡単な形式である。[10](英語外部サイト) 「%APPDATA%\psexitnode.exe」パスに Proxyware をインストールした後、以下のような引数を転送して実行させる方法が使用されている。

> psexitnode.exe “1332868?client_version=20.202.1548”

5. 結論

最近確認されている Proxyware Dropper マルウェは、システムリソースを利用して収益を得ているという点ではコインマイナーと類似している。このようなマルウェアは Adware を利用して配布されたり、脆弱な MS-SQL サーバーをターゲットにインストールされたりしている。

MS-SQL サーバーの管理者はアカウントのパスワードを推測が困難な形式で設定し、定期的にパスワードを変更することで、総当たり攻撃や辞書攻撃からデータベースサーバーを保護しなければならず、セキュリティパッチを最新にして脆弱性攻撃を防止しなければならない。また、外部に開放されていてアクセスが可能なデータベースサーバーに関してはファイアウォールのようなセキュリティ製品を利用し、外部の攻撃者からのアクセスを統制しなければならない。上記のような処置が先行されていない場合、攻撃者およびマルウェアによって感染状態が継続する場合がある。また、V3 を最新バージョンにアップデートしてマルウェアへの感染を事前に遮断できるように注意を払わなければならない。

ファイル検知
– Dropper/Win.Proxyware.C5471194 (2023.08.15.03)
– HackTool/Win.Launcher.C5471202 (2023.08.16.00)
– PUP/Win.TraffMonetizer.C5471479 (2023.08.16.02)
– Unwanted/Win.PacketStream.C5471480 (2023.08.16.02)
– Unwanted/Win.IPRoyal.C5471481 (2023.08.16.02)
– PUP/Win.Proxyrack.C5471483 (2023.08.16.02)
– Data/BIN.Config (2023.08.16.02)

IOC
MD5
– e8997e7d0cfee9875eb64b3aae8cc76a : Proxyware Dropper (winupdate0.mdf)
– ec336ebe46d1ed6b0381801d06fb30b4 : Proxyware Dropper (winupdate0.mdf)
– 407eee5f4342af292a66b8d49794f64f : Launcher (warpstrat.dll)
– 0bd9711e8566b28142dde063c0fc2e55 : Traffmonetizer Proxyware (sraffzer.exe)
– 5a8eee8fe217634cb47f2967a3d6bb37 : Traffmonetizer Config (settings.json)
– a88e1eaf5576d27572ccc5655afb9d1a : IPRoyal Proxyware (SQLSERVERHUP.dll)
– dd7c9fe604867e2705dc581fedc1f554 : Proxyrack Proxyware (sqlgo.exe)
– 2d9c5507f204fc5a223bff457b4cb0e7 : PacketStream Proxyware (psexitnode.exe)

関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム「AhnLab TIP」サブスクリプションサービスを通して確認できる。

5 3 votes
評価する
Subscribe
Notify of
guest

0 コメント
Inline Feedbacks
View all comments