摘要:針對專業教學過程中理論內容較難理解和接受的情況,設計了一種入侵檢測的實驗系統,實現對網絡嗅探和端口掃描兩種類型的入侵進行檢測。針對網絡中的嗅探攻擊,利用WinPcap網絡開發包,實現基于ARP報文探測的嗅探攻擊的演示。此外,實驗系統還針對網絡中的TCP端口掃描攻擊,利用Libnids網絡開發包,實現了基于統計閾值檢測法的TCP端口掃描攻擊的演示。最終通過短消息模塊實現相應入侵行為的短信通知。
關鍵詞:入侵檢測;實驗系統;網絡嗅探;端口掃描
1背景
在互聯網不斷發展壯大的同時,網絡安全問題也越來越突出了。美國每年平均發生數十萬起重大的網絡入侵和惡意攻擊事件,其中約十分之一的攻擊成功地侵入了系統(美聯邦調查局統計),因此每年造成平均上百億美元的經濟損失。事實上,網絡入侵己經成為影響網絡繼續發展的一個重要問題,并困擾著所有網絡專家、信息專家和計算機安全專家[1]。
作為信息安全專業的學生,應該對這兩項當今網絡安全中的熱點技術有更好的掌握。事實上,教科書中只有少量的圖片,文字敘述比較多,增加了學習者的負擔,同時,理論知識的學習只能得到一些抽象的概念,并不能提高實際應用能力。因此就需要具備與之配套的實驗系統[2]。
入侵檢測作為一種積極主動安全防護技術,能夠同時對內部入侵、外部入侵和誤操作提供及時的保護,能夠在系統受到危害之前及時地記錄和響應入侵,為系統管理員提供可靠的入侵記錄[3-5]。
為了讓信息安全專業的學生更好地學習入侵檢測這門專業課,需要有一套入侵檢測實驗系統。通過親手操作該實驗系統,學生能夠更直觀,更真實的感覺入侵檢測系統(IDS, Intrusion Detection System),從而更好地學習入侵檢測這門課[6]。
我們將本實驗系統分成以下三個部分:
(1) 實驗系統的界面實現。包括:
使用C#語言開發Web應用程序;
在入侵檢測實驗平臺主界面中列出各種入侵檢測的實驗說明及實驗原理;
將不同入侵檢測實驗使用不同的選項觸發,每開始一項入侵檢測后,在網頁上顯現出入侵檢測的結果。
(2) 網絡入侵的實際檢測。針對部分網絡入侵的檢測,本實驗系統暫時實現兩個方面的攻擊檢測。第一是對網絡嗅探的檢測;第二是對網絡掃描的檢測。在對網絡嗅探的檢測中,使用Windows網絡數據包捕獲開發包Winpcap實現。在對網絡掃描的檢測中,使用網絡入侵檢測開發包Libnids實現。
(3) 入侵檢測的實時通知。一旦系統受到了入侵,就給短信貓(GSM MODEM)一個觸發,并通過短信貓給管理員發送一條對應入侵信息的短信。
學生通過操作該實驗系統,了解檢測嗅探和入侵的基本方法與原理,更好地學習入侵檢測這門課程。
2入侵檢測實驗系統實現
2.1實驗系統的整體設計
本實驗系統界面部分主要在Visual Studio.net 2005開發環境中完成。實驗系統使用的是其中Visual C#語言開發ASP.NET Web 應用程序的方法。
將實驗系統的實現主要分為9個子模塊,包括網絡安全實驗系統歡迎和登陸、入侵檢測方式選擇、入侵檢測實驗系統總體介紹、局域網的指定網段中正在嗅探主機程序流程圖的展現、檢測局域網的指定網段中正在嗅探主機的詳細信息、WinPcap驅動介紹、局域網中正在進行端口掃描主機程序流程圖展現、檢測局域網中正在進行端口掃描主機的詳細信息、Libnids開發包介紹。圖1給出了最后生成的網頁總索引。

