fbpx

CL LAB

HOME > CL LAB > AquaSecurity > 脅威:コンテナイメージを狙った攻撃手法の徹底解剖 #aqua #コンテナ #セキュリティ #クリプトマイニング #マルウェア

(Japanese text only.) 脅威:コンテナイメージを狙った攻撃手法の徹底解剖 #aqua #コンテナ #セキュリティ #クリプトマイニング #マルウェア

 ★ 0

//yd6ugsklvmydbvmntk54k4dmgkuwzar3u3zzv5vcxwdywjwjwbwzjmdryd [.] tor2web [.] su/.../minion.sh

Minion.sh

このスクリプトのいくつかのスニペットは Based64 でエンコードされています。攻撃者はこのコードをデコードして、pu,ntpd.pid,.logs.c などのような無害で誤解を招くような名前を使って新しいファイルを作成します。また、ディスクに書き込んでいるファイルの一部を隠します。以下に、このスクリプトが何をしているかを示す 3 つの例を示します。

  • あるファイル (/usr/bin/hid) は、指定された PID を /proc/ ディレクトリから /usr/foo にマウントしようとしています。この処理は /etc/mtab に痕跡を残さずにこっそりと行われています。
  • もう一つのファイル (/usr/bin/pu) は、SSH ポートを利用してネットワーク内での横移動を行うように設計された Python スクリプトです。
  • 最後に、もう一つのファイル (/tmp/.logs.c) は、システム上のすべてのログインとログアウトの記録 (WTMP, UTMP, Linux の場合は Lastlog) をクリーンアップするために使用されています。これは、これらの敵対者が記録をクリーンアップし、OPSEC の高水準を維持するためにどれだけの努力をしているかを示しています。

このスクリプトは、xmrigMinerやWatchdogなど、CPU上のリソースを争うプログラムも無効化します。スクリプトの実行が完了すると、スクリプト自身と履歴が削除されます。

このスクリプトは、他の3つのスクリプト(user.sh、sbs.sh、sxc.sh)をダウンロードして実行しました。

The script user.sh

感染したホストとの SSH 通信を担当します。

  • SSHDが存在することを確認し、ダウンロードしていなければOpenssh-serverをインストールする。
  • 3人のユーザー(hilde、reboot、ubuntu)を作成しようとする。
  • ユーザーにroot権限を付与しようとする。
  • 上記のユーザー(hilde、reboot、ubuntu)のための敵のRSA-keyを追加します。
    /home/$usersname/.ssh/authorized_keys
    /home/$usersname/.ssh/authorized_keys2

  • inでパスワードなしでSSHログインできるようにrootに設定します。/etc/ssh/sshd_config.に設定し、SSHDを再起動する。
  • ウェブサービス(iplogger[.]org)を使用して、発見プロセス中に収集したデータを攻撃者に送信します。
  • アクティビティをログに記録し、ファイルにエンコードする(Base64を使用)。

The script sbs.sh:

  • usr/bin/biosetというファイルになっている00.jpg(/usr/bin/dns_ipv4.tar.gzとして)をダウンロードします。
  • Biosetを実行します。
  • プロセスの名前を systemd に変更します。
  • ポート 1982 の任意の接続をリスンする。新しい接続ごとに新しいスレッドが開きます。
  • ソケットをリッスンし、'Named PIPE' (FIFO としても知られています) と呼ばれるメソッドを使用して親プロセスと通信する子プロセスを作成します。
  • 父親はメッセージを解読し、PIPE上で子プロセスに書き戻す責任があります。
  • 子は/bin/shによって実行されているコマンドを受け取ります。
  • このことから、Bioset はバインドシェルとして機能しており、おそらく攻撃者がコンテナをデプロイした後にホストに接続できるようにしていると結論づけられます。
  • 発見とコマンドと制御。
  • ウェブサービス(iplogger[.]org)を使用して、発見プロセス中に収集したデータを攻撃者に送信します。例えば、CPUのコア数、速度、システムの詳細(uname -aを使用)、標的となるホストのIPアドレスなどです。
  • アクティビティをログに記録し、ファイルにエンコードする(Base64を使用)。
  • 防衛回避。
  • コマンド履歴の削除
  • シェルファイルを削除する。

