56,000ダウンロード達成のNPMパッケージがWhatsAppメッセージを盗聴

lotusbailnpmパッケージは、正規の@whiskeysockets/baileysパッケージをフォークしたWhatsApp Web APIライブラリとして自らを装っています。56,000件を超えるダウンロード数と、広告通りに実際に動作する機能的なコードを備えており、開発者が二の足を踏まずにインストールするたぐいの依存関係です。このパッケージはnpmで6ヶ月間利用可能であり、執筆時点でも稼働しています。

その動作機能の背後には、WhatsAppの認証情報を盗み、すべてのメッセージを傍受し、連絡先を収集し、永続的なバックドアをインストールし、すべてを暗号化してから脅威アクターのサーバーに送信する高度なマルウェアが隠されています。

Image

キャプチャされるもの:

  • 認証トークンとセッションキー
  • 完全なメッセージ履歴(過去および現在)
  • 電話番号付きの完全な連絡先リスト
  • メディアファイルと文書
  • WhatsAppアカウントへの永続的なバックドアアクセス

動作方法

表紙は本物

ほとんどの悪意のあるnpmパッケージは急速に自らを明かします。タイポスクワット、動作しない、または明らかに疑わしいものです。このパッケージは実際にはWhatsApp APIとして機能します。正規のBaileyslibaryをベースにし、WhatsAppメッセージを送受信するための実際に動作する機能を提供しています。

明らかなマルウェアはスポットするのは簡単です。機能的なマルウェア?それはインストール、テスト、承認、本番環境にデプロイされます。

ここでのソーシャルエンジニアリングは見事です。開発者は動作するコードの中のマルウェアを探しません。彼らは機能しないコードを探しています。

盗難と流出

このパッケージは、WhatsAppと通信する正規のWebSocketクライアントをラップします。アプリケーションを流れるすべてのメッセージは、最初にマルウェアのソケットラッパーを通過します。

認証時、ラッパーは認証情報をキャプチャします。メッセージが到着すると、それを傍受します。メッセージを送信すると、それを記録します。正規の機能は通常通り動作し続けます。マルウェアはすべてに2番目の受信者を追加するだけです。

Image

WhatsAppのすべての認証トークン、送受信されたすべてのメッセージ、完全な連絡先リスト、メディアファイル – APIを通過するすべてが複製され、流出の準備が整えられます。

しかし、盗まれたデータは平文では送信されません。マルウェアには、送信前にデータを暗号化するための完全なカスタムRSA実装が含まれています。

Image

なぜカスタムRSAを実装するのか?正規のWhatsAppライブラリはカスタム暗号化が必要ないからです。WhatsAppはすでにエンドツーエンド暗号化を処理しています。カスタム暗号は一つの理由のために存在します。流出前に盗まれたデータを暗号化するため、ネットワークモニタリングでキャッチされないようにするためです。

流出サーバーのURLは、暗号化された設定文字列に埋め込まれ、圧縮されたペイロードの内部に隠されています。マルウェアは4層の難読化を使用しています。Unicode変数操作、LZString圧縮、Base-91エンコーディング、AES暗号化です。サーバーの位置は目に見えるところにはハードコードされていません。

バックドア

ここでは特に厄介なことになります。WhatsAppはペアリングコードを使用して、新しいデバイスをアカウントにリンクします。コードをリクエストすると、WhatsAppがランダムな8文字の文字列を生成し、新しいデバイスに入力すると、デバイスがリンクします。

マルウェアはハードコードされたペアリングコードでこのプロセスをハイジャックします。コードはAESで暗号化され、パッケージに隠されています。

Image

これは、脅威アクターがWhatsAppアカウントへのキーを持っていることを意味します。このライブラリを使用して認証する場合、アプリケーションをリンクするだけではなく、脅威アクターのデバイスもリンクしています。彼らはあなたのWhatsAppアカウントへの完全で永続的なアクセスを持っており、あなたは彼らがそこにいることを知りません。

脅威アクターはあなたのすべてのメッセージを読み、あなたとしてメッセージを送信し、メディアをダウンロードし、連絡先にアクセスできます。フルアカウント制御です。重要な部分はここです。npmパッケージをアンインストールするとマルウェアコードは削除されますが、脅威アクターのデバイスはWhatsAppアカウントにリンクされたままです。ペアリングはWhatsAppの設定からすべてのデバイスを手動でアンリンクするまで、WhatsAppのシステムに残ります。パッケージが削除された後でも、彼らは依然としてアクセス権を持っています。

彼らは本当にあなたが見ることを望みませんでした

このパッケージには、デバッグツールが検出された場合、実行を凍結する27個の無限ループトラップが含まれています。

Image

これらのトラップはデバッガーをチェックし、プロセス引数を検査し、サンドボックス環境を検出し、一般的に動的分析を困難にします。また、マルウェアのセクションをマークするコード内に有用なコメントを残しました。サプライチェーン攻撃に適用される専門的な開発慣行です。おそらく誰かがこれのためのJiraボードを持っています。

最終的な考え

サプライチェーン攻撃は遅くなっていません。むしろ、より悪くなっています。マーケットプレイスのレビューに耐える高度なアンチデバッギング、カスタム暗号化、多層難読化を備えた動作するコードが見られます。lotusbailのケースは外れ値ではありません。それはプレビューです。

従来のセキュリティはこれをキャッチしません。静的分析は動作するWhatsAppコードを見て承認します。評判システムは56,000ダウンロードを見て信頼します。マルウェアは「このコードは動作する」と「このコードは主張していることだけをする」の間のギャップに隠れています。

高度なサプライチェーン攻撃をキャッチするには、行動分析が必要です。パッケージが実際にランタイム時に何をしているのか観察することです。WhatsAppライブラリがカスタムRSA暗号化を実装し、27個のアンチデバッギングトラップを含む場合、それらはシグナルです。しかし、それらを監視するシステムが必要です。

このレポートはKoi Securityの研究チームによって作成されました。従来のチェックに合格しているが、ランタイム時に悪意のある動作を示す脅威を検出するようにKoiを構築しました。

デモを予約する行動分析が静的レビューで見逃されたものをどのようにキャッチするかを見るために。

そこで安全にいてください。

翻訳元: https://www.koi.ai/blog/npm-package-with-56k-downloads-malware-stealing-whatsapp-messages

ソース: koi.ai