今朝の telnyx この侵害は、複数のエコシステムにまたがるTeamPCPによるサプライチェーン攻撃キャンペーンの最新の動きであり、すでに数週間にわたって続いている。Trivy、Checkmarx、LiteLLM。そして今回、PyPI上のTelnyxが標的となった。これは3月27日03:51(UTC)にアップロードされたものである。
その手口は決まっている。信頼されているセキュリティツールから認証情報を盗み出し、その認証情報を使って、そのツールがアクセス権を持っていたあらゆる対象の悪意あるバージョンを展開し、次の環境で実行されているものを収集し、それを繰り返す。
キャンペーンにおける位置づけ
ここ2週間のTeamPCPの活動を簡単に振り返ります:
3月19日: Trivyが侵害されました。Aqua Securityのオープンソース脆弱性 バックドアが仕込まれ、その結果、CVE-2026-33634(CVSS 9.4)が発生しました。攻撃者は、バージョン固定を行っていないTrivyを実行しているCI/CD 認証情報を盗み出しました。Aqua SecurityのGitHubリポジトリ44件が、接頭辞 tpcp-docs- そして、「TeamPCPがAqua Securityを制した」という説明文。
3月20日: CanisterWormがnpmを襲撃。TeamPCPは、Trivyユーザーから盗んだトークンを利用し、以下のスコープを含む46以上のnpmパッケージにCanisterWormバックドアを配布しました。 @EmilGroup そして @opengov. このワームはトークンから侵害までのプロセスを自動化していた。盗まれたnpmトークン1つを手にすると、公開可能なすべてのパッケージを列挙し、バージョンを更新して、60秒以内に全スコープにわたって公開した。
3月22日:TeamPCPがKubernetes向けワイパー型マルウェアの亜種において、WAVステガノグラフィーを用いてペイロードを配信しているのを初めて確認した。当時、Twitterで次のように報告した。「TeamPCPは現在、マルウェアを.wavファイルに埋め込んでいる。」
3月23日: Checkmarx。 kics-github-action そして ast-github-action GitHub Actionsは 侵害された、および2つのOpenVSX拡張機能(cx-dev-assist 1.7.0 そして ast-results 2.53.0)。このペイロードは新しいC2ドメインを使用しており、 checkmarx[.]zone、Checkmarxブランドを装って。UTC時間12時58分から16時50分の間に35個のタグが乗っ取られ、3時間後に悪意のあるコードは削除された。
3月24日: LiteLLM。LiteLLMのPyPIパッケージのバージョン1.82.7および1.82.8 が発表された CI/CD 盗まれた認証情報を使用し、このパイプラインではピン留めされていないTrivyが実行されていました。LiteLLMは月間約9,500万回のダウンロードを処理しており、OpenAI、Anthropic、AWS Bedrock、GCP VertexAIなどの認証情報にアクセスできる一元化されたLLMゲートウェイとして、ますます導入が進んでいます。PyPIは約3時間後にこれらのパッケージを隔離しました。C2は models.litellm.cloud.
3月27日(本日): Telnyx。今朝、公式のTelnyx Python SDKの悪意ある改ざん版が2つ、PyPIに公開された。Telnyxは過去1か月間で74万2千回ダウンロードされている。
Telnyxのペイロード
注射は終わりました telnyx/_client.pyこれはインポート時に実行されます。無効にするインストールフックもなければ、ブロックするポストインストールもありません。ただ telnyxをインポート すると、マルウェアが実行される。
OSに応じて2つの方法があります:
Windows: ダウンロード数 hangup.wav から 83.142.209.203:8080、オーディオフレームからXORで難読化された実行ファイルを復号し、それを msbuild.exe Windowsのスタートアップフォルダ内に配置します。ログインのたびにバックグラウンドで実行され、非表示のファイルによって12時間の再ドロップ待機時間が強制されます。 .lock ファイル内のエントリに至るまで。
Linux/Mac: 完全な第2段階のPythonスクリプトが、base64エンコードされたBlobとして _client.py 459行目で、以下を取得します ringtone.wav 同じC2から、同じXOR手法を用いてWAVフレームから第3段階のコレクタースクリプトを復号し、それを経由して実行する sys.executable - 標準入力(stdin)にパイプで転送され、その出力をAES-256-CBCで暗号化して外部へ持ち出します。セッションキーは攻撃者のRSA-4096公開鍵(OAEP)でラップされているため、盗み出されたデータを復号できるのは攻撃者だけです。
エクスフィル・バンドルの名前は tpcp.tar.gz、ヘッダー付きで送信 ファイル名: tpcp.tar.gz.
WAVの裏技
ここで特に注目すべき点があります。ペイロードは、生のバイナリやPythonファイルとして配信されるわけではありません。それは、 .wav 音声ファイル。マルウェアがこれを取得すると、次のようなことが起こります hangup.wav (Windows) または ringtone.wav (Linux) C2から:
with wave.open(wf, 'rb') as w:
b = base64.b64decode(w.readframes(w.getnframes()))
s, m = b[:8], b[8:]
payload = bytes([m[i] ^ s[i % len(s)] for i in range(len(m))])このWAVファイルは有効なオーディオファイルです。MIMEタイプの検証にも合格しています。しかし、オーディオフレームのデータにはBase64エンコードされたペイロードが含まれています。フレームをデコードし、最初の8バイトをXORキーとして、残りのデータをXOR演算にかけると、実行ファイルまたはPythonスクリプトが得られます。
コンテンツベースのフィルタリングでは検出できません。特定の動作を許可するURLは .wav フェッチ処理によってブロックされることはありません。このファイルはオーディオ形式で構成されているため、一見オーディオファイルのように見えます。悪意のあるコンテンツは、単にフレームデータの中に隠されているだけです。
この手法は、3月22日にTeamPCPが公開したKubernetesペイロードのバージョン3.3で初めて確認されました。その5日後、telnyxのPyPIパッケージにこの手法が採用され、Windows用ドロッパーとLinux用情報窃取ツールの両方が含まれるようになりました。彼らはこの手法を気に入ったようで、そのまま採用し続けたようです。

どうすればいいですか
削除 telnyx バージョン 4.87.1 以上 すぐにピン留めする telnyx==4.87.0.
悪意のあるバージョンのいずれかをインストールした場合は、その環境が侵害されたものとみなしてください。API 、データベースの認証情報、SSHキー、およびそのマシンからシークレット すべてのシークレット 更新してください。Windowsでは、以下の点を確認してください。 msbuild.exe において %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\ そしてそれを削除します。以下の宛先への送信HTTP通信を監視してください 83.142.209.203:8080.
IOCs
悪意のあるTelnyxのバージョン:
telnyx==4.87.1(SHA256:7321caa303fe96ded0492c747d2f353c4f7d17185656fe292ab0a59e2bd0b8d9)telnyx==4.87.2(SHA256:cd08115806662469bbedec4b03f8427b97c8a4b3bc1442dc18b72b4e19395fe3)
ネットワーク:
83.142.209.203:8080(C2)hxxp://83[.]142[.]209[.]203:8080/hangup.wav(Windows用ペイロード)hxxp://83[.]142[.]209[.]203:8080/ringtone.wav(Linuxペイロード)hxxp://83[.]142[.]209[.]203:8080/(exfil POST)- Exfilヘッダー:
ファイル名: tpcp.tar.gz
Windowsでの永続化:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\msbuild.exe%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\msbuild.exe.lock
続報をお待ちください。

