到目前為止,您可能聽說過一次重大的軟體供應鍊攻擊,威脅使用開放原始碼polyfill.io服務的許多網站。 本文將為您提供有關此問題的一些背景資訊,以及您可以採取的更新操作,以確保您的用戶受到保護。 儘管Edgio的服務不受此攻擊的影響,但我們的安全團隊隨時準備幫助任何擔心他們在其網站或應用程式中使用了polyfill.io的客戶。
polyfill.io上的背景
爲了理解最近發生的polyfill.io供應鏈攻擊,我們首先應該定義術語“polyfil”。 Polyfill是指將現代功能添加到較舊瀏攬器中的代碼,這些瀏攬器缺乏對較新Web功能的本地支援。 它使開發人員能夠跨各種瀏攬器提供一致的用戶體驗,尤其是那些採用最新Web標準的速度較慢的瀏攬器。 在polyfill.io攻擊的情況下,開發人員使用polyfill來添加舊版瀏攬器不支援的JavaScript功能。
Polyfill.io是一種廣泛使用的服務,它可以自動檢測最終用戶的瀏覽器並提供必要的多邊形填充,以確保與現代Web技術兼容。 通過嵌入cdn.polyfill.io (polyfill.io的開源CDN)中的腳本,開發人員可以無縫地提供Polyfill,而無需手動管理,從而簡化了維護瀏攬器兼容性的過程。
然而,今年早些時候,polyfill.io被Funnull收購,這是一家相對不知名的中國公司。 這次收購從戰略角度來看,似乎是一場重大供應鍊攻擊的開始。 2024年6月底,安全公司Sansec警告說,該服務被用於向成千上萬個網站注入惡意代碼,將用戶重定向到詐騙網站,並使他們面臨潛在的數據盜竊和未經授權的行為。
誰會受到Polyfill.io攻擊的影響?
這次供應鍊攻擊的影響巨大,影響全球100,000多個網站。 任何嵌入cdn.polyfill.io腳本的網站都有風險。 Funnull引入的惡意腳本將用戶重定向到欺詐站點,啟用數據盜竊並可能允許遠程執行代碼。 值得注意的是,這種攻擊還會在特定時間危害移動用戶和特定目標設備,從而逃避安全工具和分析的檢測。
供應鍊攻擊:您需要了解的資訊
雖然攻擊者在破壞第三方腳本後可能會採取許多邪惡的可能性,但更常見的可能性包括:
- 重定向到惡意網站:使用受破壞腳本的網站可能會在不知情的情況下將用戶重定向到欺詐網站,如虛假Google Analytics或體育博彩網站。 這些惡意重定向會危及用戶的信任,並可能導致釣魚攻擊。
- 數據盜竊和代碼執行:修改後的腳本可能會竊取用戶的敏感數據並執行未經授權的代碼執行,從而對網站完整性和用戶隱私構成嚴重風險。 未經授權的腳本可能會將敏感的用戶數據(如個人資訊,信用卡詳細資訊和登入憑據)洩漏到外部伺服器。
- 跨站點腳本執行(XSS):惡意腳本可能在用戶瀏攬器上下文中執行,導致會話劫持,惡意軟體分發以及前面提到的數據竊取。
- 網站篡改:攻擊者可以修改網頁的外觀或內容,從而導致品牌損壞和用戶信任的喪失。
- 性能降低:惡意或未經授權的腳本可能導致嚴重的應用程式性能問題,降低網站速度並提供較差的用戶體驗。
如何保護您的網站和用戶?
考慮到這種攻擊以及當今現代應用程式中對第三方庫的高度依賴,開發人員和網站管理員必須立即採取措施保護其網站和用戶。 以下是我們的最新指南:
- 使用Polyfill.io識別站點:保護站點和用戶免受此攻擊的第一步是了解代碼是否引用polyfill.io。
如果您有靜態應用程式安全測試(SAST)解決方案,則可以執行查詢來查找polyfill.io的引用(語法可能會有所不同,但以下Regex為您提供了這樣的想法):
Result = find_Strings().FindByRegex(@\”https?://(cdn.polyfill.io)\”);
此外,靜態代碼分析(SCA)工具可幫助識別和管理開放原始碼組件及其漏洞。 SCA工具維護與庫和框架相關的已知漏洞的數據庫。 通過掃描代碼庫,SCA工具可以標記具有已知安全問題的任何依賴項(包括polyfill.io)。
如果您沒有SAST或SCA,我們建議您遵循ZAP的這些步驟,ZAP是一項積極維護的GitHub前1000大安全測試項目。
泊塢視窗執行-t zap-stable zap.sh -cmd -addoninstall pscanrulesBeta -zapit https://www.example.com/
ZAP的Polyfill.IO腳本檢測使用的單行命令,用於檢查是否有來自polyfill.IO域的腳本(需要Docker);要進行更強大的掃描,請執行ZAP基線掃描。
- 實施客戶端保護:客戶端保護通過實時監視和控制腳本和第三方API調用,防止載入惡意代碼並阻止與惡意主機的未經授權的交互來幫助抵禦供應鍊攻擊。
Edgio的客戶端保護解決方案允許團隊實施積極的安全模型,只允許在客戶端瀏攬器中執行已定義的第三方腳本。
客戶端保護策略示例。 可以通過指示允許列表中可以調用哪些腳本源來應用積極的安全模型。
- 刪除Polyfill.io腳本:從代碼中刪除對cdn.polyfill.io的任何引用。 請將其替換為可信任的替代來源,以供多重填使用,或完全停止使用多重填,因為現代瀏覽器很少需要這些來源。
Edgio的Edge函數還可用於動態地將您的站點對任何安全URL (在我們的GitHub repo中提供)進行的任何聚合引用重寫。 這一額外的安全層可被視為一個簡單易用的“虛擬修補程序”,為您的開發團隊提供寶貴的保護和購買時間,使其能夠返回並刪除和替換對受破壞庫的引用。
- 監控風險:定期檢查您的網站是否存在風險跡象,例如未經授權的重定向或數據洩露。 實作安全性監控工具,偵測異常活動,並掌握與您使用之程式庫和服務相關的最新安全性摘要報告和更新。
- 切換至受信任服務:如果您的使用案例需要使用多重填充,請從具有可靠跟蹤記錄的組織中尋找替代服務。 但是,您知道他們對生命保障的看法,因此使用上述控制措施和最佳實踐降低風險至關重要。 畢竟,開發人員將使用他們認為有效的產品- polyfill.io是一種相當受歡迎的服務-並非所有產品都具有安全的編碼背景。
結論
Polyfill.io供應鍊攻擊是第三方軟體組件固有的漏洞的鮮明提示。 在Edgio,我們強調通過強大的多層安全保護Web應用程式的重要性。 我們的Web Application and API Protection (WAAP)服務包括客戶端保護,可檢測和阻止在客戶端瀏攬器上執行的惡意腳本,可確保持續防範供應鍊攻擊和其他不斷演變的威脅。
此外,我們新推出的攻擊面管理(ASM)解決方案可提供您對整個面向Web的占用空間的全面可見性,使您能夠主動識別和緩解漏洞,在攻擊者利用這些漏洞之前防範潛在的攻擊。
最後,Edgio的安全託管服務還隨時準備幫助實施或全面管理您的Web應用程式安全性。 有了24/7個安全營運,專門的威脅情報團隊和指定的安全架構師,您可以放心,您的Web資產會持續受到監控並抵禦最新的威脅,讓您的團隊在我們處理您的安全需求的同時,專注於創新。
如果您有任何問題或需要幫助保護您的網站免受供應鍊攻擊,請隨時聯繫Edgio的安全專家。