The script - 'sxc.sh’:

  • リモートソースからxmrigをダウンロードします。
  • 設定ファイルをディスクに書き込む(/usr/bin/ntpd.pid)。
  • Cryptominer (ntpd ファイル) が実行されていることを確認する。
    リソースの競合を止める。

  • すべてのMonerooceanプロセスを停止します。
  • 鉱夫の運転を最適化する。
  • system-getty.slices.service のような資源の採掘を制限する監視サービスを停止します。
  • cp.syshealt などのシステムヘルスサービスを停止します。
  • ディスカバリーとコマンドとコントロール。
  • ウェブサービス(iplogger[.]org)を使用して、収集したデータを攻撃者に送信し、マイニングプロセスに関連するデータ、例えばMoneroのハッシュレート、システムの詳細(uname -aを使用)、ターゲットとなるホストのIPアドレスなどを送信します。
  • 活動をログに記録し、ファイルにエンコードする(Base64を使用)。
  • 防衛回避のテクニック。
  • システムログ(/var/log/syslog)の削除。
  • コマンド履歴の削除
  • シェルファイルの削除。
  • netfilter ファイアウォール、iptables、kernel.nmi_watchdog (カーネルがハングしているかどうかのチェックを担当) などのネットワーク設定、セキュリティ、監視ツールを無効にする。
  • Aliyun のようなセキュリティスキャナを無効にする。

The malicious binaries:

SystemHealt - cb782b40757d1aba7a3ab7db57b50847 (MD5)

AVscan - b27eb2159c808f844d60900e2c81a4df (MD5)

The modus operandi

より洗練された攻撃では、コードに様々な変更が加えられており、TeamTNTは攻撃を改善するために時間と労力を費やしたことを示唆しています。彼らは防御回避技術を追加し、C2サーバーとの通信を隠蔽して攻撃を長持ちさせながら成功を確実にしようとしました。

Examples of evasion techniques:

  • 動的コードを使用します。通信チャネル(IP/ドメイン)を変数として定義し、外部設定ファイルを使用してC2およびマイニングインフラストラクチャを隠しています。
  • ウェブサービスとTORサーバを活用してC2インフラの永続性を高める。
  • OPSEC をより重視する。最近の攻撃では、多くの段階で、悪意のあるツールやログを削除したり、ホスト上のユーザー活動を消去したりすることで、攻撃者が痕跡を隠そうとしていることが明らかになっています。
  • プライベートドメインteamtnt[.]redを使用して、サブドメインvpsとpoolを使用しています。
  • セキュリティツールやネットワークセキュリティツールを無効にする
    多くのスニペットをbase64でエンコードしている(同じスニペットを複数回エンコードすることがある)

まとめ

TeamTNTは4ヶ月に渡って様々な画像をアップロードし、その中には野生の攻撃に利用されているものもありました。これは、一般的なクラウドネイティブ環境と、特にDocker APIのポートを誤って設定したものをターゲットにした、現在も活発なキャンペーンです。これらのアカウントの新しいイメージは、防御回避、横移動、発見技術などの高度な悪意のある手法を使用するように設計されていました。

これらの新しいイメージの変化は、TeamTNTの学習曲線(開発能力)を多少反映していると考えています。よりシンプルでわかりやすいイメージは、静的なマルウェア分析によって検出することができますが、新しいイメージはそれにはあまりにも賢すぎるのです。実際、画像 xmrigminer は、実行時の行動プロファイリングとモニタリングを使用して悪意のあるものとして識別できるだけでなく、より良い方法としては、Aqua の動的脅威分析を使用したパイプラインの中でしか識別できません。

Dynamic Container Analysis

Applying MITRE ATT&CK Framework to the TeamTNT attacks

攻撃の各構成要素を、対応する MITRE ATT&CK フレームワークとテクニックのカテゴリにマッピングした概要。

Indications of Compromise (IOCs):

Mining pools:

vps[.]teamtnt[.]red33331
45[.]9[.]148[.]12333331
xmr[.]f2pool[.]com13531
47[.]101[.]30[.]12413531
xmr[.]bohemianpool[.]com9000
80[.]211[.]206[.]1059000

Malicious Binaries

xmrigDeamon - d6e169d47a4bed78dffc184409994fbf (MD5)
Bioset - 4206dbcf1c2bc80ea95ad64043aa024a (MD5)
dns3 - b348abf1d17f7ba0001905e295b1f670 (MD5)
xmrigMiner - 7c7b77bfb9b2e05a7a472e6e48745aeb (MD5)
docker-update - ecf5c4e29490e33225182ef45e255d51 (MD5)
dns (Tsunami malware) - b7ad755d71718f2adf3a6358eacd32a3 (MD5)
64[watchdogd] - 8ffdba0c9708f153237aabb7d386d083 (MD5)
64bioset - b8568c474fc342621f748a5e03f71667 (MD5)
64tshd - 5f5599171bfb778a7c7483ffdec18408 (MD5)
armbioset - 23812035114dbd56599694ed9b1712d2 (MD5)
armdns - cfa007dc2d02da9a8873c761aa5a5c8c (MD5)
armtshd - d46b96e9374ea6988836ddd1b7f964ee (MD5)
tntscan - 4882879ffdac39219bef1146433ec54f (MD5)
SystemHealt - cb782b40757d1aba7a3ab7db57b50847 (MD5)
AVscan - b27eb2159c808f844d60900e2c81a4df (MD5)

