漏洞描述:
Memcached是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負載。Memcacded DRDoS漏洞中基于UDP協(xié)議的DDOS反射攻擊靠的是發(fā)送大量帶有被害者IP地址的UDP數(shù)據(jù)包給放大器主機(Memcached),最后放大器主機對偽造的IP地址源做出大量回應(yīng),形成分布式拒絕服務(wù)攻擊。這樣就巧妙的利用了無需交互認(rèn)證的服務(wù)(UDP)將DDOS攻擊數(shù)據(jù)“放大”并“反射”到受害者主機IP上。而黑客往往會選擇那些響應(yīng)包遠大于請求包的UDP服務(wù),這樣只需要極小的攻擊流量就可以造成上百Gbps的攻擊效果。
下圖引用了CLOUDFLARE對UDP協(xié)議的DDOS反射攻擊圖例來說明攻擊過程:
影響范圍
版本在Memcached 1.5.6 以下,并且對公網(wǎng)開放 UDP 11211 訪問的 Memcached 服務(wù)器都可以被攻擊者用來進行反射型 DDOS 攻擊。
漏洞檢查
可通過Nmap網(wǎng)絡(luò)安全掃描工具掃描端口開放情況,驗證運行Memcached服務(wù)的IP資產(chǎn)是否開放UDP 11211端口,示例(Windows/Linux):
nmap 127.0.0.1 -p 11211 -sU -sS –script memcached-info
可通過Netcat網(wǎng)絡(luò)實用工具連接端口測試,驗證UDP 11211端口響應(yīng)服務(wù)運行狀態(tài),示例(Linux下):
$ echo -en “\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n” | nc -q1 -u 127.0.0.1 11211
STAT pid 21357
STAT uptime 41557034
STAT time 1519734962
…
如果看到非空有內(nèi)容輸出的響應(yīng)(如上所示),表示Memcached服務(wù)器容易受到攻擊,特別是暴露在互聯(lián)網(wǎng)上的主機。
漏洞防范
對于Memcache使用者,要保證自己不被利用成為“放大器”,安全建議:
1、升級最新Memcache版本,提升自身安全性;
2、指定必要的安全策略,做可信可控的訪問;
3、修改默認(rèn)的端口或添加端口掃描防護策略,防止被發(fā)現(xiàn)利用。
4、對于Memcached DrDoS防范者,部署專業(yè)的DDoS清洗設(shè)備,添加針對性的防護策略;
5、提高風(fēng)險監(jiān)控等級,利用限速和動態(tài)封禁等組合策略進行應(yīng)急處置。