WordPress反彈攻擊
近年來(lái),遍布公網(wǎng)的DNS服務(wù)器、NTP服務(wù)器、數(shù)量繁多的SSDP設(shè)備等都被有心的黑客開發(fā)成了反射器,通過(guò)這些反射器打出來(lái)的DDoS攻擊異軍突起,占據(jù)了近些年來(lái)DDoS攻擊很大的一部分比例。雖然這些反射器工作在7層,但打出來(lái)的攻擊往往還是以大流量擁塞鏈路為主,跟傳統(tǒng)的UDP大包在效果上沒有什么本質(zhì)區(qū)別,防御邏輯也相對(duì)簡(jiǎn)單,用ACL干掉特征的反彈源端口(比如SSDP的UDP 1900端口、NTP的UDP 123端口)即可,或是過(guò)濾掉對(duì)應(yīng)攻擊一定會(huì)包含的特征字段(如SSDP反射的“uuid”)。
說(shuō)了這么多背景,想必反彈攻擊的思路您已經(jīng)很清楚了,接下來(lái)介紹本文的重點(diǎn):WordPress反彈攻擊。相比于NTP等反射攻擊,WordPress把反彈做到了7層,也就說(shuō)我們常說(shuō)的CC攻擊。該攻擊手法早在2014年就被披露,但根據(jù)我們對(duì)云盾用戶DDoS攻擊的監(jiān)控情況,時(shí)至今日仍然大量出現(xiàn)在CC攻擊中,并且往往用很低的成本和不大的流量(相對(duì)于流量型反彈攻擊)就能耗盡一個(gè)普通站點(diǎn)的處理能力。鑒于這種攻擊明顯的特征和可識(shí)別性,特地給大家再分享一下。
WordPress是一種非常流行的博客平臺(tái),全球大概有20%的網(wǎng)站是而這種攻擊的反射器就是公網(wǎng)上千百萬(wàn)基于WordPress搭建的站點(diǎn)(條件1滿足),而條件2的滿足則來(lái)源于一個(gè)叫做“pingback”的機(jī)制(通過(guò)一個(gè)叫“XML-RPC”的模塊提供)。Pingback本來(lái)是用來(lái)通知網(wǎng)站系統(tǒng)文章被引用的一種手段,一個(gè)簡(jiǎn)單的POST請(qǐng)求就可以讓它把包含引用的鏈接和引用頁(yè)面地址的內(nèi)容發(fā)送給一個(gè)被引用的站點(diǎn)或博客。當(dāng)WordPress收到一個(gè)pingback請(qǐng)求時(shí),它會(huì)自動(dòng)回復(fù)一個(gè)響應(yīng)給請(qǐng)求來(lái)源的頁(yè)面去確認(rèn)這個(gè)鏈接是否真實(shí)存在,利用這個(gè)機(jī)制,攻擊者就可以指定受害者的地址,構(gòu)造包含真實(shí)鏈接的pingback請(qǐng)求,通過(guò)“反彈”來(lái)打到CC攻擊的目的。這種請(qǐng)求非常容易構(gòu)造,一個(gè)curl命令就足夠了,所以只要手上掌握了一定數(shù)量的WP站點(diǎn),就特別容易批量發(fā)動(dòng)攻擊。
上圖是云盾高防記錄到的針對(duì)某站點(diǎn)的一次WP反彈攻擊,可以這個(gè)pingback是來(lái)源于智利某IP。類似這樣的請(qǐng)求直到今天依然每天都有幾百萬(wàn)次,而且來(lái)自于南美(如巴西、墨西哥等國(guó))、北美和國(guó)內(nèi)的請(qǐng)求較多。
如下面云盾高防的日志記錄所示,在短短5min時(shí)間內(nèi)這種請(qǐng)求就有近12萬(wàn)次。這是云盾用戶每天被CC攻擊的一個(gè)縮影。
看到這里,WP反彈的攻擊特征已經(jīng)非常明顯了,就是User-agent字段中會(huì)包含“WordPress”、“pingback”這樣的字段,這是一定的,具體來(lái)源的IP可能是不固定的,這也就為我們防護(hù)這類攻擊提供了思路:干掉包含這些特征UA的請(qǐng)求即可(思路上跟用ACL干掉UDP 123來(lái)防NTP反射是一樣的)。
以Nginx為例,首先當(dāng)懷疑網(wǎng)站被CC攻擊時(shí),可以粗略tail一下log文件,看看有沒有滿屏的“pingback”出現(xiàn),也可以用
cat /var/log/nginx/access.log | grep "verifying pingback from" > pingback_attack.log
來(lái)具體統(tǒng)計(jì)一下。確定遇到這類攻擊時(shí),打開網(wǎng)站的Nginx配置文件,找到server定義的部分(/etc/nginx/nginx.conf,或/etc/nginx/sites-enabled/your-site等,具體路徑根據(jù)具體的Nginx和Linux版本來(lái)定),添加以下if聲明到server定義的某個(gè)地方(大小寫敏感):
if ($http_user_agent ~ (WordPress|pingback) {
return 403;
}
上述語(yǔ)句可以將UA中包含“WordPress”或“pingback”的請(qǐng)求直接返回403(禁止訪問)響應(yīng)。當(dāng)然配置完后要重新加載下Nginx的配置:
sudo …/nginx –s reload
配置完后,可以用curl或者wget命令,帶上特定的UA去測(cè)試一下,如果能收到403的響應(yīng),說(shuō)明配置成功了。
OK,現(xiàn)在你的服務(wù)器已經(jīng)能夠攔截這類攻擊了。當(dāng)然在本地服務(wù)器做策略對(duì)于缺乏運(yùn)維能力的用戶以及大規(guī)模的CC攻擊還是有一定的局限性,這時(shí)就推薦用高性能的云清洗服務(wù)來(lái)提前攔截這類攻擊。目前阿里云云盾高防IP已經(jīng)支持相關(guān)的定制化策略對(duì)付這類攻擊,Web應(yīng)用防火墻也提供了自定義規(guī)則可以讓用戶通過(guò)簡(jiǎn)單的配置來(lái)完成防護(hù):
再來(lái)談?wù)劇胺磸椆簟?/strong>
“反彈攻擊”是DDoS攻擊中一種特別靈性的攻擊方式,拋開攻擊本身的罪惡只談技術(shù)的話,這種攻擊的設(shè)計(jì)思路往往有著“四兩撥千斤”,又“深藏功與名”的效果。
“四兩撥千斤”說(shuō)的其實(shí)是“放大”效果。攻擊者往往用比較小的請(qǐng)求量就能發(fā)起比較大的攻擊流量,比如傳統(tǒng)攻擊是攻擊者需要真正打出10G的流量才能造成10G的攻擊效果(實(shí)際可能還不到10G),但反彈攻擊可能用1G的請(qǐng)求就能“反彈”出10G的實(shí)際攻擊流量(具體的放大倍數(shù)取決于具體的攻擊手段),這樣攻擊者的成本就相對(duì)小了很多?!吧畈毓εc名”意味著反彈攻擊往往在原理上就能隱藏掉攻擊者的源IP,因?yàn)樵谑芎φ呖磥?lái),源IP全部來(lái)源于“反射器”。
早期的反彈攻擊如SYN反彈,攻擊者把SYN包的源IP改成受害者的IP發(fā)給一堆服務(wù)器(這堆服務(wù)器就是反射器),后者收到后會(huì)全部按照三次握手的規(guī)則回復(fù)SYN/ACK給受害者,這樣在受害者看來(lái)會(huì)收到一堆莫名其妙來(lái)自不同IP的SYN/ACK,效果上形成了SYN/ACK的DDoS攻擊。這種手法現(xiàn)在已經(jīng)很少有人用,因?yàn)楣粽叩某杀静坏?,而且很多服?wù)器已經(jīng)能防御這類攻擊手段,但這種思路產(chǎn)生的影響極其深遠(yuǎn),花樣百出的“反射器”不斷被黑客們挖掘出來(lái),并且還逐漸加入了“放大”的功力。
作為“反射器”至少要具備以下兩個(gè)特點(diǎn):
1.????? 廣泛分布且數(shù)量巨大
2.????? 有某種可以“反彈”的功能、漏洞、模塊或交互機(jī)制
免責(zé)聲明:網(wǎng)所有文字、圖片、視頻、音頻等資料均來(lái)自互聯(lián)網(wǎng),不代表本站贊同其觀點(diǎn),內(nèi)容僅提供用戶參考,若因此產(chǎn)生任何糾紛,本站概不負(fù)責(zé),如有侵權(quán)聯(lián)系本站刪除!郵箱:207985384@qq.com http://m.fpfocvy.com.cn/jianzhan/1467.html
