人気のnpmパッケージ「art-template」がウォーターホール攻撃でバックドアされる

ハッカーは人気のあるart-template npmパッケージを侵害し、ステルス的なバックドアを注入しました。これにより、ユーザーのブラウザをCoruna級のiOSエクスプロイトフレームワークを配信する悪意あるウォーターホールサイトにリダイレクトしました。

このキャンペーンは、iOS 11から17.2を実行するiPhoneをターゲットにした高度なSafariエクスプロイトを配信するための配送車両として、広く使用されているJavaScriptテンプレートライブラリを変えました。

art-templateパッケージは、「aui」として知られる開発者によってもともと保守されていた人気のあるJavaScriptテンプレートエンジンであり、中国および国際的なウェブプロジェクト全体で広く使用されています。

制御されると、新しいメンテナーは悪意のあるバージョンの公開を開始し、疑わしい動作について警告するGitHubの問題を削除しました。これは発見を抑制しようとする攻撃者との一貫したパターンです。

その結果は古典的なオープンソースサプライチェーンの侵害でした。知らないまま開発者は最新バージョンに更新し、無意識のうちにブラウザエクスプロイトローダーを自分のサイトに追加しました。

バックドアはart-templateバージョン4.13.3、4.13.5および4.13.6に現れました。各バージョンは注入されたコードの積極性と可視性をエスカレートしました。

バージョン4.13.3は、String.fromCharCodeを使用してgit.youzzjizz[.]com/git.jsを指すスクリプトURLを構築するローダーを隠し、悪意のあるネットワークリクエストを正当なコード内に難読化しました。

Socketの脅威研究によると、npmプロジェクトの制御は、保守されていないライブラリを保守すると主張し、その後すぐにそれを兵器化した不明なアクターに引き渡されました。

その後のビルド4.13.5および4.13.6は難読化を完全に削除し、v3.jiathis[.]com/code/art.jsから追加のJavaScriptをプルしたlib/template-web.jsの末尾にloadScript呼び出しを直接追加しました。

art-templateのこれらのブラウザビルドをバンドルしたウェブサイトは、実行時にユーザーのページに無言でスクリプトタグを注入し、攻撃者がすべての訪問者のブラウザで任意のJavaScriptを完全に実行できるようにしました。

v3.jiathis[.]comに注入されたローダーはそれ自体がエクスプロイトを含んでいませんでした。代わりに、utaq[.]cfww[.]shop/gooll/gooll.htmlの専用ウォーターホールホストへトラフィックをリダイレクトしました。

そのHTMLページには、iOSのSafariのブラウザ側エクスプロイト配信フレームワークとして機能した、大きく難読化されたJavaScript実装体(49554fde7424c31c.js)が埋め込まれていました。

このフレームワークは広範なフィンガープリント取得と厳密なフィルタリングを実行しました。iOS 11.0から17.2のSafariを明確にターゲットにしながら、Chrome、Firefox、Edge、Android、およびiOS 17.3以降を拒否しました。

その結果、デスクトップユーザーと非WebKitブラウザは異常なものは何も見えませんでした。一方、適格なiPhoneユーザーは侵害されたサイトを読み込むときに静かにエクスプロイトチェーンに流されました。

技術的分析によると、実装体はCoruna iOSエクスプロイトキット向けのステージング層のように動作しており、これはGoogleおよび他のベンダーによって以前に文書化された多チェーンフレームワークです。

スクリプトは特定のペイロードモジュールを厳密に定義されたiOSバージョンバンドに割り当て、Corunaの文書化されたiOS 11から17.2.1のカバレッジを反映しており、Appleがcorunaのcassowary WebKitエクスプロイトをパッチしたバージョンであるiOS 17.3を検出すると正常に終了します。

このコードは、「セッションキー」から派生したSHA-256ベースのコンテンツアドレス指定URL、XOR符号化された文字列と数値定数、およびl1ewsu3yjkqeroy[.]xyzなどの動的に生成された15文字の指令制御ドメインなど、いくつかの特徴的なCorunaパターンを使用しています。

