dhpcd:4 年間潜んでいたクリプトマイナー
エグゼクティブサマリー
Akamai Security Intelligence Group の調査で、「dhpcd」と呼ばれる、長期にわたり続いていた攻撃キャンペーンが観測されました。この攻撃では、SSH サーバーを実行する Linux マシンをターゲットにパスワードをブルートフォース攻撃し、最終的にはこれらのマシンで Monero のクリプトマイナーを実行します。
この攻撃キャンペーンは、2018 年 4 月に初めて Akamai の脅威センサーネットワークによって特定され、現在も活動中です。
Akamai では、脅威センサーネットワークにより、最初の出現以来 800 を超える別々のソース IP からの 2,200 以上の攻撃を検知しており、2022 年 5 月には著しいピークがありました。
攻撃の流れとしては、攻撃者はパスワードの変更と SSH キーの追加によって複数のバックドアを展開し、競合の攻撃者を無効化するために多数のスクリプトを実行し、cron ジョブと rc.local ファイルを使用して動作継続を図ります。
クリプトマイナーのバイナリーファイルの中には、他のセキュリティベンダーには知られていないものがあります。
Tor 出口ノードの背後で動作しているため、攻撃者のインフラの素性は不明です。こうした Tor 出口ノードの中には、大学、非営利団体、サイバーセキュリティ企業などに属しているものもあります。
セキュリティ侵害インジケーター(IOC)のリストの一部を付録に入れています。IOC の全リストと検出スクリプトは、 公開リポジトリにあります。
dhpcd とは
Akamai のインフラ上では数多くのインターネットサービスが稼働しているため、何が起きているかを広く把握することができ、こうした視野の広さによって新しい(またはそう思われる)マルウェアを発見することができます。2018 年 4 月、オープンソースの XMRigをベースとする、私たちが「dhpcd」と名付けたクリプトマイナーが、Akamai の脅威センサーで初めて確認され、その後も活動を続けています。検出された後もこれほど長い間、一貫して活動を続けるようなマルウェアはそれほど無いものです。これが可能であるのは、このクリプトマイナーがブルートフォースで侵入し、自らを隠し、検知するおそれのあるものの偵察を止めるためです。
この名前は、正規の Linux デーモンである dhcpdを目立たないようにもじって付けられたものです。 dhcpd は、起動中にマシン上で実行される DHCP サーバーを設定するプロセスです。こうした文字置換は、さまざまな攻撃ベクトルで検出を回避するために使用されています。これも、このマルウェアが 4 年以上も活動を続けていられる理由の 1 つでした。Tor 出口ノードを使用して姿を隠すため、攻撃元を追跡するのは不可能とは言わずとも困難です。その後、プライバシーコイン Monero を採掘します。クリプトマイナーのバイナリーファイルから Monero のウォレットも入手できました。
これまでにいくつかの変種も出ていますが、変種があることにより、感染したマシン上でのローカルな検出だけでなく、セキュリティベンダーやさまざまな脅威インテリジェンスフィードに対しても検出を回避できているようです。このブログ投稿では、攻撃フロー、緩和対応、さまざまな展開の影響について説明します。
インシデントアクティビティ
2018 年 4 月以降、当社のセンサーで 800 を超える別々の IP アドレスから 2,200 を超えるインシデントが記録されています。これらの IP アドレスは、主にホスティング会社や通信会社に属しています。しかし、大学や非営利団体の IP も多数存在しており、マルウェアの目的をさらに高めるインフラとなりました。
2022 年 3 月には、dhpcd がベースとしているクリプトマイナー XMRig のメジャーバージョンアップデートが確認され、バージョン 2.13.0 から 5.2.0 に上がりました。この大幅なバージョン更新と連動するように、規模と範囲の両方での大幅な伸びを当社では確認しています。この直後、2022 年 5 月には、年初来で最高値を記録しました。2021 年のピークほど高くはありませんでしたが、このことは、攻撃者がこの特定のマルウェアから将来得られる潜在的なメリットを拡大したいと考えている証拠だと思われます。こうしたことから、今後数か月間で、同様の事例がさらに増えるものと予測しています。
攻撃キャンペーンの範囲
最初に dhpcd を検出して以来、2,215 回の攻撃を検出しましたが、攻撃者 IP は 843 個にわたり、平均で 1 攻撃者 IP あたり 2.6 サイトの攻撃が確認されました。送信元 IP ごとに、1~27 件の攻撃が観測されました。
840 の攻撃者 IP のうち、 Tor 出口ノードが約 80%であったため、攻撃の背後にある攻撃者を追跡することはほぼ不可能です。Tor の使用は OPSEC のベストプラクティスですが、攻撃者の立場側から見ると、Tor を使用する組織は、dhpcd (やその他のキャンペーンの)伝播とマルウェア配信に役立つことになります。Akamai のセンサーを攻撃した組織の中には、米国の大学やヨーロッパの非営利団体などに属するマシンがありました。
これらの国の Tor 出口ノードの数から考えると、攻撃者の IP のほとんどは米国とヨーロッパに存在します。ヨーロッパからの攻撃のほとんどは、ドイツとオランダからのものでした。
金の流れ
攻撃者は複数のウォレットを使用して、暗号資産採掘の利益を収集します。クリプトマイナーのバイナリーファイルには 13 個の Monero ウォレットがハードコードされていました。これらのウォレットを監視してみると、それぞれに 150~160 ドル相当の残高が含まれていることがわかりました。この程度の金額を取得すると、攻撃者は別のウォレットに「転換」すると考えられます。各ウォレットにある残高が比較的少ないことを考慮すると、実際のウォレットの数はかなり多いと考えられます。この金額の低さも、このマルウェアの OPSEC の一例です。額面を低く抑えることにより、気付かれてしまう可能性を減らしているのです。
私たちが評価したこれまでの利益の合計は約 85 mBTC で、これは約 2,000 ドルに相当します。しかし、入手したもの以外のマルウェアファイルにはさらに多くのウォレットがあると想定しています。そのため、実際の利益はもっと大きな額になるでしょう。
攻撃者は、minexmr[.]com のマイニングプールドメインを使用して Monero コイン(XMR)を採掘しました。例えば、sg97[.]minexmr[.]com、fr13[.]minexmr[.]com、us40[.]minexmr[.]com などです。リスト全体は IOC リポジトリに示しています。
8 月 19 日、これらのマイニングプールは閉鎖され、攻撃者は使用できる別のプールを見つける必要がありました。現在のマイニングプールは pool[.]supportxmr[.]com:80です。
攻撃フロー
侵入初期
攻撃者は、パスワードをブルートフォース攻撃することで、SSH サーバーを実行しているターゲット Linux マシンに侵入します。次に、SCP を使用してダミーの実行可能ファイルを bin フォルダーにダウンロードします。このダミープログラムは、単に「Hello、World」をコンソールに書き込みます。これはおそらく、実行権限を確認するためです。ファイル名は、26 文字のランダムな英数字文字列です。例えば、 /bin/cpufcdmorv9crpa8h6wgh6iq2のようになります。
クリプトマイナー
攻撃者は次に、SCP を介して同じディレクトリに「dhpcd」という名前のファイルのクリプトマイナーをダウンロードします。このマイナーは、TCP ポート 4444 を介して使用可能なマイニングプールサーバーを検索します。例えば、
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
動作の継続
攻撃者は次に、クリプトマイナーの動作を継続させようとします。これを達成するために、いくつかのテクニックを使用します。
まず、システム上の既存のユーザー、例えば root、admin、test、oracle、test1、ubuntuなどのパスワードを変更することから始めます。/etc/shadow の属性を変更することにより、この変更を保護します。/etc/shadow は、システム中でハッシュ化されたパスワードとメタデータを保持するファイルです。
攻撃者は SSH キーを ~/.ssh/authorized_keys ファイルに追加し、変更できないようにします。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuhPmv3xdhU7JbMoc/ecBTDxiGqFNKbe564p4aNT6JbYWjNwZ5z6E4iQQDQ0bEp7uBtB0aut0apqDF/SL7pN5ybh2X44aCwDaSEB6bJuJi0yMkZwIvenmtCA1LMAr2XifvGS/Ulac7Qh5vFzfw562cWC+IOI+LyQZAcPgr+CXphJhm8QQ+O454ItXurQX6oPlA2rNfF36fnxYss1ZvUYC80wWTi9k2+/XR3IoQXZHKCFsJiwyKO2CY+j
攻撃者は、cron という定期的に実行するコマンドやタスクを設定するジョブスケジューラーを使用して、1 時間ごとにクリプトマイナーを実行します。さらにもう一つの環境寄生による動作継続用ツールとして、 /etc/rc.local スクリプトファイルをダウンロードし、これがシステム起動ごとにクリプトマイナーを起動します。
/bin/dhpcd -o ca.minexmr.com:4444 -B >/dev/null 2>/dev/null exit 0
競合攻撃者の活動無力化
攻撃者は、他の攻撃者の活動を停止して、マシンリソースを最大限に活用することで、利益を最大化しようという努力をします。この目的で、/dev/shm ディレクトリから 2 つのスクリプト /dev/shm/knrm と /dev/shm/r を実行しますが、その実行前にもディレクトリからの実行権限を検証します(この場合も「Hello、World」プログラムを使用)。
この /dev/shm フォルダーは tmpfs ファイルシステムであり、すべてのファイルを永続記憶デバイスではなく仮想メモリに保持します。スクリプトの保存と実行を /dev/shmから行うので、 マルウェアは、ファイルシステム上にこれらのファイルの痕跡を残しません。
この Bash スクリプトは、競合の攻撃者を完全に排除しますが、 /dev/shm/r を使ってその方法を説明します。このスクリプトは、まずシステム上で実行されているプロセスのうちリソースを消費している上位のプロセスを照会し、大量の RAM を消費するプロセスを終了して、自身の活動のためにより多くのメモリを使用できるようにします。次に、他の攻撃キャンペーンに関連付けられている cron ファイル、例えば XorDdos、Tsunami、aliyun.oneなどを削除します。
/etc/cron.hourly/gcc.sh
/etc/cron.hourly/cron.sh
/etc/cron.hourly/gcc4.sh/lib/libudev.so
このスクリプトは、前述の(およびその他の)マルウェアキャンペーンに関連付けられたファイルを削除します。
/root/pty
/tmp/bash
/dev/shm/bash
/var/tmp/bash
/var/lock/bash
/var/run/bash
/bin/httpsd
/lib/udev/udev
/lib/udev/debug
/root/sysem
/root/systma
/etc/jourxlv
/tmp/sysem
/tmp/su
'/tmp/ddgs.*'
/root/pty10
/root/pty4
/root/xmr64
/usr/local/sbin/t
/usr/local/sbin/rsync
/etc/ceurnad
さらに、Xm64、Ceurnad、/tmp/samba、Sc64u などのマルウェア関連のプロセスが実行されていれば、それらを強制終了します。
新しい競合や未知の競合に関する情報を収集するために、このスクリプトはコマンド atq を実行して、保留中のジョブのリストを表示し、またさまざまなシステムディレクトリ内のファイルを表示します。既知のファイルパターン(dump、docker、mount など)をフィルタリングすると、競合のマルウェアである可能性のあるファイルのリストが残ります。
検知と緩和
SSH サーバーの使用は非常に一般的です。残念ながら一般的には、特権が高い一方で、単純なパスワードを使用してアクセスされる SSH サーバーもあります。SSH を秘密鍵と公開鍵の組み合わせのみで動作するように設定し、パスワードベースのログイン試行をすべてブロックすれば、dhpcd のような SSH ターゲット攻撃は簡単にブロックできます。
これを適用するためには、SSH 設定ファイル(/etc/ssh/sshd_config)に次の 2 行を追加します。
PermitRootLogin no
PasswordAuthentication no
dhpcd の採掘活動をブロックするためには、発信 TCP ポート 4444 をブロックすることを検討してください。このポートは、これまで観察した多数の攻撃インシデントで使用されています。また、既知のマイニングプールドメインへのすべての接続をブロックします。dhpcd に関連するこれらの情報は、 IoC リポジトリにあります。
システムが感染しているかどうかを確認するためには、 検出スクリプト を実行して、dhpcd の痕跡を検索します。
まとめ
dhpcd は、実証済みの手法を使った暗号化キャンペーンです。SSH を介して拡散し、既知の XMRig に基づいたクリプトマイナーを実行し、既知の戦術を使用してバックドアを設定し、競合を排除します。
このキャンペーンは、感染経路に Tor を組み込むことで、当社が観察する攻撃キャンペーンの中では優れた OPSEC を示しています。Tor を使用することで、防御者が攻撃インフラと攻撃元を追跡できないようにし、運用全体の安定性と耐性を向上させています。
Tor の使用は、両刃の剣と言えるでしょう。多くの組織では匿名性、プライバシー、セキュリティをサポートするために Tor を使用しますが、その副産物として、出口ノードをインストールすることが感染チェーンの一部になり得ます。自組織が感染することがなくても、攻撃者が匿名で保護された状態を維持し、マルウェアをインターネットに拡散するために使用されるメカニズムを提供していることになります。
dhpcd が示すのは、最も基本的で単純な攻撃キャンペーン、例えば辞書ベースの攻撃で侵入し、ファイル名の文字を入れ替えて検出を逃れようとするようなものでさえ、ネットワークに感染して利益を得ることができるということです。さらに、これらのキャンペーンが、潜在的な利益の規模と範囲を拡大するための開発や保守は続きます。しかし、簡単な戦術、テクニック、手順を使っていることから、基本的な保護手段によっても、防御者はシステムのセキュリティを強化できると分かります。
付録:セキュリティ侵害インジケーター
以下は、IOC のリストの一部です。完全なリストは、当社の リポジトリを参照してください。
ファイル名
/bin/[a-z0-9]{26} (Hello World プログラム)
/bin/dhpcd
ドメイン
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
pool[.]supportxmr[.]com
ファイルハッシュ
eb808932714c9533962e129e61d84c29536497e62b2a7d89dce3376d882c6965
e971fa0c392a9f43c37dccfdd4f8e6bc109e162716d9b206170f7bb133634ffd
76005592ad7d8901c64a5cfbcdde589a960ba35c9672da6182d131cd67ae0c97
2cca764d24212f8fc58780b9135740929f38b45bcd5fc82c4a2ff47e90890d06
3ea8cc0977e5542053353bcf3e58de947dd727259369707a13a4d0c8f14b7486