banner
ニュース センター
即日配送

TurkoRat infostealer をホストしている正規に見える npm パッケージが見つかった

Oct 11, 2023

ルシアン・コンスタンティン

CSO シニアライター、CSO |

近年、悪意のあるコードがないかパブリック ソフトウェア リポジトリを積極的に監視する取り組みが行われているにもかかわらず、マルウェアをバンドルするパッケージがそのような場所に日常的に出現し続けています。 研究者らは最近、2 か月間以上検出されなかった 2 つの正当に見えるパッケージを特定し、TurkoRat と呼ばれるオープンソースの情報窃取トロイの木馬を導入しました。

攻撃者は、さまざまな方法でユーザーをだまして悪意のあるパッケージをダウンロードさせようとしますが、タイポスクワッティングは多くの労力を必要としないため、最も一般的な方法の 1 つです。 この手法には、正規のパッケージをコピーし、悪意のあるコードを追加し、ユーザーが実際のパッケージを検索する際に見つけられるように、元のパッケージを変更した別の名前で公開することが含まれます。

これは、不審な特性と動作の組み合わせを示していたため、ソフトウェア サプライ チェーン セキュリティ会社 ReversingLabs の研究者の注目を最近集めた、nodejs-encrypt-agent と呼ばれるパッケージの場合に当てはまります。 まず、npm レジストリ内のパッケージの名前が、readme.md ファイルで宣言されている名前 (agent-base) と異なっていました。 次に、レジストリにアップロードされたパッケージの最初のバージョンは 6.0.2 でしたが、通常、新しいパッケージは 1.0 かそれ以下のような低いバージョンから開始されるため、これは異例です。

研究者がエージェントベースを検索したとき、すべてが理にかなっていました。 これは正規のパッケージで、レジストリ上で最も人気のあるバージョンは 6.0.2 で、ダウンロード数は 2,000 万を超えています。 コードを比較すると、nodejs-encrypt-agent は、agent-base のコード ベースにいくつかの変更を加えたコピーにすぎないことがわかりました。 実際、不正なパッケージには、おそらくより正当なものに見せるために、agent-base の GitHub ページへのリンクさえ含まれていました。

研究者らは報告書の中で、「何百万もの不審なパッケージを分析する過程で、ReversingLabsチームは、一緒に見ると悪意のある活動を強く示す動作の組み合わせを多数特定した」と述べた。 「たとえば、コード内にハードコーディングされた IP アドレスが含まれているオープンソース パッケージは、コマンドの実行やファイルへのデータの書き込みも行っていますが、これは私たちの経験では、通常、悪意のあるものであることが判明します。これは真実です。これらの機能はいずれも、個別にはありません」 、悪意のあるものですが、組み合わせて見ると、通常、悪意のある機能をサポートしていることになります。」

攻撃者がエージェント ベース コードに加えた変更は、新しいパッケージに同梱されているポータブル実行可能 (PE) ファイルを、パッケージがダウンロードされシステムにインストールされた直後に実行することでした。 このファイルの自動分析により、Windows システム ディレクトリへのファイルの書き込みと削除、システム コマンドの実行、システムのドメイン ネーム システム (DNS) 設定の変更を行う機能が特定されました。これらすべてが疑わしいと思われます。

手動分析により、このマルウェアが感染したシステムからログイン認証情報と暗号ウォレットを盗むように設計されていることがさらに明らかになりました。 分析を困難にするためのアンチサンドボックス機能やデバッグ機能も含まれていました。 研究者たちが、これが JavaScript で書かれ、Node.js フレームワークで動作するように設計されたオープンソースの情報窃取ツールである TurkoRat のコピーであることに気づくのに、時間はかかりませんでした。

「結局のところ、TurkoRat マルウェアのこの特定のバージョンは、npm パッケージ pkg を使用して、必要なすべてのファイルを単一の実行可能パッケージにバンドルしていることが判明しました」と研究者らは述べています。 「すべてのファイルは仮想ファイル システムまたはスナップショット内に存在し、パッケージ化されたアプリケーションは実行時にアクセスできます。」

Discord の TurkoRat プロジェクトによると、このマルウェアは Discord と Telegram の認証トークンとセッション トークンを盗むことができます。 すべての主要なブラウザからのパスワード、Cookie、自動入力、および履歴。 そして多数の暗号通貨ウォレット。 スクリーンショットを撮ることも可能です。 収集されたすべての情報は、攻撃者が設定した Webhook URL に送り返すことができます。

研究者らは、nodejs-encrypt-agent を見つけた後、同様のパッケージの検索を開始し、すぐに、nodejs-encrypt-agent を依存関係としてリストする、nodejs-cookie-proxy-agent という別のパッケージを見つけました。 この 2 番目のパッケージは、node-cookie-proxy-agent という正規のパッケージの不正コピーでした。

今回は、不正なパッケージと正規のパッケージの間の名前の類似性がはるかに高く、接尾辞としてのノードとノードjsが異なるため、より効果的なタイポスクワッティングの試みとなります。 実際、このパッケージは悪意のあるコードを直接バンドルしていないため、おそらく攻撃チェーンの最初のリンクとして意図されていたことを示唆しています。 代わりに、nodejs-encrypt-agent を依存関係として取り込み、TurkoRat をデプロイします。

実際、nodejs-cookie-proxy-agent パッケージの以前のバージョンは、過去に悪意のあるパッケージとしてフラグが立てられ、npm メンテナーによって削除された axios-proxy と呼ばれる別の依存関係を取り込みました。 当時はnodejs-cookie-proxy-agentが見逃されており、攻撃者は単に依存関係を自分たちが作成してアップロードした新しい悪意のあるパッケージに切り替えただけだったようです。

ReversingLabsの研究者らは、「nodejs-encrypt-agentは、提供開始から2か月の間に約500回ダウンロードされた」と述べた。 「nodejs-cookie-proxy-agent のダウンロードは 700 回未満でした。それでも、悪意のあるパッケージが、未知の数の開発者マシン上で実行される悪意のある TurkoRat の原因であることはほぼ確実です。その侵害による長期的な影響を把握するのは困難です」測定。"

このようなパッケージの主な消費者は開発者であるため、悪意のあるソフトウェア コンポーネントによる攻撃は広範囲にわたる影響を与える可能性があります。 開発者のマシンが侵害されると、開発者が勤務する組織のソフトウェア開発環境やインフラストラクチャへのアクセスが攻撃者に与えられる可能性があります。 これは、将来的に別のソフトウェア サプライ チェーン攻撃につながる可能性があります。 セキュリティ業界はすでに、ソフトウェア サプライ チェーン攻撃の連鎖的な事例を文書化しています。

Lucian Constantin は、CSO のシニア ライターで、情報セキュリティ、プライバシー、データ保護を担当しています。

著作権 © 2023 IDG コミュニケーションズ株式会社

依存関係チェーンにマルウェアが隠れている 次にこれを読む