《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于PowerPC的無線局域網(wǎng)安全分析終端設(shè)計(jì)
基于PowerPC的無線局域網(wǎng)安全分析終端設(shè)計(jì)
宋 見1,2, 周 顥1,2, 趙保華1,2
1. 中國科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系, 安徽 合肥230027;2. 安徽省計(jì)算與通訊軟件重點(diǎn)
摘要: WLAN由于無線信道的開放性和安全機(jī)制的缺陷,需要安全分析系統(tǒng)進(jìn)行管理。選用PowerPC(mpc8270)處理器為硬件平臺,嵌入式Linux系統(tǒng)為軟件平臺,設(shè)計(jì)并實(shí)現(xiàn)了安全分析系統(tǒng)中的無線局域網(wǎng)安全分析終端。終端提供了WLAN報文的抓取、定制發(fā)送、編解碼及測試腳本的解析與執(zhí)行等功能。
Abstract:
Key words :

摘 要: WLAN由于無線信道的開放性和安全機(jī)制的缺陷,需要安全分析系統(tǒng)進(jìn)行管理。選用PowerPC(mpc8270)處理器為硬件平臺,嵌入式Linux系統(tǒng)為軟件平臺,設(shè)計(jì)并實(shí)現(xiàn)了安全分析系統(tǒng)中的無線局域網(wǎng)安全分析終端。終端提供了WLAN報文的抓取、定制發(fā)送、編解碼及測試腳本的解析與執(zhí)行等功能。
關(guān)鍵詞:無線局域網(wǎng); 安全分析; 終端; PowerPC

  在無線局域網(wǎng)(WLAN))的使用環(huán)境中,無線設(shè)備通過連接無線訪問點(diǎn)(Access Point)進(jìn)行通訊。由于無線信道的開放性,非法用戶能夠在不被發(fā)現(xiàn)的情況下監(jiān)聽獲取信道中的數(shù)據(jù)包,也可以主動攻擊無線訪問點(diǎn)使其崩潰,導(dǎo)致整個無線局域網(wǎng)的通訊服務(wù)停止,WLAN的安全性受到了嚴(yán)重的挑戰(zhàn)。目前,WLAN常用的安全措施有:設(shè)置無線訪問點(diǎn)的SSID(Service Set Identifier)來限制非法接入、MAC 認(rèn)證來確保合法用戶才能夠接入、WEP加密等。針對這些安全措施出現(xiàn)了數(shù)據(jù)竊聽、數(shù)據(jù)分析、偽裝合法用戶、拒絕服務(wù)、修改數(shù)據(jù)、重放攻擊等安全問題[1-2]。要解決這些安全問題,需要進(jìn)行主動或者被動安全分析[3]。主動安全分析:通過構(gòu)造協(xié)議報文序列,模擬針對無線局域網(wǎng)安全漏洞的網(wǎng)絡(luò)攻擊,同待測設(shè)備交互,檢測待測設(shè)備是否能夠防御此攻擊,以判斷待測設(shè)備是否存在安全漏洞。被動安全分析:根據(jù)監(jiān)測到的網(wǎng)絡(luò)數(shù)據(jù),判斷是否存在針對已知漏洞的攻擊。要進(jìn)行主動和被動安全分析,需要在WLAN環(huán)境中放置設(shè)備來對主動和被動安全分析技術(shù)提供支持,即無線局域網(wǎng)安全分析終端。
1  終端的部署結(jié)構(gòu)及功能需求
1.1 部署結(jié)構(gòu)
  無線安全分析終端部署結(jié)構(gòu)如圖1所示。圖中包括多個無線安全分析終端、多個無線訪問點(diǎn)(AP)、1個主控節(jié)點(diǎn)及其他無線接入設(shè)備。其中,無線安全分析終端與主控節(jié)點(diǎn)構(gòu)成了無線安全分析系統(tǒng)。