由于本實驗系統中檢測嗅探與檢測掃描的主程序都是用C語言的網絡安全開發包實現的,因此在設計時采用Visual Studio中創建進程調用C應用程序的方法將兩者有機結合。
2.2網絡嗅探檢測
2.2.1基本原理
嗅探是利用計算機的網絡接口截獲目的地為其他計算機的數據報文的一種技術。在合理的網絡中,嗅探的存在對系統管理員是至關重要的,系統管理員通過嗅探可以診斷出大量的不可見模糊問題。這些問題涉及兩臺乃至多臺計算機之間的異常通訊有些甚至牽涉到各種協議,借助于嗅探,系統管理員可以方便的確定出多少的通訊量、屬于哪個網絡協議、占主要通訊協議的主機是哪一臺、大多數通訊目的地是哪臺主機、報文發送占用多少時間、或者相互主機的報文傳送間隔時間等,這些信息為管理員判斷網絡問題、管理網絡區域提供了非常寶貴的信息。但是,如果有心之人(非系統管理員)使用了嗅探,那么,他同樣也可以獲得和管理員一樣多的信息,同樣也可以對整個網絡做出判斷。
檢測嗅探的辦法有很多,比如有些功能強大的嗅探器會對IP地址進行解析獲得機器名,那么可以通過發送畸形數據包等待嗅探器進行DNS解析等等,但是這些辦法局限太大了。根據嗅探器的基本工作原理,其核心就是設置網卡模式為 promiscuous(混雜模式),如果能夠檢測到網絡有是混雜模式的網卡,那么就可以判斷可能存在一個嗅探器。ARP協議在深入嗅探中很有作用,同時也可以用于進行嗅探器的檢測。
在混雜模式中,網卡進行包過濾不同于普通模式。本來在普通模式下,只有本地地址的數據包或者廣播(多播等)才會被網卡提交給系統核心,否則的話,這些數據包就直接被網卡拋棄?,F在,混合模式讓所有經過的數據包都傳遞給系統核心,然后被嗅探器程序利用。因此,如果能利用中間的“系統核心”,就能有效地進行是否混雜模式的檢測。下面以Windows系統為例說明。
FF-FF-FF-FF-FF-FF:這個是一個正規的廣播地址,不管是正常模式還是其他模式,都會被網卡接收并傳遞給系統核心。
FF-FF-FF-FF-FF-FE:這個地址對于網卡來說,不是一個廣播地址,在正常模式下會被網卡拋棄,但是系統核心是認為這個地址同FF-FF-FF-FF-FF-FF是完全一樣的。如果處于混雜模式,將被系統核心接收,并認為是一個廣播地址。所有的Windows操作系統都是如此。
FF-FF-00-00-00-00:Windows核心只對前面兩字節作判斷,核心認為這是一個同FF-FF-FF-FF-FF-FF一樣的廣播地址。這就是為什么FF-FF-FF-FF-FF-00也是廣播地址的原因。
FF-00-00-00-00-00:對于Win9x或WinME,則是檢查前面的一個字節。因此會認為這個是一個廣播地址。
所以,目的就要讓正常模式的網卡拋棄掉探測包,而讓混雜模式的系統核心能夠處理探測。發送一個目的地址為FF-FF-FF-FF-FF-FE(系統會認為屬于廣播地址)的ARP請求,對于普通模式(廣播等)的網卡,這個地址不是廣播地址,就會直接拋棄,而如果處于混雜模式,那么ARP請求就會被系統核心當作廣播地址處理,然后提交給嗅探器程序。系統核心就會應答這個ARP請求。
2.2.2主要數據結構和函數
使用到WinPcap中的主要數據結構和自定義的數據結構PACKET、ETHDR、ARPHDR、IPHDR。自定義的函數主要包括以下幾個。
/* 發送ARP Request數據報,請求獲得本地主機的mac地址 */
int getmine();
/* 分類處理接收到的數據報 */
void getdata(LPPACKET lp, int op);
/* 將網絡適配器設置為混雜模式,接收所有流的數據報 */
DWORD WINAPI sniff(LPVOID no);
/* 發送ARP Request數據報,請求獲得正在嗅探主機的ip地址和mac地址 */
DWORD WINAPI sendMASR(LPVOID no);
2.2.3程序流程簡介
圖2給出了檢測局域網指定網段中正在嗅探主機的程序流程圖。

