在阿里雲上掛了一個網站,運行CentOS+PHP+Nginx,伺服器裝了redis,連接埠是6379,開啟阿里雲後台Apsara Stack Security報一個安全性漏洞,漏洞類型是Redis未授權訪問漏洞,漏洞地址是xx.xx.xx.xx:6379,也提供瞭解決方案。
記錄如下:
一、漏洞描述和危害
Redis因配置不當可以未授權訪問,被攻擊者惡意利用。
攻擊者無需認證訪問到內部資料,可能導致敏感資訊泄露,駭客也可以惡意執行flushall來清空所有資料。
攻擊者可通過EVAL執行lua代碼,或通過資料備份功能往磁碟寫入後門檔案,如果Redis以root身份運行,駭客可以給root賬戶寫入SSH公開金鑰檔案,直接通過SSH登入受害伺服器。
二、已確認被成功利用的軟體及系統
對公網開放,且未啟用認證的redis伺服器。
三、建議修複方案
1、指定redis服務使用的網卡 (需要重啟redis才會生效)
在 redis.conf 檔案中找到 “# bind 127.0.0.1” ,把前面的#號去掉,然後儲存。註:修改後只有本機才能訪問Redis。
Vim
# By default Redis listens for connections from all the network interfaces
# available on the server. It is possible to listen to just one or multiple
# interfaces using the "bind" configuration directive, followed by one or
# more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
bind 127.0.0.1
2、設定訪問密碼 (需要重啟redis才會生效)
在 redis.conf 中找到“requirepass”欄位,在後面填上你需要的密碼,Redis用戶端也需要使用此密碼來訪問Redis服務。
3、修改Redis服務運行帳號
請以較低許可權帳號運行Redis服務,且禁用該帳號的登入許可權。可以限制攻擊者往磁碟寫入檔案,但是Redis資料還是能被駭客訪問到,或者被駭客惡意刪除。
4、設定防火牆策略
如果正常業務中Redis服務需要被其他伺服器來訪問,可以設定iptables策略僅允許指定的IP來訪問Redis服務。