脅威:TeamTNTによるRedisサーバに対する攻撃 #aqua #コンテナ #セキュリティ #redis #脆弱性 #マルウェア #クリプトマイニング
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは「Aqua Security」社の技術ブログで2020年9月30日に公開された「 Threat Alert: TeamTNT is Back and Attacking Vulnerable Redis Servers 」の日本語翻訳です。
脅威:TeamTNTによるRedisサーバに対する攻撃
過去数週間にわたり、TeamTNT(過去 Docker や Kubernetes 環境をハッキングしてきた集団です) はクラウドネイティブインフラストラクチャに対するいくつかの新たな攻撃を開始して、話題となっています。これを受けて Docker Hub は、TeamTNT が作成した悪意あるイメージをコミュニティから削除することを決定し、ユーザ「Hildeteamtntnt」を削除しました。しかし、わずか数日後、TeamTNT は彼らのスクリプトに「Still alive」というキャッチーなロゴを埋め込んで再登場しました。しかも、今回はただのアカウント交換ではなく、新たな高度なテクニックを駆使して戻ってきました。
TeamTNT は現在、S3 バケットと Web サービスの IPlogger を C2 サーバとして使用して、脆弱な Redis サーバを標的にし、メモリ内の Linux ユーザパスワードを見つけようとしています。
先週、悪意のあるコンテナイメージをホスティングしている Docker Hub アカウントを検出しました。アカウント「kirito666」は2019年5月10日に作成されました。約1週間前、このアカウントには9つのイメージがアップロードされていました。すべてのイメージは Aqua DTA によって悪意のあるものとして識別されました。さらに分析したところ、このアカウントとイメージはTeamTNTに強く関連していることが判明しました。また、これらのイメージのうちの1つが、外部の攻撃を行うために使用されていたことも判明しました。それらのコンテナイメージのうち、2つは特筆に値するものです。
「Kirito666/pwndockerredis」イメージによる Redisサーバに対する攻撃
コンテナイメージ kirito666/pwndockerredis:latest は二段階攻撃を行うように設計されています。これは、Docker API ポートが誤って設定されているホスト上でコンテナイメージを Pull して実行することから始まります。このイメージは、脆弱性のある Redis サービスを持つホストを検索するように設計されています。そして、TeamTNT が定期的に適用しているペイロード「Tsunami マルウェア」、「Rekobee マルウェア」、「クリプトマイニング」、「バックドア」、「トロイの木馬」、「パスワードの窃盗」などを使用して、脆弱性のある Redis ホスト上で第2段階の攻撃が開始されます。
脆弱な Docker API ホストでは
コンテナはシェルスクリプト run.sh を実行するためのコマンドで起動されます。実行されると、Shodan API を実行し、脆弱な Redis ホストを検索し、tar ファイル PwnDocker_REDIS(working.py & pruefen.py)から2つの Python ファイルを解凍します。スクリプト pruefen.py は GitHub プロジェクトの hackredis をベースにしたもので、RSA 鍵をかけながらホストに接続し、攻撃者の RSA 鍵を挿入し、対象のホストと root として SSH 接続を確立することで Redis を攻撃するというものです。
スクリプトの working.py は GitHub プロジェクト(redisMassExploit)をベースにしており、Redis ホストに接続し、リモートソースから Redis ホストにシェルファイルをダウンロードするように設計されています。
脆弱な Redis ホストでは
上述したように、working.py はリモートソースからファイルをダウンロードしますが、この場合は TeamTNT の C2 サーバ(https//teamtnt[.]red/setit)です。
シェルスクリプト setit には、多くのエンコードされた(base64)スニペットとコンパイルされていないコードが含まれています。それらの目的は以下の通りです。
- TenCent Cloud のセキュリティと Aliyun(アリババクラウド)のセキュリティコンポーネントを無効にする。
- セキュリティコンポーネント、tmpファイル、Cron ジョブのクリーニング。
- 仮想通貨(MoneroOcean)とマルウェア(Kinsingなど)のクリーニング。
- "/root/.tmp00/bash" と "/root/.tmp00/bash64" をクリーニングして root temp bash をクリーニング。
- xmrig の git repo をクローンする(git clone https//github[.]com/xmrig/xmrig/opt/xmrig/)。
- xmrig が見つからない場合、S3バケット(Cryptominer、MD5: 8ffdba0c9708f153237aabb7d386d083)から xmrig をダウンロードします。
- S3 バケットを使用して、悪意のあるバイナリ bioset、tshd、kube(以前紹介した TeamTNT 攻撃にも使用されています)をダウンロードしています。このバケットは公開されていませんが、これらの特定のイメージを簡単にダウンロードすることができます。この S3 バケットが TeamTNT が所有しているのか、AWS アカウントが悪用されて C2 サーバとして機能しているのかは不明です。
同じ S3 バケットは、コンテナイメージ kirito666/gesichtsrababer:latest の攻撃の一部でも C2 サーバとして利用されています。 - 特定のパスに存在しない場合、バイオセットをコンパイルします。これはデコードとコンパイルされた巨大なエンコード(base64)スニペットに基づいています。このスニペットには、SynFlood、NSSynFlood、RandomFlood などの DoS を開始するために設計されたいくつかの関数を含むバイオセットのコードが含まれています。
- リモートから悪意のあるバイナリ default.jpg をダウンロードします(Cryptominer、MD5: 8ffdba0c9708f153237aabb7d386d083)。 http//85[.]214[.]149[.]236443/sugarcrm/themes/default/images/default[.]jpg
このウェブサイトはドイツの会社に属し、TeamTNT によってハッキングされたようです。これらのファイルは過去の攻撃で TeamTNT によって使用されていたため、このウェブサイトは C2 サーバとして機能していると推測されます。
script worker.py には、リモート(http//healthymiami[.]com/userimages/tnt[..]jpg)からスクリプトをダウンロードすることを目的としたスニペットが含まれています。
両方のスクリプト(tnt.jpg と setit)が同じことをしています。TeamTNT は、似たようなあるいは同じコンポーネントを異なるソースからダウンロードすることで、フェイルセーフの仕組みとしてこれらを使用しているようです。シェルスクリプト tnt.jpg は iplogger (Rekoobe malware、MD5: 5f5599171bfb778a7c7483ffdec18408)、redis-backup (Cryptominer、 MD5: 9060c99ff97d2e2c59e40eb647afa97d)、bioset (MD5: b8568c474fc342621f748a5e03f71667) から悪意のあるバイナリ tshd をダウンロードするように設定されています。
さらに、このスクリプトには Python スクリプト punk.py も含まれており、これはスニペットの 1 つにエンコードされています(base64)。これをデコードしてファイル PU として保存しています。これは、侵害された Unix ボックスからネットワーク経路を変更するために設計された、 エクスプロイト後のツールです。Unix システムからユーザ名、SSH 鍵、既知のホストを収集し、見つかったすべての組み合わせに SSH 経由で接続しようとします。
要約すると、TeamTNT は脆弱な Redis ポートに対する攻撃のバージョンを実行しようとしているようで、RedisWannaMine のような攻撃や最近メディアで取り上げられた他の攻撃に似ています。
Linux ユーザのパスワードを窃取するよう設計されたコンテナイメージ「kirito666/docbinary」について
コンテナイメージ kirito666/docbinary:latest には、以下の悪意のあるバイナリを含むレイヤーが存在します。
- kube(Tsunamiマルウェアとして分類されています。MD5:df386df8c8a376686f788ceff1216f11)。
- docker-update(クリプトマイナーとして分類されています。MD5: 8ffdba0c9708f153237aabb7d386d083)。
- bioset(Linuxマルウェアとして分類されています。MD5:b8568c474fc342621f748a5e03f71667)。
- tshd(バックドアとして分類されています。MD5:48858971bb4f5bcd6a972cbdaabfe9ea)。
TeamTNT による以前の攻撃で登場したこれらのコンポーネントに加え、新たに2つの ZIP ファイル(mimipenguid と mimipy)を発見しました。これらのファイルを解凍すると、MimiPenguin 2.0 ツールが含まれており、Linux デスクトップユーザのログインパスワードを検索するように設定されています(このツールは CVE-2018-20781 に基づいています)。このツールは、プロセスをダンプしてメモリ内の平文で書かれた認証情報を検索し、平文で書かれたパスワードを含む可能性が高い行を抽出します。
まとめ
数ヶ月間、TeamTNT は AWS の資格情報を盗み、Weave Scope のデプロイメントを標的にした暗号マイニングと DDoS ワームを構築していました。TeamTNT はオープンソースのツールや検証済みのエクスプロイト、ハッキングツールなどの実験をしながら、常に新しい攻撃ベクトルを試しているように見えます。今回のブログだけでも、TeamTNT が利用しているいくつかの新しい手法について報告しました。
彼らの迅速な開発サイクル、行動の速度、新しいコードの採用率に基づいて、これは TeamTNT のような組織的な攻撃者が簡単に抑止されないことを示すもう一つの例です。彼らがこのような活動を続けることは明らかであり、新しい攻撃を行うたびにより洗練されていきます。
Docker Hub のようなツールを運営している組織が悪意のあるユーザアカウントを閉鎖することを期待しつつ、同時に Redis のポートのような設定ミスからクラウドを保護するために設計されたCSPM(Cloud Security Posture management)ソリューションを使用することが重要です。さらに、脆弱性に対する静的スキャン、隠れたリスクに対する動的スキャン、完全なランタイム保護を含む対策が必要です。
TeamTNT 攻撃の MITRE ATT&CK フレームワークへの適用
攻撃の各構成要素を、以下 MITRE ATT&CK フレームワークに当てはめたものを記します。