李晴,葉阿勇,姚志強(qiáng),陳愛民
(福建師范大學(xué)數(shù)學(xué)與信息學(xué)院,福建 福州 350007)
隨著無線技術(shù)的快速發(fā)展,無線局域網(wǎng)(WLAN,wireless local area network)普遍應(yīng)用于諸多領(lǐng)域和公眾場所,如機(jī)場、商場、餐廳、醫(yī)院等[1]。AP是無線局域網(wǎng)絡(luò)基礎(chǔ)設(shè)施模式不可或缺的一部分,它有效地將移動用戶與有線網(wǎng)絡(luò)進(jìn)行連接。然而,AP被廣泛使用的同時(shí)也給信息安全帶來了大量安全隱患。Sandeep[2]指出一項(xiàng)關(guān)于WLAN安全的全球調(diào)查,結(jié)果顯示,超過32%的用戶在使用公共AP時(shí)不會關(guān)注其安全問題。
由于無線信號固有的輻射性以及空間信道的開放性,公眾AP本身存在不可信的安全隱患也日益突出。RAP已被用于網(wǎng)絡(luò)嗅探攻擊和中間人攻擊等多種攻擊,嚴(yán)重威脅著公共無線網(wǎng)絡(luò)中用戶隱私安全。一方面,移動用戶的上網(wǎng)數(shù)據(jù)是經(jīng)RAP轉(zhuǎn)發(fā)到無線網(wǎng)中,用戶的賬號密碼等敏感信息存在泄露風(fēng)險(xiǎn)[3];另一方面,也暴露了位置信息,從而導(dǎo)致用戶其他隱私泄露。因此,在WLAN中對合法AP的篩選至關(guān)重要。
本文探討的RAP主要是未經(jīng)授權(quán)的AP和釣魚AP,即不是由合法運(yùn)營商或服務(wù)提供商提供的AP。本文提出了一種基于指紋的RAP檢測算法,該算法獲取本地合法AP(LAP, local legal AP)的特征,根據(jù)特征參數(shù)生成 LAP指紋,終端根據(jù)LAP指紋檢測RAP。
AirTight報(bào)告顯示了由于用戶缺乏無線網(wǎng)絡(luò)安全知識而引發(fā)的許多安全隱患[2]。而且當(dāng)前可用的AP中將近20%的AP是惡意的。攻擊者通常在無線環(huán)境中偽造RAP,用于擾亂無線網(wǎng)絡(luò)并試圖竊取敏感信息。目前的RAP檢測技術(shù)[4~8]主要包括信標(biāo)幀時(shí)鐘偏差、時(shí)序特性、無線嗅探、指紋識別等方式。
Alotaibi等[4]通過檢查每一個(gè)信標(biāo)(Beacon)幀來檢測RAP,將其值與一個(gè)閾值比較,小于該閾值的AP則被判定為RAP。Kim等[5]提出利用移動網(wǎng)絡(luò)和有線網(wǎng)絡(luò)中RTT值的不同檢測RAP,通過報(bào)文分組測量AP和后續(xù)節(jié)點(diǎn)之間的等待時(shí)間,從而獲得對應(yīng)的RTT值,而不依賴于AP或用戶授權(quán)列表的信息。即使路由跟蹤過程并不能保證找到一個(gè)合適的后繼節(jié)點(diǎn),也可測量 RTT值。Dahiya等[6]提出一種在 WLAN中自動檢測RAP的霍普菲爾德神經(jīng)網(wǎng)絡(luò)方法。Jadhav等[7]根據(jù)具有IEEE 802.11時(shí)間同步功能的時(shí)間戳計(jì)算AP信標(biāo)、探測響應(yīng)幀中的偏移間隔作為指紋,使用基于線性規(guī)劃和基于最小二乘擬合這2種方法計(jì)算信標(biāo)幀的時(shí)鐘偏移。但收集 AP數(shù)據(jù)幀的時(shí)鐘偏差需要預(yù)先建立相應(yīng)數(shù)據(jù)庫,再進(jìn)行比較,且無法有效地檢測媒體訪問控制地址欺騙。Zheng等[8]利用細(xì)粒度信道狀態(tài)信息,對RAP進(jìn)行方向確定和位置估計(jì),檢測并定位RAP。Kim等[9]為了防止客戶端中敏感數(shù)據(jù)被竊取,將收集到附近合法AP的RSS序列進(jìn)行歸一化處理,并根據(jù)預(yù)期迭代次數(shù)設(shè)定閾值,比較判斷RAP。但由于無線信號的不穩(wěn)定性且易受環(huán)境影響,如不同溫度、濕度、遮擋物都會對其造成差異,從而會造成數(shù)據(jù)不精確,影響檢測效果。
RAP的攻擊主要通過偽造大量虛假無線信號來破壞良性WLAN用戶的正常使用。若多個(gè)AP的SSID或MAC地址相同,用戶和設(shè)備本身難以判定該AP信號是否來自LAP,將造成安全威脅。
1) 安全隱患
根據(jù)RAP部署的情況不同,給用戶造成的威脅也有所不同,具體如下。
① 用戶不接入RAP
攻擊者在WLAN環(huán)境中廣播RAP信號,該RAP可以不具備完整的AP功能,此類攻擊以定位欺騙攻擊為典型。由于服務(wù)器在定位階段并未對用戶上傳的AP信息進(jìn)行合法性驗(yàn)證,攻擊者通過偽造RAP,欺騙用戶定位至特定地點(diǎn)。而基于位置的社交網(wǎng)絡(luò)將信息共享與位置相結(jié)合,用戶受到定位欺騙攻擊后發(fā)布的與位置相關(guān)的信息將造成其隱私泄露威脅。
② 用戶接入RAP
攻擊者偽造RAP并誘使用戶接入,從而進(jìn)行監(jiān)聽、嗅探用戶上網(wǎng)數(shù)據(jù)等攻擊。此類攻擊主要針對用戶接入RAP后的一系列操作,對用戶的上網(wǎng)行為和身份隱私泄露造成隱患[10,11]。例如,一些網(wǎng)站的數(shù)據(jù)傳輸方式采用明文傳輸,導(dǎo)致未加密數(shù)據(jù)在傳輸過程中完全暴露。由于無線信號的傳輸范圍有限,用戶接入某個(gè) RAP暴露了大致的位置信息。單個(gè)AP接入可初步估計(jì)用戶所在區(qū)域,多個(gè)AP接入?yún)^(qū)域的重疊部分可更精確地定位用戶。
2) RAP攻擊
終端通常會選擇信號比較強(qiáng)或者信噪比低的AP進(jìn)行連接,攻擊者可通過對LAP進(jìn)行DoS攻擊或者提供比LAP更強(qiáng)的信號,迫使無線客戶端連接到RAP。RAP攻擊通常包括以下步驟。
① 獲取無線網(wǎng)絡(luò)的密鑰。對于采用WEP或WPA認(rèn)證的無線網(wǎng)絡(luò),攻擊者可以通過無線破解工具或者采用社會工程的方法竊取目標(biāo)無線網(wǎng)絡(luò)的密鑰,并用于設(shè)置RAP密鑰。
② 偽造目標(biāo)無線網(wǎng)絡(luò)。在目標(biāo)WLAN環(huán)境附近架設(shè)一個(gè)與LAP的SSID完全一樣或極其相似的RAP。當(dāng)終端歷史連入該SSID對應(yīng)的網(wǎng)絡(luò),便會自動連接該網(wǎng)絡(luò),但由于采用相同的SSID,用戶很難辨別真?zhèn)巍?/p>
③ 干擾合法無線網(wǎng)絡(luò)。為了提高攻擊成功率,攻擊者對本地?zé)o線網(wǎng)絡(luò)進(jìn)行DoS攻擊,使其處于癱瘓狀態(tài)。這時(shí),終端會重新掃描無線網(wǎng)絡(luò),并主動連接附近信號強(qiáng)度最好的AP。
Beacon幀的 MAC頭部通常包含 Frame Control、Duration、Destination Address、Source Address、BSSID and Sequence Control這幾個(gè)部分。用于檢測RAP的AP指紋需具有不可偽造性、穩(wěn)定性和標(biāo)識性,即該指紋不能隨意被更改,不隨時(shí)間空間或其他因素?zé)o規(guī)律改變,并且能體現(xiàn)該特征是屬于 LAP的。因此本文算法用到 BI(Beacon interval)、length 和 Timestamp 這幾個(gè)字段,具體介紹如下。
1) BI字段
AP每隔一段時(shí)間就會發(fā)出一個(gè) Beacon信號,用來表示其網(wǎng)絡(luò)的存在。BI字段用于設(shè)定該信號時(shí)間間隔的時(shí)間單位,BI默認(rèn)會被設(shè)定為100個(gè)時(shí)間單位,相當(dāng)于100 ms,即LAP每0.1 s發(fā)送一次Beacon信號。
2) Length字段
Length字段存在于信息元素中,用于表示這個(gè)幀的長度,與實(shí)際幀長度相關(guān),并非自定義的。由于Beacon幀是管理幀的一種,不含交換數(shù)據(jù)信息,因此每種特定LAP的幀長度固定在某個(gè)值或某個(gè)范圍。
3) Timestamp字段
Timestamp字段可用于同步 BSS中的工作站,BSS的主計(jì)時(shí)器會定期發(fā)送目前已作用的微秒數(shù)。當(dāng)計(jì)數(shù)器達(dá)到最大值時(shí)(超過584 942年),便會從頭開始計(jì)數(shù),但很難會遇到從頭開始計(jì)數(shù)的一天,并且這個(gè)字段與BSS的工作時(shí)間相關(guān),按規(guī)律增長微秒數(shù),并不能隨意被偽造。
為了抵抗RAP攻擊引發(fā)的安全問題,本文提出一種基于指紋的RAP檢測方法,其主要思想是利用 Beacon幀參數(shù)的不可偽造性和穩(wěn)定性判斷AP的合法性。不可偽造性指對于特定服務(wù)開發(fā)商所利用和提供的 LAP具有一定的特征,且其Beacon幀的一些參數(shù)不能人為修改。穩(wěn)定性是指AP部分的Beacon幀參數(shù)不會隨著時(shí)間等其他因素而改變,或者說隨時(shí)間變化的規(guī)律相同,從而保證特征指紋的穩(wěn)定。
圖1 系統(tǒng)框架
系統(tǒng)框架如圖1所示,管理員終端在安裝配置LAP時(shí)采集其802.11幀,并構(gòu)造LAP指紋庫存儲在服務(wù)器中。用戶根據(jù)服務(wù)器發(fā)布的AP白名單,檢測其掃描到的AP中是否有RAP。RAP檢測流程分為3個(gè)階段,如圖2所示,包括指紋采集、指紋生成和檢測AP類別。每個(gè)階段采用對應(yīng)的操作和算法,并且后一個(gè)階段依賴于前一階段的結(jié)果。
管理員終端設(shè)備被動掃描監(jiān)聽其附近 LAP的廣播幀{f1, f2, …, fi, …},其中,802.11幀包含數(shù)據(jù)幀di、控制幀ci和管理幀mi,僅篩選管理幀中的Beacon幀fbi作為參考依據(jù)。由于Beacon幀是AP定期廣播以示其存在的,不需要終端與AP之間有數(shù)據(jù)交互就可以被掃描得到的,從而降低了數(shù)據(jù)采集的難度,也無需對移動終端設(shè)備再進(jìn)行修改。不同類型的802.11幀的MAC頭部不一樣,篩選管理幀mi后,再對其子層的subtype字段進(jìn)行匹配,其中,若subtype=0x08,則為Beacon幀。
本階段的主要任務(wù)包括數(shù)據(jù)預(yù)處理和訓(xùn)練學(xué)習(xí)。數(shù)據(jù)預(yù)處理需從掃描到的 Beacon幀中提取其SSID、BSSID、BI、length等字段,由于這些數(shù)據(jù)是由管理員前期LAP部署時(shí)采集生成,即可生成AP指紋索引表。另外,諸如服務(wù)商提供的AP通常具有相同SSID,若將所有的AP信息分別列為一個(gè)索引,將會增加存儲開銷,因此可根據(jù)LAP幀的特征,訓(xùn)練學(xué)習(xí)為一類LAP后形成指紋存儲在服務(wù)器中。
本階段的主要任務(wù)是根據(jù)指紋處理生成階段的AP指紋檢測待分類AP是否為RAP。移動基站面向廣大用戶且不易被攻擊,筆者認(rèn)為它是可信的,終端在接入AP前先接入移動基站獲得AP指紋。如果掃描得到的AP信息被判定為LAP,則用戶可以做后續(xù)操作(如無線定位、接入上網(wǎng)等);否則判定為RAP,上報(bào)給本地服務(wù)器。
根據(jù) AP指紋是否為服務(wù)器直接發(fā)布和應(yīng)用場景的不同,用戶終端采用的RAP檢測算法又分為集中式LAP檢測和自主式RAP檢測。
圖2 RAP檢測流程
5.4.1 集中式LAP檢測
集中式LAP檢測算法是指將AP指紋存儲在服務(wù)器中,終端工作的時(shí)候由服務(wù)器發(fā)布AP指紋,也就是說,AP指紋的更新操作由服務(wù)器完成,用戶可直接使用,對終端掃描到的AP信息進(jìn)行檢測,側(cè)重于檢測屬于AP指紋的AP。
由AP指紋生成階段可知,若SN字段為0,則為僅廣播信號的偽造AP;若BI為某個(gè)特定值a(實(shí)驗(yàn)時(shí)a=300),則為手機(jī)熱點(diǎn);若BI非常大,則為“Malformed packet”錯(cuò)誤,丟棄處理即可;若length低于某個(gè)范圍,則接入了RAP。因此,根據(jù)AP指紋,集中式LAP檢測算法偽代碼如算法1所示。
算法1 集中式LAP檢測
輸入 {fb1, fb2, … , fbm}
輸出 RAP list and LAP list
1) For i=1 to m
2) 提取SSIDi, BSSIDi, SNi, lengthi, BIi
3) If fbi.SN=0 Then
4) APi由mdk3偽造, →RAP
5) Else If fbi.BI!=100
6) If fbi.BI=a Then
7) APi是釣魚AP, →RAP
8) Else If fbi.BI>1000 Then
9) 判定為Malformed Packet
10) End If
11) Else If fbi.length < threshold Then
12) APi由 mdk3, →RAP
13) End If
14) 將fbi分類為LAP
15) End For
16) return RAP list and LAP list
5.4.2 自主式RAP檢測
自主式RAP檢測是指終端利用機(jī)器學(xué)習(xí)算法根據(jù)服務(wù)器提供的LAP列表信息訓(xùn)練AP指紋,并完成終端的RAP檢測。因此,自主式RAP檢測需要將算法嵌入終端設(shè)備中。該方法可對未知AP信息進(jìn)行分類預(yù)測,判斷其真?zhèn)?。本文選用的802.11幀參數(shù)字段具有穩(wěn)定性,即具有相對固定值或相同的變化規(guī)律,僅需要將訓(xùn)練和預(yù)測結(jié)果分為LAP和RAP這兩類;并且,由于802.11幀在傳輸過程中存在異常情況,如接收到 Malformed Packet,而SVM在松弛情況下允許存在離群值,即滿足異常點(diǎn)存在的條件。因此,選用SVM分類算法來檢測RAP,其偽代碼如算法2所示。由于數(shù)據(jù)集較小,機(jī)器學(xué)習(xí)算法執(zhí)行前需考慮十折交叉驗(yàn)證,降低采集數(shù)據(jù)過擬合現(xiàn)象。
算法2 自主式RAP檢測
輸入 {fb1, fb2, … , fbm}
輸出 RAP list and LAP list
1) For i=1 to m
2) 提取SSIDi, SNi, lengthi, BIi
3) Cross-Vlidation()
4) Train and Class
5) 利用SVM檢測分類AP
6) If APiis RAP Then
7) 忽略該幀
8) Else
9) 將 APi添入 LAP list, continue
10) End If
11) End For
12) return RAP list and LAP list
根據(jù)攻擊模型,本文部署了2種RAP攻擊,即用戶不接入的RAPA和用戶接入的 RAPB。使用具有無線功能的 Lenovo B460e筆記本和 Meizu note2智能手機(jī)開啟無線熱點(diǎn),充當(dāng)RAPB;用一臺裝有Ubuntu 15.04系統(tǒng)的筆記本廣播虛假AP信號,充當(dāng)RAPA。攻擊采用Aircrack-ng和MDK3這2種工具,利用Aircrack-ng套件中的airmon-ng工具和airodump-ng工具監(jiān)控和嗅探無線數(shù)據(jù)分組;利用MDK3的Beacon Flood Mode功能偽造AP,利用其Deauthentication/Disassociation Amok Mode功能切斷用戶與本地 AP之間的連接??蛻舳瞬捎肁irmagnet WiFi Analyzer Pro捕獲802.11幀數(shù)據(jù)。
實(shí)驗(yàn)中,使用 Python的機(jī)器學(xué)習(xí)庫 Scrikit-Learn中的 Cross-Vlidation做交叉驗(yàn)證。利用anaconda中集成的機(jī)器學(xué)習(xí)庫sklearn,實(shí)現(xiàn)對包含特征和目標(biāo)的訓(xùn)練集進(jìn)行監(jiān)督學(xué)習(xí),并通過train_test_split()功能從樣本中隨機(jī)按比例選取訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。
本文用Airmagnet WiFi Analyzer Pro篩選捕獲Beacon幀數(shù)據(jù)完成指紋采集過程。實(shí)驗(yàn)收集到幀數(shù)據(jù)中,大多數(shù)RAP的length小于150 byte,部分RAP約為200 byte,近似于LAP難以判斷。因此,單從一個(gè)參數(shù) length檢測 RAP僅能判斷部分RAP攻擊,如實(shí)驗(yàn)中用MDK3偽造的RAP。故本文用SVM算法對3種字段的AP進(jìn)行分類檢測,結(jié)果如圖 3所示??梢郧宄匕l(fā)現(xiàn),RAP被分類在相對聚集的區(qū)域,即圖中*標(biāo)識的地方。
圖3 三維字段的AP分類情況
實(shí)驗(yàn)時(shí),掃描AP信息按SSID劃分共17種LAP和57種RAP,對采集到的Beacon幀提取特征字段,并按1:3比例隨機(jī)選取部分AP信息列入表1中。由于合法AP的SN是隨時(shí)間增長的且BI為100個(gè)時(shí)間單位,而Timestamp與BSS主定時(shí)器有關(guān),因此表中僅含有的 SSID、length和number這3個(gè)易于標(biāo)識AP的信息。
表1 初始數(shù)據(jù)樣本
對于表1,RAP偽造本地LAP的SSID,則其length存在沖突,如表1的AP1和AP6;RAP偽造其他地方的LAP,則其length低于一般值,如表1的AP8、AP9和AP10,但不適用于手機(jī)熱點(diǎn)。
人工分類后獲取到包含輸入和目標(biāo)的訓(xùn)練集,作為機(jī)器學(xué)習(xí)訓(xùn)練的輸入,從而獲取到對應(yīng)的模型和AP白名單,于是終端可以對未知輸入進(jìn)行分類預(yù)測。利用sklearn庫,實(shí)現(xiàn)對包含特征和目標(biāo)的訓(xùn)練集進(jìn)行監(jiān)督學(xué)習(xí),采用SVM學(xué)習(xí)一個(gè)模型,用于AP分類和預(yù)測,根據(jù)掃描Beacon幀時(shí)間進(jìn)行RAP的檢測,其準(zhǔn)確率如表2所示。
考慮到不同時(shí)間的攻擊RAP數(shù)量不同,實(shí)驗(yàn)又隨機(jī)從4個(gè)連續(xù)的時(shí)間間隔中獲取Beacon幀的特征字段,其中不超過 1 000個(gè)連續(xù)的Beacon幀,所對應(yīng)的時(shí)間間隔基本小于5 s,故不列出時(shí)間,使用SVM對其檢測RAP的準(zhǔn)確率,如圖4所示。
表2 連續(xù)時(shí)間段對RAP檢測準(zhǔn)確率
圖4 準(zhǔn)確率與Beacon幀數(shù)量關(guān)系
1) 對比本文方案
集中式LAP檢測算法需要服務(wù)器提供AP指紋,終端根據(jù)指紋白名單篩選RAP,客戶端僅做檢測操作,減少了工作量,也在一定程度上保證了LAP列表的穩(wěn)定唯一性。自主式RAP檢測算法需將該算法嵌入至終端,從而 SVM 方可訓(xùn)練學(xué)習(xí)分類。但訓(xùn)練時(shí)需掌握LAP的信息,為了降低采集數(shù)據(jù)過擬合現(xiàn)象,還需有RAP信息完成學(xué)習(xí)。具體方案對比如表3所示。
2) 相關(guān)工作對比表
筆者從方案實(shí)施檢測方、參數(shù)設(shè)置、準(zhǔn)確率等方面,對比本文方案與其他文獻(xiàn)相關(guān)工作,具體如表4所示。
表3 本文2種檢測算法對比
表4 本文方案相關(guān)工作對比
RAP普遍存在如中間人攻擊和網(wǎng)絡(luò)嗅探等攻擊,在很大程度上泄露了用戶的位置信息、上網(wǎng)行為和社交關(guān)系等隱私信息。因此,本文提出了一種基于指紋的RAP檢測算法,利用Beacon幀參數(shù)的不可偽造性和穩(wěn)定性判斷 AP的合法性。首先,根據(jù)Beacon幀特征參數(shù)訓(xùn)練學(xué)習(xí)LAP指紋,構(gòu)成LAP指紋白名單,AP的特性參數(shù)不易受影響和篡改,保證了離線指紋的可靠性。然后,用戶以AP指紋為基礎(chǔ),利用服務(wù)器發(fā)布的檢測算法進(jìn)行RAP校驗(yàn)。在自主式方法中,終端利用機(jī)器學(xué)習(xí)方法在線檢測RAP,降低了因定量設(shè)置閾值檢測偽RAP造成的誤判率。本文所提方法在傳輸數(shù)據(jù)是加密的情況下,仍適用于檢測多種攻擊方式RAP。
參考文獻(xiàn):
[1]WANG C, TAI T. Achieving time-based fairness for VoIP applications in IEEE 802.11 WLAN using a cross-layer approach[C]//IEEE International Symposium on Personal Indoor and Mobile Radio Communications. 2010:1475-1480.
[2]SANDEEP B V. Rogue access point detection using multi parameter dynamic feature analysis for wireless LAN[D]. Bharati Vidyapeeth University, 2016.
[3]HAN H, SHENG B, TAN C, et al. A timing-based scheme for rogue AP detection[J]. IEEE Transactions on Parallel & Distributed Systems, 2011, 22(11):1912-1925.
[4]ALOTAIBI B, ELLEITHY K. An empirical fingerprint framework to detect rogue access points[C]//Systems, Applications and Technology Conference. 2015:1-7.
[5]KIM I, SEO J, SHON T, et al. A novel approach to detection of mobile rogue access points[J]. Security & Communication Networks, 2015, 7(10):1510-1516.
[6]DAHIYA M, GILL S. Detection of rogue access point in WLAN using hopfield neural network[J]. International Journal of Electrical& Computer Engineering, 2017, 7(2):1060-1070.
[7]JADHAV S, VANJALE S B, MANE P B. Illegal access point detection using clock skews method in wireless LAN[C]//The International Conference on Computing for Sustainable Global Development. 2014:724-729.
[8]ZHENG X, WANG C, CHEN Y, et al. Accurate rogue access point localization leveraging fine-grained channel information[C]//Communications and Network Security. 2014:211-219.
[9]KIM T, PARK H, JUNG H, et al. Online detection of fake access points using received signal strengths[C]//Vehicular Technology Conference. 2012:1-5.
[10]李晴, 葉阿勇, 許力. 公眾環(huán)境下無線接入的安全問題研究[J].信息網(wǎng)絡(luò)安全, 2016 (4) :69-75.LI Q, YE A, XU L. Research on security issues of wireless access in public environment[J]. Netinfo Security, 2016 (4) :69-75.
[11]CHENG N, WANG X, CHENG W, et al. Characterizing privacy leakage of public WiFi networks for users on travel[C]//IEEE INFOCOM. 2013:2769-2777.