新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 無線局域網(wǎng)安全分析終端的設(shè)計(jì)與實(shí)現(xiàn)

無線局域網(wǎng)安全分析終端的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2009-06-17 來源:網(wǎng)絡(luò) 收藏

  主動(dòng)/被動(dòng)接口模塊由Tcl擴(kuò)展命令來構(gòu)建。被動(dòng)接口模塊和主動(dòng)接口模塊數(shù)據(jù)包的發(fā)送和定制捕獲,以及對(duì)分析系統(tǒng)中的被動(dòng)分析和主動(dòng)分析予以支持。
3.2 網(wǎng)絡(luò)操作命令支撐庫
  分析提供以下兩類低層網(wǎng)絡(luò)操作命令:
  (1) 網(wǎng)絡(luò)通信支撐命令。包括有線口和無線口的網(wǎng)絡(luò)通信。
  有線口網(wǎng)絡(luò)操作命令:它提供了一組訪問數(shù)據(jù)鏈路層socket的命令,包括socket的創(chuàng)建以及通過socket進(jìn)行數(shù)據(jù)包發(fā)送和接收。
  無線口網(wǎng)絡(luò)操作命令:數(shù)據(jù)包的定制發(fā)送或捕獲以及設(shè)置網(wǎng)卡的工作模式和工作信道等。
  (2)協(xié)議報(bào)文編、解碼命令。在被動(dòng)分析模塊和主動(dòng)分析模塊中,需要對(duì)相關(guān)頭部域進(jìn)行解析或重組,以過濾報(bào)文或定制頭部域的功能,這就需要編寫報(bào)文編、解碼命令。
3.3 被動(dòng)分析接口模塊
  被動(dòng)分析是基于捕獲的數(shù)據(jù)包,因此捕獲數(shù)據(jù)包是該模塊實(shí)現(xiàn)的基礎(chǔ)。從協(xié)議分析的角度來檢測(cè)非法入侵和攻擊,需要將捕獲的數(shù)據(jù)包發(fā)往主控節(jié)點(diǎn)。每個(gè)分析都將大量的報(bào)文發(fā)送主控節(jié)點(diǎn),為了減輕主控節(jié)點(diǎn)處理報(bào)文的壓力,安全分析將根據(jù)主控節(jié)點(diǎn)的需要過濾掉部分報(bào)文。終端的被動(dòng)分析接口模塊就是實(shí)現(xiàn)這一功能的。
3.3.1 捕獲WLAN數(shù)據(jù)包的實(shí)現(xiàn)
  無線網(wǎng)卡有兩種工作模式:正常模式和監(jiān)聽模式。在正常模式下,網(wǎng)卡工作在非偵聽狀態(tài),只會(huì)接收到發(fā)給自己的數(shù)據(jù)包和廣播包,而丟棄其他包。如果把網(wǎng)卡設(shè)置為監(jiān)聽模式,則可使網(wǎng)卡工作在偵聽狀態(tài)時(shí),就可以接收某一信道上的所有數(shù)據(jù)包。為了實(shí)現(xiàn)程序的可移植性,本文使用Libpcap函數(shù)庫捕獲數(shù)據(jù)包。
  用Libpcap捕獲的數(shù)據(jù)包中,包含Prism頭或者Radiotap頭部。這是網(wǎng)卡添加在802.11MAC頭部前的數(shù)據(jù),它記錄了信號(hào)強(qiáng)度、噪聲強(qiáng)度和傳輸速率等物理層信息。由于Radiotap頭部比Prism頭部更能靈活地表達(dá)捕獲幀的物理層信息,所以本文選擇Radiotap頭部來表達(dá)。
3.3.2 被動(dòng)分析接口模塊的實(shí)現(xiàn)
  程序的難點(diǎn)是防止出現(xiàn)丟包現(xiàn)象。當(dāng)某一信道上的負(fù)載很大時(shí),受到處理速度的限制,將不能捕獲到該信道上的每一個(gè)報(bào)文,即出現(xiàn)丟包現(xiàn)象。
  為了解決該問題,本文使用多線程并發(fā)執(zhí)行,主線程用來處理捕獲到的數(shù)據(jù)包;子線程1用來不間斷地捕獲無線數(shù)據(jù)包;子線程2與主控機(jī)交互,實(shí)現(xiàn)過濾規(guī)則的改變。同時(shí),還引入了先入先出的隊(duì)列來緩存接收到的數(shù)據(jù)報(bào)文。在筆者搭建的環(huán)境中,當(dāng)某一信道上的負(fù)載達(dá)到24 Mb/s、將隊(duì)列長(zhǎng)度設(shè)為500時(shí),就能很好地解決這一問題。
  為了實(shí)現(xiàn)隊(duì)列操作的同步,本文使用信號(hào)量hAccess和hRecive,當(dāng)子線程1接收到報(bào)文,并將報(bào)文存放到隊(duì)列之后,將釋放信號(hào)量hRecive,通知主線程從隊(duì)列中提取報(bào)文來處理。主線程提取出報(bào)文后,釋放信號(hào)量hAccess,通知子線程1繼續(xù)接收數(shù)據(jù)包。
  子線程2接收主控節(jié)點(diǎn)發(fā)送來的配置文件,并且執(zhí)行該文件。配置文件的主要作用就是設(shè)置全局變量。在過濾前,主線程都重新獲取全局變量的值,從而設(shè)定主線程的包過濾規(guī)則。采用的過濾規(guī)則主要有源和目的MAC地址過濾以及序列號(hào)過濾等。主線程、子線程1、子線程2的流程圖分別如圖4、圖5、圖6所示。

本文引用地址:http://m.butianyuan.cn/article/152462.htm

3.4 主動(dòng)分析接口模塊

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