本文是綠盟科技安全+技術(shù)刊物中的文章,文章對拒絕服務(wù)攻擊工具—"High Orbit Ion Cannon" 的技術(shù)性分析。HOIC 是一款用RealBasic 開發(fā)可移植的多平臺(tái)拒絕服務(wù)攻擊工具,該工具雖然對使用者的水平有較高要求,需要了解HTTP 協(xié)議本身,但由于在DDoS 攻擊來源中具有一定代表性,有必要對其分析并加以防范。本文嘗試通過技術(shù)性分析,探討相應(yīng)的防范措施。
目前針對企業(yè)的互聯(lián)網(wǎng)攻擊日趨頻繁,且攻擊形式不斷更新,但最常見的形式還是DDoS。綠盟科技威脅響應(yīng)中心,通過對安全事件的分析了解到,很多攻擊者都采用了一種稱為“High Orbit Ion Cannon”的工具,這種工具可以引發(fā)拒絕服務(wù)攻擊。
作為應(yīng)對措施之一,行業(yè)中常見的形式是建立威脅響應(yīng)機(jī)制,以提供及時(shí)且行之有效的攻擊防護(hù)分析及建議。本文著重分析了這個(gè)工具,并探討了防范措施,從而避免或降低危害及損失。
概述
HOIC(The high orbit ion cannon)是一款基于HTTP 協(xié)議開源的DDOS 攻擊工具,可用于內(nèi)部網(wǎng)絡(luò)或者外部服務(wù)器的安全性和穩(wěn)定性的測試等等。HOIC 具有以下特點(diǎn):
高速多線程的HTTP 洪水攻擊。
一次可同時(shí)洪水攻擊高達(dá)256 個(gè)網(wǎng)站。
內(nèi)置腳本系統(tǒng),允許自行修改設(shè)置腳本,用來阻撓DDoS 攻擊的防御措施,并增加DOS 輸出。
簡單且易于使用的界面。
可移植到Linux/ Mac。
能夠選擇攻擊的線程數(shù)。
可設(shè)置三種攻擊強(qiáng)度:低,中,高。
用REALbasic 這種極其書面的語言寫成,簡單易修改。
關(guān)鍵功能界面
TARGETS 這里是參數(shù)的設(shè)定,包括強(qiáng)度和腳本的選擇。實(shí)際上URL 這里可以不輸入任何東西,直接在擴(kuò)展名為.hoic 的攻擊腳本中指定多個(gè)目標(biāo)URL,這樣更靈活。如果URL 處保持為空,在后續(xù)操作中會(huì)有一個(gè)警示信息出現(xiàn),直接確定,不必理會(huì)它。
列表為已經(jīng)添加的攻擊目標(biāo)URL 信息、強(qiáng)度等級(jí)、腳本信息和狀態(tài)。“THREADS”為線程數(shù)量,“可以在THREADS”處點(diǎn)擊左右鍵頭調(diào)整并發(fā)線程數(shù),建議有幾個(gè)CPU 或有幾個(gè)核,就設(shè)幾個(gè)并發(fā)線程數(shù),多了沒有意義。此處程序?qū)崿F(xiàn)上有BUG,沒有檢查線程數(shù)的下限,比如可以下調(diào)至-1,此時(shí)沒有任何攻擊報(bào)文發(fā)送出去,因?yàn)榱鞒谈静粫?huì)到達(dá)下面那個(gè)for 循環(huán)內(nèi)部:
表1
Dim i as integer
for i = 0 to Val( edtThreads.Text )-1
threads.Append( New attackThread )
threads( threads.Ubound ).Run
Next
目標(biāo)列表顯示攻擊目標(biāo)信息,“OUTPUT”顯示攻擊流量數(shù)據(jù),OUTPUT 處的字節(jié)數(shù)對應(yīng)全局變量TotalBytesSent,是動(dòng)態(tài)遞增的。
關(guān)鍵功能對應(yīng)源碼
點(diǎn)擊”FIRE THE LAZER”之后,程序會(huì)啟動(dòng)線程框指定個(gè)數(shù)的線程用來攻擊服務(wù)器,并且啟動(dòng)tmTurbo 控制器,用來不斷通過腳本來更新Headers。
表2 代碼段省略
attackThread // 循環(huán)遍歷列表中的所有目標(biāo)主機(jī),然后根據(jù)全局變量powerFactor( 對應(yīng)LOW、MEDIUM 和HIGH) 的不同以不同的兩次攻擊報(bào)文之間的休眠時(shí)間發(fā)送攻擊數(shù)據(jù)包,并且不斷在主界面同步顯示發(fā)送的流量。
表3 代碼段省略
HOIC 本身只是一個(gè)DoS 框架程序,真正的DoS 攻擊行為通過擴(kuò)展名為.hoic 的攻擊腳本指定,離開這些.hoic 文件,HOIC本身什么也干不了。.hoic 腳本文件必須與
HOIC 主程序位于同一目錄,否則會(huì)找不到。腳本也是用RealBasic 寫成,通過Generic函數(shù)可以看到程序會(huì)以RbScript 類來執(zhí)行腳本文件,腳本文件可以影響到程序內(nèi)的變
量值。例如程序調(diào)用下面腳本后,所發(fā)送的攻擊數(shù)據(jù)包就會(huì)根據(jù)我們自定義的腳本中需要構(gòu)建的HTTP 請求數(shù)據(jù)塊配置上附帶的信息,進(jìn)行攻擊。服務(wù)器會(huì)根據(jù)自定義的數(shù)
據(jù)塊信息把程序發(fā)送的數(shù)據(jù)包識(shí)別為正常的數(shù)據(jù)包。
下面這些都是HOIC 主程序預(yù)定義并使用的全局變量,可以在.hoic 腳本中直接使用: Headers 、PostBuffer、powerFactor、URL、UsePost
表4 代碼段省略
Hoic2.1(dev) 作者由于呼吁大家攻擊一個(gè)司法網(wǎng)站,發(fā)布此版本時(shí)提供了新腳本。
此腳本在多個(gè)數(shù)據(jù)塊中隨機(jī)調(diào)用Array 中的信息,可以用來降低攻擊被檢測的可能性,提高攻擊效果。
表5 代碼段省略
HOIC 2.1(dev) 版隨包自帶了四個(gè).hoic文件:
DutchFreedom.hoic
GenericBoost.hoic
user-agent-test.hoic
visa_stress.hoic
DutchFreedom.hoic 是用來攻擊http://www.om.nl/ 司法網(wǎng)站的,為LOIC 出氣。GenericBoost.hoic 相當(dāng)于一個(gè).hoic模板, 黑客們可以在此基礎(chǔ)上編寫自己的.hoic 文件。
user-agent-test.hoic 用來演示通過.hoic 指定"User-Agent"。
visa_stress.hoic,顧名思義,在攻擊http://visa.via.infonow.net/。
黑客可以建立一個(gè)網(wǎng)站向外發(fā)布各種.hoic文件,別人只要下載黑客編寫的.hoic文件并加載到HOIC 中,就可以進(jìn)行相應(yīng)的DoS 攻擊,甚至不用輸入目標(biāo)URL。如果用戶設(shè)置添加的攻擊URL 與腳本中指定的目標(biāo)URL 不一樣,此時(shí)發(fā)起攻擊后,會(huì)先去訪問用戶設(shè)置添加的攻擊URL,提交6 次同樣的HTTP 請求,然后再去DoS 腳本中設(shè)定的地址,會(huì)抑制前述對話框中用戶輸入的URL 從此不再攻擊用戶自己設(shè)置的URL。這個(gè)設(shè)計(jì)不知是HOIC 作者有意為之還是無心插柳,總之結(jié)果很險(xiǎn)惡,因?yàn)镈utchFreedom.hoic 正是自己指定了目標(biāo)URL,并且還是隨hoic.zip 自帶的。很多小白們使用HOIC 進(jìn)行DoS 攻擊,指定DutchFreedom.hoic,他們最終都參與攻擊http://www.om.nl/,而不是攻擊他們自己輸入的目標(biāo)URL。
HOIC 的作者水平比LOIC 的作者水平高,至少是個(gè)比較熟練的RealBasic 程序員,程序BUG 較少。HOIC 對使用者的水平有較高要求,需要了解HTTP 協(xié)議本身,如果不提供現(xiàn)成的.hoic 文件,很多使用者可能完全無法有效使用HOIC 進(jìn)行DoS 攻擊。而高水平的黑客們可以通過提供現(xiàn)成的.hoic 文件利用各種小白們一起DoS 指定目標(biāo)。
與同類流行工具的對比及特點(diǎn)
本工具與同類拒絕服務(wù)攻擊工具的區(qū)別和特點(diǎn)在于可允許用戶定義目標(biāo)主機(jī)的URL、攻擊強(qiáng)度和自定義攻擊腳本。當(dāng)用戶點(diǎn)擊TURBO 按鈕后, 程序會(huì)間隔時(shí)間不斷地調(diào)用用戶自定義腳本來生成自定義Headers。當(dāng)用戶點(diǎn)擊FIRE THELAZERS 之后,程序會(huì)啟動(dòng)N 個(gè)線程用來攻擊目標(biāo)主機(jī),在攻擊過程中會(huì)根據(jù)用戶選擇的攻擊強(qiáng)度的不同,以不同的時(shí)間間隔發(fā)送數(shù)據(jù)報(bào),并且在界面上同步發(fā)送的數(shù)據(jù)包的流量。
可使用用戶自定義Headers 來產(chǎn)生偽造的Header,比如自行添加修改sessionID 或cookie 信息可以對某些設(shè)置過濾或阻隔的站點(diǎn)同樣進(jìn)行有效攻擊。優(yōu)點(diǎn)是靈活多變,攻擊的數(shù)據(jù)包都是正常的數(shù)據(jù)包,攻擊請求都是有效的、無法拒絕的請求。缺點(diǎn)是不能攻擊其他服務(wù)端口,此軟件不支持代理,無法改變攻擊來源使用真實(shí)IP 進(jìn)行攻擊,但可通過第三方軟件實(shí)現(xiàn)代理偽造攻擊來源。仍然需要大量、分散的主機(jī)在同一時(shí)間集中進(jìn)行攻擊效果才更顯著。
軟件在網(wǎng)絡(luò)上流量特征
攻擊來源只有一臺(tái)主機(jī),此主機(jī)發(fā)出大量的數(shù)據(jù)包,占用了大量流量,非常異常。
這臺(tái)主機(jī)發(fā)包的目標(biāo)主機(jī)只有一個(gè),同時(shí)其發(fā)包的時(shí)間間隔極短,是典型的網(wǎng)絡(luò)攻擊行為。
攻擊采用的是合法協(xié)議,均是通過HTTP 協(xié)議攻擊目標(biāo)主機(jī)固定端口,80 端口。
此種攻擊和正常訪問網(wǎng)站是一樣的,只是瞬間訪問量增加幾十倍甚至上百倍。
軟件歷史沿革
The high orbit ion cannon Current Release: 2.1(dev)—2010/12/10
The high orbit ion cannon Current Release: 1.0—2010/12/09