摘 要: 從研究隱蔽通信的角度出發(fā),,介紹了一種基于Sniffer原理的隱蔽通信技術(shù),提出了檢測(cè)與防范這種隱蔽通信的方法,并對(duì)隱蔽通信的發(fā)現(xiàn)方法進(jìn)行了討論。
關(guān)鍵詞: Sniffer 隱蔽通信 隱蔽信道 檢測(cè) 防范
隱蔽技術(shù)是黑客技術(shù)的重要組成部分,,其具體內(nèi)容包括入侵行為的隱蔽技術(shù)、非法進(jìn)程的隱蔽技術(shù)和隱蔽通信技術(shù)等。隱蔽通信技術(shù)指黑客和其在受害主機(jī)上安裝的惡意代理(木馬或者后門(mén)等)之間或者各個(gè)惡意代理之間進(jìn)行隱蔽通信的技術(shù),。黑客的入侵活動(dòng)密切依賴于隱蔽技術(shù),。與黑客相關(guān)的隱蔽行為一旦被安全人員發(fā)現(xiàn)就意味著入侵活動(dòng)的失敗。因此隱蔽與反隱蔽技術(shù)的對(duì)抗是網(wǎng)絡(luò)安全研究中永恒的主題,。由于網(wǎng)絡(luò)入侵行為的實(shí)施必然需要通信,,因此隱蔽通信是雙方關(guān)注的焦點(diǎn)。
早期的黑客隱蔽通信技術(shù)很低級(jí),,如著名的Back Orifice木馬,、冰河木馬等采用的通信技術(shù)都是簡(jiǎn)單的TCP連接方式。因而用戶很容易就可以發(fā)現(xiàn)非法的連接,,從而發(fā)現(xiàn)惡意代理的存在,。后來(lái),黑客的隱蔽通信技術(shù)不斷發(fā)展,,如端口反彈技術(shù)、ICMP型木馬技術(shù)等隱蔽通信技術(shù)紛紛出現(xiàn),。但是隨著防火墻與入侵檢測(cè)等安全技術(shù)的發(fā)展,,目前對(duì)這些隱蔽通信方式都有了應(yīng)對(duì)辦法。本文介紹的基于Sniffer原理的隱蔽通信技術(shù)就是一種目前尚未引起足夠重視但是危害極大的隱蔽通信技術(shù),。本文將首先分析該技術(shù)的原理與實(shí)施方法,,然后針對(duì)其特點(diǎn)分析檢測(cè)與防范這種隱蔽通信的方法。
1 基于Sniffer技術(shù)的隱蔽通信原理
1.1 Sniffer技術(shù)介紹
Sniffer即為嗅探器,。Sniffer技術(shù)是指在網(wǎng)絡(luò)上監(jiān)聽(tīng)數(shù)據(jù)報(bào)文的方法,。一般來(lái)說(shuō),Sniffer技術(shù)的應(yīng)用環(huán)境為共享式以太網(wǎng)(Hub-based Ethernet),。交換式網(wǎng)絡(luò)(Switch-based Network)上的Sniffer技術(shù)實(shí)施較為復(fù)雜,,不適于隱蔽通信。
共享式以太網(wǎng)中Sniffer的原理是基于以太網(wǎng)中所有的通信都是廣播的這一事實(shí),。在同一網(wǎng)段的所有網(wǎng)絡(luò)接口(網(wǎng)卡)都可以訪問(wèn)在物理媒體上傳輸?shù)乃袛?shù)據(jù),。一般情況下,網(wǎng)卡只接收?qǐng)?bào)文中MAC地址與自己MAC地址相同的報(bào)文,。但是,,如果把網(wǎng)卡的接收模式設(shè)為混雜模式(Promiscuous Mode),則可以接收網(wǎng)絡(luò)上的所有數(shù)據(jù)報(bào)文,。這樣就實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)數(shù)據(jù)的監(jiān)聽(tīng),,即Packet Sniffing。
1.2 隱蔽通信與隱蔽信道
本文中的隱蔽通信是指黑客與惡意代理間或者惡意代理相互之間的隱蔽通信,。其中隱蔽是指通信雙方的通信活動(dòng)對(duì)監(jiān)視者(安全管理人員,、防火墻和入侵檢測(cè)系統(tǒng)等)是透明的。
隱蔽通信中信息的流動(dòng)途徑稱為隱蔽信道。一種隱蔽通信方式對(duì)應(yīng)一種隱蔽信道,。
1.3 基于Sniffer技術(shù)的隱蔽通信
基于Sniffer技術(shù)的隱蔽通信即利用Sniffer技術(shù)構(gòu)造隱蔽信道,,并利用它進(jìn)行隱蔽通信。其通信模型如圖1所示,。
圖中,,局域網(wǎng)為共享式以太網(wǎng)。Host k是一臺(tái)已經(jīng)被黑客安裝惡意代理的計(jì)算機(jī),。隱蔽通信的雙方是黑客與Host k,。可能的監(jiān)視者有Host k的管理員,、個(gè)人防火墻,、網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(NIDS)和局域網(wǎng)防火墻。
通信原理:黑客事先知道Host k所在網(wǎng)段的IP地址范圍,,因此黑客構(gòu)造IP報(bào)文,,其目的地址為局域網(wǎng)內(nèi)某臺(tái)主機(jī)的地址(可以隨便設(shè)定),源地址也可以隨意設(shè)定,,然后向局域網(wǎng)內(nèi)發(fā)送報(bào)文,。Host k中的惡意代理使用Sniffer技術(shù)監(jiān)聽(tīng)網(wǎng)絡(luò)數(shù)據(jù)報(bào)文,并且依據(jù)黑客事先設(shè)定的通信協(xié)議來(lái)辨別和提取黑客的數(shù)據(jù)報(bào)文,。這樣就構(gòu)造了一條隱蔽信道,,實(shí)現(xiàn)了隱蔽通信。
其隱蔽性表現(xiàn)在三方面:
(1)源地址的隱蔽:源地址可以偽造,。
(2)目的地址的隱蔽:目的地址可以偽造,。
(3)通信信道的隱蔽:防火墻與入侵檢測(cè)系統(tǒng)不能發(fā)現(xiàn)和阻止惡意代理獲取信息。
2 基于Sniffer技術(shù)隱蔽通信的實(shí)例
為了研究方便,,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Sniffer技術(shù)的隱蔽通信的實(shí)例,程序開(kāi)發(fā)環(huán)境為VC++6.0,。通信程序包括二部分:采用Sniffer技術(shù)的惡意代理程序和可以發(fā)送偽造IP報(bào)文的控制端程序。實(shí)現(xiàn)中的技術(shù)要點(diǎn)如下,。
2.1 Sniffer技術(shù)的實(shí)現(xiàn)
Sniffer實(shí)現(xiàn)時(shí)利用了WinSock 2的特性,,可以不使用驅(qū)動(dòng)程序,因此程序代碼很少,。程序核心部分代碼如下,。
(1)打開(kāi)一個(gè)Socket,參數(shù)必須是 AF_INET,、SOCK_RAW和IPPROTO_IP,,否則不能設(shè)置SIO_RCVALL屬性。
m_s=Socket(AF_INET,,SOCK_RAW,,IPPROTO_IP),;
(2)設(shè)置該Socket的超時(shí)參數(shù)等選項(xiàng)。
int rcvtimeo=4000,;
setsockopt(m_s,,SOL_SOCKET,SO_RCVTIMEO,,(const
char*)&rcvtimeo,,sizeof(rcvtimeo));
將該Socket與本機(jī)的某個(gè)網(wǎng)絡(luò)接口綁定(代碼省略),。
(3)設(shè)置SIO_RCVALL屬性,。
WSAIoctl(m_s,SIO_RCVALL,,&dwBufferInLen,,sizeof(dwBufferInLen),&dwBufferLen,,
sizeof(dwBufferLen),,&dwBytesReturned,NULL,,NULL)),;
……
此后就可以利用這個(gè)Socket來(lái)讀取網(wǎng)絡(luò)上的數(shù)據(jù)包了。
2.2 通信協(xié)議設(shè)定
隱蔽通信的通信協(xié)議設(shè)計(jì)可以有很多方法,,在編制通信協(xié)議時(shí)也可以對(duì)數(shù)據(jù)報(bào)文加密。這里不做詳細(xì)討論,,只給出一個(gè)簡(jiǎn)單但是能反映其原理的協(xié)議,。該協(xié)議構(gòu)造于IP協(xié)議的基礎(chǔ)之上。隱蔽通信報(bào)文結(jié)構(gòu)(寬度為32位)如圖2所示,。
圖中,,控制口令用來(lái)區(qū)分黑客發(fā)送的報(bào)文與網(wǎng)絡(luò)中的正常報(bào)文。惡意代理一旦檢測(cè)到含有控制口令的報(bào)文,,就可以確定其為黑客發(fā)送的報(bào)文,。IP報(bào)文頭部的設(shè)置與普通報(bào)文一樣,這樣可以避開(kāi)入侵檢測(cè)系統(tǒng)和防火墻系統(tǒng),。
實(shí)驗(yàn)方法:通過(guò)在局域網(wǎng)外的控制端向局域網(wǎng)內(nèi)的主機(jī)A(未安裝惡意代理)發(fā)送結(jié)構(gòu)如圖2所示的報(bào)文,。觀察局域網(wǎng)內(nèi)的主機(jī)k(已安裝惡意代理程序)能否接收并處理該報(bào)文。同時(shí)觀察安裝在主機(jī)k上的個(gè)人防火墻能否發(fā)現(xiàn)并阻止該隱蔽通信,。
實(shí)驗(yàn)表明,,這種通信方法不能被個(gè)人防火墻(用天網(wǎng)防火墻和諾頓防火墻最新版實(shí)驗(yàn))發(fā)現(xiàn)和阻止,即使采用監(jiān)視IP報(bào)文的規(guī)則檢測(cè)也不能發(fā)現(xiàn)通信的進(jìn)行,。
3 針對(duì)這類隱蔽通信的檢測(cè)與防范技術(shù)
3.1 目前的檢測(cè)和防范技術(shù)
通過(guò)對(duì)圖1中隱蔽通信模型的觀察和對(duì)通信原理的分析可以發(fā)現(xiàn),,在主機(jī)上檢測(cè)這種隱蔽通信是無(wú)效的,因此必須采用基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)(NIDS)。網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)有2種:基于規(guī)則的和基于異常行為的,。下面分別討論這2種系統(tǒng)的有效性,。
對(duì)于基于規(guī)則的系統(tǒng)來(lái)說(shuō),需要借助入侵檢測(cè)規(guī)則才能發(fā)現(xiàn)入侵行為,。觀察圖2所示的通信協(xié)議,,其中只有控制口令可以作為檢測(cè)規(guī)則,因?yàn)槠渌麍?bào)文一般是經(jīng)過(guò)加密的,,沒(méi)有規(guī)律可循,。但是控制口令可按黑客的意愿隨意指定,因此檢測(cè)規(guī)則的設(shè)定就失去了意義,。此外,,前面提到過(guò),通信協(xié)議有多種實(shí)現(xiàn)方法,,基于規(guī)則的入侵檢測(cè)系統(tǒng)無(wú)法應(yīng)付這么多的可能性,。因此,基于規(guī)則的入侵檢測(cè)系統(tǒng)只能檢測(cè)某一具體的隱蔽信道,,而無(wú)法檢測(cè)這一類隱蔽信道,。
對(duì)于基于異常行為的入侵檢測(cè)系統(tǒng)來(lái)說(shuō),其核心思想是通過(guò)異常的通信狀況來(lái)檢測(cè)入侵活動(dòng),。而本文所述的隱蔽通信由于采用的是基于IP報(bào)文的報(bào)文構(gòu)造,,其IP報(bào)頭內(nèi)容和報(bào)文長(zhǎng)度都可以隨機(jī)偽造成正常網(wǎng)絡(luò)報(bào)文,因此幾乎不會(huì)表現(xiàn)出異常,。所以,,基于異常的入侵檢測(cè)系統(tǒng)對(duì)檢測(cè)這種隱蔽通信無(wú)效。
可以考慮通過(guò)給局域網(wǎng)防火墻加上新規(guī)則來(lái)阻斷隱蔽通信的進(jìn)行,。這種隱蔽通信是基于IP報(bào)文構(gòu)造的數(shù)據(jù)報(bào)文,,因此它可以偽裝成局域網(wǎng)內(nèi)的正常用戶的任意通信形式(TCP、UDP,、HTTP和FTP等),。所以,在局域網(wǎng)防火墻上設(shè)定規(guī)則的辦法也很難奏效,。
總之,,目前的檢測(cè)和防范技術(shù)都不是很有效,因此需要采用其他的技術(shù),。
3.2 對(duì) 策
本文介紹的隱蔽通信方式的特點(diǎn)就是利用基于共享式網(wǎng)絡(luò)的Sniffer技術(shù)進(jìn)行通信,。因此,如果采用交換式的網(wǎng)絡(luò),,可以不必考慮如何檢測(cè)和防范這種隱蔽通信方式,。目前很多局域網(wǎng)都是采用共享式以太網(wǎng),,所以對(duì)共享式網(wǎng)絡(luò)上這種隱蔽通信的檢測(cè)與防范技術(shù)進(jìn)行研究是很有意義的。
本文提出一種針對(duì)共享式以太網(wǎng)中這類隱蔽通信的防范技術(shù),。該技術(shù)通過(guò)擴(kuò)展局域網(wǎng)防火墻系統(tǒng)的結(jié)構(gòu)和功能,,采用了“嚴(yán)進(jìn)寬出”的安全原則和信道分流加密方法對(duì)流入局域網(wǎng)的數(shù)據(jù)進(jìn)行控制。理論分析表明,,采用這種技術(shù)可以完全阻止基于Sniffer技術(shù)的隱蔽通信的實(shí)施,。技術(shù)原理如下。
(1)在局域網(wǎng)防火墻中增加一個(gè)單機(jī)服務(wù)管理模塊,,用來(lái)記錄局域網(wǎng)內(nèi)各個(gè)主機(jī)開(kāi)放的服務(wù)端口,。當(dāng)局域網(wǎng)內(nèi)的某主機(jī)開(kāi)放某個(gè)服務(wù)端口時(shí),則單機(jī)服務(wù)管理模塊自動(dòng)增加一條規(guī)則,。記錄格式為:“主機(jī)IP地址:開(kāi)放端口號(hào)”,。當(dāng)主機(jī)關(guān)閉該服務(wù)端口時(shí)則單機(jī)服務(wù)管理模塊刪除相應(yīng)規(guī)則。
(2)在局域網(wǎng)防火墻與各主機(jī)服務(wù)間的通信中采用加密傳輸,。即局域網(wǎng)外的數(shù)據(jù)報(bào)文經(jīng)過(guò)防火墻過(guò)濾后向主機(jī)傳輸以及主機(jī)向網(wǎng)外發(fā)送數(shù)據(jù)包時(shí)均需要加密,。加密采用對(duì)稱加密算法,防火墻和每臺(tái)主機(jī)之間分別保存一個(gè)相同的加密密鑰,。
(3)當(dāng)局域網(wǎng)外有數(shù)據(jù)包向局域網(wǎng)內(nèi)發(fā)送時(shí),,防火墻中的包檢測(cè)模塊檢測(cè)該包是否滿足單機(jī)服務(wù)管理模塊中的規(guī)則。如果不滿足就直接丟棄,,不允許該包進(jìn)入局域網(wǎng),;否則,對(duì)該包加密后發(fā)向?qū)?yīng)的主機(jī),。這樣任何一臺(tái)主機(jī)即使能監(jiān)聽(tīng)到發(fā)往其他主機(jī)的報(bào)文也無(wú)法識(shí)別報(bào)文內(nèi)容,,也就相當(dāng)于把局域網(wǎng)上的各主機(jī)與外界的通信信道隔離開(kāi)來(lái)。這便使得Sniffer技術(shù)失去了作用,,從而破壞了基于Sniffer技術(shù)的隱蔽通信。
4 結(jié) 論
本文討論了基于Sniffer技術(shù)隱蔽通信的原理及其檢測(cè)防范技術(shù),,并提出了一種有效的防范技術(shù),。但是本文討論隱蔽通信的信道是單向信道,即信息流向只是從局域網(wǎng)外流向局域網(wǎng)內(nèi),。實(shí)際上,,黑客們?cè)谌肭只顒?dòng)中會(huì)采用多種類型的信道。而且隨著技術(shù)的發(fā)展,,新的隱蔽通信方式也會(huì)不斷出現(xiàn),。如何對(duì)付這些隱蔽通信方式需要分析其具體的通信原理才能找到對(duì)策。
參考文獻(xiàn)
1 Ansari S,,Rajeev S G,,Chandrashekar H S.Packet Sniffing:a Brief Introduction.Potentials,,IEEE,2003,;21(5)
2 Refdom.基于嗅探原理的原始套接字木馬.http://www.xfocus.net/articles/200210/455.html,,2002
3 Shotgun.揭開(kāi)木馬的神秘面紗.http://www.yesky.com/20010525/181459.shtml,2001-05-25
4 Juslin J,,Virtanen T.Automatic Backdoor Analysis with a Network Intrusion Detection System and an Integrated Service Checker,,Information Assurance Workshop 2003. IEEE Systems,Man and Cybernetics Society,,2003,;(1)