
出典:Sasin Paraksa(Shutterstockより)
攻撃者はnpmレジストリ上のコードパッケージを新しい手法で汚染し、JavaScriptユーティリティを装ったパッケージ内にステガノグラフィーQRコードとして認証情報を盗むマルウェアを隠しました。
Socket Threat Researchの研究者は、悪意のあるパッケージ「fezbox」を今週初めにnpmウェブサイトで発見し、投稿したユーザーのアカウント停止とパッケージの削除を要請したと、今週公開されたブログ記事で述べています。このパッケージは「よく使われるヘルパー関数を機能ごとにモジュール化し、必要なものだけをインポートできるJavaScript/TypeScriptユーティリティライブラリ」と説明されており、中国語話者の攻撃者「janedu」によって投稿されていました。
しかし実際には、このパッケージはQRコード内から実行されるペイロードを隠しており、ブラウザ内のWebクッキーからユーザー名やパスワードの認証情報を盗むことができます。また、他にも複数の難読化層が含まれており、「脅威アクターが難読化技術を進化させ続けていることを示している」とSocket Threat ResearchのOlivia Brown氏は投稿で述べています。
Socket Threat Researchの投稿が公開された時点では、このパッケージはまだ有効でしたが、その後削除され、マルウェアとしてフラグ付けされ、サプライチェーンリスクをもたらすものとされました。ただし、攻撃者がnpmレジストリ上でまだ活動しているかは不明であり、以前このパッケージをダウンロードした人は依然としてリスクにさらされている可能性があります。
汚染されたnpmパッケージ:高度な難読化、単純な機能
汚染されたnpmパッケージは、残念ながら最近ではよくある出来事となっており、攻撃者がソフトウェアサプライチェーンを通じてマルウェアを迅速かつ広範囲に拡散する手段となっています。しかし、fezbox自体は悪意のあるパッケージとしてはそれほど成功しなかった可能性が高く、「多くのアプリケーションはもはやクッキーにパスワードをそのまま保存していない」とBrown氏は指摘します。
しかし、このパッケージが用いた高度なマルウェア難読化手法こそが、攻撃者が正規に見えるパッケージに悪意あるコードを隠す手法を進化させていることを示しており、セキュリティ研究者にとって注目すべき点です。
「脅威アクターは従来、QRコードを使って被害者を認証情報を詐取するウェブページに誘導してきました」とCofenseのフィッシング防御センター シニアディレクター、Chance Caldwell氏は述べます。「しかし今回の攻撃は、QRコード自体に難読化された悪意のあるコードを直接埋め込むという、はるかに高度な手法を示しています。」
さらに、攻撃者は「悪意のあるペイロードだけが正しく解釈できるようにコードを設計しており、従来の静的なセキュリティ対策から効果的に隠蔽しています」と彼は付け加えました。
マルウェア配布手段としてのQRコード
QRコードは実際、マルウェアを隠す手段としてそれほど珍しいものではありません。通常、QRコードには何らかのペイロードが含まれており、たいていはウェブサイトなど別の場所に誘導するものだからです、とBrown氏は指摘します。
「ステガノグラフィーとは、秘密のファイルを目立たない形で隠す手法であり、QRコードはこの用途に非常に適しています」と彼女は投稿で述べています。「QRコードをステガノグラフィー的な難読化手法として使うのは非常に巧妙であり、脅威アクターが利用可能なあらゆる手段を使い続けることを改めて示しています。」
さらに、fezboxのnpmパッケージのReadMeには、QRコードを生成・解析し依存関係を自動で読み込むQRコードモジュールが含まれていることが示唆されており、その存在は正当なもののように見えました。「しかし、ライブラリをインポートするとリモートURLからQRコードを取得し、その中のコードを実行するとは記載されていません」とBrown氏は述べています。
コードを解析しようとした際、Socket Threat Researchチームは、逆順の文字列、QRコード自体、難読化されたペイロードなど、複数の難読化層を発見し、ようやくペイロードコード自体を調査できました。
「文字列を逆順にするのは、古典的な解析回避の隠蔽トリックです」とBrown氏は述べます。「静的解析を行う際、一部のツールはパスワードやURLの逆順バージョンを検出できない可能性があります。」
コードを解析した結果、研究者らはペイロードがWebクッキーを読み取り、ユーザー名とパスワードを抽出できることを突き止めました。「盗まれたクッキーにユーザー名とパスワードの両方が含まれている場合、HTTPSのPOSTリクエストで情報を送信します」とBrown氏は投稿で述べています。「それ以外の場合は何もせず静かに終了します。」
サプライチェーン攻撃者のレベルアップ
前述の通り、汚染されたパッケージ自体は、現在のクッキーのパスワード保存方法を考えると、ソフトウェアに組み込まれても深刻な被害をもたらすことはなかった可能性が高いです。しかし、さらなる難読化のためにQRコードを活用した点は「脅威アクターによる創造的な工夫」であり、サイバー攻撃者が正規に見えるパッケージ内にマルウェアを隠す手法を進化させていることを示しています、とBrown氏は述べています。
そのため、「開発者がツールを使ってソフトウェアの依存関係をチェックし、悪意のあるコードが含まれていないことを確認することがこれまで以上に重要です」と彼女は付け加えました。
実際、QRコードのステガノグラフィー手法は危険ですが、実際に被害者のマシンに到達しなければサプライチェーンや最終ユーザーにとって脅威とはなりません、とCaldwell氏は指摘します。そのため、開発者もエンドユーザーも、進化し続ける難読化技術に常に先んじて対策を講じる必要があると彼は述べています。
翻訳元: https://www.darkreading.com/application-security/npm-package-malware-stenographic-qr-codes