New call-to-action

//yd6ugsklvmydbvmntk54k4dmgkuwzar3u3zzv5vcxwdywjwbwzjmdryd[.]tor2web[.]su/.../minion.sh

Minion.sh

このスクリプトの一部のスニペットは、Based64 でエンコードされています。攻撃者はこのコードをデコードして、pu、ntpd.pid、.logs.c などの名前を使って新しいファイルを作成します。また、ディスクに直接書き込むことでファイルの一部を隠蔽しています。以下、このスクリプトが実行する3つの例を紹介します。

  • あるファイル (/usr/bin/hid) は、指定された PID を /proc/ ディレクトリから /usr/foo にマウントしようとしています。この処理は /etc/mtab に痕跡を残さずにこっそりと行われています。
  • もう一つのファイル (/usr/bin/pu) は、SSH ポートを利用してネットワーク内での横移動を行うように設計された Python スクリプトです。
  • 最後に、もう一つのファイル (/tmp/.logs.c) は、システム上のすべてのログインとログアウトの記録 (WTMP, UTMP, Linux の場合は Lastlog) をクリーンアップするために使用されています。これは、これらの敵対者が記録をクリーンアップし、OPSEC の高水準を維持するためにどれだけの努力をしているかを示しています。

このスクリプトは、xmrigMinerやWatchdogなど、CPU上のリソースを争うプログラムも無効化します。スクリプトの実行が完了すると、スクリプト自身と履歴が削除されます。

このスクリプトは、他の3つのスクリプト(user.sh、sbs.sh、sxc.sh)をダウンロードして実行しました。

The script user.sh

感染したホストとの SSH 通信を担当します。

  • SSHDが存在することを確認し、ダウンロードしていなければOpenssh-serverをインストールする。
  • 3人のユーザー(hilde、reboot、ubuntu)を作成しようとする。
  • ユーザーにroot権限を付与しようとする。
  • 上記のユーザー(hilde、reboot、ubuntu)のための敵のRSA-keyを追加します。
    /home/$usersname/.ssh/authorized_keys
    /home/$usersname/.ssh/authorized_keys2

  • inでパスワードなしでSSHログインできるようにrootに設定します。/etc/ssh/sshd_config.に設定し、SSHDを再起動する。
  • ウェブサービス(iplogger[.]org)を使用して、発見プロセス中に収集したデータを攻撃者に送信します。
  • アクティビティをログに記録し、ファイルにエンコードする(Base64を使用)。

The script sbs.sh:

  • usr/bin/biosetというファイルになっている00.jpg(/usr/bin/dns_ipv4.tar.gzとして)をダウンロードします。
  • Biosetを実行します。
  • プロセスの名前を systemd に変更します。
  • ポート 1982 の任意の接続をリスンする。新しい接続ごとに新しいスレッドが開きます。
  • ソケットをリッスンし、'Named PIPE' (FIFO としても知られています) と呼ばれるメソッドを使用して親プロセスと通信する子プロセスを作成します。
  • 父親はメッセージを解読し、PIPE上で子プロセスに書き戻す責任があります。
  • 子は/bin/shによって実行されているコマンドを受け取ります。
  • このことから、Bioset はバインドシェルとして機能しており、おそらく攻撃者がコンテナをデプロイした後にホストに接続できるようにしていると結論づけられます。
  • 発見とコマンドと制御。
  • ウェブサービス(iplogger[.]org)を使用して、発見プロセス中に収集したデータを攻撃者に送信します。例えば、CPUのコア数、速度、システムの詳細(uname -aを使用)、標的となるホストのIPアドレスなどです。
  • アクティビティをログに記録し、ファイルにエンコードする(Base64を使用)。
  • 防衛回避。
  • コマンド履歴の削除
  • シェルファイルを削除する。

The script - 'sxc.sh’:

  • リモートソースからxmrigをダウンロードします。
  • 設定ファイルをディスクに書き込む(/usr/bin/ntpd.pid)。
  • Cryptominer (ntpd ファイル) が実行されていることを確認する。
    リソースの競合を止める。

  • すべてのMonerooceanプロセスを停止します。
  • 鉱夫の運転を最適化する。
  • system-getty.slices.service のような資源の採掘を制限する監視サービスを停止します。
  • cp.syshealt などのシステムヘルスサービスを停止します。
  • ディスカバリーとコマンドとコントロール。
  • ウェブサービス(iplogger[.]org)を使用して、収集したデータを攻撃者に送信し、マイニングプロセスに関連するデータ、例えばMoneroのハッシュレート、システムの詳細(uname -aを使用)、ターゲットとなるホストのIPアドレスなどを送信します。
  • 活動をログに記録し、ファイルにエンコードする(Base64を使用)。
  • 防衛回避のテクニック。
  • システムログ(/var/log/syslog)の削除。
  • コマンド履歴の削除
  • シェルファイルの削除。
  • netfilter ファイアウォール、iptables、kernel.nmi_watchdog (カーネルがハングしているかどうかのチェックを担当) などのネットワーク設定、セキュリティ、監視ツールを無効にする。
  • Aliyun のようなセキュリティスキャナを無効にする。

