新思科技網(wǎng)絡安全研究中心發(fā)現(xiàn)Bouncy Castle中的漏洞
身份認證可以保護用戶隱私,但是網(wǎng)絡攻擊者也在想方設法繞過密碼檢查,如果軟件本身就有明顯漏洞,風險則會更大。CVE-2020-28052披露在Bouncy Castle輕量級密碼術(shù)包的OpenBSDBcrypt類中發(fā)現(xiàn)繞過身份驗證的漏洞,攻擊者可以避開密碼檢查。
概述
新思科技網(wǎng)絡安全研究中心(CyRC)研究人員發(fā)現(xiàn)了CVE-2020-28052漏洞,即廣泛使用的Java密碼庫Bouncy Castle中的OpenBSDBcrypt類的繞過身份驗證的漏洞。該類實現(xiàn)了用于密碼哈希的Bcrypt算法。攻擊者可以在使用Bouncy Castle的OpenBSDBcrypt類的應用程序中繞過密碼檢查。
在提交(00dfe74aeb4f6300dd56b34b5e6986ce6658617e)中引入了OpenBSDBcrypt.doCheckPassword方法中的該漏洞。
doCheckPassword方法的驗證程序?qū)崿F(xiàn)是有缺陷的。該代碼檢查值為0到59(包括0和59)字符在字符串中的索引,而不是檢查在字符串中0到59之間位置的字符值是否匹配。這意味著一系列密碼,其生成的哈希(例如,哈希值不包含介于0x00和0x3B之間的字節(jié))會與其它不包含這些字節(jié)的密碼哈希匹配。通過此檢查意味著攻擊者不需要與存儲的哈希值逐字節(jié)匹配。
在使用Bcrypt.doCheckPassword()檢查密碼的大多數(shù)情況下,成功地利用漏洞將繞過身份驗證。
漏洞利用
攻擊者必須嘗試暴力破解密碼,直到觸發(fā)繞過身份驗證。我們的實驗表明,20%的測試密碼在1,000次內(nèi)嘗試中被成功繞過。某些密碼哈希需要進行更多嘗試,具體取決于字符值在0到60之間(1到59)的字節(jié)數(shù)。此外,我們的調(diào)查表明,通過足夠的嘗試可以繞過所有密碼哈希。在極少數(shù)情況下,任何輸入都可以繞過一些密碼哈希。
受影響的軟件
CVE-2020-28052漏洞影響了Bouncy Castle 1.65(發(fā)布于2020年3月31日)和Bouncy Castle 1.66(發(fā)布于7/4/2020)。
Bouncy Castle 1.67(發(fā)布于2020年11月1日)修復了此漏洞。 1.65之前的版本不受CVE-2020-28052漏洞的影響。
注:基于漏洞披露,新思科技研究了其產(chǎn)品,發(fā)現(xiàn)在該披露發(fā)布之時沒有產(chǎn)品使用過Bouncy Castle版本1.65或1.66。
影響
基于哈希的Bcrypt身份驗證可應用在身份驗證檢查,如在Web應用程序和API中身份驗證檢查。
CVSS 3.1 評分
Bouncy Castle是一個軟件庫。在確定通用漏洞評分系統(tǒng)(CVSS)分數(shù)時,假定了以下最壞情況(遵循FIRST CVSS軟件庫評分準則):
Bcrypt哈希用于檢查用戶提供的密碼。一旦觸發(fā)了繞過身份驗證,攻擊者就可以執(zhí)行與合法用戶相同的操作(例如,獲得SSO,即single-sign-on,單次登錄系統(tǒng),管理員級別的訪問權(quán)限)。
Vector: ?AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H/E:P/RL:O/RC:C
評分: 8.1
漏洞可利用性指標:
攻擊途徑Attack Vector (AV): N = Network 網(wǎng)絡
攻擊復雜程度Attack Complexity (AC): H = High 高
所需權(quán)限Privileges Required (PR): N = None 無
用戶交互User Interaction (UI): N = None 無
范圍Scope (S): C = Changed scope 范圍變更
影響指標
機密性影響Confidentiality Impact (C): H = High impact 影響大
完整性影響Integrity Impact (I): H = High impact 影響大
可用性影響Availability Impact (A): H = High impact 影響大
修復
強烈建議該庫的軟件供應商和用戶升級到Bouncy Castle Java版本1.67或更高版本。
漏洞發(fā)現(xiàn)者
一組位于芬蘭奧盧的新思科技網(wǎng)絡安全研究中心的研究人員發(fā)現(xiàn)了此漏洞:
Matti Varanka
Tero Rontti
新思科技感謝Bouncy Castle團隊及時地響應并修復此漏洞。
時間線
2020年10月20日:發(fā)現(xiàn)該Bouncy Castle漏洞
2020年10月22日:新思科技確認沒有產(chǎn)品使用此漏洞影響的版本
2020年10月27日:新思科技揭露Bouncy Castle的漏洞
2020年10月28日:Bouncy Castle確認存在漏洞
2020年11月2日: 新思科技驗證Bouncy Castle修復漏洞
2020年12月17日:發(fā)布修復建議