これまでに、オープンソースのpolyfill.ioサービスを使用して多くのウェブサイトを脅かす主要なソフトウェアサプライチェーン攻撃を聞いたことがあるだろう。 この記事はあなたがあなたのユーザーが保護されていることを保障するために取ることができる更新された処置と同様、問題のある背景を与える。 Edgioのサービスはこの攻撃の影響を受けていないが、当社のセキュリティチームは、ウェブサイトやアプリケーションでPolyfill.ioを使用している可能性があると懸念している顧客を支援する準備ができている。
polyfill.ioの背景
最近のpolyfill.ioサプライチェーン攻撃を理解するには、まず「polyfil」という用語を定義する必要がある。 Polyfillは、新しいWeb機能をネイティブサポートしていない古いブラウザに最新の機能を追加するコードを指す。 これにより、開発者は多様なブラウザー、特に最新のウェブ標準を採用するのが遅いブラウザー間で一貫したユーザーエクスペリエンスを提供できる。 polyfill.io攻撃の場合、開発者はpolyfillを使用して古いブラウザではサポートされていないJavaScript機能を追加した。
Polyfill.ioは、エンドユーザーのブラウザを自動的に検出し、最新のWebテクノロジーとの互換性を確保するために必要なポリフィルを提供する、広く使用されているサービスである。 cdn.polyfill.io (polyfill.ioのオープンソースCDN)からスクリプトを埋め込むことで、開発者は手動管理の手間をかけずにPolyfillをシームレスに提供でき、ブラウザの互換性を維持するプロセスを簡素化できる。
しかし、今年初めにpolyfill.ioは、比較的無名で中国企業とされるFunnullに買収された。 この買収は、重大なサプライチェーン攻撃の始まりを戦略的にマークしたようである。 2024年6月下旬、セキュリティ会社のSansecは、このサービスが数千のウェブサイトに悪意のあるコードを注入し、ユーザーを詐欺サイトにリダイレクトし、潜在的なデータ窃盗や不正行為にさらすために使用されたと警告した。
Polyfill.io攻撃の影響を受けるのは誰か?
このサプライチェーン攻撃の影響は甚大で、世界中の10万以上のウェブサイトに影響を与えている。 cdn.polyfill.ioからのスクリプトを埋め込むウェブサイトは危険にさらされている。 Funnullによって導入された悪意のあるスクリプトは、ユーザーを詐欺サイトにリダイレクトし、データの盗難を可能にし、リモートでコードが実行される可能性があった。 特に、この攻撃はモバイルユーザーを侵害し、特に特定の時間にデバイスを標的にし、セキュリティツールと分析による検出を回避した。
サプライチェーン攻撃:知っておくべきこと
攻撃者がサードパーティのスクリプトを危険にさらした後に取る可能性のある多くの悪質な可能性があるが、より一般的なものは次のとおりである。
- 悪意のあるサイトへのリダイレクト:侵害されたスクリプトを使用するウェブサイトは、ユーザーを無意識のうちに偽のGoogleアナリティクスやスポーツベッティングサイトなどの詐欺サイトにリダイレクトする可能性がある。 これらの悪意のあるリダイレクトは、ユーザーの信頼を損ない、フィッシング攻撃につながる可能性がある。
- データ盗難とコード実行:修正されたスクリプトは、ユーザーから機密データを盗み、不正なコード実行を実行し、ウェブサイトの整合性とユーザーのプライバシーに深刻なリスクをもたらす可能性がある。 不正なスクリプトは、個人情報、クレジットカードの詳細、ログイン資格情報などの機密性の高いユーザーデータを外部サーバーに流出させる可能性がある。
- クロスサイトスクリプティング(XSS ):悪意のあるスクリプトがユーザーのブラウザのコンテキストで実行され、セッションハイジャック、マルウェアの配布、および前述のようにデータ窃盗につながる可能性がある。
- サイトの改ざん:攻撃者はウェブページの外観や内容を変更し、ブランドのダメージやユーザーの信頼を失う可能性がある。
- パフォーマンスの低下:悪意のあるスクリプトや許可されていないスクリプトは、アプリケーションのパフォーマンスに重大な問題を引き起こし、ウェブサイトの速度を低下させ、ユーザーエクスペリエンスを低下させる可能性がある。
サイトとユーザーを保護するためにできること
この攻撃と、現代のアプリにおけるサードパーティライブラリへの依存度の高さを考慮すると、開発者とサイト管理者は、ウェブサイトとユーザーを保護するために直ちに行動を起こさなければならない。 最新のガイダンス:
- Polyfill.ioを使用してサイトを識別する:この攻撃からサイトとユーザーを保護するための最初のステップは、コードがpolyfill.ioを参照しているかどうかを知ることである。
Static Application Security Testing (SAST)ソリューションを使用している場合は、クエリを実行してpolyfill.ioへの参照を探すことができる(構文は異なる場合があるが、次のRegexがアイデアを提供している)。
結果= Find_Strings().FindByRegex(@\”https?://(cdn.polyfill.io)\”);
さらに、オープンソースコンポーネントとその脆弱性の特定と管理に焦点を当てた静的コード分析(SCA)ツールが役立つ。 SCAツールはライブラリやフレームワークに関連する既知の脆弱性のデータベースを保持している。 コードベースをスキャンすることで、SCAツールはあらゆる依存関係(polyfill.ioを含む)に既知のセキュリティ問題をフラグ付けすることができる。
SASTやSCAが導入されていない場合は、セキュリティテスト専用のGitHub Top 1000プロジェクトであるZapから以下の手順に従うことをお勧めする。
docker run -t zaproxy/zap-stable zap.sh -cmd-addoninstall pscanrulesBeta-Zapit https://www.example.com/
ZapのPolyfill.io Script Detectionで、polyfill.ioドメインから提供されているスクリプトをチェックするために使用される1行のコマンド(Dockerが必要)。より堅牢なスキャンのために、Zapベースラインスキャンを実行する。
- クライアントサイドプロテクションの実装:クライアントサイドプロテクションは、スクリプトとサードパーティAPIコールをリアルタイムで監視および制御し、悪意のあるコードのロードを防ぎ、悪意のあるホストとの不正な対話をブロックすることで、サプライチェーン攻撃から保護する。
Edgioのクライアントサイドプロテクションソリューションは、定義済みのサードパーティスクリプトのみをクライアントブラウザで実行することを許可することで、チームがポジティブなセキュリティモデルを実装することを可能にする。
クライアント側保護ポリシーの例。 肯定的なセキュリティモデルは、どのスクリプトソースをallowlistで呼び出すことができるかを指示することで適用できる。
- Polyfill.ioスクリプトの削除:コードからcdn.polyfill.ioへの参照をすべて削除する。 現代のブラウザではめったに必要とされないため、ポリフィルの代替で信頼できるソースに置き換えるか、ポリフィルの使用を完全に中止する。
EdgioのEdge関数を使用して、サイトで作成されたポリフィル参照を安全なURLに動的に書き換えることもできる( GitHubリポジトリはこちら)。 この追加のセキュリティレイヤーは、「仮想パッチ」を簡単に展開できるものと考えることができ、開発チームが戻って侵害されたライブラリへの参照を削除して置き換えるための貴重な保護と購入時間を提供する。
- 侵害を監視する:不正なリダイレクトやデータ窃盗などの侵害の兆候がないか、ウェブサイトを定期的にチェックする。 セキュリティ監視ツールを実装して、異常なアクティビティを検出し、使用するライブラリとサービスに関連するセキュリティアドバイザリと更新を最新の状態に保つ。
- Trusted Servicesへの切り替え:ユースケースでポリフィルが必要な場合は、実績のある組織から代替サービスを探す。 しかし、彼らが人生の保証について言うことを知っているので、リスクを下げるために上記の制御とベストプラクティスを使用することが重要である。 結局のところ、開発者はWorksと思うものを使うだろう- polyfill.ioはかなり人気のあるサービスであり、すべてが安全なコーディングの背景を持っているわけではない。
結論
Polyfill.ioサプライチェーン攻撃は、サードパーティのソフトウェアコンポーネントに固有の脆弱性を明確に思い出させるものである。 Edgioでは、堅牢な多層セキュリティを通じてウェブアプリケーションを保護することの重要性を強調している。 クライアントサイドブラウザ上で実行される悪意のあるスクリプトを検出してブロックするクライアントサイドプロテクションを含むWeb Application and API Protection (WAAP)サービスは、サプライチェーン攻撃やその他の進化する脅威に対する継続的な保護を保証する。
さらに、当社の新しいAttack Surface Management (ASM)ソリューションは、Web上のフットプリント全体を包括的に可視化し、脆弱性をプロアクティブに特定して緩和し、潜在的なエクスプロイトが攻撃者に悪用される前に保護する。
最後に、Edgioのマネージドセキュリティサービスは、Webアプリケーションのセキュリティの実装または完全な管理を支援する準備ができている。 24時間年中無休のセキュリティ運用、専任の脅威インテリジェンスチーム、および割り当てられたセキュリティアーキテクトにより、ウェブ資産が継続的に監視され、最新の脅威から保護されるため、セキュリティニーズに対応しながら、チームがイノベーションに集中できるようになる。
質問がある場合や、サプライチェーン攻撃からウェブサイトを保護するための支援が必要な場合は、Edgioのセキュリティ専門家にお気軽にお問い合わせください。