最新Redis未授權(quán)訪問(wèn)漏洞,該如何守護(hù)Redis安全?
Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。近期,Redis被爆出存在通過(guò)主從復(fù)制從而Getshell的漏洞。
在Redis4.x以及以上版本中,因?yàn)樾略隽四K功能,攻擊者可以通過(guò)構(gòu)造惡意代碼,使被攻擊的服務(wù)器加載惡意.so文件,如果redis-server以root權(quán)限啟動(dòng),使得惡意代碼能夠被執(zhí)行,攻擊者就可以在服務(wù)器上創(chuàng)建他想創(chuàng)建的任意文件,危害非常的大。
Redis作者的理念是“簡(jiǎn)潔為美”,所以并沒(méi)有為Redis設(shè)計(jì)復(fù)雜的安全配置,那么要如何保證Redis的安全呢?
配置防火墻保護(hù)redis
通過(guò)配置防火墻防止外部用戶(hù)訪問(wèn)它的redis端口。
不使用redis的默認(rèn)端口
防止外部用戶(hù)訪問(wèn)Redis,指定信任的Redis的IP,防止外部訪問(wèn),僅有可信的用戶(hù)IP才能訪問(wèn)Redis端口。如果不禁止的話(huà),當(dāng)受到來(lái)自外部攻擊時(shí)很有可能所有的數(shù)據(jù)都將被刪除。
設(shè)置訪問(wèn)redis時(shí)需要密碼授權(quán)
Redis對(duì)于經(jīng)典網(wǎng)絡(luò)的實(shí)例強(qiáng)制開(kāi)啟密碼鑒權(quán),用戶(hù)可以通過(guò)設(shè)置復(fù)雜的密碼避免密碼被攻破。需要注意的是,密碼的強(qiáng)度要設(shè)置足夠高,例如32位以上。redis的性能非常好,暴力破解密碼的話(huà),每秒鐘可以達(dá)到15萬(wàn)次。
使用禁用命令
在 Redis 中可以禁用命令或者將它們重命名成難以推測(cè)的名稱(chēng),這樣只有內(nèi)部用戶(hù)能夠這些重命名的名稱(chēng),而一般的用戶(hù)只能夠使用一部分命令。
對(duì)一些危險(xiǎn)命令進(jìn)行重命名,能夠防止惡意操作,相當(dāng)于把命令名稱(chēng)變?yōu)槊艽a,只有內(nèi)部人員知道。
Redis 在優(yōu)化高性能以及易用性上下功夫,對(duì)于安全方面并沒(méi)有極力去優(yōu)化。因此redis需要運(yùn)行在安全的環(huán)境下,就要要做好redis外部的安全工作。