The malicious binaries:

SystemHealt - cb782b40757d1aba7a3ab7db57b50847 (MD5)

AVscan - b27eb2159c808f844d60900e2c81a4df (MD5)

The modus operandi

より洗練された攻撃では、コードに様々な変更が加えられており、TeamTNTは攻撃を改善するために時間と労力を費やしたことを示唆しています。彼らは防御回避技術を追加し、C2サーバーとの通信を隠蔽して攻撃を長持ちさせながら成功を確実にしようとしました。

Examples of evasion techniques:

  • 動的コードを使用します。通信チャネル(IP/ドメイン)を変数として定義し、外部設定ファイルを使用してC2およびマイニングインフラストラクチャを隠しています。
  • ウェブサービスとTORサーバを活用してC2インフラの永続性を高める。
  • OPSEC をより重視する。最近の攻撃では、多くの段階で、悪意のあるツールやログを削除したり、ホスト上のユーザー活動を消去したりすることで、攻撃者が痕跡を隠そうとしていることが明らかになっています。
  • プライベートドメインteamtnt[.]redを使用して、サブドメインvpsとpoolを使用しています。
  • セキュリティツールやネットワークセキュリティツールを無効にする
    多くのスニペットをbase64でエンコードしている(同じスニペットを複数回エンコードすることがある)

まとめ

TeamTNTは4ヶ月に渡って様々な画像をアップロードし、その中には野生の攻撃に利用されているものもありました。これは、一般的なクラウドネイティブ環境と、特にDocker APIのポートを誤って設定したものをターゲットにした、現在も活発なキャンペーンです。これらのアカウントの新しいイメージは、防御回避、横移動、発見技術などの高度な悪意のある手法を使用するように設計されていました。

これらの新しいイメージの変化は、TeamTNTの学習曲線(開発能力)を多少反映していると考えています。よりシンプルでわかりやすいイメージは、静的なマルウェア分析によって検出することができますが、新しいイメージはそれにはあまりにも賢すぎるのです。実際、画像 xmrigminer は、実行時の行動プロファイリングとモニタリングを使用して悪意のあるものとして識別できるだけでなく、より良い方法としては、Aqua の動的脅威分析を使用したパイプラインの中でしか識別できません。

Dynamic Container Analysis

Applying MITRE ATT&CK Framework to the TeamTNT attacks

攻撃の各構成要素を、対応する MITRE ATT&CK フレームワークとテクニックのカテゴリにマッピングした概要。

Indications of Compromise (IOCs):

Mining pools:

vps[.]teamtnt[.]red33331
45[.]9[.]148[.]12333331
xmr[.]f2pool[.]com13531
47[.]101[.]30[.]12413531
xmr[.]bohemianpool[.]com9000
80[.]211[.]206[.]1059000

Malicious Binaries

xmrigDeamon - d6e169d47a4bed78dffc184409994fbf (MD5)
Bioset - 4206dbcf1c2bc80ea95ad64043aa024a (MD5)
dns3 - b348abf1d17f7ba0001905e295b1f670 (MD5)
xmrigMiner - 7c7b77bfb9b2e05a7a472e6e48745aeb (MD5)
docker-update - ecf5c4e29490e33225182ef45e255d51 (MD5)
dns (Tsunami malware) - b7ad755d71718f2adf3a6358eacd32a3 (MD5)
64[watchdogd] - 8ffdba0c9708f153237aabb7d386d083 (MD5)
64bioset - b8568c474fc342621f748a5e03f71667 (MD5)
64tshd - 5f5599171bfb778a7c7483ffdec18408 (MD5)
armbioset - 23812035114dbd56599694ed9b1712d2 (MD5)
armdns - cfa007dc2d02da9a8873c761aa5a5c8c (MD5)
armtshd - d46b96e9374ea6988836ddd1b7f964ee (MD5)
tntscan - 4882879ffdac39219bef1146433ec54f (MD5)
SystemHealt - cb782b40757d1aba7a3ab7db57b50847 (MD5)
AVscan - b27eb2159c808f844d60900e2c81a4df (MD5)

New call-to-action

CL LAB Mail Magazine

CL LABの情報を逃さずチェックしよう!

メールアドレスを登録すると記事が投稿されるとメールで通知します。

メールアドレス: 登録

※登録後メールに記載しているリンクをクリックして認証してください。

Related post