張雪亞
(寶雞文理學(xué)院計(jì)算機(jī)學(xué)院 寶雞 721016)
隨著“移動(dòng)互聯(lián)”技術(shù)的發(fā)展和迅速普及,無(wú)線局域網(wǎng)得到了廣泛建設(shè)和使用。因其可移動(dòng)性的特點(diǎn)和方便靈活的接入屬性,使無(wú)線局域網(wǎng)在各種場(chǎng)景(企事業(yè)單位、大型場(chǎng)館、科研院所、商場(chǎng)、家庭等)中得到了廣泛應(yīng)用。但是無(wú)線網(wǎng)絡(luò)本身固有的網(wǎng)絡(luò)安全漏洞和特有的開放性,使得無(wú)線局網(wǎng)不但受到傳統(tǒng)網(wǎng)絡(luò)安全問題的威脅,還面臨基于802.11系列無(wú)線通信標(biāo)準(zhǔn)漏洞的攻擊和網(wǎng)絡(luò)欺騙[1~2]。目前已經(jīng)針對(duì)無(wú)線局域網(wǎng),國(guó)內(nèi)外已研究提出了各種針對(duì)性的網(wǎng)絡(luò)安全應(yīng)對(duì)策略,但是對(duì)于非法鏈接的識(shí)別和檢測(cè)乃至阻斷,都缺乏行之有效的方法。
針對(duì)該問題,研究并提出了一種基于媒體訪問控制,或稱為物理地址、硬件地址(Media Access Control,MAC)幀序列編號(hào)的非法無(wú)線連接識(shí)別方法。實(shí)驗(yàn)證明,該方法可以準(zhǔn)確地識(shí)別建立非法連接的一個(gè)或多個(gè)假冒設(shè)備,為后續(xù)進(jìn)一步實(shí)施連接“阻斷”打下基礎(chǔ)。
一個(gè)無(wú)線局域網(wǎng)主要由4 部分組成,它們分別是傳輸線(Distribution System),發(fā)射接收裝置(Transmitting and receiving device),工作站(Station,STA)和接入節(jié)點(diǎn)(Access Point,AP)[3],網(wǎng)絡(luò)基本組成如圖1所示。
由圖可見,通過無(wú)線介質(zhì)連接、形成無(wú)線連接的兩個(gè)收發(fā)基本環(huán)節(jié)即為STA 和AP。當(dāng)其中一方為所謂“非法”設(shè)備時(shí),此時(shí)所形成的連接就是“非法無(wú)線連接”[4]。非法無(wú)線設(shè)備是指沒有經(jīng)過認(rèn)證系統(tǒng)驗(yàn)證的設(shè)備,當(dāng)這些設(shè)備接入無(wú)線局域網(wǎng)后,會(huì)給整個(gè)網(wǎng)絡(luò)帶來很大的安全隱患。
常見的非法無(wú)線設(shè)備可以分為STA和AP兩大類[5~6]:
1)非法STA
(1)個(gè)人無(wú)線設(shè)備,由內(nèi)部人員帶入的諸如只能智能手機(jī)、可無(wú)線上網(wǎng)的筆記本電腦、平板電腦等,應(yīng)沒有經(jīng)過檢測(cè)和授權(quán),所以會(huì)攜帶各種木馬病毒,私自接入會(huì)造成網(wǎng)絡(luò)安全威脅。
(2)假冒STA,被攻擊者偽裝成與某一合法STA具有相同MAC信息的工作站。
2)非法AP
(1)外部AP,由外部人員設(shè)置的提供未知網(wǎng)絡(luò)接入的AP,可能安全,也可能為“釣魚”AP。
(2)個(gè)人AP,由個(gè)人出于某種用途設(shè)置的未取得合法認(rèn)證的AP,此種AP 因?yàn)椴皇鼙Wo(hù),所以極易受到攻擊并成為“肉雞”AP。
(3)假冒AP,被攻擊者偽裝成與某一合法AP具有相同的身份(相同的SSID和MAC)。相對(duì)于其他非法AP,這種假冒AP 威脅性更大,也最難識(shí)別和阻斷隔離。
以上提到的這些非法無(wú)線設(shè)備一旦成為局域網(wǎng)連接的一方,就會(huì)給整個(gè)網(wǎng)絡(luò)安全造成很大影響,是必須予以識(shí)別,并加以“阻斷隔離”處理的。
如前文所述,非法無(wú)線連接是基于非法設(shè)備的,所以識(shí)別未經(jīng)驗(yàn)證和授權(quán)的非法設(shè)備成為主要手段?;咀R(shí)別(過濾)為檢查授權(quán)AP或者STA的MAC 地址列表+檢查允許的SSID+檢查廠商,識(shí)別過程如圖2所示。
圖2 非法設(shè)備的初步識(shí)別[7]
通過獲取目標(biāo)連接設(shè)備的無(wú)線MAC,讀出其中包含的收發(fā)MAC 地址和SSID,經(jīng)過如圖2 所示的過濾過程,可識(shí)別出非法設(shè)備。但是,這種基于MAC和SSID特征的非法設(shè)備識(shí)別方法對(duì)假冒合法驗(yàn)證信息的AP 和STA 是不起作用的,所以必須加以完善,尋找新的特征實(shí)施進(jìn)一步過濾。
一個(gè)典型的MAC地址幀結(jié)構(gòu)如圖3所示,其中在Address 3(第三地址位)后為所謂的“序列控制”(Seq Ctrl),長(zhǎng)度為2 個(gè)字節(jié)(16bit)。在這16 位中,前4 位稱為片段編號(hào)(Fragment Number),后12 位為序列編號(hào)(Sequence Number)[9]。12 位序列編號(hào)從0 開始,計(jì)數(shù)規(guī)則是“幀號(hào)mod 4096”。如果幀數(shù)據(jù)屬于同一報(bào)文包,則它們的片段編號(hào)相同,而序列編號(hào)從0開始每次加1。設(shè)計(jì)“序列控制”的目的是將分散的片段重新排序組成完整的幀,如出現(xiàn)重復(fù)發(fā)送,則丟棄。
圖3 MAC地址中的“序列控制”[8]
基于這樣的設(shè)計(jì),則來自同一發(fā)射MAC 地址的若干幀,它們的序列編號(hào)應(yīng)該遵循“單調(diào)遞增,差值為1”的規(guī)律。如果截取到的幀序列編號(hào)混亂,就可說明這些幀的來源不止一個(gè),間接可以判斷存在“假冒AP”或者“假冒STA”。但是實(shí)際無(wú)線傳送都會(huì)出現(xiàn)輸出延時(shí),也就是說真實(shí)AP 或者STA 發(fā)送的幀也會(huì)出現(xiàn)序列號(hào)混亂的情況,況且在傳輸中如果出現(xiàn)“丟包”,還會(huì)重新傳輸。此外,序列編號(hào)需要對(duì)4096 取模,這就意味著4095 后不會(huì)出現(xiàn)4096,而是跳轉(zhuǎn)到0。那么“單調(diào)遞增,差值為1”的規(guī)律無(wú)法直接用來濾除非法設(shè)備。
基于以上的分析思路,在一系列實(shí)驗(yàn)的基礎(chǔ)上,本文提出了一種改進(jìn)的基于MAC 幀序列編號(hào)的非法無(wú)線設(shè)備鑒別方法。
定義式(1):
說明:
Xi、Xi-1為來自同一MAC的相鄰幀(也可以寫為“ Xi+1-Xi”);?為相鄰幀的序列編號(hào)差值。
式(1)定義了相鄰幀的序列編號(hào)差值,是判斷假冒AP 或STA 的主要計(jì)算指標(biāo)。舉例說明其含義:當(dāng)Xi=9,Xi-1=2,此時(shí)Xi>Xi-1,?=7 即為兩者差值;當(dāng)Xi=3,Xi-1=4091,此時(shí)Xi<Xi-1,取模之后?=8 也為兩者差值。
定義式(2):
說明:
式(2)作為式(1)的補(bǔ)充,或者稱為“修正”。這樣設(shè)計(jì)的原因是假設(shè)所有根據(jù)式(1)計(jì)算出來的?≥4093 都來源于順序打亂的幀,將此?根據(jù)式(2)處理為負(fù)值進(jìn)行分析計(jì)算。需要特別說明的是,“4093”這個(gè)閾值是根據(jù)實(shí)驗(yàn)結(jié)果確定的。
為了研究真實(shí)的傳送情況,在實(shí)驗(yàn)室的空間環(huán)境中搭建了一組可以正常連接的AP 和STA,距離約40m左右。中間設(shè)置監(jiān)聽裝置(具有無(wú)線網(wǎng)卡的采集終端),可以不間斷采集傳送的幀的MAC 信息。獲取的發(fā)自STA 的有效幀數(shù)共15000 個(gè),然后對(duì)相鄰幀根據(jù)公式計(jì)算其序列編碼差值?,分布情況匯總分析如圖4所示。
圖4 發(fā)送自STC的幀編碼差值?的統(tǒng)計(jì)特征情況
由圖可見,大多數(shù)(約為94.31%)的?值都基本落在0、1、2 上,由此可知采集到的絕大多數(shù)的相鄰幀的序列編號(hào)都符合“遞增其加一”的規(guī)律。同樣方法,可以獲取來自AP的有效幀信息,同樣選取15000個(gè)采樣點(diǎn),計(jì)算?值,分布情況如圖5所示。
圖5 發(fā)送自AP的幀編碼差值?的統(tǒng)計(jì)特征情況
與前面情況類似,?=1的情況占了86.04%,是絕大多數(shù);大于1 的情況存在,但相對(duì)來說所占比例很低(這也與采集設(shè)備的數(shù)據(jù)采集方法有限,甚至存在遺漏有關(guān))。最大的不同之處在于出現(xiàn)了?=-1,-2 的情況,所占比例雖然不大(分別為1.67%和1.7%),但值得仔細(xì)研究。?為負(fù)說明相鄰幀的順序發(fā)生顛倒,即出現(xiàn)了所謂的“傳輸亂序”。仔細(xì)分析發(fā)現(xiàn),當(dāng)?為負(fù)時(shí),Xi-1幀的類型比較特別,屬于“管理幀”[10],一般為兩種情況:信標(biāo)幀(beacon frame),此為AP 向外廣播自己身份的信息幀,覆蓋到的STA 可以通過掃描獲取信息;探測(cè)響應(yīng)幀(probe response frame),此為AP 對(duì)STA 掃描的主動(dòng)應(yīng)答信息。無(wú)論是信標(biāo)幀還是探測(cè)響應(yīng)幀都存在一個(gè)隨機(jī)發(fā)送時(shí)機(jī)的問題,尤其是信標(biāo)幀屬于廣播信息,要按一定周期(頻率)反復(fù)發(fā)送,因此均有可能隨機(jī)插入到正常順序(單調(diào)遞增1)的數(shù)據(jù)幀中去,造成?為負(fù)(傳輸亂序)的情況[11]。
在無(wú)假冒AP 或STA 的理想實(shí)驗(yàn)環(huán)境下,分析上述實(shí)驗(yàn)過程可知:
1)絕大多數(shù)幀傳輸是正常有序的(?=1);
2)采集設(shè)備會(huì)出現(xiàn)數(shù)據(jù)遺漏情況(?=2);
3)采集設(shè)備會(huì)采集到因各種原因重新傳送的幀(?=0);
4)管理幀的出現(xiàn)會(huì)導(dǎo)致“傳輸亂序”的產(chǎn)生(?=-1,-2),但是比例不大。
通過上述實(shí)驗(yàn),明確了幾種正常幀傳送的情況,在此基礎(chǔ)上,提出一種改進(jìn)的基于MAC 幀序列編號(hào)的假冒設(shè)備(AP 或STA)識(shí)別方法。在逐步鑒別過程中,需要對(duì)以下三種情況做出判斷并做出相應(yīng)處理。
情況1:正常幀
當(dāng)?=1 時(shí)屬于正常幀,發(fā)送和接收的幀序列編號(hào)單調(diào)遞增。但從以上實(shí)驗(yàn)也能看出,由于采集存在遺漏,會(huì)造成“跳幀”[12],也就是出現(xiàn)?=2 的情況,這種可能性也較高,也屬于正常幀。所以在設(shè)計(jì)策略時(shí)可以認(rèn)為如果?∈[1,2],則認(rèn)為編號(hào)正常,判為正常幀。
情況2:重傳幀
如果計(jì)算出的?=0,也就是采集到的幀序列編號(hào)與其相鄰的編號(hào)相同,即出現(xiàn)“重傳幀”[13];如果?為負(fù),則有可能是因?yàn)楣芾韼膹V播作用使得“傳輸亂序”,也有可能為假冒AP。所以在設(shè)計(jì)策略時(shí)可以認(rèn)為?∈[-3,0],當(dāng)前幀可能為重傳幀,需要進(jìn)一步判斷。進(jìn)一步判斷當(dāng)前幀的屬性,如果為數(shù)據(jù)幀且?=0,則確實(shí)為重傳幀;如果?為負(fù),則說明出現(xiàn)亂序,有假冒設(shè)備存在的可能性。過濾的方法是判斷前一幀是否為“信標(biāo)幀”或“探測(cè)響應(yīng)幀”等管理幀,如果是則為正常情況,如果不是,則判為假冒設(shè)備。
情況3:異常幀
排除以上討論的正常情況,當(dāng)?∈[3,4902]時(shí),均屬于編號(hào)異常情況。但是有一種情況必須予以排除才能判為假冒設(shè)備,那就是當(dāng)設(shè)備短暫故障恢復(fù)(或者主動(dòng)切換信道)后,重新連接時(shí)會(huì)重置幀編號(hào)數(shù)值[14],所以當(dāng)編號(hào)異常出現(xiàn)后,還要繼續(xù)觀察其后續(xù)一段時(shí)間(連續(xù)相鄰的10 個(gè)幀左右)的幀序列編號(hào)后在做最終判斷。具體判斷過程設(shè)計(jì)下文會(huì)做詳細(xì)說明。
完整的基于MAC 幀序列編號(hào)的假冒設(shè)備識(shí)別過程如圖6所示,分為9個(gè)步驟,詳細(xì)說明如下。
1)定義新采集到幀為N(new one),得到其MAC 地址,判斷該MAC 對(duì)應(yīng)的信號(hào)源設(shè)備是否已經(jīng)被標(biāo)記為“等待過濾”狀態(tài),如果是則直接跳轉(zhuǎn)到步驟8),否則按順序執(zhí)行步驟2)。
2)從采集設(shè)備中調(diào)取來自同一信源的前一幀,在這里定義為L(zhǎng)(last one)。根據(jù)公式計(jì)算?值,如果?∈[1,2](情況1),則按序執(zhí)行步驟3);如果?∈[-3,0](情況2),則跳轉(zhuǎn)執(zhí)行步驟4);如果?∈[3,4092](情況3),則跳轉(zhuǎn)執(zhí)行步驟7)。
3)?∈[1,2],則判斷為正常情況,判斷結(jié)果為無(wú)假冒設(shè)備。在結(jié)束之前,將N值賦給L,供下一次判斷使用。
4)?∈[-3,0],需要首先判斷?是否為0,即是否存在“重復(fù)幀”。方法是檢測(cè)設(shè)備上是否有與當(dāng)前幀編號(hào)相同的幀數(shù)據(jù),如果有,則執(zhí)行步驟5),如果沒有,則跳轉(zhuǎn)至步驟6)。
5)詳細(xì)比對(duì)兩個(gè)編號(hào)相同的幀的內(nèi)容是否完全相同,若相同,則可判斷為“重復(fù)幀”,屬于正常情況,判斷結(jié)果為非假冒設(shè)備。在結(jié)束此次判斷之前,同樣將N賦給L。若不同,則可以肯定其中一個(gè)幀來自假冒設(shè)備,判斷結(jié)果為檢出假冒設(shè)備,判斷結(jié)束。
6)?∈[-3,0]的第二種情況,判斷判斷?是否為負(fù),即是否由管理幀(信標(biāo)幀或探測(cè)響應(yīng)幀)造成的“亂序”。方法是根據(jù)管理幀特征判斷前一幀L,如果是,則屬于正常情況,未檢出假冒設(shè)備,令L=N后結(jié)束;如果不是管理幀,則可以肯定出現(xiàn)假冒設(shè)備,判斷結(jié)束。
圖6 基于MAC幀序列編號(hào)的假冒無(wú)線設(shè)備識(shí)別方法
7)?∈[3,4092]的異常編號(hào)情況,如前文所述,在判為假冒設(shè)備之前需要排除設(shè)備短暫故障恢復(fù)(或者主動(dòng)切換信道)的情況。方法是將當(dāng)前幀標(biāo)記為“等待過濾”狀態(tài),將N 標(biāo)記為DN,定義計(jì)數(shù)器初始值為0,結(jié)束第一次循環(huán)判斷。
8)根據(jù)公式計(jì)算?NL(N 與L 的編號(hào)差值)和?DNL(DN 與L 的編號(hào)差值)并比較,如果?NL<?DNL,說明“亂序”,識(shí)別到假冒設(shè)備,判斷結(jié)束;如果?NL≥?DNL,則繼續(xù)循環(huán)判斷,執(zhí)行步驟9)。
9)計(jì)數(shù)器自加1后,判斷是否大于等于9,如果是,則說明在首次發(fā)現(xiàn)編號(hào)異常后連續(xù)觀察共10個(gè)?值,均未發(fā)現(xiàn)異常,可以認(rèn)為是設(shè)備故障(或者為信道切換)造成“亂序”,屬于正常情況,判斷結(jié)果為無(wú)假冒設(shè)備。在結(jié)束前,除了令L=N 之外,還要去除設(shè)備的“等待過濾”標(biāo)簽,判斷結(jié)束。如果計(jì)數(shù)器值小于9,則說明循環(huán)判斷過程還未結(jié)束,設(shè)備繼續(xù)保持“等待過濾”標(biāo)簽,當(dāng)前循環(huán)結(jié)束,返回進(jìn)行下次判斷,直至計(jì)數(shù)器值等于9才結(jié)束判斷。
上文詳細(xì)的從設(shè)計(jì)思路、試驗(yàn)過程、結(jié)果分析、策略制定等幾個(gè)方面闡述了基于MAC 幀序編號(hào)的鑒別假冒設(shè)備的方法,是本文開始提到的基本識(shí)別方法的有力補(bǔ)充和完善。完成了基本信息的分步過濾(“是否授權(quán)”、“合法SSID”、“合法廠商”三步)[15],再根據(jù)上述方法進(jìn)一步識(shí)別和判斷,大大提高了判斷識(shí)別假冒設(shè)備的準(zhǔn)確性,也為后面對(duì)非法連接實(shí)施“阻斷”打下基礎(chǔ)。