2.3端口掃描檢測
2.3.1基本原理
TCP提供一種面向連接的、可靠的字節流服務。面向連接意味著兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數據之前必須先建立一個TCP連接。在一個TCP連接中,僅有兩方進行彼此通信,并且TCP收到發自TCP連接另一端的數據,它將發送一個確認?;赥CP握手機制,產生許多端口掃描技術,包括SYN掃描、FIN掃描、NULL掃描等。
一個端口掃描被定義為在T秒時間內對目標系統超過P個端口的TCP連接請求,或者是對應的UDP數據包。因此可以采用異常檢測技術來檢測端口掃描,即定義為在TCP連接過程中,如果檢測到相同源地址掃描TCP端口的數目大于閾值就認為發生了端口掃描攻擊,根據TCP的標志位判斷掃描類型。在本實驗系統中該部分功能的實現主要由Libnids開發包中默認函數syslog()完成。本系統可以根據TCP的標志位判斷掃描類型,可以檢測SYN、NULL、FIN三種標志位變化的掃描。
2.3.2主要數據結構和函數
使用到的主要數據結構有檢測掃描用的相關信息SCAN、HOST、IP_HDR、TCP_HDR。自定義的函數主要包括以下幾個。
/*對Libnids進行初始化。它的主要任務包括打開網絡接口、打開文件、編譯過慮規則、設置過慮規則、判斷網絡鏈路層類型、進行必要的初始化工作。
函數返回值:函數調用成功就返回1,失敗就返回0。*/
bool nids_init(void);
/*運行Libnids,進入循環捕獲數據包狀態。它實際上是調用Libpcap函數pcap_loop()來循環捕獲數據包。*/
void nids_run(void);
/*檢測掃描攻擊和異常數據包的函數,根據檢測出的報警類型來發送報警信息。*/
static void my_nids_syslog(int type, int errnum, struct ip_header *iph, void *data);
2.3.3程序流程簡介
圖3給出了使用Libnids開發包檢測端口掃描的流程圖。

2.4短信發送通知
短信貓是一種內嵌GSM無線通信模塊,插入移動運營商的手機SIM卡后,可以通過PC連接使計算機應用系統與移動運營商的短信中心建立無線連接以實現自由的對外短信收發。
通過短信貓二次開發數據庫接口,使用者幾乎不需要了解任何有關數據通信方面的知識,就可實現手機短信的收發等功能。
在本實驗系統的設計中,使用短信貓二次開發接口通過Access數據庫實現短信發送功能。
3實驗演示
圖4給出了網絡嗅探檢測的具體界面和具體的嗅探結果。其中共有六個步驟,在使用者操作該實驗系統時,每完成一步后,實驗系統中下一步的執行按鈕將變為可操作狀態,這樣就避免了使用者在使用該實驗系統時出現操作混亂。在實驗系統中每出現一步操作的說明時,在界面右側的說明框中將同時介紹其詳細原理或介紹等。

