最終用戶的帳戶安全始終是頭等大事,但也是難以解決的問題。更糟糕的是,驗(yàn)證用戶身份并非易事。鑒于泄漏憑據(jù)日益泛濫,更先進(jìn)的自動化爬蟲程序在全網(wǎng)發(fā)動著憑據(jù)填充攻擊,保護(hù)和監(jiān)測身份驗(yàn)證端點(diǎn)成為安全團(tuán)隊(duì)面臨的一個(gè)挑戰(zhàn)。不但如此,很多身份驗(yàn)證端點(diǎn)依然僅僅依賴于提供正確的用戶名和密碼,使得惡意攻擊者將未被甄別的憑證填充演變?yōu)橘~號盜用。
Cloudflare 平臺的很多功能可以幫助為帳戶盜用提供保護(hù)。本文將介紹一些例子和多個(gè)新功能。其中包括:
開放代理托管列表(新):確保對應(yīng)用程序的身份驗(yàn)證請求并非來自代理服務(wù);
超級自動程序攻擊模式(新):將自動化流量拒于驗(yàn)證端點(diǎn)門外;
暴露憑據(jù)檢查(新):在用戶使用已泄露憑據(jù)登錄時(shí)得到警告。這可用于啟動雙重驗(yàn)證流程或密碼重置;
Cloudflare Access:通過集成第三方 OATH 服務(wù)來輕松增加額外驗(yàn)證層,即將推出可選的托管服務(wù)實(shí)施(新);
對失敗登錄的速率限制:阻止對應(yīng)用程序的暴力式憑據(jù)填充嘗試;
以上功能結(jié)合使用時(shí),可成為一種強(qiáng)大易用的工具,增加終端用戶帳戶安全。
2020 年 7月,我們推出了 IP 列表 — 一個(gè)可重復(fù)使用的 IP 列表,用戶可在編寫自定義防火墻規(guī)則時(shí)作為基礎(chǔ)。雖然這個(gè)列表對任何防火墻管理員來說都是一個(gè)很棒的工具,但和任何用于訪問控制的 IP 列表一樣,這個(gè)列表很快就會過時(shí)。
通過我們新推出的 Cloudflare 開放代理托管列表,現(xiàn)在您可以根據(jù)一個(gè)由 Cloudflare 管理和定期更新(每小時(shí))的列表來創(chuàng)建自定義防火墻規(guī)則并進(jìn)行匹配。這個(gè)列表是基于觀察到的網(wǎng)絡(luò)流量和對開放端點(diǎn)的主動搜索而生成的。
要使用新的開放代理托管列表,請前往 Account Home → Configurations → Lists,或在自定義規(guī)則中直接使用
在編寫自定義防火墻規(guī)則時(shí),將該 IP 列表與額外過濾器結(jié)合起來,可降低針對驗(yàn)證端點(diǎn)的惡意登錄風(fēng)險(xiǎn)。使用 wirefilter 語法并利用這一新列表編寫的規(guī)則示例如下:
http.request.uri.path contains "/login" and (not ip.src in $cf.open_proxies and cf.bot_management.score < 30)
這樣一來,任何登錄嘗試將依照規(guī)則中所選行動被阻止或質(zhì)詢。
該 SOCKs 和 Proxy IP 列表面向所有 Enterprise 客戶提供。
登錄端點(diǎn)為自動程序提供了機(jī)會。惡意自動程序會充分利用時(shí)間,短短幾秒內(nèi)就能測試數(shù)千甚至數(shù)百萬個(gè)憑據(jù)。這些自動程序?qū)⒊掷m(xù)運(yùn)行,直至從您的網(wǎng)站獲得某種價(jià)值為止。
幸運(yùn)地是,我們最近推出了超級自動程序攻擊模式。這個(gè)功能包含于所有 Pro 和 Business 計(jì)劃中,我們還將其與實(shí)時(shí)分析結(jié)合起來,以便您能實(shí)時(shí)觀察攻擊情況。超級自動程序攻擊模式旨在阻止憑據(jù)填充。在后端,我們運(yùn)行著很多與 Enterprise Bot Management 產(chǎn)品相同的檢測引擎。
我們的全新超級自動程序攻擊模式。請前往 Firewall → Bots
最棒的是,您可以立即添加保護(hù)。Pro 用戶可選擇對互聯(lián)網(wǎng)上的“絕對自動程序”予以允許、阻止或質(zhì)詢行動。Business 用戶甚至可以瞄準(zhǔn)“疑似自動程序”,此類自動程序通常更加復(fù)雜,更難檢測。Free 用戶可繼續(xù)使用自動程序攻擊模式來獲得基本保護(hù)。
憑證填充攻擊者嘗試使用從針對另一個(gè)服務(wù)的攻擊中盜取的某個(gè)用戶憑據(jù)(用戶名/密碼對)來登錄目標(biāo)帳戶。這種方法常常會奏效,因?yàn)槌^ 50% 的用戶在多個(gè)帳戶中使用相同的密碼 ——導(dǎo)致大量帳戶被泄露。您的終端用戶安全不僅依賴于自身系統(tǒng)的安全,還依賴于用戶所用的所有其他系統(tǒng)的安全。雖然多因素驗(yàn)證能提供深度防御,很多驗(yàn)證服務(wù)和用戶尚未加以利用。即使如此,我們也希望能在某個(gè)用戶名/密碼對存在風(fēng)險(xiǎn)時(shí)對有關(guān)服務(wù)和用戶發(fā)出警告。
除了自動程序檢測等其他方法之外,一個(gè)新的行業(yè)最佳實(shí)踐是讓登錄服務(wù)自己檢查用戶的憑證是否存在于已知的數(shù)據(jù)泄露中。這需要有一個(gè)有用的已知泄露用戶名/密碼對列表。諸如 Have I Been Pwned 和 Google 的密碼泄漏警告服務(wù)匯總了龐大的已知泄漏用戶名/密碼數(shù)據(jù)庫,讓企業(yè)和終端用戶能通過查詢來確定是否存在風(fēng)險(xiǎn)。但集成并非易事,理想情況下,組織應(yīng)當(dāng)能通過點(diǎn)擊一個(gè)按鈕來啟用憑據(jù)檢查保護(hù)。
我們正是這樣做的。今天,我們發(fā)布 Web 應(yīng)用程序防火墻(WAF)的一個(gè)新功能:暴露憑據(jù)檢查。
通過我們的托管規(guī)則及即可輕松啟用暴露憑據(jù)檢查。另外,您也可以編寫自定義規(guī)則。??
對于任何受 Cloudflare 保護(hù)的應(yīng)用程序,其登錄請求都將通過 WAF 路由,這為在“路徑上”進(jìn)行暴露憑據(jù)檢查提供了機(jī)會。啟用后,對于任何驗(yàn)證嘗試,WAF 將自動根據(jù) Cloudflare 收集和維護(hù)的一個(gè)泄露憑據(jù)數(shù)據(jù)庫來檢查最終用戶憑據(jù)。在找到匹配的情況下,WAF 將向源添加一個(gè)標(biāo)頭,您的應(yīng)用程序?qū)⑹盏接嘘P(guān)泄露憑據(jù)的警告,并采取有關(guān)行動,例如為該用戶觸發(fā)密碼重置流程或雙重驗(yàn)證質(zhì)詢。
處理用戶名和密碼至少可以說是高度敏感的,我們設(shè)計(jì)暴露憑據(jù)檢查功能是為了保護(hù)用戶憑據(jù)。一個(gè)重要的設(shè)計(jì)原則是,用戶名/密碼對永遠(yuǎn)不應(yīng)該暴露在 WAF 進(jìn)程的邊界之外,從而確保我們可以在不增加任何額外風(fēng)險(xiǎn)的情況下執(zhí)行檢查。這意味著,這個(gè)功能絕對不會將用戶名和密碼發(fā)送到 WAF 進(jìn)程以外或存入日志1,因?yàn)槲覀儫o意知道這些憑據(jù)是什么——除非它們對您的網(wǎng)絡(luò)安全構(gòu)成威脅。但除此之外,我們還建立了一個(gè)保護(hù)隱私的加密協(xié)議來執(zhí)行數(shù)據(jù)庫查詢。簡單地說,我們對 WAF 進(jìn)程中的用戶名/密碼對使用一個(gè)鍵控加密哈希函數(shù),并檢查生成的哈希值是否與數(shù)據(jù)庫中已知泄露憑證的鍵控哈希值相匹配。我們將在后續(xù)的技術(shù)深入探討中進(jìn)一步說明這一點(diǎn)。
今天開始,Enterprise 用戶可在這個(gè)頁面聯(lián)系我們團(tuán)隊(duì)來使用這個(gè)功能。暴露憑據(jù)檢查作為一種托管規(guī)則集提供,對 WordPress、Joomla 等常見系統(tǒng)中“開箱即用”,也可以作為自定義規(guī)則的過濾器,以支持任何應(yīng)用程序。
通過使用 Cloudflare Access,您可在受 Cloudflare 保護(hù)的任何應(yīng)用程序前添加一個(gè)額外的保護(hù)層。Access 對每一個(gè)請求通過驗(yàn)證用戶身份、地點(diǎn)和網(wǎng)絡(luò)來保護(hù)應(yīng)用程序。這自然會增加終端用戶帳戶的安全性。
然而,用戶使用的設(shè)備也許仍不夠安全。已經(jīng)遭遇入侵的設(shè)備上的有效驗(yàn)證會話可能導(dǎo)致數(shù)據(jù)滲漏,或更嚴(yán)重的是,該終端用戶帳戶或應(yīng)用程序被完全破壞。企業(yè)嘗試通過管理和發(fā)放企業(yè)設(shè)備來降低這種風(fēng)險(xiǎn),通過移動設(shè)備管理(MDM)解決方案在這些設(shè)備上執(zhí)行安全策略。
為了解決這個(gè)問題,我們正在改良 Cloudflare Access,以強(qiáng)制要求僅企業(yè)設(shè)備能訪問敏感的應(yīng)用程序。通過訪問規(guī)則,現(xiàn)在有可能在允許訪問前根據(jù)一個(gè)受管設(shè)備列表來驗(yàn)證某個(gè)設(shè)備的序列號。即使某個(gè)用戶的憑據(jù)已暴露,由于設(shè)備的序列號不在受管設(shè)備列表中,任何未授權(quán)訪問都會被阻止。如需了解更多信息,請查看我們的近期公告。
暴力攻擊出奇地有效,尤其是在通過循環(huán)使用已泄露憑據(jù)數(shù)據(jù)庫。為了阻止這些攻擊,將其速度降至執(zhí)行代價(jià)太大的程度往往就已經(jīng)足夠。
在發(fā)生失敗登錄嘗試時(shí),很多用戶名/密碼表單會發(fā)出一個(gè) HTTP 403 Forbidden 狀態(tài)碼或其他可辨識的錯誤信息2。這可用作發(fā)出速率限制響應(yīng)的一個(gè)非常有效的信號,從而避免對合法用戶的任何潛在副作用。
以上規(guī)則對一分鐘內(nèi) 5 次連續(xù)失敗登錄的 IP 執(zhí)行持續(xù)一個(gè)小時(shí)的速率限制。
速率限制響應(yīng)可根據(jù)需要自定義,可根據(jù)端點(diǎn)同時(shí)支持APIs返回JSON或標(biāo)準(zhǔn)的HTML。
速率限制是面向所有自助服務(wù)客戶提供的收費(fèi)附加功能。
我們正在花大量時(shí)間思考如何通過簡單的一鍵式解決方案來為終端用戶帳戶提供最佳保護(hù)。
通過利用我們網(wǎng)絡(luò)的可見性,我們正在開始獲得只有 Cloudflare 的規(guī)模才能提供的有價(jià)值的信息。我們的托管開放代理列表就是一個(gè)這樣的例子,但我們已經(jīng)在試驗(yàn)基于異常的檢測,這遠(yuǎn)遠(yuǎn)超出簡單的設(shè)備態(tài)勢或速率限制。此外,我們也在思考通過用例和情景,如何在我們的全體客戶中更廣泛地共享已驗(yàn)證的異常,使我們回到最初基于 Cloudflare 所構(gòu)建的方式的社區(qū)保護(hù)。
.....
1其他 Cloudflare 功能,例如加密 WAF 負(fù)載記錄(Encrypted WAF Payload Logging), 可記錄任何請求的部分,但將使用客戶的公鑰對其加密。
2很多滲透測試報(bào)告將凸顯,針對失敗登錄嘗試的響應(yīng)上的差異是一種信息披露漏洞。