防止Memcached的DDOS攻擊另外一個思路


3月3日,國家互聯網應急中心通報了一條消息 關於利用memcached服務器實施反射DDoS攻擊的情況通報 通告了 memcached 服務器漏洞被黑客利用的情況,筆者的一台服務器也存在漏洞,因此將漏洞封堵的方法與大家分享一下。

攻擊的原理

memcached反射攻擊利用了在互聯網上暴露的大批量memcached服務器(一種分布式緩存系統)存在的認證和設計缺陷,攻擊者通過向memcached服務器IP地址的默認端口11211發送偽造受害者IP地址的特定指令UDP數據包(stats、set/get指令),使memcached服務器向受害者IP地址反射返回比原始數據包大數倍的數據(理論最高可達5萬倍,通過持續跟蹤觀察攻擊流量平均放大倍數在100倍左右),從而進行反射攻擊。

本來Memcached提供的緩存服務應該只是對內部訪問的,因此就設置了所有地址可訪問,安全限制上就比較弱,黑客就利用這個特點,專門在互聯網上找開放端口的 Memcached...

The web page caching utility was never designed to be internet-accessible and requires no authentication to access. But some administrators - as well as some Linux instances by default - have left TCP or UDP port 11211 open to internet-borne requests.

處置辦法

互聯網應急中心給出了3條建議:

1、在memcached服務器或者其上聯的網絡設備上配置防火牆策略,僅允許授權的業務IP地址訪問memcached服務器,攔截非法的非法訪問。
2、更改memcached服務的監聽端口為11211之外的其他大端口,避免針對默認端口的惡意利用。
3、升級到最新的memcached軟件版本,配置啟用SASL認證等權限控制策略(在編譯安裝memcached程序時添加-enable-sasl選項,並且在啟動memcached服務程序時添加-S參數,啟用SASL認證機制以提升memcached的安全性)。

我分析了一下,1 需要單位從整體的網絡策略上進行調整,但是系統管理員負責的這部分職責還是要繼續落實;2 需要修改端口,勢必設計應用端的修改,我覺得算不上是上策;3 需要升級到最新版本,升級后應用是否會有問題還需要測試驗證。

經過仔細分析后,發現 memcached 支持一個 -l 參數,允許指定監聽的地址,默認是 0.0.0.0 也就是允許所有的地址鏈接。我們可以通過修改-l參數,綁定本地地址,這樣就可以避免被外部攻擊了。但是這里有個問題,一般緩存服務器是供前端或其它服務器公共調用的,一般不是本機使用,而且外部使用的設備往往多於1台。在早期的 Memcached 版本(我的環境是1.4.4)中-l參數不支持綁定多個地址。在最新的1.5.6版本中,已經能夠支持綁定多個地址,具體形式如下:

$./memcached -l 127.0.0.1:11211,192.168.0.20:11211 -vv -u memcached

這樣,就可以避免修改應用,又達到了防治漏洞的目的。

本文為作者原創,如果您覺得本文對您有幫助,請隨意打賞,您的支持將鼓勵我繼續創作。

參考資料:
1、國家互聯網應急中心
2、關於利用memcached服務器實施反射DDoS攻擊的情況通報
3、CNCERT關於Memcached服務器反射攻擊的情況通報 2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM