一周海外安全事件回顧(2014.05.19-2014.05.25)
本期回顧,我們只聊一個事情——UDP反射攻擊。這個事情在上周被Akamai/Prolexic炒了一把,說黑客盯上SNMP協議了,用來發起UDP反射攻擊。借此扯點閑篇,還是蠻有意思的。
SNMP及其UDP反射放大的兄弟們
UDP Flood應該是一種比較討厭的DDoS攻擊,現在來說,比較可行的防護手段不是太多,恐怕限流是最常見的防護方式了。UDP Flood比較難以防護的主要原因是UDP自身的通信方式決定的,不維持狀態使得類似cooikie、驗證碼等反向探測手段難以實施。
去年曾經發生過300G DDoS的攻擊事件。當時被打的目標是Spamhaus,而提供防護的CloudFlare也一起“屁滾尿流”,最終在全球多個Tier-1一級運營商的一起努力下才最終化解。打出300G DDoS的就是依靠DNS反射放大攻擊,基于UDP。經過DNS解析服務器放大后,反射出來的數據包被放大了很多倍。據稱,當時的300G流量是由近31000臺DNS服務器打出來的。下圖是發起300G DDoS攻擊的最大嫌疑犯CyberBunker公司的老板,他后來被捕入獄。
其實Just so so了,和最近一起據稱近400G的DDoS攻擊相比,差遠了。400G的DDoS是通過NTP服務器進行的反射放大。沒錯,也是基于UDP的Flood,也是經過反射放大,最終達到近400G的天量。和31000臺DNS服務器相比,推到400G的攻擊流量只用到了約4500臺NTP服務器。
4500臺NTP服務器 =400G UDP Flood是什么概念? 我們計算一下,一個NTP request經過MONLIST放大后,差不多反射出來的流量是request數據包的206倍。也就是說,1G的NTP request就可以反射200G的攻擊流量。顯然比DNS效率高多了。
下圖是參與400G攻擊的NTP服務器所在運營商的列表:
注:上圖筆者給一些運營商打了碼,為什么打碼,自己去猜。
在上周,Akamai/Prolexic又開始炒SNMP Flood。哦,yes,SNMP為什么不可能呢?都是UDP Flood的兄弟嘛。讓人稍感欣慰的是,SNMP Flood不象DNS和NTP反射威脅那么嚴重,還好還好。
下圖是國外某廠商捕獲的SNMP實際攻擊數據。
上圖是某系統遭到真實SNMP Flood攻擊的實際數據。為了安全,實際的IP地址以192.0.2.1來替代。
我們可以看出,117.27.239.158是倒霉蛋,也就是被反的對象。如果getBulkRequest的數據包以87字節來計算,設備反射的SNMP response約為60kB,放大了多少大家自己可以計算一下。
眾所周知,getBulkRequest是SNMP v2版本新增的。因此,普遍認為SNMP 反射放大攻擊是基于SNMP v2的。SNMP v2存在某些安全隱患,這也是推出SNMP v3的一個重要原因。
我們翻回頭再來說上面那個“某系統”是什么系統。這個系統是IOT系統,也就是物聯網系統。具體來說,是一個視頻會議系統。該會議系統是開放的(widely open)。資料沒有查到,個人猜測,可能是這個系統沒有對SNMP訪問的IP進行限制,才導致被利用發起發射的結果。
這是一個非常有趣的事情。一個物聯網系統被別人利用發起DDoS攻擊,更為有趣的是,這個被利用的物聯網系統根本就沒有必要開放SNMP服務。
俗話說,no zuo no die,放在這里再合適不過。當然,最終倒霉的是117.27.239.158。話說回來,IOT系統被利用打DDoS,肯定不是這個系統設計的初衷。資源浪費,弄不好還會被溯源投訴。
最后,送上一點福利:反射攻擊的歷史。下面的內容從網上采集,供大家參考,可能拿來給客戶講故事。但是是否準確,不能保證:
- SYN/ACK floods始于90年代中期。
- Smurf attack出現于90年底。之后隨著路由器將“no ip unreachables”作為缺省配置而消失。
- DNS 反射/放大攻擊始于2000或2001年,2004年底,2005年出開始流行。
- SNMP 反射/放大攻擊在2006 - 2007出現。
- NTP反射/放大攻擊在2008 - 2009出現。
- CHARGEN反射/放大攻擊在2009 - 2010出現。同一時期,TFTP反射/放大攻擊也浮出水面。
總是,都不是新鮮玩意兒。但是,防不住還是防不住。