サイバーセキュリティ研究者は、Python Package Index(PyPI)リポジトリ内で、依存関係を通じて悪意のある動作を導入し、永続化を確立しコード実行を可能にする悪意のあるパッケージを発見しました。
このパッケージはtermncolorという名前で、Zscaler ThreatLabzによると、colorinalという依存パッケージを利用した多段階マルウェアの仕組みによって悪意のある機能を実現しています。termncolorは355回、colorinalは529回ダウンロードされていました。両ライブラリはすでにPyPIから削除されています。
研究者のManisha Ramcharan Prajapati氏とSatyam Singh氏によると、「この攻撃はDLLサイドローディングを利用して復号化を行い、永続化を確立し、コマンド&コントロール(C2)通信を実施、最終的にリモートコード実行に至る可能性があります」と述べています。
インストール・実行されると、termncolorはcolorinalをインポートし、そのcolorinalが不正なDLLをロードして次の段階のペイロードを復号・実行します。
具体的には、ペイロードは正規のバイナリ「vcpktsvr.exe」と「libcef.dll」というDLLを展開し、DLLサイドローディングを利用して起動します。このDLLはシステム情報の収集や、オープンソースのチャットアプリケーションZulipを使ったC2サーバーとの通信を行い、活動を隠蔽します。
Zscalerによれば、「永続化はWindowsのRunキーにレジストリエントリを作成することで実現され、システム起動時にマルウェアが自動実行されます」とのことです。
このマルウェアはLinuxシステムにも感染可能で、Pythonライブラリが「terminate.so」という共有オブジェクトファイルをドロップし、同様の機能を発揮します。
脅威アクターのZulipでの活動をさらに分析したところ、作成された組織内に3人のアクティブユーザーが存在し、合計90,692件のメッセージがやり取りされていたことが判明しました。マルウェアの作者は2025年7月10日から活動していると考えられています。
「termncolorパッケージとその悪意のある依存関係colorinalは、オープンソースエコシステムにおけるサプライチェーン攻撃の可能性を監視する重要性を浮き彫りにしています」と同社は述べています。
この発表は、SlowMistが明らかにした、脅威アクターが開発者を求人評価と偽ってターゲットにし、iCloudキーチェーンやウェブブラウザ、暗号通貨ウォレットのデータを収集し、外部サーバーに送信できる罠付きnpmパッケージを含むGitHubリポジトリをクローンさせる手口が確認されたことを受けたものです。
これらのnpmパッケージは、Pythonスクリプトのダウンロード・実行、システム情報の取得、ファイルシステムのスキャンによる機密ファイルの探索、認証情報の窃取、キーロギング、スクリーンショットの取得、クリップボード内容の監視なども行うよう設計されています。
特定されたパッケージ(現在はnpmから削除済み)は以下の通りです:
- redux-ace(163回ダウンロード)
- rtk-logger(394回ダウンロード)
近年、悪意のあるnpmパッケージがサイバーセキュリティコミュニティを標的とし、依存パッケージを通じてデータ窃取や暗号通貨マイニングを促進し、Dropboxなどの正規サービスを利用して感染システムから情報を外部送信する事例が確認されています。
これらのパッケージは、Datadogの研究者Christophe Tafani-Dereeper氏とMatt Muir氏が指摘するように、セキュリティ脆弱性の悪意あるPoCコードやパフォーマンス向上を謳うカーネルパッチを装ってターゲットに配布されていました。この活動は、MUT-1244として追跡されている脅威アクターに帰属されています。
また、ReversingLabsのレポートでは、自動依存関係アップグレードのリスク、特に危険なプロジェクトが他の数千のプロジェクトで利用されている場合、ソフトウェアサプライチェーン全体へのリスクが拡大することが明らかになっています。
これは、最近発生したeslint-config-prettier npmパッケージの侵害にも表れており、フィッシング攻撃によって匿名の攻撃者がGitHubリポジトリ上でソースコードのコミットやプルリクエストを行うことなく、直接npmレジストリに悪意のあるバージョンを公開できてしまいました。
ソフトウェアサプライチェーンセキュリティ企業の調査によると、14,000以上のパッケージがeslint-config-prettierを直接依存関係として宣言しており、devDependencyとして宣言すべきところを誤っているため、GitHub Actionsのような自動化ツールがDependabotによる依存関係更新アラートを精査せず自動マージしてしまう事態を招いています。
セキュリティ研究者のKarlo Zanki氏は述べています。「これはコードフォーマット用の開発ツールの設定であるため、利用される各パッケージでdevDependencyとして宣言されるべきであり、通常の依存関係のようにnpm installコマンド実行時に自動インストールされるべきではありません。」
「Dependabotのような自動バージョン管理ツールは、依存関係のセキュリティ問題を排除するために設計されていますが、皮肉なことに、悪意のある侵害のようなさらに大きなセキュリティ問題を引き起こす可能性もあります。」
翻訳元: https://thehackernews.com/2025/08/malicious-pypi-and-npm-packages.html