- Polyfill.js は古いブラウザをサポートするためのオープンソースライブラリで、10万を超えるサイトで使用中
- 今年2月、中国企業が Polyfill.js のドメインと GitHub アカウントを買収した後、そのドメイン経由でモバイル端末にマルウェアを注入し始めた
- 6月25日更新: Google がすでに polyfill.io を使用している EC サイトの Google 広告のブロックを開始
- 攻撃手法: HTTP ヘッダーに基づいて動的に生成されたコードが、特定のモバイル端末で特定の時間にのみ有効化され、管理者ユーザーや Web 分析サービスを検知すると実行を遅延する
- マルウェアの例: モバイルユーザーを偽の Google Analytics ドメイン (
www. googie-anaiytics .com) 経由でスポーツベッティングサイトへリダイレクトする。
- 対応策: Polyfill.js の元の作者は、現代のブラウザではもはや不要であるため、このライブラリをもう使用しないよう推奨しており、Fastly と Cloudflare が信頼できる代替手段を提供している。
- この事件は典型的なサプライチェーン攻撃の事例。
- 追加ツール: Sansec の無料 CSP モニタリングサービス Sansec Watch と eComscan バックエンドスキャナーが Polyfill.io の検出を支援
GN⁺の意見
- サプライチェーン攻撃の危険性: オープンソースプロジェクトが買収されることで発生し得るセキュリティリスクをよく示す事例。特に、多くのサイトで使われるライブラリほど被害が大きくなり得る。
- 代替ライブラリの利用: Fastly や Cloudflare のような信頼できる代替手段を使うことが重要。また、最新ブラウザのサポートで十分なら Polyfill.js の利用停止も検討に値する。
- セキュリティ監視の必要性: CSP モニタリングサービスのようなセキュリティツールを使って、コード変更をリアルタイムで監視することが重要。
- 管理者検知と遅延実行: マルウェアが管理者や分析サービスを検知して実行を遅らせる手法は、セキュリティソリューションを回避しようとする試みであり、これに対する対策が必要。
- 教育と認識向上: 開発者と運用担当者がサプライチェーン攻撃のリスクを認識し、定期的なセキュリティ教育と最新のセキュリティ動向の把握を行うことが重要。
3件のコメント
polyfill.io ドメインだけでなく、bootcdn.net、bootcss.com、staticfile.net、staticfile.org、unionadjs.com、xhsbpza.com、union.macoms.la、newcrbpc.com などもブロックすべきだとのことです。
https://ja.news.hada.io/topic?id=15118
約1か月前にこの問題がGNで取り上げられたのを見て、関心を持って見守っています。問題の原因がある程度明らかになったとしても、収拾と後続対応に時間が必要なあいだ、多くの場所が引き続き攻撃にさらされざるを得ない構造のように感じます。侵害事故は増え続けており、セキュリティ専門家は不足しているため、この状況はしばらくさらに深刻化しそうだという懸念があります。
Hacker Newsの意見
公開CDN利用のリスク: 公開CDNを使うと、モバイル端末にマルウェアが注入される可能性がある。これを軽減するためにSRI(Subresource Integrity)を使えるが、最善の解決策はCDN経由ではなく自前で直接ホスティングすること。
ゲーム理論的な観点: オープンソースソフトウェアのメンテナンスは、報酬なしで多くのサイトを支えなければならず、最終的にセキュリティ問題を引き起こしうる。
Washington PostとFox Newsの外部コンテンツ: 両サイトとも多くの外部コンテンツを含んでおり、攻撃対象になりうる。
Cloudflareの予測: Cloudflareはすでにこうした問題を予測し、それを軽減するためのソリューションを提供している。
Polyfillサービス創設者の見解: Polyfillサービスのプロジェクトを作ったが、ドメインの所有権は持っておらず、現在そのドメインはマルウェアを注入している。直ちに使用をやめるよう勧告。
予見されていた問題: 4カ月前から予想されていた問題であり、もっと多くの人がこれを認識して対処すべきだった。
スポーツ賭博サイトへのリダイレクト: ユーザーが望まないサイトへリダイレクトされることがあり、これは一部のユーザーには効果的かもしれない。
SRIへの言及不足: 記事でSRIへの言及がない点は驚き。SRIは低コストで高効率な解決策だ。
開発者との対話: 多くの開発者がCDNハイジャックに無関心であり、これはセキュリティ問題を引き起こしかねない。
セルフホスティング推奨: 依存関係は常に自分でホスティングするのが望ましく、ユーザーのプライバシー保護にも役立つ。