1.2  功能需求
  主控節(jié)點(diǎn)包含主動與被動分析模塊,終端對主動與被動分析模塊進(jìn)行支持。如圖2所示,終端進(jìn)行主動分析時,首先通過主控端有線網(wǎng)絡(luò)接口接收來自主控節(jié)點(diǎn)的攻擊測試腳本;然后執(zhí)行腳本時,通過無線網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包;最后通過無線網(wǎng)絡(luò)接口采集數(shù)據(jù)處理后發(fā)送回主控節(jié)點(diǎn)。終端進(jìn)行被動分析時,首先通過無線網(wǎng)絡(luò)接口采集無線報文;然后按照規(guī)則中的報文處理規(guī)則(包含各種網(wǎng)絡(luò)協(xié)議編解碼方式及處理規(guī)則)進(jìn)行處理,將需要的數(shù)據(jù)通過主控端網(wǎng)絡(luò)接口返回給主控節(jié)點(diǎn)進(jìn)行分析處理。


  根據(jù)以上分析可知,終端需實(shí)現(xiàn)以下功能:
  (1) WLAN報文的抓取、定制發(fā)送及編解碼功能。這是實(shí)現(xiàn)主動與被動安全分析的基礎(chǔ)。
  (2) 主動與被動安全分析的過程控制。
  (3) 終端能夠提供解析與執(zhí)行測試腳本的能力。
  (4) 隨著針對WLAN的攻擊方式不斷增多,終端應(yīng)具有良好的擴(kuò)展性。
2 硬件組成
  無線安全分析終端的硬件平臺由核心板和底板組成。如圖3所示,核心板上集成了CPU(MPC8270)、Flash ROM和SDRAM等。底板上提供了豐富的外設(shè)接口:包括1個10 M/100 M以太網(wǎng)接口、2個PCI接口、1個四線RS-232串口、JTAG接口等。

2.1  核心板MPC8270處理器及存儲器
  MPC8270屬于Power QUICC II系列,其內(nèi)部集成了2個處理單元:1個嵌入式PowerPC 603e核心,1個精減指令集(RISC)的通訊處理模塊(CPM)。同時,還擁有獨(dú)立的16 KB數(shù)據(jù)Cache和16 KB指令Cache,它支持60 x總線、PCI/LOCAL總線,內(nèi)核工作時鐘最高450 MHz。由于CPU專注于管理高端的任務(wù),CPM承擔(dān)了底層外圍的通訊,這種雙核的設(shè)計(jì)除可以滿足有線和無線網(wǎng)絡(luò)的通訊處理任務(wù)外,還可以比傳統(tǒng)設(shè)計(jì)更大地降低功耗,提供更加平衡的處理能力。16 MB的Flash ROM和128 MB的SDRAM構(gòu)成了系統(tǒng)的存儲空間。Flash作為程序存儲器,固定為16bit數(shù)據(jù)讀寫訪問模式,它只連接MPC8270的低16bit數(shù)據(jù)總線,用片選信號/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ā)時搭建交叉編譯環(huán)境進(jìn)行調(diào)試及正常工作時與主控節(jié)點(diǎn)的通訊。2個PCI接口分別插入2塊無線網(wǎng)卡,本文中以芯片組型號為AR5212的PCI接口的無線網(wǎng)卡(TL-WN651G)為例。
3  軟件設(shè)計(jì)與實(shí)現(xiàn)
  終端以Linux作為軟件開發(fā)平臺,主要實(shí)現(xiàn)對無線局域網(wǎng)的主動安全和被動安全分析的支持。針對前面所描述的終端功能需求,文中將軟件劃為4個模塊。如圖4所示,包括連接控制模塊、執(zhí)行控制模塊、測試支撐命令庫、網(wǎng)絡(luò)適配器模塊。

3.1  連接控制模塊
  連接控制模塊負(fù)責(zé)通過有線網(wǎng)絡(luò)接口與主控節(jié)點(diǎn)通訊。終端啟動后,將建立Socket,然后將廣播本終端信息以進(jìn)行注冊,主控節(jié)點(diǎn)收到信息后更新終端列表,其后Socket將處于監(jiān)聽狀態(tài),負(fù)責(zé)隨時與主控節(jié)點(diǎn)的通訊。
3.2 執(zhí)行控制模塊
  執(zhí)行控制模塊負(fù)責(zé)主動與被動安全分析的過程控制,提供執(zhí)行測試腳本的能力。
  終端采用Tcl命令解釋器作為執(zhí)行控制模塊的核心。終端與主控節(jié)點(diǎn)的控制命令、測試腳本等都通過Tcl命令解釋器解釋實(shí)現(xiàn)。
  Tcl語言是一種腳本語言,一個重要特性是它的擴(kuò)展性。用Tcl的C/C++接口將編寫的低層網(wǎng)絡(luò)通訊函數(shù)擴(kuò)展成命令?;谶@些擴(kuò)展命令,用Tcl腳本語言編寫頂層接口模塊。主控節(jié)點(diǎn)也可以利用這些擴(kuò)展命令編寫安全分析腳本和控制命令?;谶@樣的思想,通過編寫擴(kuò)展命令,終端的軟件具有很強(qiáng)的可擴(kuò)展性。本文中,終端移植安裝了ActiveTcl8.4版本。
3.2.1 主動分析過程控制
  主動分析控制由連接控制模塊的Socket進(jìn)行觸發(fā),當(dāng)Socket接收到來自主控節(jié)點(diǎn)的測試腳本后,將單獨(dú)開始一個線程進(jìn)行主動分析并負(fù)責(zé)返回測試結(jié)果。
3.2.2 被動分析過程控制
  802.11g標(biāo)準(zhǔn)最大傳輸速率為108 Mb/s。被動分析過程控制應(yīng)盡可能無遺漏地接收無線信道中的所有數(shù)據(jù),對于可能出現(xiàn)捕獲數(shù)據(jù)包過多而終端無法及時處理致使數(shù)據(jù)包丟失的情況,文中采用了多線程和緩沖機(jī)制,如圖5所示。接收子線程負(fù)責(zé)將接收到的數(shù)據(jù)報文緩沖在隊(duì)列中,主線程從緩存隊(duì)列中讀取報文進(jìn)行處理。


3.3 測試支撐命令庫
  測試支撐命令庫提供了對主控節(jié)點(diǎn)與終端間的控制命令、腳本解析、WLAN報文編解碼的支持。
3.3.1 測試支撐命令庫的實(shí)現(xiàn)原理
  平臺支撐命令庫提供測試所使用的Tcl命令,除采用Tcl語言自身實(shí)現(xiàn)某些簡單命令外,其他都基于C/C++實(shí)現(xiàn)。圖6是實(shí)現(xiàn)基于有線網(wǎng)卡發(fā)送數(shù)據(jù)的sock_send命令的編寫過程示例。


3.3.2 測試支撐命令庫組成
  平臺支撐命令庫主要有2部分:Socket.dll和Base文件。實(shí)現(xiàn)了以下Tcl支撐命令:
  (1)緩沖區(qū)編解碼支持命令。數(shù)據(jù)包在發(fā)送前和接收后都是先存放在緩沖區(qū)(buffer)中。緩沖區(qū)編解碼支持命令提供了一組管理和操作報文緩沖區(qū)的操作命令,包括緩沖區(qū)的申請和釋放,按各種格式填寫緩沖區(qū)和獲取緩沖區(qū)的內(nèi)容等。
  (2)PCO支持命令。提供了一組訪問TCP/IP協(xié)議的各個層次接口的控制觀察點(diǎn)(PCO)。
  (3)協(xié)議報文編解碼、報文收發(fā)等支持命令。協(xié)議包括DLC、IPv4、IPv6、ARP、ICMPv4、ICMPv6、TCP、UDP、DNS、
ISIS、STP等。
  (4)定時器操作、批量發(fā)包等。
3.3.3   無線數(shù)據(jù)包接收命令實(shí)現(xiàn)
  作為無線終端的基本功能之一,必須能夠接收所在區(qū)域網(wǎng)絡(luò)的無線數(shù)據(jù)包,本文采用了libpcap[4]庫函數(shù)實(shí)現(xiàn)。
  144 B Prism頭或者26 B左右的Radiotap頭,是無線網(wǎng)卡自動添加在802.11MAC頭前的數(shù)據(jù),它記錄了所在區(qū)域無線信號的強(qiáng)度、噪聲強(qiáng)度和傳輸速率等物理層信息。通常情況下,使用libpcap捕獲無線數(shù)據(jù)包后,網(wǎng)卡將自動報文頭部分的Prism頭、Radiotap頭、802.11頭轉(zhuǎn)換為802.3報文頭提供給上層。本文采用了libpcap與madwifi相結(jié)合的方法來獲取所需要的無線網(wǎng)絡(luò)報文頭,終端使用的是libpcap 0.8.1版本。
