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