張雪亞
(寶雞文理學院計算機學院 寶雞 721016)
隨著“移動互聯”技術的發展和迅速普及,無線局域網得到了廣泛建設和使用。因其可移動性的特點和方便靈活的接入屬性,使無線局域網在各種場景(企事業單位、大型場館、科研院所、商場、家庭等)中得到了廣泛應用。但是無線網絡本身固有的網絡安全漏洞和特有的開放性,使得無線局網不但受到傳統網絡安全問題的威脅,還面臨基于802.11系列無線通信標準漏洞的攻擊和網絡欺騙[1~2]。目前已經針對無線局域網,國內外已研究提出了各種針對性的網絡安全應對策略,但是對于非法鏈接的識別和檢測乃至阻斷,都缺乏行之有效的方法。
針對該問題,研究并提出了一種基于媒體訪問控制,或稱為物理地址、硬件地址(Media Access Control,MAC)幀序列編號的非法無線連接識別方法。實驗證明,該方法可以準確地識別建立非法連接的一個或多個假冒設備,為后續進一步實施連接“阻斷”打下基礎。
一個無線局域網主要由4 部分組成,它們分別是傳輸線(Distribution System),發射接收裝置(Transmitting and receiving device),工作站(Station,STA)和接入節點(Access Point,AP)[3],網絡基本組成如圖1所示。
由圖可見,通過無線介質連接、形成無線連接的兩個收發基本環節即為STA 和AP。當其中一方為所謂“非法”設備時,此時所形成的連接就是“非法無線連接”[4]。非法無線設備是指沒有經過認證系統驗證的設備,當這些設備接入無線局域網后,會給整個網絡帶來很大的安全隱患。
常見的非法無線設備可以分為STA和AP兩大類[5~6]:
1)非法STA
(1)個人無線設備,由內部人員帶入的諸如只能智能手機、可無線上網的筆記本電腦、平板電腦等,應沒有經過檢測和授權,所以會攜帶各種木馬病毒,私自接入會造成網絡安全威脅。
(2)假冒STA,被攻擊者偽裝成與某一合法STA具有相同MAC信息的工作站。
2)非法AP
(1)外部AP,由外部人員設置的提供未知網絡接入的AP,可能安全,也可能為“釣魚”AP。
(2)個人AP,由個人出于某種用途設置的未取得合法認證的AP,此種AP 因為不受保護,所以極易受到攻擊并成為“肉雞”AP。
(3)假冒AP,被攻擊者偽裝成與某一合法AP具有相同的身份(相同的SSID和MAC)。相對于其他非法AP,這種假冒AP 威脅性更大,也最難識別和阻斷隔離。
以上提到的這些非法無線設備一旦成為局域網連接的一方,就會給整個網絡安全造成很大影響,是必須予以識別,并加以“阻斷隔離”處理的。
如前文所述,非法無線連接是基于非法設備的,所以識別未經驗證和授權的非法設備成為主要手段。基本識別(過濾)為檢查授權AP或者STA的MAC 地址列表+檢查允許的SSID+檢查廠商,識別過程如圖2所示。

圖2 非法設備的初步識別[7]
通過獲取目標連接設備的無線MAC,讀出其中包含的收發MAC 地址和SSID,經過如圖2 所示的過濾過程,可識別出非法設備。但是,這種基于MAC和SSID特征的非法設備識別方法對假冒合法驗證信息的AP 和STA 是不起作用的,所以必須加以完善,尋找新的特征實施進一步過濾。
一個典型的MAC地址幀結構如圖3所示,其中在Address 3(第三地址位)后為所謂的“序列控制”(Seq Ctrl),長度為2 個字節(16bit)。在這16 位中,前4 位稱為片段編號(Fragment Number),后12 位為序列編號(Sequence Number)[9]。12 位序列編號從0 開始,計數規則是“幀號mod 4096”。如果幀數據屬于同一報文包,則它們的片段編號相同,而序列編號從0開始每次加1。設計“序列控制”的目的是將分散的片段重新排序組成完整的幀,如出現重復發送,則丟棄。

