楊順韜
(廣西交通職業(yè)技術(shù)學(xué)院 教務(wù)處,廣西 南寧 530023)
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)在各行業(yè)和生活中的不斷普及,互聯(lián)網(wǎng)已全面進(jìn)入人們的工作和生活中,越來越多的類似于網(wǎng)上銀行賬號(hào)、電子郵箱賬號(hào)、游戲賬號(hào)、OA系統(tǒng)賬號(hào)等敏感信息成為了網(wǎng)絡(luò)安全攻擊和防范技術(shù)研究的重點(diǎn)對(duì)象,從而使得木馬程序與防火墻和入侵檢測技術(shù)同步發(fā)展起來。
傳統(tǒng)木馬能及時(shí)被內(nèi)部網(wǎng)絡(luò)安全工具發(fā)現(xiàn)進(jìn)行分析,其主要原因如下[1]:
(1)與監(jiān)控端的通訊為明文傳輸方式。
(2)監(jiān)控端是基于特定操作系統(tǒng)的應(yīng)用軟件,其兼容性差,并且無法實(shí)現(xiàn)基于WEB技術(shù)下的無差異性(任何操作系統(tǒng)平臺(tái)、任何時(shí)間地點(diǎn))監(jiān)控。
(3)監(jiān)控端與客戶端采用私有通信協(xié)議,無標(biāo)準(zhǔn)化,可擴(kuò)展性差。
防火墻技術(shù)已經(jīng)實(shí)現(xiàn)了從包過濾技術(shù)發(fā)展到多層次內(nèi)容檢測,同時(shí),入侵檢測系統(tǒng)(IDS)能及時(shí)記錄在內(nèi)、外網(wǎng)交換的數(shù)據(jù)信息以供管理員審查。在防火墻技術(shù)與入侵檢測技術(shù)不斷發(fā)展的過程中,各類安全防御系統(tǒng)及網(wǎng)絡(luò)安全工具可以很好的發(fā)現(xiàn)木馬,對(duì)其傳輸數(shù)據(jù)進(jìn)行攔截,并具備防火墻及入侵檢測聯(lián)動(dòng)監(jiān)測和防護(hù)功能,從而使得傳統(tǒng)的木馬技術(shù)無法正常工作。
因此,借助于HTTP協(xié)議的跨平臺(tái)性和標(biāo)準(zhǔn)性,利用匿名Diffe-Hellman在基于HTTPS隧道技術(shù)來穿透防火墻并使入侵檢測系統(tǒng)記錄失效,利用Restful Web service建立統(tǒng)一的木馬監(jiān)控平臺(tái)將有效的解決傳統(tǒng)木馬程序的缺陷。
典型的木馬關(guān)鍵技術(shù)一般分為反向鏈接技術(shù)、端口復(fù)用技術(shù)、無端口技術(shù)、遠(yuǎn)程線程注入技術(shù)幾種,根據(jù)木馬關(guān)鍵技術(shù)的入侵模式和特征分析,國內(nèi)外學(xué)者研究了很多反木馬技術(shù),也稱為木馬檢測技術(shù)。從木馬檢測技術(shù)的發(fā)展現(xiàn)狀看,主要通過防火墻、入侵檢測、特征碼、實(shí)時(shí)監(jiān)控、虛擬機(jī)、啟發(fā)式技術(shù)事先對(duì)木馬程序進(jìn)行防御,具體原理如下[2]:
防火墻技術(shù):主要通過控制網(wǎng)絡(luò)通信和監(jiān)控注冊(cè)表的修改來實(shí)現(xiàn)反木馬的目的。
入侵檢測技術(shù):通過收集操作系統(tǒng)、系統(tǒng)程序、應(yīng)用程序、網(wǎng)絡(luò)包等信息,發(fā)現(xiàn)系統(tǒng)中違背安全策略或危及系統(tǒng)安全的行為的分析來實(shí)現(xiàn)木馬程序檢測的目的。
特征碼掃描:通過對(duì)非法程序樣本進(jìn)行分析,提取“特征碼”,寫入反病毒軟件的特征碼庫實(shí)現(xiàn)軟件對(duì)木馬程序的識(shí)別和防御。
實(shí)時(shí)監(jiān)控技術(shù):通過多個(gè)不同的角度對(duì)流入、流出系統(tǒng)的數(shù)據(jù)進(jìn)行過濾,檢測并處理其中可能含有的非法程序代碼實(shí)現(xiàn)木馬程序的防御。
虛擬機(jī)技術(shù):模擬一個(gè)程序的運(yùn)行環(huán)境,讓木馬程序在其中運(yùn)行如同在真實(shí)的環(huán)境中不斷顯露出其病毒特征的木馬防御程序。
啟發(fā)式技術(shù):通過抽取病毒的傳染規(guī)則,形成一組規(guī)則集,來判斷一個(gè)程序是否屬于木馬病毒技術(shù)。
筆者將以木馬客戶端由內(nèi)向外發(fā)起的通信和木馬服務(wù)器對(duì)木馬監(jiān)控進(jìn)行分析,研究以匿名HTTPS隧道的木馬技術(shù),利用防火墻的信任關(guān)系、數(shù)據(jù)加密性和HTTP協(xié)議的跨平臺(tái)性和標(biāo)準(zhǔn)性實(shí)現(xiàn)防火墻穿透應(yīng)用。
結(jié)合木馬植入、加載、反清除、隱藏、信息獲取及通信等木馬關(guān)鍵技術(shù)的現(xiàn)狀,針對(duì)一般防火墻允許向外發(fā)起連接而拒絕由外部向內(nèi)部發(fā)起連接請(qǐng)求的安全策略,利用防火墻信任HTTPS協(xié)議的特點(diǎn),將獲取的用戶信息封裝到防火墻“信任”的協(xié)議中,結(jié)合反彈木馬的反向連接技術(shù)(HTTP協(xié)議為客戶端請(qǐng)求、服務(wù)器端響應(yīng)的連接協(xié)議),實(shí)現(xiàn)防火墻穿透。
HTTPS協(xié)議是基于客戶端/服務(wù)器端模式,是面向連接的。典型的HTTPS協(xié)議一般需要PKI基礎(chǔ)設(shè)施和證書,在木馬程序中加入PKI基礎(chǔ)設(shè)施或證書會(huì)在很大程度上降低木馬程序的隱蔽性,因此,匿名的HTTPS是最好的選擇,匿名的HTTPS模式的通信原理如圖1所示。
圖1 匿名HTTPS通信流程
通過對(duì)匿名HTTPS協(xié)議的通信流程與反向連接型木馬的通信流程可看出,HTTPS模型的通信與反向連接型木馬通信流程一致,這也證明了反向木馬解決了傳統(tǒng)木馬通信與HTTP協(xié)議通信架構(gòu)矛盾的實(shí)際問題。
為實(shí)現(xiàn)HTTPS隧道的防火墻穿透,依據(jù)HTTPS協(xié)議對(duì)通信數(shù)據(jù)進(jìn)行封裝,將真正的HTTP消息封裝到TLS的記錄協(xié)議中進(jìn)行傳輸,在應(yīng)用層開始傳遞數(shù)據(jù)時(shí),TLS協(xié)議對(duì)數(shù)據(jù)進(jìn)行壓縮并添加消息認(rèn)證碼(MAC),同時(shí),進(jìn)行加密和TLS記錄協(xié)議頭部,傳輸至操作系統(tǒng)協(xié)議棧,在協(xié)議棧中完成TCPIP頭部添加,由網(wǎng)卡發(fā)送。接收端接收數(shù)據(jù)后,完成IP與TCP頭部的剝離,解密TLS消息,確認(rèn)信息完整性后,獲得數(shù)據(jù)信息[3]。過程如圖2所示。
注:TLS記錄協(xié)議是TLS協(xié)議的一種,用于數(shù)據(jù)傳輸加密,還有TLS更換密碼規(guī)格協(xié)議,TLS警告協(xié)議和握手協(xié)議等。
圖2 HTTPS協(xié)議數(shù)據(jù)包封裝格式
以openssl為TLS庫為例。
2.3.1 核心代碼模塊分析
眾所周知,在TCP完成三次握手之后,安全會(huì)話就建立了,其客戶端的代碼片段一般為:
SSL_CTX*cts=ssl_CTX_net(TL Sv1_client_method());
SSL_CTX_set_cipher_list(ctx,“ADH-AES256-SHA”);
ssl=SSL_new(ctx),SSL_set_bio(ssl,conn,conn);
SSL_connet(ssl).
“ADH-AES256-SHA”作為會(huì)話建立的關(guān)鍵部分,采用了匿名的Diffe-Hellman協(xié)議實(shí)現(xiàn)密鑰交換和AES256加密,同時(shí),利用SHA-1認(rèn)證了消息的完整性,然后構(gòu)建一個(gè)SSL對(duì)象,將其綁定到創(chuàng)建的SSL文本對(duì)象上。實(shí)現(xiàn)方法如下[4]:
(1)將ctx對(duì)象導(dǎo)入SSL_new函數(shù)庫中,使其返回一個(gè)SSL對(duì)象;
(2)通過SSL_conntect(SSL)實(shí)現(xiàn)安全對(duì)話連接,發(fā)送Client Hello報(bào)文(報(bào)文中包含TLS版本號(hào)及安全關(guān)聯(lián)“ADH-AES256-SHA”),等待服務(wù)器端回復(fù)Server Hello報(bào)文和密鑰交換信息,服務(wù)器端主要代碼:
viod THREA_CC server_thread(viod*arg)
{
SSL*ssl=(SSL*)arg;SSL_accept(ssl);
do_server_loop(ssl);
…
_endthread();
}
(3)服務(wù)器端開啟Server_thread線程,通過SSL—accept(SSL)接收客戶端的Client Hello報(bào)文,發(fā)送Server Hello報(bào)文、Server Key Ecchange、Server Hello Done報(bào)文進(jìn)行安全會(huì)話的連接。
2.3.2 HTTPS通信模塊實(shí)現(xiàn)
HTTPS通信是在服務(wù)器端和客戶端建立安全會(huì)話的基礎(chǔ)上實(shí)現(xiàn)的,只要將客戶端應(yīng)用的HTTP頭部信息通過SSL_write寫入到SSL對(duì)象中,并將服務(wù)端回復(fù)應(yīng)答以標(biāo)準(zhǔn)輸出即可,客戶端主要代碼如下:
Static cha*REQUEST_TEMPLATE=”GET/HTTP/1.1\r user-agent:https clinet(yst) Host:%s ”;
Request=(char*)malloc(request_len);
snprintf(request,request_len,REQUEST_TEMPLATE,SERVER,PORT);
request_len=strlen(request);
SSL_write(ssl,request,request_len);
While(1)
{
SSL_read(ssl,buf,BUFSIZE);
fwrite(buf,1,len,stdout);
}
服務(wù)器端代碼通過SSL_read函數(shù)讀取客戶端應(yīng)答請(qǐng)求,同樣,依據(jù)REPLY_TEMPLATE構(gòu)造HTTPS回復(fù)信息,通過SSL_write函數(shù)發(fā)送到客戶端。
Web Service是讓兩臺(tái)設(shè)備在網(wǎng)絡(luò)中實(shí)現(xiàn)通信的一種方式,其定義可為一個(gè)用來支持在網(wǎng)絡(luò)上進(jìn)行設(shè)備與設(shè)備之間進(jìn)行互相操作的軟件。架構(gòu)Web Service必須解決的兩個(gè)問題是“客戶端如何告知服務(wù)器端行為目標(biāo)是什么”、“客戶端如何告知服務(wù)器端實(shí)現(xiàn)操作的數(shù)據(jù)集合”。而將Web Service中將表達(dá)方式信息放入HTTP中的一種有效途徑,其具有標(biāo)準(zhǔn)名稱的特點(diǎn)使得通信具備統(tǒng)一性是最大的優(yōu)勢,不僅實(shí)現(xiàn)了客戶端與服務(wù)端的訪問名稱的統(tǒng)一性,且可將客戶端的行為訴求放入U(xiǎn)RI路徑中,操作簡單、目的明確。例如:客戶端想獲取一個(gè)搜索下的BBS的數(shù)據(jù)結(jié)果,其URI應(yīng)為:http://域名/search?q=BBS。
由此可見,要建立實(shí)現(xiàn)Restful的Web Service可以通過在Restful的架構(gòu)中,方法信息被放在HTTP中或在面向資源的架構(gòu)中,作用域被放在URI中的組合方式實(shí)現(xiàn)。只要在客戶端給定了HTTP請(qǐng)求的第一行,服務(wù)器端就能理解客戶端想要實(shí)現(xiàn)的行為目標(biāo),其行為簡潔而有效,為木馬程序?qū)崿F(xiàn)防火墻的穿透、數(shù)據(jù)獲取、遠(yuǎn)程控制等奠定了高效的可行性基礎(chǔ)。
木馬植入客戶端和控制服務(wù)器端的實(shí)驗(yàn)性軟、硬件配置分別為:
客戶端使用的操作系統(tǒng)為Windows XP sp3,IP地址為172.16.10.10/24,啟用自帶防火墻,安裝市面常見的天網(wǎng)、江民、卡巴斯基等防火墻,并升級(jí)、更新。
服務(wù)器端采用操作系統(tǒng)同樣為Windows XP sp3,IP地址為172.16.10.100/24。
(1)利用后門技術(shù)將木馬程序植入客戶端。
(2)在服務(wù)器端構(gòu)架Restful Web Service結(jié)構(gòu)。
(3)客戶端向服務(wù)端發(fā)出通信請(qǐng)求,完成TCP三次握手,形成通信信道鏈接。
(4)客戶端與服務(wù)端之間開始相互傳送報(bào)文(Hello)、協(xié)商通信版本(TLS)、壓縮方法、安全套件等。
(5)服務(wù)端與客戶端開展HTTPS通信,并同時(shí)實(shí)現(xiàn)密鑰交換。結(jié)果如圖3:
圖3 客戶端與服務(wù)端通信過程
實(shí)驗(yàn)結(jié)論:在客戶端的各類防火墻開啟的情況下,服務(wù)器與客戶端的通信鏈路可建立,實(shí)現(xiàn)正常通信,防火墻對(duì)TCP的443端口未有阻止行為,在加密通信的過程中,防火墻無法實(shí)現(xiàn)對(duì)應(yīng)用層的數(shù)據(jù)進(jìn)行分析,無法做出判斷。
筆者針對(duì)防火墻的網(wǎng)絡(luò)安全防護(hù)特征,研究了利用可信端口的新型木馬技術(shù),通過獲取用戶數(shù)據(jù),并將其封裝于采用匿名Diffe-Hellman的協(xié)議中,以基于HTTPS隧道技術(shù)實(shí)現(xiàn)了在無需PKI體系支持下的密鑰交換的信任關(guān)系,建立通信過程。同時(shí),大幅提高了數(shù)據(jù)傳輸動(dòng)作的隱蔽性,使得木馬程序穿透防火墻的行為以及傳輸內(nèi)容更難被審查。
實(shí)驗(yàn)結(jié)果確定了該項(xiàng)新木馬技術(shù)能實(shí)現(xiàn)操作系統(tǒng)自帶防火墻和市場主流軟防火墻的穿透,并形成可信任的通信信道,實(shí)現(xiàn)獲取行為目標(biāo)數(shù)據(jù)的目的。
[1]張昊.木馬技術(shù)發(fā)展的新趨勢探討[J].科技創(chuàng)新導(dǎo)報(bào),2011,7(5):555-559.
[2]梁偉.校園網(wǎng)用戶行為分析系統(tǒng)研究與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2009.
[3]史記,張樂,陸旭飛.基于ICMP木馬攻擊技術(shù)和防范策略探討[J].無線互聯(lián)科技,2012(6):84-87.
[4]劉超,王軼駿,施勇.匿名HTTPS隧道木馬的研究[J].信息安全與通信保密,2011(12):78-80.
[5]黃偉,孟博,李云超.基于口令的安全用戶認(rèn)證模型[J].現(xiàn)代電子技術(shù),2009,12(21):57-60.