- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
漏洞描述:
memcache是一套常用的key-value緩存系統,由于它本身沒(méi)有權限控制模塊,所以開(kāi)放在外網(wǎng)的memcache服務(wù)很容易被攻擊者掃描發(fā)現,通過(guò)命令交互可直接讀取memcache中的敏感信息。
修復方案:
因memcache無(wú)權限控制功能,所以需要用戶(hù)對訪(fǎng)問(wèn)來(lái)源進(jìn)行限制。
以下方案基于Linux CentOS:
方案一:(啟動(dòng)時(shí)綁定監聽(tīng)IP)
如果memcache沒(méi)有在外網(wǎng)開(kāi)放的必要,可在memcached啟動(dòng)的時(shí)候指定綁定的ip地址為 127.0.0.1。例如:
memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
其中 -l 參數指定為本機地址。
方案二:(修改默認監聽(tīng)端口)
更改memcached 默認監聽(tīng)端口為11211 以外的端口,以下以新端口19203為例:
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 19203 -c 1024 -P /tmp/memcached.pid
參數說(shuō)明:
-d選項是啟動(dòng)一個(gè)守護進(jìn)程;
-m是分配給Memcached使用的內存數量,單位是MB,我這里是100MB;
-u是運行Memcached的用戶(hù),推薦單獨普通權限用戶(hù):memcached,不要使用root權限賬戶(hù);
-l是監聽(tīng)的服務(wù)器IP地址我這里指定了服務(wù)器的IP地址x.x.x.x;
-p是設置Memcached監聽(tīng)的端口,我這里設置了19203,最好是1024以上的端口;
-c選項是最大運行的并發(fā)連接數,默認是1024,我這里設置了512,按照你服務(wù)器的負載量來(lái)設定;
-P是設置保存Memcached的pid文件,我這里是保存在 /tmp/memcached.pid;
方案三:(配置防火墻訪(fǎng)問(wèn)控制)
如果memcache服務(wù)需要對外提供服務(wù),則可以通過(guò)iptables進(jìn)行訪(fǎng)問(wèn)控制,下面是只允許本機及外部IP 1.1.1.1訪(fǎng)問(wèn):
// accept
iptables -A INPUT -p tcp -s 127.0.0.1 --dport 11211 -j ACCEPT
iptables -A INPUT -p udp -s 127.0.0.1 --dport 11211 -j ACCEPT
iptables -A INPUT -p tcp -s 1.1.1.1 --dport 11211 -j ACCEPT
iptables -A INPUT -p udp -s 1.1.1.1 --dport 11211 -j ACCEPT
// drop
iptables -I INPUT -p tcp --dport 11211 -j DROP
iptables -I INPUT -p udp --dport 11211 -j DROP
// 保存規則并重啟 iptables
service iptables save
service iptables restart
上述規則的意思是只允許本機及外部IP 1.1.1.1 對11211端口進(jìn)行訪(fǎng)問(wèn),如已經(jīng)變更默認監聽(tīng)端口,請變更--dport 的端口為新端口。
驗證 memcache 端口11211開(kāi)啟情況:
以memcached 服務(wù)器IP(2.2.2.2),外部IP 1.1.1.1,在外部IP 服務(wù)器上運行telnet檢測為例:
telnet 2.2.2.2 11211
無(wú)需用戶(hù)名密碼,1.1.1.1可以直接連接memcache 服務(wù)(2.2.2.2)的11211端口。
方案四:(最小化權限運行)
使用普通權限賬號運行,以下指定memcached 用戶(hù)運行
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
方案五:(升級為最新版本)
在編譯安裝memcached程序時(shí)添加-enable-sasl選項,并且在啟動(dòng)memcached服務(wù)程序時(shí)添加-S參數,啟用SASL認證機制以提升memcached的安全性
執行如下命令獲得相應結果:
# stats //查看memcache 服務(wù)狀態(tài)
# stats items //查看所有items
# stats cachedump 32 0 //獲得緩存key
# get :state:264861539228401373:261588 //通過(guò)key讀取相應value ,獲得實(shí)際緩存內容,造成敏感信息泄露
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP