摘 要: WLAN由于無(wú)線信道的開放性和安全機(jī)制的缺陷,需要安全分析系統(tǒng)進(jìn)行管理。選用PowerPC(mpc8270)處理器為硬件平臺(tái),嵌入式Linux系統(tǒng)為軟件平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了安全分析系統(tǒng)中的無(wú)線局域網(wǎng)安全分析終端。終端提供了WLAN報(bào)文的抓取、定制發(fā)送、編解碼及測(cè)試腳本的解析與執(zhí)行等功能。
關(guān)鍵詞:無(wú)線局域網(wǎng); 安全分析; 終端; PowerPC
在無(wú)線局域網(wǎng)(WLAN))的使用環(huán)境中,無(wú)線設(shè)備通過(guò)連接無(wú)線訪問(wèn)點(diǎn)(Access Point)進(jìn)行通訊。由于無(wú)線信道的開放性,非法用戶能夠在不被發(fā)現(xiàn)的情況下監(jiān)聽獲取信道中的數(shù)據(jù)包,也可以主動(dòng)攻擊無(wú)線訪問(wèn)點(diǎn)使其崩潰,導(dǎo)致整個(gè)無(wú)線局域網(wǎng)的通訊服務(wù)停止,WLAN的安全性受到了嚴(yán)重的挑戰(zhàn)。目前,WLAN常用的安全措施有:設(shè)置無(wú)線訪問(wèn)點(diǎn)的SSID(Service Set Identifier)來(lái)限制非法接入、MAC 認(rèn)證來(lái)確保合法用戶才能夠接入、WEP加密等。針對(duì)這些安全措施出現(xiàn)了數(shù)據(jù)竊聽、數(shù)據(jù)分析、偽裝合法用戶、拒絕服務(wù)、修改數(shù)據(jù)、重放攻擊等安全問(wèn)題[1-2]。要解決這些安全問(wèn)題,需要進(jìn)行主動(dòng)或者被動(dòng)安全分析[3]。主動(dòng)安全分析:通過(guò)構(gòu)造協(xié)議報(bào)文序列,模擬針對(duì)無(wú)線局域網(wǎng)安全漏洞的網(wǎng)絡(luò)攻擊,同待測(cè)設(shè)備交互,檢測(cè)待測(cè)設(shè)備是否能夠防御此攻擊,以判斷待測(cè)設(shè)備是否存在安全漏洞。被動(dòng)安全分析:根據(jù)監(jiān)測(cè)到的網(wǎng)絡(luò)數(shù)據(jù),判斷是否存在針對(duì)已知漏洞的攻擊。要進(jìn)行主動(dòng)和被動(dòng)安全分析,需要在WLAN環(huán)境中放置設(shè)備來(lái)對(duì)主動(dòng)和被動(dòng)安全分析技術(shù)提供支持,即無(wú)線局域網(wǎng)安全分析終端。
1 終端的部署結(jié)構(gòu)及功能需求
1.1 部署結(jié)構(gòu)
無(wú)線安全分析終端部署結(jié)構(gòu)如圖1所示。圖中包括多個(gè)無(wú)線安全分析終端、多個(gè)無(wú)線訪問(wèn)點(diǎn)(AP)、1個(gè)主控節(jié)點(diǎn)及其他無(wú)線接入設(shè)備。其中,無(wú)線安全分析終端與主控節(jié)點(diǎn)構(gòu)成了無(wú)線安全分析系統(tǒng)。
1.2 功能需求
主控節(jié)點(diǎn)包含主動(dòng)與被動(dòng)分析模塊,終端對(duì)主動(dòng)與被動(dòng)分析模塊進(jìn)行支持。如圖2所示,終端進(jìn)行主動(dòng)分析時(shí),首先通過(guò)主控端有線網(wǎng)絡(luò)接口接收來(lái)自主控節(jié)點(diǎn)的攻擊測(cè)試腳本;然后執(zhí)行腳本時(shí),通過(guò)無(wú)線網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包;最后通過(guò)無(wú)線網(wǎng)絡(luò)接口采集數(shù)據(jù)處理后發(fā)送回主控節(jié)點(diǎn)。終端進(jìn)行被動(dòng)分析時(shí),首先通過(guò)無(wú)線網(wǎng)絡(luò)接口采集無(wú)線報(bào)文;然后按照規(guī)則中的報(bào)文處理規(guī)則(包含各種網(wǎng)絡(luò)協(xié)議編解碼方式及處理規(guī)則)進(jìn)行處理,將需要的數(shù)據(jù)通過(guò)主控端網(wǎng)絡(luò)接口返回給主控節(jié)點(diǎn)進(jìn)行分析處理。
根據(jù)以上分析可知,終端需實(shí)現(xiàn)以下功能:
(1) WLAN報(bào)文的抓取、定制發(fā)送及編解碼功能。這是實(shí)現(xiàn)主動(dòng)與被動(dòng)安全分析的基礎(chǔ)。
(2) 主動(dòng)與被動(dòng)安全分析的過(guò)程控制。
(3) 終端能夠提供解析與執(zhí)行測(cè)試腳本的能力。
(4) 隨著針對(duì)WLAN的攻擊方式不斷增多,終端應(yīng)具有良好的擴(kuò)展性。
2 硬件組成
無(wú)線安全分析終端的硬件平臺(tái)由核心板和底板組成。如圖3所示,核心板上集成了CPU(MPC8270)、Flash ROM和SDRAM等。底板上提供了豐富的外設(shè)接口:包括1個(gè)10 M/100 M以太網(wǎng)接口、2個(gè)PCI接口、1個(gè)四線RS-232串口、JTAG接口等。
2.1 核心板MPC8270處理器及存儲(chǔ)器
MPC8270屬于Power QUICC II系列,其內(nèi)部集成了2個(gè)處理單元:1個(gè)嵌入式PowerPC 603e核心,1個(gè)精減指令集(RISC)的通訊處理模塊(CPM)。同時(shí),還擁有獨(dú)立的16 KB數(shù)據(jù)Cache和16 KB指令Cache,它支持60 x總線、PCI/LOCAL總線,內(nèi)核工作時(shí)鐘最高450 MHz。由于CPU專注于管理高端的任務(wù),CPM承擔(dān)了底層外圍的通訊,這種雙核的設(shè)計(jì)除可以滿足有線和無(wú)線網(wǎng)絡(luò)的通訊處理任務(wù)外,還可以比傳統(tǒng)設(shè)計(jì)更大地降低功耗,提供更加平衡的處理能力。16 MB的Flash ROM和128 MB的SDRAM構(gòu)成了系統(tǒng)的存儲(chǔ)空間。Flash作為程序存儲(chǔ)器,固定為16bit數(shù)據(jù)讀寫訪問(wèn)模式,它只連接MPC8270的低16bit數(shù)據(jù)總線,用片選信號(hào)/CS0選中。SDRAM作為系統(tǒng)的內(nèi)存,采用1根144引腳的128 MB內(nèi)存條,以60 x總線與MPC8270相連,數(shù)據(jù)寬度為64 bit。MPC8270提供了SDRAM控制器,故只需進(jìn)行寄存器的設(shè)置即可。
2.2 底板外設(shè)接口
外設(shè)接口包括RS-232串行接口、JTAG口、以太網(wǎng)口和PCI接口等。RS-232接口用于人機(jī)交互及調(diào)試。JTAG口主要用于Bootloader的下載。Bootloader是嵌入式系統(tǒng)中引導(dǎo)系統(tǒng)的初始化部分,功能類似于PC機(jī)的BIOS。以太網(wǎng)口使用MPC8270的FCC模塊作為網(wǎng)口通訊,用于開發(fā)時(shí)搭建交叉編譯環(huán)境進(jìn)行調(diào)試及正常工作時(shí)與主控節(jié)點(diǎn)的通訊。2個(gè)PCI接口分別插入2塊無(wú)線網(wǎng)卡,本文中以芯片組型號(hào)為AR5212的PCI接口的無(wú)線網(wǎng)卡(TL-WN651G)為例。
3 軟件設(shè)計(jì)與實(shí)現(xiàn)
終端以Linux作為軟件開發(fā)平臺(tái),主要實(shí)現(xiàn)對(duì)無(wú)線局域網(wǎng)的主動(dòng)安全和被動(dòng)安全分析的支持。針對(duì)前面所描述的終端功能需求,文中將軟件劃為4個(gè)模塊。如圖4所示,包括連接控制模塊、執(zhí)行控制模塊、測(cè)試支撐命令庫(kù)、網(wǎng)絡(luò)適配器模塊。
3.1 連接控制模塊
連接控制模塊負(fù)責(zé)通過(guò)有線網(wǎng)絡(luò)接口與主控節(jié)點(diǎn)通訊。終端啟動(dòng)后,將建立Socket,然后將廣播本終端信息以進(jìn)行注冊(cè),主控節(jié)點(diǎn)收到信息后更新終端列表,其后Socket將處于監(jiān)聽狀態(tài),負(fù)責(zé)隨時(shí)與主控節(jié)點(diǎn)的通訊。
3.2 執(zhí)行控制模塊
執(zhí)行控制模塊負(fù)責(zé)主動(dòng)與被動(dòng)安全分析的過(guò)程控制,提供執(zhí)行測(cè)試腳本的能力。
終端采用Tcl命令解釋器作為執(zhí)行控制模塊的核心。終端與主控節(jié)點(diǎn)的控制命令、測(cè)試腳本等都通過(guò)Tcl命令解釋器解釋實(shí)現(xiàn)。
Tcl語(yǔ)言是一種腳本語(yǔ)言,一個(gè)重要特性是它的擴(kuò)展性。用Tcl的C/C++接口將編寫的低層網(wǎng)絡(luò)通訊函數(shù)擴(kuò)展成命令?;谶@些擴(kuò)展命令,用Tcl腳本語(yǔ)言編寫頂層接口模塊。主控節(jié)點(diǎn)也可以利用這些擴(kuò)展命令編寫安全分析腳本和控制命令。基于這樣的思想,通過(guò)編寫擴(kuò)展命令,終端的軟件具有很強(qiáng)的可擴(kuò)展性。本文中,終端移植安裝了ActiveTcl8.4版本。
3.2.1 主動(dòng)分析過(guò)程控制
主動(dòng)分析控制由連接控制模塊的Socket進(jìn)行觸發(fā),當(dāng)Socket接收到來(lái)自主控節(jié)點(diǎn)的測(cè)試腳本后,將單獨(dú)開始一個(gè)線程進(jìn)行主動(dòng)分析并負(fù)責(zé)返回測(cè)試結(jié)果。
3.2.2 被動(dòng)分析過(guò)程控制
802.11g標(biāo)準(zhǔn)最大傳輸速率為108 Mb/s。被動(dòng)分析過(guò)程控制應(yīng)盡可能無(wú)遺漏地接收無(wú)線信道中的所有數(shù)據(jù),對(duì)于可能出現(xiàn)捕獲數(shù)據(jù)包過(guò)多而終端無(wú)法及時(shí)處理致使數(shù)據(jù)包丟失的情況,文中采用了多線程和緩沖機(jī)制,如圖5所示。接收子線程負(fù)責(zé)將接收到的數(shù)據(jù)報(bào)文緩沖在隊(duì)列中,主線程從緩存隊(duì)列中讀取報(bào)文進(jìn)行處理。
3.3 測(cè)試支撐命令庫(kù)
測(cè)試支撐命令庫(kù)提供了對(duì)主控節(jié)點(diǎn)與終端間的控制命令、腳本解析、WLAN報(bào)文編解碼的支持。
3.3.1 測(cè)試支撐命令庫(kù)的實(shí)現(xiàn)原理
平臺(tái)支撐命令庫(kù)提供測(cè)試所使用的Tcl命令,除采用Tcl語(yǔ)言自身實(shí)現(xiàn)某些簡(jiǎn)單命令外,其他都基于C/C++實(shí)現(xiàn)。圖6是實(shí)現(xiàn)基于有線網(wǎng)卡發(fā)送數(shù)據(jù)的sock_send命令的編寫過(guò)程示例。
3.3.2 測(cè)試支撐命令庫(kù)組成
平臺(tái)支撐命令庫(kù)主要有2部分:Socket.dll和Base文件。實(shí)現(xiàn)了以下Tcl支撐命令:
(1)緩沖區(qū)編解碼支持命令。數(shù)據(jù)包在發(fā)送前和接收后都是先存放在緩沖區(qū)(buffer)中。緩沖區(qū)編解碼支持命令提供了一組管理和操作報(bào)文緩沖區(qū)的操作命令,包括緩沖區(qū)的申請(qǐng)和釋放,按各種格式填寫緩沖區(qū)和獲取緩沖區(qū)的內(nèi)容等。
(2)PCO支持命令。提供了一組訪問(wèn)TCP/IP協(xié)議的各個(gè)層次接口的控制觀察點(diǎn)(PCO)。
(3)協(xié)議報(bào)文編解碼、報(bào)文收發(fā)等支持命令。協(xié)議包括DLC、IPv4、IPv6、ARP、ICMPv4、ICMPv6、TCP、UDP、DNS、
ISIS、STP等。
(4)定時(shí)器操作、批量發(fā)包等。
3.3.3 無(wú)線數(shù)據(jù)包接收命令實(shí)現(xiàn)
作為無(wú)線終端的基本功能之一,必須能夠接收所在區(qū)域網(wǎng)絡(luò)的無(wú)線數(shù)據(jù)包,本文采用了libpcap[4]庫(kù)函數(shù)實(shí)現(xiàn)。
144 B Prism頭或者26 B左右的Radiotap頭,是無(wú)線網(wǎng)卡自動(dòng)添加在802.11MAC頭前的數(shù)據(jù),它記錄了所在區(qū)域無(wú)線信號(hào)的強(qiáng)度、噪聲強(qiáng)度和傳輸速率等物理層信息。通常情況下,使用libpcap捕獲無(wú)線數(shù)據(jù)包后,網(wǎng)卡將自動(dòng)報(bào)文頭部分的Prism頭、Radiotap頭、802.11頭轉(zhuǎn)換為802.3報(bào)文頭提供給上層。本文采用了libpcap與madwifi相結(jié)合的方法來(lái)獲取所需要的無(wú)線網(wǎng)絡(luò)報(bào)文頭,終端使用的是libpcap 0.8.1版本。
3.3.4 無(wú)線數(shù)據(jù)包發(fā)送命令實(shí)現(xiàn)
開源項(xiàng)目Lorcon[5]對(duì)實(shí)現(xiàn)WLAN報(bào)文的定制發(fā)送需求提供了支持,它專為L(zhǎng)inux操作系統(tǒng)所設(shè)計(jì),其屏蔽了底層的具體實(shí)現(xiàn),用戶只需指定使用的無(wú)線網(wǎng)卡的驅(qū)動(dòng)程序名及型號(hào)即可調(diào)用。用戶事先設(shè)定好要發(fā)送的數(shù)據(jù)內(nèi)容(包括802.11報(bào)文頭),然后調(diào)用Lorcon庫(kù)函數(shù)即可。
由于使用Lorcon庫(kù)函數(shù),發(fā)送時(shí)未提供發(fā)送確認(rèn)機(jī)制,當(dāng)同一信道中發(fā)生沖突時(shí),會(huì)出現(xiàn)發(fā)送數(shù)據(jù)包不成功的情況,文中采用了在1塊無(wú)線網(wǎng)卡上發(fā)送無(wú)線數(shù)據(jù)包同時(shí)通過(guò)另一塊無(wú)線網(wǎng)卡監(jiān)聽的方法,如果監(jiān)聽接收到此數(shù)據(jù)包,表示此數(shù)據(jù)已發(fā)送成功;如果在規(guī)定時(shí)間內(nèi)未接收到此數(shù)據(jù)包表示發(fā)送失敗,則重新發(fā)送。
3.4 網(wǎng)絡(luò)適配模塊
網(wǎng)絡(luò)適配模塊提供對(duì)無(wú)線網(wǎng)卡的驅(qū)動(dòng)支持和工作模式設(shè)置。
無(wú)線網(wǎng)卡有多種工作模式,本文中終端需要使用正常模式和監(jiān)聽模式(monitor模式)。在正常模式下,網(wǎng)卡工作在非偵聽狀態(tài),只會(huì)接收到發(fā)給自己的數(shù)據(jù)包和廣播包,而丟棄其他包。在監(jiān)聽模式下,網(wǎng)卡就可以接收其設(shè)定工作信道(channel)上的所有數(shù)據(jù)包。
本文需要使1塊無(wú)線網(wǎng)卡工作在監(jiān)聽模式,采用與所使用無(wú)線網(wǎng)卡芯片相配套的無(wú)線網(wǎng)卡驅(qū)動(dòng)madwifi-ng 0.9.4。安裝驅(qū)動(dòng)后,可以使用wlanconfig命令設(shè)置無(wú)線網(wǎng)卡為監(jiān)聽模式。
4 系統(tǒng)測(cè)試
因終端在提供主動(dòng)分析支持時(shí),也要執(zhí)行提供被動(dòng)分析支持時(shí)所要執(zhí)行的操作,本文以一個(gè)主動(dòng)測(cè)試用例為例,對(duì)終端系統(tǒng)能否正常工作進(jìn)行測(cè)試。
4.1 認(rèn)證請(qǐng)求洪泛攻擊測(cè)試用例原理
當(dāng)無(wú)線設(shè)備發(fā)送了一個(gè)認(rèn)證請(qǐng)求給無(wú)線訪問(wèn)點(diǎn)(AP)而又未進(jìn)行連接之前,無(wú)線訪問(wèn)點(diǎn)必須保持這個(gè)無(wú)線設(shè)備在已認(rèn)證、未連接狀態(tài),等待該無(wú)線設(shè)備的連接請(qǐng)求。攻擊者偽造大量的無(wú)線設(shè)備向無(wú)線訪問(wèn)點(diǎn)發(fā)送認(rèn)證請(qǐng)求,使無(wú)線訪問(wèn)點(diǎn)沒有能力接收更多其他無(wú)線設(shè)備的請(qǐng)求。此時(shí),則表示此次主動(dòng)攻擊測(cè)試成功,被測(cè)無(wú)線訪問(wèn)點(diǎn)不具備防御認(rèn)證請(qǐng)求洪泛攻擊(Authentication Frame Flood)的能力。
4.2 測(cè)試環(huán)境
待測(cè)無(wú)線訪問(wèn)點(diǎn)(AP)的MAC地址為:3e.d4.37.85.
64.33,無(wú)線終端IP地址為:192.168.1.43。
4.3 測(cè)試結(jié)果
終端首先按照主控端測(cè)試腳本組成攻擊數(shù)據(jù)包,然后進(jìn)行洪泛攻擊待測(cè)無(wú)線訪問(wèn)點(diǎn),最后檢查攻擊結(jié)果,顯示攻擊成功,表示被測(cè)無(wú)線訪問(wèn)點(diǎn)不具備防備認(rèn)證請(qǐng)求洪泛攻擊能力。
本文設(shè)計(jì)實(shí)現(xiàn)了基于PowerPC的無(wú)線局域網(wǎng)安全測(cè)試終端。實(shí)現(xiàn)了對(duì)安全分析系統(tǒng)的主動(dòng)分析與被動(dòng)分析模塊的支持,從而能夠提前檢測(cè)到被測(cè)目標(biāo)是否存在安全漏洞,防范多種針對(duì)無(wú)線局域網(wǎng)的攻擊并進(jìn)行相應(yīng)處理。終端可通過(guò)修改測(cè)試支撐命令庫(kù)而進(jìn)行擴(kuò)展。此外,終端還提供了對(duì)多種協(xié)議的支持,應(yīng)用前景廣闊。
參考文獻(xiàn)
[1] BORISOV N. Intercepting mobile communications: the insecurity of 802.11. In Seventh Annual International Conference on Mobile Computing and Networking, July, 2001.
[2] ZHOU Wen Zhe, ALAN M, GU Qiang, A novel classification scheme for 802.11 WLAN active attacking traffic patterns. Wireless Communications and Networking Conference, 2006.
[3] ZHAO Yin, WU Jian Ping, YIN Xia. From active to passive——progress in testing of internet routing protocols (Extended Version)[J]. Journal of Computer Science and Technology, 2002,17(2):264-283.