WhatsAppを密かにスパイするNPMパッケージを数千人がダウンロード

WhatsApp Web APIライブラリを装った悪意のあるnpmパッケージが発見され、ユーザーの認証情報を盗み、攻撃者にWhatsAppアカウントへの永続的なアクセスを与えていたことが判明しました。

「lotusbail」と名付けられたこのパッケージは、正規の@whiskeysockets/baileysライブラリを模倣しており、6か月間npmで公開され、56,000回以上ダウンロードされていました。

これにより開発者はNode.js経由でWhatsAppメッセージの送受信が可能になり、通信が正当なものに見えるようになります。しかし、このライブラリは通常のAPI操作を行う一方で、通過するデータを密かに傍受します。

Koi Securityのレポートによると、lotusbailは認証トークン、セッションキー、完全なメッセージ履歴、連絡先リスト、メディアファイル、文書などの機微なデータを収集します。

このマルウェアは、正規のWebSocket通信レイヤーとWhatsAppのサーバーの間に入り込みます。受信・送信メッセージやアカウント認証情報など、あらゆるデータがコピーされ、流出(持ち出し)のために準備されます。

この攻撃を際立たせているのは、独自に構築されたRSA暗号化システムです。WhatsAppはすでにエンドツーエンドのセキュリティを提供しているため、正規のWhatsAppライブラリに追加の暗号化は不要です。

このケースでは、攻撃者が送信前に盗んだデータをRSAで暗号化するよう実装しており、従来のネットワーク監視ツールでは流出トラフィックを検知できないようにしていました。

さらに複雑なのは、マルウェアが4層の難読化(Unicode変数操作、LZString圧縮、Base-91エンコード、AES暗号化)によってコマンド&コントロール(C2)サーバーを隠している点です。

この多段階エンコードにより、コード内のC2宛先が効果的に隠蔽され、静的解析で検出することが困難になります。

攻撃はデータ窃取で終わりません。Lotusbailは、ハードコードされたAES暗号化済みのペアリングコードを埋め込むことで、WhatsAppのデバイス連携メカニズムを乗っ取ります。

ユーザーがライブラリ経由でWhatsApp アカウントをリンクすると、マルウェアは攻撃者のデバイスも密かにリンクします。これにより、悪意のあるパッケージをアンインストールした後でも、継続的かつ検知されないアクセスが可能になります。

その結果、lotusbailをアンインストールしても攻撃者のアクセスは取り消されません。被害者は脅威を完全に排除するために、WhatsAppで接続済みのすべてのデバイスを手動でリンク解除する必要があります。

さらに解析を回避するため、悪意のあるライブラリにはサンドボックス環境、デバッガ、リバースエンジニアリングツールのチェックを含む27個のアンチデバッグ用トラップが含まれています。調査の試みが検出されると、これらのループが実行を停止させ、挙動を分析しようとする研究者を妨害します。

同社は、コード検査のみに頼るのではなく、ライブラリが実行時に実際に何をしているかを監視する、必要不可欠な防御としての行動分析を強調しています。

lotusbailの事例は、信頼されているオープンソースのエコシステムでさえ、無防備な開発者に対して武器化され得るという厳しい警鐘となっています。

翻訳元: https://cyberpress.org/malicious-npm-package/

ソース: cyberpress.org