圖3 MAC地址中的“序列控制”[8]
基于這樣的設計,則來自同一發射MAC 地址的若干幀,它們的序列編號應該遵循“單調遞增,差值為1”的規律。如果截取到的幀序列編號混亂,就可說明這些幀的來源不止一個,間接可以判斷存在“假冒AP”或者“假冒STA”。但是實際無線傳送都會出現輸出延時,也就是說真實AP 或者STA 發送的幀也會出現序列號混亂的情況,況且在傳輸中如果出現“丟包”,還會重新傳輸。此外,序列編號需要對4096 取模,這就意味著4095 后不會出現4096,而是跳轉到0。那么“單調遞增,差值為1”的規律無法直接用來濾除非法設備。
基于以上的分析思路,在一系列實驗的基礎上,本文提出了一種改進的基于MAC 幀序列編號的非法無線設備鑒別方法。
定義式(1):
說明:
Xi、Xi-1為來自同一MAC的相鄰幀(也可以寫為“ Xi+1-Xi”);?為相鄰幀的序列編號差值。
式(1)定義了相鄰幀的序列編號差值,是判斷假冒AP 或STA 的主要計算指標。舉例說明其含義:當Xi=9,Xi-1=2,此時Xi>Xi-1,?=7 即為兩者差值;當Xi=3,Xi-1=4091,此時Xi<Xi-1,取模之后?=8 也為兩者差值。
定義式(2):

說明:
式(2)作為式(1)的補充,或者稱為“修正”。這樣設計的原因是假設所有根據式(1)計算出來的?≥4093 都來源于順序打亂的幀,將此?根據式(2)處理為負值進行分析計算。需要特別說明的是,“4093”這個閾值是根據實驗結果確定的。
為了研究真實的傳送情況,在實驗室的空間環境中搭建了一組可以正常連接的AP 和STA,距離約40m左右。中間設置監聽裝置(具有無線網卡的采集終端),可以不間斷采集傳送的幀的MAC 信息。獲取的發自STA 的有效幀數共15000 個,然后對相鄰幀根據公式計算其序列編碼差值?,分布情況匯總分析如圖4所示。

圖4 發送自STC的幀編碼差值?的統計特征情況
由圖可見,大多數(約為94.31%)的?值都基本落在0、1、2 上,由此可知采集到的絕大多數的相鄰幀的序列編號都符合“遞增其加一”的規律。同樣方法,可以獲取來自AP的有效幀信息,同樣選取15000個采樣點,計算?值,分布情況如圖5所示。

