憑據填充是一種網絡攻擊,其中從一項服務的數據泄露中獲得的憑據被用于嘗試登錄到另一項不相關的服務。例如,攻擊者可能會獲取從一家大型百貨公司的違規行為中獲得的用戶名和密碼列表,并使用相同的登錄憑據嘗試登錄國家銀行的網站。攻擊者希望這些百貨商店客戶中的一部分也擁有該銀行的賬戶,并且他們為這兩項服務重復使用相同的用戶名和密碼。
由于在黑市上交易和出售的大量違規憑證清單,憑證填充很普遍。這些列表的激增,再加上使用機器人繞過傳統登錄保護的憑證填充工具的進步,使得憑證填充成為一種流行的攻擊媒介。
什么使憑證填充有效?
從統計學上講,撞庫攻擊的成功率非常低。許多估計這個比率約為 0.1%,這意味著攻擊者每嘗試破解一千個帳戶,他們將大約成功一次。盡管成功率很低,但攻擊者交易的憑證集合的絕對數量使得憑證填充物有所值。
這些集合包含數百萬甚至數十億的登錄憑據。如果攻擊者擁有一百萬套憑據,這可能會產生大約 1,000 個成功破解的帳戶。如果即使是一小部分被破解的賬戶產生了有利可圖的數據(通常以信用卡號或可用于網絡釣魚攻擊的敏感數據的形式),那么攻擊是值得的。最重要的是,攻擊者可以在許多不同的服務上使用相同的憑據集重復該過程。
機器人技術的進步也使憑證填充成為一種可行的攻擊。Web 應用程序登錄表單中內置的安全功能通常包括故意延遲時間和禁止重復登錄嘗試失敗的用戶的IP 地址。現代憑證填充軟件通過使用機器人同時嘗試多個似乎來自各種設備類型并來自不同 IP 地址的登錄來繞過這些保護。惡意機器人的目標是使攻擊者的登錄嘗試與典型的登錄流量無法區分,并且非常有效。
通常情況下,受害公司唯一表明他們受到攻擊的跡象是登錄嘗試總量的增加。即使這樣,受害公司也很難在不影響合法用戶登錄服務的能力的情況下阻止這些嘗試。
撞庫攻擊有效的主要原因是人們重復使用密碼。研究表明,據估計高達 85% 的大多數用戶會為多個服務重復使用相同的登錄憑據。只要這種做法繼續下去,憑證填充將保持卓有成效。
憑證填充和蠻力攻擊有什么區別?
OWASP將憑證填充歸類為暴力攻擊的一個子集。但是,嚴格來說,憑證填充與傳統的蠻力攻擊有很大不同。蠻力攻擊試圖在沒有上下文或線索的情況下猜測密碼,隨機使用字符,有時結合常見的密碼建議。憑證填充使用暴露的數據,大大減少了可能的正確答案的數量。
對暴力攻擊的良好防御是由多個字符組成的強密碼,包括大寫字母、數字和特殊字符。但是密碼強度并不能防止憑證填充。密碼的強度無關緊要 - 如果它在不同帳戶之間共享,那么憑證填充可能會危及它。
如何防止憑證填充
用戶如何防止撞庫
從用戶的角度來看,防范撞庫非常簡單。用戶應始終為每個不同的服務使用唯一的密碼(實現此目的的簡單方法是使用密碼管理器)。如果用戶始終使用唯一的密碼,則憑證填充將不會對其帳戶起作用。作為額外的安全措施,我們鼓勵用戶在可用時始終啟用雙因素身份驗證。
公司如何防止撞庫
對于運行身份驗證服務的公司來說,停止憑證填充是一個更復雜的挑戰。憑據填充是由于其他公司的數據泄露而發生的。遭受撞庫攻擊的公司不一定會受到安全威脅。
公司可以建議其用戶提供唯一密碼,但不能有效地將其作為規則強制執行。一些應用程序會在接受密碼作為防止憑證填充的措施之前針對已知受損密碼的數據庫運行提交的密碼,但這并不是萬無一失的——用戶可能會重復使用尚未被破壞的服務中的密碼。
提供額外的登錄安全功能有助于減少憑證填充。啟用雙重身份驗證和要求用戶在登錄時填寫驗證碼等功能也有助于阻止惡意機器人。盡管這些都是給用戶帶來不便的功能,但許多人會同意將安全威脅降到最低是值得的。針對撞庫的最強保護是機器人管理服務。爬蟲程序管理使用速率限制和 IP 信譽數據庫來阻止惡意爬蟲程序進行登錄嘗試,而不會影響合法登錄。