◆馬云鶯
(福州大學(xué)至誠學(xué)院 福建 350001)
基于主機(jī)行為分析的CC攻擊識別技術(shù)
◆馬云鶯
(福州大學(xué)至誠學(xué)院 福建 350001)
CC挑戰(zhàn)黑洞(ChallengeCollapsar)是一種通過代理或僵尸主機(jī)發(fā)起的面向web服務(wù)器的DDoS分布式拒絕攻擊。攻擊者使用相對少量的并發(fā)請求,實(shí)現(xiàn)耗盡服務(wù)器資源的目的。本文通過分析互聯(lián)網(wǎng)用戶對web服務(wù)器的瀏覽行為和CC攻擊者的攻擊行為在服務(wù)器訪問行為上的差異,建立URL Hash命中表并且計(jì)算URL的離散度,快速區(qū)分攻擊流量和正常用戶流量。實(shí)驗(yàn)結(jié)果表明該方法快速有效地辨別攻擊主機(jī)。
CC攻擊;DDoS攻擊;URL
DDoS分布式拒絕攻擊一直是互聯(lián)網(wǎng)上的重要攻擊方式。隨著網(wǎng)絡(luò)防御技術(shù)的發(fā)展,在網(wǎng)絡(luò)層,通過進(jìn)行的各種洪泛攻擊(如TCP SYN Flood、UDP Flood)都能夠被防火墻較輕易地進(jìn)行過濾。而基于應(yīng)用層的DDoS攻擊手段則更加隱蔽,其行為更像一個正常用戶,過濾難度大,因此也逐漸成為黑客攻擊的主要手段。CC攻擊是針對web服務(wù)器進(jìn)行的最常見的應(yīng)用DDoS攻擊方式。
CC攻擊是針對網(wǎng)站頁面進(jìn)行的攻擊。當(dāng)用戶訪問靜態(tài)頁面的時候,速度通常很快,因?yàn)殪o態(tài)網(wǎng)頁訪問不占用系統(tǒng)較多資源。但是如果用戶瀏覽一些規(guī)模較大的論壇,或者進(jìn)行關(guān)鍵字搜索時,就會發(fā)現(xiàn)打開頁面的速度明顯偏慢。當(dāng)高峰期時,訪問的用戶較多,這種延遲更為明顯。原因就在于,這類動態(tài)網(wǎng)頁通常需要查詢數(shù)據(jù)庫,當(dāng)數(shù)據(jù)庫的數(shù)據(jù)較多時,查詢則需要占用系統(tǒng)大量的資源。
CC攻擊就是利用了這個特點(diǎn),通過控制一定數(shù)量的代理和僵尸主機(jī),不停地訪問那些需要大量查詢操作的頁面(例如asp/php/jsp/cgi)。該攻擊使用最少量的代價,使服務(wù)器的資源被耗盡,無法響應(yīng)正常的用戶請求。相比其他DDoS攻擊,這種攻擊不需要較大流量,攻擊門檻低。
由于防火墻能夠檢測主機(jī)的并發(fā) TCP連接數(shù)量,超過一定數(shù)量和頻率就會被認(rèn)定為攻擊。因此CC攻擊者通過將攻擊流量分散到代理和僵尸主機(jī)上,使攻擊不至于被防火墻檢測到。而從防火墻的角度上觀察,CC攻擊者使用的是真實(shí)的IP地址,能夠完整地進(jìn)行 TCP連接,并且發(fā)出合法的網(wǎng)頁查詢,而且其并發(fā)連接數(shù)量并不十分突出。其行為與真實(shí)用戶的行為十分類似,因而識別難度較大。
目前一般防御CC攻擊的方法有限制代理訪問、優(yōu)化服務(wù)器設(shè)計(jì)[1]、分析并發(fā)連接[2]等等。但是這些監(jiān)控手段都過于粗糙,容易導(dǎo)致誤判。而且即使發(fā)現(xiàn)攻擊,也很難將攻擊流從正常用戶中精確地剝離出去。
當(dāng)用戶訪問某個網(wǎng)頁時,瀏覽器和web服務(wù)器首先通過三次握手建立TCP連接;瀏覽器使用POST或者GET方法向服務(wù)器請求獲取頁面,服務(wù)器根據(jù)該請求中帶有的URL請求執(zhí)行相應(yīng)的操作,并且將頁面呈現(xiàn)內(nèi)容返回給用戶瀏覽器。
CC攻擊過程與此類似。攻擊軟件和web服務(wù)器建立TCP連接,使用GET或者POST方法向服務(wù)器發(fā)起請求。服務(wù)器解析這個請求的URL,并且執(zhí)行操作(這里的操作通常是查詢數(shù)據(jù)庫等非常消耗資源的動作),并且將頁面返回給攻擊程序。攻擊軟件不會同時只發(fā)起一次查詢,通常一次會發(fā)起大量的并發(fā)連接,同時進(jìn)行并發(fā)查詢。
從以上的分析可知,如果我們僅僅從連接的角度去分析主機(jī)行為,很難區(qū)分攻擊行為和普通用戶訪問行為。因此,我們可以從用戶網(wǎng)站的瀏覽行為和攻擊行為進(jìn)行一個對比,從而找出其中的差異。
2.1 正常用戶的訪問行為
用戶訪問一個網(wǎng)站,必定有一個合理的行為模式。例如需要從網(wǎng)站上獲取知識,執(zhí)行業(yè)務(wù)。因此一般有一個"打開頁面--瀏覽(停留)--執(zhí)行新頁面請求"的過程。一個用戶打開一個網(wǎng)頁,通常會等待網(wǎng)頁傳送完畢,而不會在短時間內(nèi)反復(fù)大量請求同一個網(wǎng)頁。
如果將觀察時間稍微拉長,就會發(fā)現(xiàn)一個用戶訪問同一個網(wǎng)站,幾乎不太可能至終只訪問一個網(wǎng)頁,而是請求不同的URL,既包括靜態(tài)頁面也包括動態(tài)頁面。
另外一個很容易被忽視的重要特點(diǎn)是,由于當(dāng)前網(wǎng)站內(nèi)容的多樣化,打開一個網(wǎng)頁時,絕大部分情況下會產(chǎn)生不止一個URL連接。
下面以用戶打開新浪網(wǎng)新聞頁面為例:
一次打開操作news.sina.com.cn 觸發(fā)了客戶端啟動總共542個URL請求,分散在29臺不同的服務(wù)器上。部分URL信息如下:
news.sina.com.cn/
news.sina.com.cn/js/792/2012-08-09/41/headnews.js
news.sina.com.cn/css/87/20140926/comment.3.css
news.sina.com.cn/css/87/content2014/common.min.css
news.sina.com.cn/css/87/content2014/style_news.css
i.sso.sina.com.cn/css/outlogin/v1/outlogin_skin_finance.css
i.sso.sina.com.cn/js/ssologin.js
......
2.2 CC攻擊者的行為
而CC攻擊,為了達(dá)到最大的攻擊效果,攻擊者不會浪費(fèi)寶貴的資源,去訪問無關(guān)緊要的、并不耗費(fèi)服務(wù)器資源的頁面,而是將所有的連接集中在耗費(fèi)服務(wù)器資源的查詢上。
使用CC攻擊軟件,捕獲到的URL訪問請求則是這樣的:
針對服務(wù)器 58.63.236.248,請求 URL 只有一個:www.sina.com.cn/mid/search.shtml
2.3 行為對比
因此,根據(jù)大量采樣和分析,我們可以了解到一般用戶和CC攻擊者在訪問網(wǎng)站時分別具有如下特征:
表1 正常用戶和CC攻擊者的行為特征對比
從上文分析,我們可以通過分析用戶在一段時間內(nèi),是集中還是分散訪問網(wǎng)站的頁面,即可了解其行為是否合理。本文采用如下分析方法:
(1)提取用戶訪問服務(wù)器的URL,計(jì)算其Hash值。通過對Hash值取模的方式,將其映射到0~7的數(shù)字范圍內(nèi)。
(2)統(tǒng)計(jì)這些0~7范圍內(nèi)數(shù)字的命中率。
(3)根據(jù)以上命中率,通過標(biāo)準(zhǔn)差計(jì)算URL的離散度。
三是內(nèi)容監(jiān)管與評價領(lǐng)域技術(shù)創(chuàng)新。隨著內(nèi)容生產(chǎn)企業(yè)數(shù)量增長,內(nèi)容監(jiān)管和績效評價成為管理部門面臨的課題。重報大數(shù)據(jù)研究院聯(lián)合技術(shù)公司,構(gòu)建重慶媒體大數(shù)據(jù)平臺,對內(nèi)容生產(chǎn)、流向和應(yīng)用等進(jìn)行可視化呈現(xiàn),目前基本框架和數(shù)據(jù)交換模式已經(jīng)研制完成,可望在2018年投入應(yīng)用,實(shí)現(xiàn)全域數(shù)字內(nèi)容導(dǎo)向、成效可視化。
如用戶一次訪問服務(wù)器,瀏覽器發(fā)出了如下7個URL請求,得到了Hash值,并且映射到0~7的值域上(將Hash mod 8得到),如下表所示:
表2 URL到0~7的值域映射舉例
統(tǒng)計(jì)URL轉(zhuǎn)Hash值后映射0~7值域的命中統(tǒng)計(jì),如下:
圖1 正常用戶URL Hash命中統(tǒng)計(jì)
采用標(biāo)準(zhǔn)差公式計(jì)算以上序列的標(biāo)準(zhǔn)差:
得到上述數(shù)據(jù)的標(biāo)準(zhǔn)差:S=0.83
對比捕獲的CC攻擊者針對服務(wù)器(58.63.236.248)1分鐘內(nèi)數(shù)據(jù):
URL:www.sina.com.cn/mid/search.shtml
統(tǒng)計(jì)0~7值域的命中率,如下:
圖2 CC攻擊者URL Hash命中統(tǒng)計(jì)
計(jì)算其標(biāo)準(zhǔn)差:S=33.0,是上一組對比數(shù)據(jù)(正常用戶)大約40倍。
在本文中采用URL Hash值命中數(shù)標(biāo)準(zhǔn)差來表達(dá)該用戶訪問URL的離散度。
在此例中,攻擊者每分鐘發(fā)出100個URL請求,每秒不超過2個,顯然此攻擊者的攻擊速度并不快。但是從以上數(shù)據(jù)可以看出,攻擊者的URL離散度要遠(yuǎn)高于正常用戶訪問的值。
4.1 數(shù)據(jù)源
通過網(wǎng)站防火墻出口流量進(jìn)行鏡像,將流量旁路到服務(wù)器進(jìn)行分析采集得到數(shù)據(jù)。
4.2 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境為win7操作系統(tǒng)、2G內(nèi)存、測試程序。
4.3 實(shí)驗(yàn)方法
跟蹤所有往來報文建立主機(jī)表。跟蹤所有主機(jī)的完整會話,以1分鐘為單位,觀察所有主機(jī)對服務(wù)器的訪問。在每一個主機(jī)對象中記錄1分鐘內(nèi)所有訪問的URL以及其離散度。同時與CC攻擊者數(shù)據(jù)進(jìn)行對比。
4.4 實(shí)驗(yàn)結(jié)果
以下是針對1分鐘內(nèi),200組正常用戶訪問網(wǎng)站的URL離散度對比。從下圖可以看出,離散度不超過4,絕大部分集中在0~1的區(qū)間內(nèi)。而使用攻擊軟件,發(fā)出每秒100個連接,則離散度達(dá)到33,形成明顯差異。
圖3 200組正常用戶1分鐘范圍URL離散度
因此,通過此實(shí)驗(yàn)結(jié)果可以看出,通過計(jì)算1分鐘URL離散度,可以快速且明顯地區(qū)分出哪些主機(jī)對網(wǎng)站實(shí)施了CC攻擊。
本文分析了CC攻擊和一般用戶訪問網(wǎng)站的行為差異,通過對短時間用戶訪問網(wǎng)站 URL的離散度進(jìn)行計(jì)算,能夠識別 CC攻擊者。實(shí)驗(yàn)結(jié)果表明,該算法能夠非常明顯地將正常用戶和攻擊者區(qū)分開來,具有良好的識別效果。
[1]陳仲華, 張連營, 王孝明.CC攻擊檢測方法研究[J].電信科學(xué), 2009.
[2]Shuo L I, Zhang Q. Protection System of CC Attack based on Honeypot[J].Information Security & Communications Privacy, 2015.
[3]池水明, 周蘇杭.DDoS攻擊防御技術(shù)研究[J].信息網(wǎng)絡(luò)安全, 2012.
[4]Chuntao X, Xuehui D, Lifeng C, et al. An Algorithm of Detecting and Defending CC Attack in Real Time[C]// International Conference on Industrial Control and Electronics Engineering. IEEE, 2012.
[5]ZHANG Xuan. Research of DDoS attack detect and defend technology on Application-Lay, Beijing: Beijing University of Posts and Telecommunications, 2009.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2017年4期