圖5 發送自AP的幀編碼差值?的統計特征情況
與前面情況類似,?=1的情況占了86.04%,是絕大多數;大于1 的情況存在,但相對來說所占比例很低(這也與采集設備的數據采集方法有限,甚至存在遺漏有關)。最大的不同之處在于出現了?=-1,-2 的情況,所占比例雖然不大(分別為1.67%和1.7%),但值得仔細研究。?為負說明相鄰幀的順序發生顛倒,即出現了所謂的“傳輸亂序”。仔細分析發現,當?為負時,Xi-1幀的類型比較特別,屬于“管理幀”[10],一般為兩種情況:信標幀(beacon frame),此為AP 向外廣播自己身份的信息幀,覆蓋到的STA 可以通過掃描獲取信息;探測響應幀(probe response frame),此為AP 對STA 掃描的主動應答信息。無論是信標幀還是探測響應幀都存在一個隨機發送時機的問題,尤其是信標幀屬于廣播信息,要按一定周期(頻率)反復發送,因此均有可能隨機插入到正常順序(單調遞增1)的數據幀中去,造成?為負(傳輸亂序)的情況[11]。
在無假冒AP 或STA 的理想實驗環境下,分析上述實驗過程可知:
1)絕大多數幀傳輸是正常有序的(?=1);
2)采集設備會出現數據遺漏情況(?=2);
3)采集設備會采集到因各種原因重新傳送的幀(?=0);
4)管理幀的出現會導致“傳輸亂序”的產生(?=-1,-2),但是比例不大。
通過上述實驗,明確了幾種正常幀傳送的情況,在此基礎上,提出一種改進的基于MAC 幀序列編號的假冒設備(AP 或STA)識別方法。在逐步鑒別過程中,需要對以下三種情況做出判斷并做出相應處理。
情況1:正常幀
當?=1 時屬于正常幀,發送和接收的幀序列編號單調遞增。但從以上實驗也能看出,由于采集存在遺漏,會造成“跳幀”[12],也就是出現?=2 的情況,這種可能性也較高,也屬于正常幀。所以在設計策略時可以認為如果?∈[1,2],則認為編號正常,判為正常幀。
情況2:重傳幀
如果計算出的?=0,也就是采集到的幀序列編號與其相鄰的編號相同,即出現“重傳幀”[13];如果?為負,則有可能是因為管理幀的廣播作用使得“傳輸亂序”,也有可能為假冒AP。所以在設計策略時可以認為?∈[-3,0],當前幀可能為重傳幀,需要進一步判斷。進一步判斷當前幀的屬性,如果為數據幀且?=0,則確實為重傳幀;如果?為負,則說明出現亂序,有假冒設備存在的可能性。過濾的方法是判斷前一幀是否為“信標幀”或“探測響應幀”等管理幀,如果是則為正常情況,如果不是,則判為假冒設備。
情況3:異常幀
排除以上討論的正常情況,當?∈[3,4902]時,均屬于編號異常情況。但是有一種情況必須予以排除才能判為假冒設備,那就是當設備短暫故障恢復(或者主動切換信道)后,重新連接時會重置幀編號數值[14],所以當編號異常出現后,還要繼續觀察其后續一段時間(連續相鄰的10 個幀左右)的幀序列編號后在做最終判斷。具體判斷過程設計下文會做詳細說明。
完整的基于MAC 幀序列編號的假冒設備識別過程如圖6所示,分為9個步驟,詳細說明如下。
1)定義新采集到幀為N(new one),得到其MAC 地址,判斷該MAC 對應的信號源設備是否已經被標記為“等待過濾”狀態,如果是則直接跳轉到步驟8),否則按順序執行步驟2)。
2)從采集設備中調取來自同一信源的前一幀,在這里定義為L(last one)。根據公式計算?值,如果?∈[1,2](情況1),則按序執行步驟3);如果?∈[-3,0](情況2),則跳轉執行步驟4);如果?∈[3,4092](情況3),則跳轉執行步驟7)。
3)?∈[1,2],則判斷為正常情況,判斷結果為無假冒設備。在結束之前,將N值賦給L,供下一次判斷使用。
4)?∈[-3,0],需要首先判斷?是否為0,即是否存在“重復幀”。方法是檢測設備上是否有與當前幀編號相同的幀數據,如果有,則執行步驟5),如果沒有,則跳轉至步驟6)。
5)詳細比對兩個編號相同的幀的內容是否完全相同,若相同,則可判斷為“重復幀”,屬于正常情況,判斷結果為非假冒設備。在結束此次判斷之前,同樣將N賦給L。若不同,則可以肯定其中一個幀來自假冒設備,判斷結果為檢出假冒設備,判斷結束。
6)?∈[-3,0]的第二種情況,判斷判斷?是否為負,即是否由管理幀(信標幀或探測響應幀)造成的“亂序”。方法是根據管理幀特征判斷前一幀L,如果是,則屬于正常情況,未檢出假冒設備,令L=N后結束;如果不是管理幀,則可以肯定出現假冒設備,判斷結束。

圖6 基于MAC幀序列編號的假冒無線設備識別方法
7)?∈[3,4092]的異常編號情況,如前文所述,在判為假冒設備之前需要排除設備短暫故障恢復(或者主動切換信道)的情況。方法是將當前幀標記為“等待過濾”狀態,將N 標記為DN,定義計數器初始值為0,結束第一次循環判斷。
8)根據公式計算?NL(N 與L 的編號差值)和?DNL(DN 與L 的編號差值)并比較,如果?NL<?DNL,說明“亂序”,識別到假冒設備,判斷結束;如果?NL≥?DNL,則繼續循環判斷,執行步驟9)。
9)計數器自加1后,判斷是否大于等于9,如果是,則說明在首次發現編號異常后連續觀察共10個?值,均未發現異常,可以認為是設備故障(或者為信道切換)造成“亂序”,屬于正常情況,判斷結果為無假冒設備。在結束前,除了令L=N 之外,還要去除設備的“等待過濾”標簽,判斷結束。如果計數器值小于9,則說明循環判斷過程還未結束,設備繼續保持“等待過濾”標簽,當前循環結束,返回進行下次判斷,直至計數器值等于9才結束判斷。
上文詳細的從設計思路、試驗過程、結果分析、策略制定等幾個方面闡述了基于MAC 幀序編號的鑒別假冒設備的方法,是本文開始提到的基本識別方法的有力補充和完善。完成了基本信息的分步過濾(“是否授權”、“合法SSID”、“合法廠商”三步)[15],再根據上述方法進一步識別和判斷,大大提高了判斷識別假冒設備的準確性,也為后面對非法連接實施“阻斷”打下基礎。