1、概述
傳統(tǒng)的DDoS 反射攻擊通常會(huì)利用有缺陷的公網(wǎng)服務(wù)器實(shí)施反射放大攻擊,反射源數(shù)量的多少?zèng)Q定了反射流量的大小。然而隨著公共服務(wù)的維護(hù)方式越來越標(biāo)準(zhǔn),安全性也越來越高,可被利用的公共服務(wù)器也越來越少。2018年初爆發(fā)Memcache反射攻擊后,由小蟻云盾平臺(tái)監(jiān)測(cè)到的數(shù)據(jù)表明,上半年發(fā)生的Memcache反射攻擊事件中,反射源數(shù)量超過1000的攻擊次數(shù)高達(dá)139次;而到了下半年,反射源數(shù)量多的攻擊次數(shù)明顯減少,截止到11月底,類似的攻擊次數(shù)只有24次。很明顯可被利用的Memcache服務(wù)器越來越少了。
但是,從事黑產(chǎn)的DDoS攻擊者從來沒有停止對(duì)流量放大攻擊新方式的尋找和嘗試。
小蟻云盾團(tuán)隊(duì)在2018年11月底捕獲到一次利用游戲客戶端運(yùn)行時(shí)開放的UDP服務(wù)做反射實(shí)施的攻擊。智云盾系統(tǒng)在2秒內(nèi)識(shí)別到攻擊,實(shí)時(shí)對(duì)攻擊流量做了隔離和清洗,保障用戶免遭DDoS的傷害。
2、攻擊研究
智云盾系統(tǒng)檢測(cè)到攻擊時(shí),自動(dòng)對(duì)攻擊流量進(jìn)行采樣,安全分析專家對(duì)采樣包及時(shí)進(jìn)行了深層次的分析。
本次事件智云盾平臺(tái)采集到6個(gè)采樣包文件,涉及到反射源IP 872個(gè)。
2.1 攻擊包分析
通過對(duì)智云盾的攻擊包分析發(fā)現(xiàn),反射的來源端口是UDP 2303,我們嘗試掃描反射源IP的2303端口,但是無一響應(yīng),由此推測(cè)該端口不是互聯(lián)網(wǎng)的公共服務(wù),下圖是反射端口圖:
圖1 采樣包內(nèi)攻擊來源端口
數(shù)據(jù)包中的payload多次重復(fù)Arma3的字符串,通過百度搜索,這是一款中文名叫“武裝突襲”的游戲。
圖2 采樣包內(nèi)攻擊載荷
為了進(jìn)一步分析,我們下載了Aram3并且對(duì)游戲的通信進(jìn)行抓包,進(jìn)入游戲之后我們?cè)谟螒騼?nèi)部搜尋互聯(lián)網(wǎng)上可加入的游戲房間,與此同時(shí)觀察抓包信息我們發(fā)現(xiàn)了有類似圖1和圖2攻擊數(shù)據(jù)包的請(qǐng)求,如下圖:
圖3 游戲內(nèi)采樣包來源端口
圖3顯示為2303端口返回的UDP數(shù)據(jù)包,從數(shù)據(jù)包攜帶的payload相比較,與圖2特征一致,下圖為數(shù)據(jù)包截圖:
圖4 游戲內(nèi)攻擊載荷
從圖2與圖4的對(duì)比中可以確認(rèn),這是一次利用了Arma3游戲客戶端作為反射源的DDoS攻擊。
2.2 放大倍數(shù)
按照我們前期對(duì)反射放大攻擊倍數(shù)的研究,采用科學(xué)的統(tǒng)計(jì)放大倍數(shù)時(shí),請(qǐng)求響應(yīng)的包頭甚至是網(wǎng)絡(luò)幀間隙都要考慮在內(nèi)。詳細(xì)的方案可以參閱《Memcached DRDoS攻擊趨勢(shì)》一文,詳見鏈接:https://bsi.baidu.com/article/detail/110
由于2303端口服務(wù)為游戲自定義服務(wù),通過對(duì)此游戲的攻擊復(fù)現(xiàn)發(fā)現(xiàn),請(qǐng)求包數(shù)據(jù)長25字節(jié),響應(yīng)包數(shù)據(jù)長184字節(jié),下圖是復(fù)現(xiàn)截圖:
圖5
所以計(jì)算得到放大倍數(shù)為(184+66)/(25+66) = 2.7倍。
2.3 反射源采集
由于該端口是在游戲客戶端運(yùn)行時(shí)才打開,且只響應(yīng)特定的請(qǐng)求字符串,因此傳統(tǒng)的DDoS反射源的掃描手段在此處并不適用。攻擊者可以登錄游戲查看玩家房間列表并抓包時(shí)可獲取大量的反射源IP。
2.4 攻擊原理
反射類型的DDoS攻擊并不會(huì)直接攻擊受害者IP,而是以受害者的IP構(gòu)造UDP數(shù)據(jù)包,偽造UDP數(shù)據(jù)包,對(duì)反射源發(fā)送偽造的數(shù)據(jù)包,反射源向受害者IP響應(yīng)的流量遠(yuǎn)超過攻擊者偽造UDP流量的數(shù)據(jù),DDoS黑客組織依靠此方式對(duì)受害者實(shí)施DDoS攻擊,反射類型DDoS攻擊如下圖6所示:
圖6 反射攻擊示意圖
圖6中黑客給放大器發(fā)送偽造的UDP數(shù)據(jù)包,經(jīng)過智云盾團(tuán)隊(duì)對(duì)DDoS事件攻擊的復(fù)現(xiàn)發(fā)現(xiàn)黑客偽造UDP數(shù)據(jù)包的載荷長度為25個(gè)字節(jié)的固定字符串,對(duì)應(yīng)的游戲服務(wù)器會(huì)返回與攻擊事件采樣包相似的攻擊載荷。
UDP發(fā)送的固定25字節(jié)字符串如下:
xffxffxffxffx54x53x6fx75x72x63x65x20x45x6ex67x69x6ex65x20x51x75x65x72x79x00
發(fā)送該固定字符串UDP請(qǐng)求之后,服務(wù)端返回?cái)?shù)據(jù)包長度180-260不等。
通過檢索UDP發(fā)送的固定25個(gè)字節(jié)的載荷我們發(fā)現(xiàn)該查詢請(qǐng)求是steam平臺(tái)提供的A2S_INFO服務(wù)查詢規(guī)范。
3、A2S_INFO協(xié)議
A2S_INFO是steam給游戲廠商提供了一系列服務(wù)查詢規(guī)范之一,主要是對(duì)聯(lián)機(jī)游戲中玩家公網(wǎng)服務(wù)器的信息定義。
steam平臺(tái)目前是全球最大的綜合性數(shù)字發(fā)行平臺(tái)之一,玩家可以在里面購買,分享,討論,下載游戲和軟件。
參考steam百度百科鏈接:
https://baike.baidu.com/item/steam/10092959?fr=aladdin
3.1 A2S_INFO規(guī)范缺陷
steam平臺(tái)為了使各個(gè)玩家之間聯(lián)機(jī)對(duì)戰(zhàn),采用了p2p通信技術(shù)實(shí)現(xiàn)客戶端之間的通信,玩家在新建了房間之后,游戲?qū)⑼婕业闹鳈C(jī)地址轉(zhuǎn)換成公網(wǎng)地址,端口號(hào)不變。Steam提供A2S_INFO規(guī)范,允許其他地區(qū)的玩家采用UDP/IP協(xié)議按照A2S_INFO規(guī)范查詢房間信息。具體的A2S_INFO標(biāo)準(zhǔn)如下圖7所示:
圖7
Steam wiki鏈接:https://developer.valvesoftware.com/wiki/Server_queries
圖7中,玩家通過符合規(guī)范的請(qǐng)求,從服務(wù)器獲取到玩家服務(wù)器名稱,游戲文件夾名稱等信息??梢夾2S_INFO標(biāo)準(zhǔn)包發(fā)送請(qǐng)求數(shù)據(jù)是25個(gè)字節(jié),但是返回的數(shù)據(jù)字段較多,根據(jù)不同的服務(wù)器返回內(nèi)容不同,總之是遠(yuǎn)超請(qǐng)求數(shù)據(jù)的長度。
黑客正是利用了A2S_INFO的這一特點(diǎn)利用做DRDoS的攻擊載荷。
反射源隨著玩家參與游戲數(shù)量的變化而變化,反射放大比例一般維持在2.7左右,也不排除steam平臺(tái)上有其他游戲更大的反射比例存在。
此種反射攻擊成因可以分為兩部分。
1. 玩家之間采用p2p通信方式,聯(lián)機(jī)類游戲服務(wù)很看重網(wǎng)絡(luò)傳輸效率,所以會(huì)使用大量udp的服務(wù),將玩家客戶端地址映射在公網(wǎng),導(dǎo)致被攻擊者利用。
2. A2S_INFO查詢協(xié)議本身規(guī)范存在漏洞,發(fā)送數(shù)據(jù)字段過少,返回字段較多,導(dǎo)致可以被利用為反射協(xié)議。
3.2 A2S_INFO應(yīng)用范圍
A2S_INFO作為聯(lián)機(jī)游戲的服務(wù)查詢規(guī)范,應(yīng)用范圍十分之廣,目前平臺(tái)上比較流行的Dota2、反恐精英系列、求生之路系列、Aram系列等聯(lián)機(jī)游戲的玩家都可能會(huì)被黑客用作反射源進(jìn)行攻擊。
4、其他游戲平臺(tái)延伸對(duì)比
由于本次攻擊利用了游戲平臺(tái)對(duì)聯(lián)機(jī)游戲?yàn)榱吮3志W(wǎng)絡(luò)傳輸效率選擇UDP實(shí)現(xiàn)內(nèi)網(wǎng)通信,采用P2P通信,我們對(duì)多家類似平臺(tái)做了調(diào)研,發(fā)現(xiàn)在玩家聯(lián)機(jī)時(shí)會(huì)出現(xiàn)部分UDP請(qǐng)求存在放大現(xiàn)象。
圖8是針對(duì)某游戲平臺(tái)抓包,截取到可被利用放大的UDP服務(wù)圖:
圖8 存在放大現(xiàn)象的UDP請(qǐng)求
與傳統(tǒng)的DDOS反射服務(wù)尋找反射源在公網(wǎng)掃描有缺陷的公共服務(wù),本次攻擊選用了steam平臺(tái)上UDP的服務(wù)端口,反射源根據(jù)游戲在線玩家的數(shù)量而變化。
DDoS攻擊團(tuán)隊(duì)在尋找反射方式上,已經(jīng)從傳統(tǒng)的公共服務(wù)往訂制化的服務(wù)上探索,而游戲平臺(tái)玩家聯(lián)機(jī)的特點(diǎn)將會(huì)成為被利用打DDoS的重災(zāi)區(qū)。
5、DDoS反射攻擊趨勢(shì)
此次攻擊是steam平臺(tái)的A2S_INFO規(guī)范存在被利用的漏洞,并且可以將steam平臺(tái)上所有聯(lián)機(jī)游戲的玩家客戶端作為反射源,攻擊倍數(shù)雖然不高但是反射來源數(shù)量眾多。與傳統(tǒng)的DDoS反射相比,此類型攻擊涉及反射源數(shù)量眾多,并且不依賴某一種公共服務(wù),不依賴某一特定端口,攻擊靈活性很高。
A2S_INFO DDoS反射攻擊以一種全新的攻擊思路來尋找反射源,以往的黑客組織追求反射協(xié)議的反射比例越大越好,本次攻擊的特點(diǎn)反射源分布極廣。A2S_INFO的服務(wù)查詢依靠了p2p通信技術(shù)的實(shí)現(xiàn),p2p的技術(shù)特點(diǎn)決定了一旦客戶端有可被利用的UDP服務(wù),每一臺(tái)使用該UDP服務(wù)的主機(jī)都將成為反射源。
小蟻云盾團(tuán)隊(duì)預(yù)測(cè),在接下來一段時(shí)間內(nèi),還將會(huì)出現(xiàn)更多利用A2S_INFO規(guī)范或者其他類似的UDP服務(wù)發(fā)起攻擊。
6、防范建議
1) 對(duì)互聯(lián)網(wǎng)服務(wù)
a) 禁用UDP,不能禁用時(shí),確保請(qǐng)求與響應(yīng)不要有倍數(shù)關(guān)系
b) 啟用授權(quán)驗(yàn)證
2) 對(duì)企業(yè)用戶
a) 如果沒有UDP相關(guān)業(yè)務(wù),可以在上層或者本機(jī)防火墻過濾掉UDP包。
b) 可以尋求運(yùn)營商提供UDP黑洞的IP網(wǎng)段做對(duì)外網(wǎng)站服務(wù)
c) 可以選擇接入DDoS云防安全服務(wù)
數(shù)字游戲平臺(tái)服務(wù)不僅簡(jiǎn)化了游戲本身的銷售,還為開發(fā)商提供了額外的盈利手段。例如,游戲中的皮膚、設(shè)備和角色增強(qiáng)元素,都可以獲得大量的收益。用戶自己也可以互相推銷商品,最稀有的可以賣到幾千美元。
哪里有錢,哪里就有欺詐。騙子們?cè)噲D獲得登錄信息,以“剝離”受害者的角色,并以豐厚的價(jià)格出售他們辛苦得來的物品。
其中一個(gè)最受歡迎的平臺(tái):Steam,自六月以來,針對(duì)該平臺(tái)的攻擊變得更加頻繁,更為復(fù)雜。
攻擊分析
騙局是基于網(wǎng)絡(luò)釣魚實(shí)施的,攻擊者將用戶引誘到假冒的在線商店(在本例中,是與STEAM鏈接的商店)網(wǎng)站,這些網(wǎng)站出售游戲內(nèi)物品。假冒網(wǎng)站質(zhì)量很高,有時(shí)很難直接辨別網(wǎng)站真?zhèn)?。網(wǎng)站具有以下特征:
1、假冒網(wǎng)站會(huì)對(duì)真網(wǎng)站的每一個(gè)細(xì)節(jié)進(jìn)行仿造
2、有安全證書并支持https
3、發(fā)出使用cookies的警告
4、提供一些到原始網(wǎng)站的鏈接(單擊時(shí)這些鏈接不起作用)
用戶在網(wǎng)站上花費(fèi)的時(shí)間越長,就越有可能發(fā)現(xiàn)一些奇怪的東西。因此,騙子不想讓用戶停留太久,在釣魚網(wǎng)站點(diǎn)擊任何鏈接,用戶都會(huì)立即有窗口詢問steam登錄名和密碼。Steam帳戶可以用于登錄第三方交易平臺(tái),以獲得受害者擁有的物品數(shù)據(jù)。
假登錄/密碼窗口與真實(shí)窗口非常相似:地址欄包含Steam門戶的正確URL,頁面具有自適應(yīng)布局,如果用戶使用不同的界面語言在另一個(gè)瀏覽器中打開鏈接,則假頁面的內(nèi)容和標(biāo)題將根據(jù)新的“區(qū)域設(shè)置”進(jìn)行更改。
但是,右鍵單擊此窗口的標(biāo)題(或控件元素)會(huì)顯示網(wǎng)頁的菜單,選擇“查看代碼”會(huì)看到當(dāng)前為假冒窗口,使用的html和css實(shí)現(xiàn):
在樣本中,用戶名和密碼使用post方法通過另一個(gè)域上的api進(jìn)行傳輸。
通過使用原始服務(wù)對(duì)輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,輸入錯(cuò)誤的登錄名和密碼時(shí),會(huì)向用戶顯示一條錯(cuò)誤消息:
當(dāng)輸入有效的登錄和密碼時(shí),系統(tǒng)請(qǐng)求通過輸入在電子郵件中或在Steam Guard應(yīng)用程序中生成的授權(quán)代碼。輸入的代碼也會(huì)轉(zhuǎn)發(fā)給騙子,從而獲得對(duì)帳戶的完全控制:
其他方式
除了使用html和css創(chuàng)建登錄窗口外,攻擊者還采用了一種古老的技巧:在單獨(dú)的窗口中使用一個(gè)假的表單,但地址值為空。雖然窗口顯示方式不同,但工作原理同上,表單驗(yàn)證輸入的數(shù)據(jù),如果登錄名和密碼匹配,則提示受害者輸入雙因素授權(quán)碼。
如何防范
防范此類詐騙的主要方法與識(shí)別釣魚網(wǎng)站的方法沒有本質(zhì)區(qū)別。
1、仔細(xì)查看地址欄及其內(nèi)容的顯示,觀察它是否包含了正確的url,例如,網(wǎng)站地址可能與商店名稱不匹配,或者顯示“about:blank”字樣。
2、密切關(guān)注“外部”資源的登錄表單。在包含窗體的窗口標(biāo)題欄上單擊鼠標(biāo)右鍵,或者嘗試將其拖到主瀏覽器窗口之外,以確保它不是假的。
4、如果懷疑登錄窗口不是真的,請(qǐng)?jiān)谛碌臑g覽器窗口中打開STEAM主頁,然后從那里登到帳戶。然后返回可疑登錄網(wǎng)站并刷新頁面。如果是真的,會(huì)顯示賬戶已經(jīng)登錄。
5、如果一切看起來正常,但仍有可疑之處,請(qǐng)使用WHOIS檢查域名注冊(cè)信息,真正的公司不會(huì)在短時(shí)間內(nèi)注冊(cè)域名,也不會(huì)隱藏他們的聯(lián)系方式。