これらの重複により、研究者はウォーターホールフレームワークがCoruna自体であるか、経済的に動機付けられたアクターによって転用された非常に密接な派生物であると高い信頼度で評価しました。

読み込まれると、実装体は直ちに被害者の公開IPアドレスとiOSバージョン文字列を指令制御サーバーに信号送信開始し、正当なIPルックアップサービスを第1段階のリクエストとして使用して通常のトラフィックに混在させました。

これらのビーコンを10秒ごとに繰り返し、完全なエクスプロイトチェーンが決して実行されない場合でも、ウォーターホールに当たるデバイスのライブフィードを維持しました。

エクスプロイトを配信する前に、フレームワークはサンドボックスと自動スキャナーを除外するために、ユーザーエージェントの精査、WebRTC/WebGLの存在、MathMLレンダリング、IndexedDBの動作、および正当なSafari JIT出力に結びついたカスタムWebAssemblyプルーフオブワークなど、複数の反ボット検査を実行します。

すべての検査に合格し、ターゲットOSバージョンと一致するデバイスのみが、実際のWebKitおよびカーネルエクスプロイトを含む可能性が高い次段階WebAssemblyモジュールのダウンロードに進みます。

art-templateは、ウェブアプリケーションで広く使用されているため、バージョン4.13.5または4.13.6に依存していたプロジェクトは、独自のリポジトリでのコード変更がなくても、自動的にユーザーをウォーターホール被害者に変えるリスクがありました。

この特定のキャンペーンはiOS Safariエクスプロイトに焦点を当てていましたが、バックドアはクッキーとlocalStorageの盗難、フォームハイジャック、リダイレクト、さらなるスクリプトステージングなどの古典的なウェブ攻撃機能も有効にしました。

防御者は、既知の良好なバージョンへの依存関係を固定し、注入されたリモートローダーのビルドアーティファクトを監査し、v3.jiathis[.]com(悪意あるパス)、utaq[.]cfww[.]shop、およびl1ewsu3yjkqeroy[.]xyzなどの既知の悪意あるドメインへのトラフィックをブロックするよう求められています。

組織はまた、最新のiOSおよびSafariアップデート、特にこのキャンペーンで利用されるCorunaエクスプロイトパスを閉じるiOS 17.3パッチをインストールすることを優先する必要があります。

侵害の指標(IOC)

侵害されたパッケージ

ファイルハッシュエントリーポイント(49554fde7424c31c.js

  • SHA-256: f31bdd069fe7966ae11be1f78ee5dd44445938856dd1df12379e0e84a6851f5c
  • SHA-1: 8064d4e0322f069b3dba13e7957ff0ca7dab7984
  • MD5: 6e79ae622b7ef30f31fdbcc2dc65339e

ファイルベースの指標

  • 49554fde7424c31c.js 配信されたファイル名。
  • 7a7d99099b035b2c6512b6ebeeea6df1ede70fbb.min.js uint32パッカーからデコードされた自己登録名。
  • cecd08aa6ff548c2 セッションキー。すべてのリモートモジュールGETリクエストパスに存在します。
  • obChTK globalThisに注入されたモジュールディスパッチャーのJSグローバル名。
  • fqMaGkN4fqMaGkNRfqMaGkNKfqMaGkNr 外部難読化関数名。このサンプルで安定しています。
  • ldm_mml_t MathML反ボット検査によって注入されたDOMエレメントID(チェック後に削除)。
  • _ldm_ + iOSブロブプローブによって一時的に作成されたランダムIndexedDBデータベース名。

注: IPアドレスとドメインは意図的に無効化されています(例:[.])。誤った解決またはハイパーリンク付けを防ぐためです。MISP、VirusTotal、またはSIEMなどの管理された脅威インテリジェンスプラットフォーム内でのみ再度有効化してください。

翻訳元: https://gbhackers.com/popular-npm-package-art-template/

ソース: gbhackers.com