近期,我們欣然宣布了 Page Shield,這是一個客戶端安全產(chǎn)品,供客戶用于檢測最終用戶瀏覽器中的攻擊。
從 2015 年開始,一個名為 Magecart 的黑客組織通過用惡意代碼感染第三方依賴的方式竊取網(wǎng)上商店的支付憑證。被感染代碼被最終用戶瀏覽器請求,在其中執(zhí)行并獲得網(wǎng)頁上的用戶數(shù)據(jù)。在獲取到這些信息后,被感染代碼將其發(fā)送給黑客,供其轉(zhuǎn)賣或者用于發(fā)動進一步攻擊,例如信用卡欺詐和身份盜用。
即使不用擔(dān)心第三方供應(yīng)商,在組織內(nèi)部編寫安全的代碼就已經(jīng)不是容易的事情。很多 SaaS 平臺向數(shù)以百萬計的網(wǎng)站提供第三方代碼,意味著一次破壞就能帶來毀滅性的后果。Page Shield 幫助客戶監(jiān)控這些潛在的攻擊手段,阻止保密用戶信息落入黑客手中。
遠程瀏覽器隔離(Remote Browser Isolation),作為緩解員工瀏覽器中客戶端攻擊的一個方法。Page Shield 延續(xù) Cloudflare 在客戶端安全的努力,幫助緩解針對貴組織客戶的攻擊。
背景
Magecart 式攻擊是在用戶瀏覽器中執(zhí)行的一種軟件供應(yīng)鏈攻擊。攻擊者瞄準存放第三方 JavaScript 依賴的主機,控制向瀏覽器提供的源代碼。當(dāng)被感染代碼運行時,其往往嘗試盜取最終用戶輸入到網(wǎng)站的敏感數(shù)據(jù),例如支付過程中的信用卡信息。
這些攻擊難以檢測,因為很多應(yīng)用程序所有者都信任第三方 JavaScript 會按照預(yù)期運行。由于這種信任,應(yīng)用程序所有者極少對第三方代碼進行審計。很多情況下,Magecart 攻擊持續(xù)數(shù)月才被發(fā)現(xiàn)。
數(shù)據(jù)滲漏不是軟件供應(yīng)鏈攻擊帶來的唯一風(fēng)險。近年來,我們也看到黑客修改第三方代碼來向用戶顯示欺詐廣告。如果用戶點擊這些廣告進入釣魚網(wǎng)站,其個人信息就會被黑客竊取。其他 JavaScript 惡意軟件使用最終用戶資源為攻擊者挖掘加密貨幣,破壞網(wǎng)站性能。
那么,應(yīng)用程序所有者應(yīng)如何保護自己?現(xiàn)有的瀏覽器技術(shù),如內(nèi)容安全策略(CSP)和子資源完整性(SRI),提供了一些針對客戶端威脅的保護,但也存在一些缺陷。
腳本監(jiān)測器是 Page Shield 提供的第一個功能
腳本監(jiān)測器(Script Monitor)是 Cloudflare 打造 Page Shield 的起點。一旦開啟,這個功能會持續(xù)記錄站點的 JavaScript。每當(dāng)出現(xiàn)新的 JavaScript 依賴時,我們就會提醒您,以便您調(diào)查這些是否您站點的預(yù)期變化。這可以幫助您識別是否有惡意行為者修改了您的應(yīng)用程序以請求一個新的、惡意 JavaScript 文件。一旦完成 beta 測試,這個初始功能集將向 Business 和 Enterprise 客戶免費開放。
腳本監(jiān)測器如何工作?
由于 Cloudflare 處于應(yīng)用程序原服務(wù)器和最終用戶之間的獨特位置,我們能在響應(yīng)到達最終用戶前對其進行修改。在這種情況下,我們在頁面通過我們的邊緣時在其中增加一個額外的 Content-Security-Policy-Report-Only 標頭。當(dāng) Javascript 試圖在頁面執(zhí)行時,瀏覽器將向 Cloudflare 發(fā)送報告。由于我們使用 report-only 標頭,應(yīng)用程序所有者不需要維護允許列表來獲得相關(guān)洞察。
針對我們看到的每個報告,我們都會將該 JavaScript 與這個區(qū)域的歷史依賴進行比較,檢查其是否為新文件。如是,我們會發(fā)出警告,以便客戶進行調(diào)查并確認這個變化是否在預(yù)期之中。
腳本監(jiān)測器用戶界面位于 Firewall -> Page Shield
作為 beta 參與者,您將在您的區(qū)域儀表板的防火墻部分看到 Page Shield 標簽。然后,您可以找到跟蹤您的區(qū)域 JavaScript 依賴的腳本監(jiān)測器表格。對于每一個依賴,您都可以查看首次出現(xiàn)日期,最后出現(xiàn)日期,以及被檢測到的主機域。
發(fā)現(xiàn)新 JavaScript 依賴時的電子郵件通知示例
您也可以在儀表板中配置腳本監(jiān)測器通知。每當(dāng)您的站點請求一個新的 JavaScript 文件,這些通知都會向您的電子郵箱或 PagerDuty 發(fā)送警告。
展望未來
我們的使命是幫助建設(shè)更加美好的互聯(lián)網(wǎng)。這一使命延伸到最終用戶瀏覽器,而近年來,我們發(fā)現(xiàn)這個領(lǐng)域的攻擊出現(xiàn)了驚人的增長。通過 Page Shield,我們將幫助應(yīng)用程序檢測和緩解這些難以捉摸的攻擊,以保護其用戶的敏感數(shù)據(jù)。
我們已經(jīng)在向腳本監(jiān)測器中構(gòu)建代碼變化檢測功能。代碼變化檢測將定期獲取您的應(yīng)用程序的 JavaScript 依賴并分析其行為。當(dāng)現(xiàn)有文件中檢測到新的代碼行為時,我們會向您發(fā)出警告,以便您查看該變化并確定新代碼是無害的更新還是受感染的代碼。
代碼變化檢測之后將是 JavaScript 文件的智能分析。在應(yīng)用程序的依賴發(fā)生變化時向應(yīng)用程序所有者發(fā)出警告可以提供針對所關(guān)注文件的洞察,但我們可以更進一步。我們已經(jīng)與我們的安全合作伙伴合作,獲取了 Magecart JavaScript 的樣本,并已證明我們可以準確地對惡意 JavaScript 樣本進行分類。我們計劃進一步改進我們的技術(shù),最終將開始在我們認為 Page Shield 客戶的依賴是惡意的時候向其發(fā)出警告。
我們已經(jīng)和我們的客戶談過,了解到維護 CSP 允許列表在操作上是并非易事。如果部署了新的客戶端 JavaScript 但沒有將其添加到允許列表中,那么新代碼將被瀏覽器阻止。因此,我們將利用我們做為反向代理的地位來部署負面安全模型阻止(negative security model blocking)。如此一來,應(yīng)用程序所有者不需要維護允許列表就能阻止個別腳本,確??蛻裟茉跓o繁瑣開銷的前提下發(fā)布新代碼。
申請加入 beta 測試
現(xiàn)在開始,所有 Business 和 Enterprise 客戶都可以在這里申請加入 Page Shield 的封閉測試。加入beta 測試后,客戶將能激活腳本監(jiān)測器并開始監(jiān)控其站點的 JavaScript。