3.3.4  無線數(shù)據(jù)包發(fā)送命令實(shí)現(xiàn)
  開源項(xiàng)目Lorcon[5]對實(shí)現(xiàn)WLAN報文的定制發(fā)送需求提供了支持,它專為Linux操作系統(tǒng)所設(shè)計(jì),其屏蔽了底層的具體實(shí)現(xiàn),用戶只需指定使用的無線網(wǎng)卡的驅(qū)動程序名及型號即可調(diào)用。用戶事先設(shè)定好要發(fā)送的數(shù)據(jù)內(nèi)容(包括802.11報文頭),然后調(diào)用Lorcon庫函數(shù)即可。
  由于使用Lorcon庫函數(shù),發(fā)送時未提供發(fā)送確認(rèn)機(jī)制,當(dāng)同一信道中發(fā)生沖突時,會出現(xiàn)發(fā)送數(shù)據(jù)包不成功的情況,文中采用了在1塊無線網(wǎng)卡上發(fā)送無線數(shù)據(jù)包同時通過另一塊無線網(wǎng)卡監(jiān)聽的方法,如果監(jiān)聽接收到此數(shù)據(jù)包,表示此數(shù)據(jù)已發(fā)送成功;如果在規(guī)定時間內(nèi)未接收到此數(shù)據(jù)包表示發(fā)送失敗,則重新發(fā)送。
3.4 網(wǎng)絡(luò)適配模塊
  網(wǎng)絡(luò)適配模塊提供對無線網(wǎng)卡的驅(qū)動支持和工作模式設(shè)置。
  無線網(wǎng)卡有多種工作模式,本文中終端需要使用正常模式和監(jiān)聽模式(monitor模式)。在正常模式下,網(wǎng)卡工作在非偵聽狀態(tài),只會接收到發(fā)給自己的數(shù)據(jù)包和廣播包,而丟棄其他包。在監(jiān)聽模式下,網(wǎng)卡就可以接收其設(shè)定工作信道(channel)上的所有數(shù)據(jù)包。
  本文需要使1塊無線網(wǎng)卡工作在監(jiān)聽模式,采用與所使用無線網(wǎng)卡芯片相配套的無線網(wǎng)卡驅(qū)動madwifi-ng 0.9.4。安裝驅(qū)動后,可以使用wlanconfig命令設(shè)置無線網(wǎng)卡為監(jiān)聽模式。
4 系統(tǒng)測試
  因終端在提供主動分析支持時,也要執(zhí)行提供被動分析支持時所要執(zhí)行的操作,本文以一個主動測試用例為例,對終端系統(tǒng)能否正常工作進(jìn)行測試。
4.1 認(rèn)證請求洪泛攻擊測試用例原理
  當(dāng)無線設(shè)備發(fā)送了一個認(rèn)證請求給無線訪問點(diǎn)(AP)而又未進(jìn)行連接之前,無線訪問點(diǎn)必須保持這個無線設(shè)備在已認(rèn)證、未連接狀態(tài),等待該無線設(shè)備的連接請求。攻擊者偽造大量的無線設(shè)備向無線訪問點(diǎn)發(fā)送認(rèn)證請求,使無線訪問點(diǎn)沒有能力接收更多其他無線設(shè)備的請求。此時,則表示此次主動攻擊測試成功,被測無線訪問點(diǎn)不具備防御認(rèn)證請求洪泛攻擊(Authentication Frame Flood)的能力。
4.2 測試環(huán)境
  待測無線訪問點(diǎn)(AP)的MAC地址為:3e.d4.37.85.
64.33,無線終端IP地址為:192.168.1.43。
4.3 測試結(jié)果
  終端首先按照主控端測試腳本組成攻擊數(shù)據(jù)包,然后進(jìn)行洪泛攻擊待測無線訪問點(diǎn),最后檢查攻擊結(jié)果,顯示攻擊成功,表示被測無線訪問點(diǎn)不具備防備認(rèn)證請求洪泛攻擊能力。
  本文設(shè)計(jì)實(shí)現(xiàn)了基于PowerPC的無線局域網(wǎng)安全測試終端。實(shí)現(xiàn)了對安全分析系統(tǒng)的主動分析與被動分析模塊的支持,從而能夠提前檢測到被測目標(biāo)是否存在安全漏洞,防范多種針對無線局域網(wǎng)的攻擊并進(jìn)行相應(yīng)處理。終端可通過修改測試支撐命令庫而進(jìn)行擴(kuò)展。此外,終端還提供了對多種協(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.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。