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