2018年進(jìn)入3月份以來(lái),知名代碼托管網(wǎng)站 GitHub 就遭遇了有史以來(lái)最嚴(yán)重的 DDoS 網(wǎng)絡(luò)攻擊,峰值流量達(dá)到了前所未有的 1.35Tbps。消息一出,全世界的程序員立馬炸了鍋,知道我們這里有多少牛人么,連我們都敢黑?!
作為開(kāi)源代碼庫(kù)以及版本控制系統(tǒng),Github 擁有上百萬(wàn)的開(kāi)發(fā)者用戶,被坊間稱為程序員的“另類”社交網(wǎng)絡(luò)、 全球最大的黑客聚集地。
但即使社區(qū)牛人再多,它也未逃 DDoS 攻擊魔掌,據(jù)外媒 bleepingcomputer 透露,攻擊者是利用前不久公開(kāi)的 Memcached 漏洞執(zhí)行攻擊,能成倍的放大攻擊效果,被稱為 DRDoS 反射攻擊。
那么,與傳統(tǒng)的 DDoS 相比,何為 DRDoS 反射攻擊?Github 目前情況如何?如再有黑客利用 Memcached 漏洞進(jìn)行攻擊,應(yīng)該怎么防?
從小米加步槍到飛機(jī)加大炮
大家都知道,DDoS 攻擊的特點(diǎn)就是利用如潮水般的流量同時(shí)涌入網(wǎng)站,不過(guò)本次攻擊不同之處在于采用了更厲害的放大技術(shù),目的是能對(duì)主機(jī)服務(wù)器產(chǎn)生更嚴(yán)重的影響。
其實(shí),Memcache 本身是一套分布式的高速緩存系統(tǒng),目前被許多網(wǎng)站使用以提升網(wǎng)站的訪問(wèn)速度,尤其對(duì)于一些大型的、需要頻繁訪問(wèn)數(shù)據(jù)庫(kù)的網(wǎng)站效果顯著。
其實(shí)早有安全團(tuán)隊(duì)在去年年中就針對(duì) Memcache 放大的攻擊技術(shù)發(fā)布了預(yù)警。
之所以被稱作放大的 DDoS 攻擊,是因?yàn)楣粽呃?Memcached 協(xié)議,發(fā)送大量帶有被害者 IP 地址的 UDP 數(shù)據(jù)包給主機(jī),然后放大,主機(jī)對(duì)偽造的 IP 地址源做回應(yīng),形成分布式拒絕服務(wù)攻擊,從而形成 DRDoS 反射。
對(duì)這次事件和相關(guān)技術(shù)進(jìn)行了持續(xù)監(jiān)控的 360 安全團(tuán)隊(duì) 0Kee Team 李豐沛介紹,之所以 Memcached 被黑客盯上,有兩個(gè)原因。
一是因?yàn)楫?dāng)被用作反射點(diǎn)時(shí),它的放大倍數(shù)超高,可超過(guò) 5 萬(wàn)倍。對(duì)比其他常見(jiàn) DDoS 的反射點(diǎn),放大比率通常只有 10 到 100 倍之前。
比如,一個(gè) 203 字節(jié)的傳入 Memcached 請(qǐng)求會(huì)導(dǎo)致大約 100 兆字節(jié)的響應(yīng)。
如果說(shuō)之前傳統(tǒng)的 DDoS 攻擊是小米加步槍,這次針對(duì) Memcache 的 DRDoS 攻擊則是飛機(jī)加大炮。
二是,Memcached 服務(wù)器往往是企業(yè)用來(lái)做數(shù)據(jù)服務(wù)的,所以服務(wù)器的資源好,有比較大的帶寬。如果單臺(tái)服務(wù)器能打出 1Gbps 攻擊帶寬的話,只要 1000 臺(tái)服務(wù)器就能打出 1Tbps 的攻擊帶寬了。而 11 月份統(tǒng)計(jì)的數(shù)據(jù)線網(wǎng)中受影響的設(shè)備可能有 6 萬(wàn)臺(tái)。
其實(shí),為了安全起見(jiàn),Memcache 應(yīng)該是不能暴露在互聯(lián)網(wǎng)中的。此類服務(wù)器沒(méi)有認(rèn)證協(xié)議,連接到互聯(lián)網(wǎng)中意味著任何人都可以查詢它們。
在此前的研究報(bào)告中,360 的 0Kee 團(tuán)隊(duì)預(yù)估 Memcached 服務(wù)器可能會(huì)被濫用以發(fā)起約 2Tbps 的 DDoS 攻擊,也就是說(shuō),這次針對(duì) GitHub 的攻擊也許只用了六七成的功力。
目前 GitHub 情況如何?其他網(wǎng)站如何預(yù)防?
據(jù)雷鋒網(wǎng)了解,GitHub 在得到 Akamai 的幫助后,在不到 10 分鐘的時(shí)間內(nèi)化解了這次危機(jī)。GitHub 也證實(shí),網(wǎng)站上用戶數(shù)據(jù)的機(jī)密性和完整性沒(méi)有受到影響。
恩,程序員哥哥們的頭發(fā)沒(méi)有白掉,代碼還在。
據(jù)了解,目前在外開(kāi)放的 Memcache 存儲(chǔ)系統(tǒng)數(shù)量級(jí)在十萬(wàn)左右,都可能會(huì)受到此類攻擊影響。而且預(yù)計(jì)會(huì)出現(xiàn)更多利用 Memcached 進(jìn)行 DRDoS 的事件,如果本次攻擊效果被其他 DDoS 團(tuán)隊(duì)所效仿,將會(huì)帶來(lái)后果更嚴(yán)重的攻擊。
李豐沛告訴雷鋒網(wǎng),暴露在互聯(lián)網(wǎng)中歸根結(jié)底是用戶和他的供應(yīng)商的選擇,之后建議大家就不要輕易暴露,即使暴露,也應(yīng)該加上用戶口令認(rèn)證或者網(wǎng)絡(luò)訪問(wèn)限制等。
以下是他提出的相關(guān)建議。
對(duì)于 Memcache 使用者,
1. Memcache 的用戶建議將服務(wù)放置于可信域內(nèi),有外網(wǎng)時(shí)不要監(jiān)聽(tīng) 0.0.0.0,有特殊需求可以設(shè)置 acl 或者添加安全組。
2. 為預(yù)防機(jī)器?掃描和 ssrf 等攻擊,修改 memcache 默認(rèn)監(jiān)聽(tīng)端口。
3. 升級(jí)到最新版本的 memcache,并且使用 SASL 設(shè)置密碼來(lái)進(jìn)行權(quán)限控制。
對(duì)于網(wǎng)絡(luò)層防御,
1. 多個(gè) ISP 已經(jīng)對(duì) UDP11211 進(jìn)行限速。
2. 打擊攻擊源:互聯(lián)網(wǎng)服務(wù)提供商應(yīng)當(dāng)禁止在網(wǎng)絡(luò)上執(zhí)行 IP 欺騙。IP 欺騙 DRDoS 的根本原因。具體措施可以參考 BCP38。
3. ISP 應(yīng)允許用戶使用 BGP flowspec 限制入站 UDP11211 的流量,以減輕大型 DRDoS 攻擊時(shí)的擁堵。
延伸閱讀:2015 年 GitHub 也曾遭遇 DDoS 攻擊
要說(shuō),這也不是 GitHub 第一次被黑客盯上了。
早在 2015 年 3 月 26 日,它就遭遇了當(dāng)時(shí)也被稱為“史上最大規(guī)模的 DDoS 攻擊”,而且一直持續(xù)到了 4 月 7 號(hào),算下來(lái)有將近兩周的時(shí)間。
GitHub 指出,攻擊者的目的是逼迫 Github 移除反審查項(xiàng)目 Greatfire。
GitHub 官方博客發(fā)文指出,攻擊者的目的是逼迫 Github 刪除某些特定內(nèi)容的頁(yè)面。根據(jù)第三方的研究稱,此次攻擊采用了 HTTP 劫持,加密連接不受影響。攻擊者的設(shè)備設(shè)在國(guó)際互聯(lián)網(wǎng)和國(guó)內(nèi)互聯(lián)網(wǎng)的邊界上,用惡意的代碼替代百度的 js 文件,載入惡意代碼后用戶的瀏覽器將會(huì)以每 2 秒一次的頻率,訪問(wèn)域名 https://github.com/greatfire/和 https://github.com/cn-nytimes/。
據(jù)悉,攻擊者先后使用了四種 DDoS 技術(shù)攻擊 GitHub:
第一波是創(chuàng)造性的劫持百度 JS 文件利用中國(guó)海外用戶的瀏覽器每 2 秒向托管在 GitHub 上的兩個(gè)反審查項(xiàng)目發(fā)出請(qǐng)求,這一手段被 GitHub 用彈出 JS 警告 alert ()防住;
第二輪是跨域<img> 攻擊,被 GitHub 檢查 Referer 擋住;
第三波是 DDoS 攻擊 GitHub Pages;
第四波是正在進(jìn)行中的 TCP SYN 洪水攻擊,利用 TCP 協(xié)議缺陷發(fā)送大量偽造的 TCP 連接請(qǐng)求,讓 GitHub 耗盡資源
最后,Github 的反制措施是用 alert (“WARNING: malicious javascript detected on this domain”)替換了原網(wǎng)頁(yè)的內(nèi)容。