總機(jī):020-87516161 傳真:020-87516161-8040
地址:廣州市天河北路898號信源大廈3206-3211室 郵編:510660
安全服務(wù) > 安全公告 > 關(guān)于Redis未授權(quán)訪問漏洞的修復(fù)措施建議公告
安全公告編號:CNTA-2015-0024
近日,國家信息安全漏洞共享平臺(CNVD)收錄了Redis未授權(quán)訪問漏洞(CNVD-2015-07557)。遠(yuǎn)程攻擊者利用漏洞,在未授權(quán)情況下可利用Redis的相關(guān)方法寫入公鑰,進(jìn)而可以直接取得目標(biāo)服務(wù)器管理權(quán),發(fā)起進(jìn)一步攻擊。
一、漏洞情況分析
Redis是一套開源的使用ANSIC編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、鍵值存儲數(shù)據(jù)庫,并提供多種語言的API。Redis默認(rèn)情況下會開啟6379端口,在未開啟認(rèn)證的情況下,可導(dǎo)致任意用戶在可以訪問目標(biāo)服務(wù)器的情況下未授權(quán)訪問Redis,讀取Redis的數(shù)據(jù)。該漏洞在較早前就已經(jīng)被發(fā)現(xiàn),而近期研究者給出了更為危險(xiǎn)的利用方法。攻擊者可利用Redis的相關(guān)方法,將自己的公鑰寫入目標(biāo)服務(wù)器 /root/.ssh 文件夾的authotrized_keys文件中,進(jìn)而可以直接登錄目標(biāo)服務(wù)器。CNVD對該漏洞的綜合評級為“高危”。
二、漏洞影響范圍
Redis 暴露在公網(wǎng)(即綁定在0.0.0.0:6379,目標(biāo)IP公網(wǎng)可訪問),并且沒有開啟相關(guān)認(rèn)證和添加相關(guān)安全策略情況下可受影響而導(dǎo)致被利用。根據(jù)CNVD成員單位知道創(chuàng)宇公司提供的相關(guān)檢測結(jié)果,存在無驗(yàn)證可直接利用 Redis 服務(wù)的目標(biāo)全球有49099,其中中國有16477。其中已經(jīng)被黑的比例分別是全球65%(3.1萬),中國67.5%(1.1萬)。
三、漏洞修復(fù)建議
目前,廠商尚未發(fā)布該漏洞的修復(fù)補(bǔ)丁。CNVD建議參考如下臨時(shí)加固措施(注:CNVD成員單位綠盟科技公司提供了相關(guān)建議):
(一)網(wǎng)絡(luò)加固
綁定127.0.0.1,redis默認(rèn)是監(jiān)聽的127.0.0.1上,如果僅僅是本地通信,請確保監(jiān)聽在本地。這種方式緩解了redis的風(fēng)險(xiǎn)。在/etc/redis/redis.conf中配置如下:
`bind127.0.0.1`??
(二)設(shè)置防火墻
如果需要其他機(jī)器訪問,或者設(shè)置了slave模式,需添加相應(yīng)的防火墻設(shè)置。命令如下:
`iptables -A INPUT -sx.x.x.x -p tcp --dport 6379 -j ACCEPT`?
(三)添加認(rèn)證
redis默認(rèn)沒有開啟密碼認(rèn)證,打開/etc/redis/redis.conf配置文件,?(requirepass 密碼)可設(shè)置認(rèn)證密碼,保存redis.conf,重啟redis(/etc/init.d/redis-serverrestart)之后,需要執(zhí)行(auth 密碼)。示例如下:
`root@kali:~# redis-cli -h192.168.10.212
redis192.168.10.212:6379> keys *
(error) ERR operation notpermitted
redis192.168.10.212:6379> auth @nsF0cus!@#
OK`?
(四)設(shè)置單獨(dú)賬戶
設(shè)置一個(gè)單獨(dú)的redis賬戶:創(chuàng)建一個(gè)redis賬戶,通過該賬戶啟動。示例如下:
`setsidsudo -u redis/usr/bin/redis-server /etc/redis/redis.conf'`
(五)重命名重要命令
由于redis沒有做基本的權(quán)限分離,無管理賬號和普通賬號之分,導(dǎo)致攻擊者登錄后可執(zhí)行任意操作,因此需要隱藏重要命令,例如:FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL`。
其中在redis2.8.1和RedisRedis3.x (< 3.0.2)存在有eval沙箱逃逸漏洞,攻擊者利用漏洞可執(zhí)行任意lua代碼。設(shè)置方法如下,還編輯redis.conf文件:
`rename-command CONFIG ""
rename-command flushall ""
rename-command flushdb ""
rename-commandshutdown shutdown_dvwa`?
上述配置將config,flushdb,flushall設(shè)置為了空,即禁用該命令,我們也可以命名為一些攻擊者難以猜測,我們自己卻容易記住的的名字。保存之后,執(zhí)行/etc/init.d/redis-server restart 重啟生效。
附:參考鏈接:
http://static.nosec.org/download/redis_crackit_v1.1.pdf
https://www.sebug.net/vuldb/ssvid-89715
http://www.cnvd.org.cn/flaw/show/CNVD-2015-07557