圖4中,在IP地址為10.10.224.224的主機上運行嗅探工具sniffer,經測試正確檢測出了10.10.224.240至10.10.224.250 IP段中正在進行嗅探的主機信息:[IP:] 10.10.224.244[MAC:] 00-11-d8- c2-dd-69。
在IP地址為10.10.103.8的主機上運行掃描工具WinNmap,經測試正確檢測出局域網中正在進行端口掃描的主機信息和被掃描主機信息。經多次測試,本實驗系統可以正確檢測出SYN、NULL、FIN三種TCP掃描。圖5給出了系統運行的演示界面。
當檢測到嗅探或掃描后,網絡管理員的手機都會收到正確的信息通知。
4結果分析
對系統進行全面測試后,從以下兩方面分析系統性能。
4.1系統的有效性
通過測試,系統在以下兩方面有效:(1)該系統可以檢測出共享式局域網中將網卡設為混雜模式的嗅探攻擊;(2)該系統可以檢測出共享式局域網正存在的以下三種正常速度的TCP端口掃描:SYN、NULL、FIN。

4.2系統的局限性
通過測試,該系統也存在一些局限性:(1)除將網卡設為混雜模式的嗅探攻擊,該系統對其他種類的嗅探攻擊不起任何作用,該功能還有待完善;(2)由于該系統檢測端口掃描所使用算法(統計閾值檢測法)的局限性,掃描方如果采用慢速掃描,掃描時間間隔拉得夠長,低于所設的門限值,就會漏報。
5結語
本系統是為入侵檢測教學和學習的實際需要而設計的。它對理論教學是一個很好的補充,其宗旨是服務于入侵檢測實驗教學,提高入侵檢測教學水平和教學質量。通過入侵檢測實驗系統,可激發學生的學習主動性,有利于學生創新能力的培養??偟膩碚f,本文所實現的入侵檢測實驗系統已經能夠為入侵檢測學習者提供一個理論與實踐學習相結合的平臺。通過提供檢測部分入侵的實際操作,同時展示了內部過程和結果,使學習者較為生動地了解到入侵檢測的過程,加深對入侵檢測的理解。
本實驗平臺通過學生的實際使用,形象且條理清楚的展現出檢測部分網絡入侵的過程,使學習者學習更方便,理解更迅速、更深刻,已經逐步成為教學活動有力的輔助工具。我們將在今后的實際工作中總結使用者提出的建議,繼續完善本系統。
參考文獻:
[1] W. Yan, E. Hou, N. Ansari. Description Logics for an Autonomic IDS Event Analysis System [J]. Computer Communications, 2006,29(15):2841-2852.
[2] 張煥國,王麗娜. 信息安全綜合實驗教程[M]. 武漢:武漢大學出版社,2006.
[3] 孫云,黃皓. 一種混合式網絡入侵檢測系統[J]. 計算機工程,2008,34(9):164-166.
[4] Vasilios Katos. Network Intrusion Detection: Evaluating Cluster, Discriminant, and Logit Analysis [J]. Information Sciences,2007,177(15):3060-3073.
[5] 左晶,段海新,于雪莉. 入侵檢測系統中報警驗證模塊的設計與實現[J]. 計算機工程,2008,34(2):267-269.
[6] 王陳章. 網絡信息安全教學實驗系統[D]. 長春:吉林大學計算機科學與技術學院,2008.
An Implementation of Intrusion Detection Experiment System
SUN Guo-zi1,2,YU Chao1,2,CHEN Dan-wei1,2
(1. College of Computer, Nanjing University of Posts Telecommunications, Nanjing 210003, China;
2. Institute of Computer Technology, Nanjing University of Posts Telecommunications, Nanjing 210003, China)
Abstract: In view of the situation that content of the theory is difficult to understand and accept in the process of teaching professional lesson, an intrusion detection experiment system is implemented, which is realized in two kinds of intrusion detection, such as network sniffer and port scan. Using the WinPcap network development kit, and based on the ARP packet detection, the system demonstrates how the sniffer attacks work in the network. Using the Libnids network development kit, and based on the detection method of statistical threshold, the system also demonstrates how the TCP port-scans attack in the network. As being attacked, a corresponding notification could be sent to the manager through SMS modules.
Key word: intrusion detection; experiment system; network sniffer; port scan
(編輯:彭遠紅)