新聞中心
堪比火車(chē):未授權(quán)組合利用Redis

Redis是一種出色的NoSQL數(shù)據(jù)庫(kù),它以其出色的性能和高可用性而聞名。然而, Redis在安全性方面存在一些問(wèn)題。默認(rèn)情況下, Redis沒(méi)有任何身份驗(yàn)證或訪(fǎng)問(wèn)控制機(jī)制,這意味著攻擊者可以輕松地訪(fǎng)問(wèn)并控制Redis實(shí)例。這是未授權(quán)訪(fǎng)問(wèn)漏洞的經(jīng)典案例。在本文中,我們將討論使用此漏洞進(jìn)行未授權(quán)組合攻擊的情況,以及如何防止此類(lèi)型的攻擊。
我們考慮以下場(chǎng)景:假設(shè)企業(yè)使用Redis作為特定應(yīng)用程序的后端存儲(chǔ)。管理員使用默認(rèn)配置和密碼“123456”配置了Redis實(shí)例。例如,在命令行上啟動(dòng)Redis:
$ redis-server --requirepass 123456
現(xiàn)在,攻擊者發(fā)現(xiàn)了Redis實(shí)例,并成功地利用了未授權(quán)的漏洞,他可以對(duì)Redis進(jìn)行讀寫(xiě)操作。但是,攻擊者可做的事情不止于此。更重要的是,攻擊者可以利用組合攻擊來(lái)利用Redis,這個(gè)攻擊方式堪比火車(chē)。
完成此攻擊的主要難點(diǎn)是,我們需要在進(jìn)行兩個(gè)或多個(gè)操作之間保持Redis的數(shù)據(jù)完整性。例如,攻擊者可能想執(zhí)行以下兩個(gè)操作:
1. 刪除一個(gè)關(guān)鍵字
2. 在同一時(shí)間使用另一個(gè)關(guān)鍵字的值,更新某個(gè)鍵
遺憾的是, Redis沒(méi)有提供在同一事務(wù)中組合這兩個(gè)操作的機(jī)制。這就是為什么必須使用組合攻擊的原因。
在Redis攻擊中,非常流行的三個(gè)命令是WATCH, UNLINK和MULTI。我們將討論每個(gè)命令如何用于組合攻擊。
WATCH命令
WATCH命令用于監(jiān)視一個(gè)或多個(gè)鍵,并在事務(wù)中添加關(guān)鍵字以確保Redis的數(shù)據(jù)完整性。如果有任何關(guān)鍵字被修改(與之前相比),則Redis會(huì)自動(dòng)撤銷(xiāo)事務(wù)。因此,攻擊者可以確保在多個(gè)操作之間沒(méi)有其他用戶(hù)進(jìn)行任何修改或干擾。
UNLINK命令
UNLINK命令與DEL命令類(lèi)似,用于從Redis中刪除鍵。然而,它比DEL命令更強(qiáng)大,因?yàn)樗梢酝瑫r(shí)刪除多個(gè)鍵。另外,此命令僅在Redis 4.0或更高版本中可用。
MULTI命令
MULTI命令用于開(kāi)啟Redis事務(wù)。所有后續(xù)調(diào)用的命令都將在事務(wù)中執(zhí)行,直到提交(EXEC命令)或取消(DISCARD命令)。
下面是一個(gè)將所有命令組合在一起的示例:
WATCH key1 key2
MULTI
UNLINK key1
SET key2 "updated value"
EXEC
在這個(gè)例子中, WATCH命令將監(jiān)視兩個(gè)關(guān)鍵字“key1”和“key2”。如果有任何關(guān)鍵字被修改,則事務(wù)將被撤銷(xiāo)。 MULTI命令將開(kāi)啟Redis事務(wù)。 UNLINK命令將刪除關(guān)鍵字“key1”。之后, SET命令將更新關(guān)鍵字“key2”的值。 EXEC命令將提交事務(wù)。
因此,通過(guò)使用這三個(gè)命令并組合這些操作,攻擊者可以在未授權(quán)地訪(fǎng)問(wèn)Redis的情況下實(shí)現(xiàn)未授權(quán)組合攻擊。
防御措施
為了保護(hù)Redis并預(yù)防此類(lèi)攻擊,您可以采取以下措施:
1. 分配強(qiáng)密碼:為Redis分配一個(gè)強(qiáng)密碼并對(duì)其進(jìn)行加密。這將使攻擊者更難以訪(fǎng)問(wèn)Redis實(shí)例。
2. 限制訪(fǎng)問(wèn):通過(guò)您的網(wǎng)絡(luò)設(shè)備或配置文件限制僅讓授權(quán)的個(gè)體或程序可以訪(fǎng)問(wèn)Redis實(shí)例。
3. 定期檢查Redis:監(jiān)視Redis實(shí)例是否受到任何非授權(quán)所屬者的訪(fǎng)問(wèn)或數(shù)據(jù)庫(kù)配置的更改。
4. 啟用身份驗(yàn)證:?jiǎn)⒂肦edis的身份驗(yàn)證機(jī)制,以限制可訪(fǎng)問(wèn)Redis的用戶(hù)群。
通過(guò)這些措施,您可以顯著提高Redis實(shí)例的安全性,并防止未授權(quán)組合攻擊。我們建議使用最新的Redis版本,并始終跟蹤Redis開(kāi)發(fā)人員社區(qū)的最新補(bǔ)丁和更新。
結(jié)論
在未授權(quán)訪(fǎng)問(wèn)攻擊中,未授權(quán)組合攻擊是一種難以預(yù)測(cè)的危險(xiǎn)攻擊。此類(lèi)攻擊非常危險(xiǎn),因?yàn)樗鼈兛赡軐?dǎo)致Redis數(shù)據(jù)庫(kù)的數(shù)據(jù)丟失或泄露。因此,我們建議采取上述措施來(lái)保護(hù)Redis并預(yù)防未授權(quán)組合攻擊。如果您的公司使用Redis作為后端數(shù)據(jù)庫(kù),請(qǐng)確保您的Redis實(shí)例已分配強(qiáng)密碼并受到安全性保護(hù)。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
本文標(biāo)題:堪比火車(chē)未授權(quán)組合利用Redis(redis未授權(quán)組合利用)
標(biāo)題URL:http://www.dlmjj.cn/article/cdpcspp.html


咨詢(xún)
建站咨詢(xún)
