鄭瑞環(huán)
(四川大學網(wǎng)絡(luò)空間安全學院,成都610065)
在移動互聯(lián)網(wǎng)時代,無線網(wǎng)絡(luò)已經(jīng)成為人們生活中不可或缺的部分,其存在給人們帶來了諸多便利。目前,無線接入點(Access Point,AP)幾乎隨處可見。無論何時何地,用戶可以通過AP 連接互聯(lián)網(wǎng)以處理各種事務(wù)。然而,正是無線接入點的廣泛部署引起了相應(yīng)的攻擊。攻擊者通過創(chuàng)建與合法AP 相同SSID 和MAC 地址的偽AP(Rogue Access Point)進行信息竊取。然而大多數(shù)用戶很難判斷當前連接的AP 是否安全,所以通過搭建偽AP,攻擊者可以很簡單地達到攻擊目的。當用戶連接上偽AP 后,其所有的網(wǎng)絡(luò)數(shù)據(jù)流量將會被暴露。攻擊者可以通過對網(wǎng)絡(luò)數(shù)據(jù)流量進行分析,得到用戶的相關(guān)密碼和隱私信息從而造成相關(guān)的損失。
基于802.11 協(xié)議的無線網(wǎng)絡(luò)是當前的主流。根據(jù)該協(xié)議標準[1],若環(huán)境中有多個具有同樣SSID 和MAC地址的AP,客戶端會自動連接上其中信號強度最高的AP。基于上述原因,攻擊者可以非常容易地搭建偽AP,其僅需要設(shè)立一個AP,將其SSID 和MAC 地址設(shè)置為與被偽造的AP 一致,并將其信號強度盡可能提高即可實現(xiàn)偽AP 攻擊,如圖1 所示。目前,利用Aircrack-ng[2]、WiFi-Pumpkin[3]等工具可以實現(xiàn)快速搭建偽AP。當前偽AP 的攻擊方式主要分為被動式攻擊和主動式攻擊。
圖1 偽AP攻擊原理
偽AP 被動地等待客戶連接的攻擊方式即為被動式攻擊。偽AP 通過增加其信號強度實現(xiàn)被動式攻擊。由于偽AP 和真實AP 的配置信息相同,當偽AP的信號強度大于真實AP 的信號強度時,用戶設(shè)備會自動連接上偽AP,攻擊者繼而進行進一步的攻擊過程,如通過分析網(wǎng)絡(luò)流量獲取用戶的隱私信息。一般來說增加信號強度的方式包括將偽AP 盡量靠近被攻擊者,同時包括TP-Link、水星等絕大多數(shù)品牌的路由器管理頁面都有信號強度的選項,攻擊者可以結(jié)合多種方式增強信號強度以達到更好的攻擊效果。
主動式攻擊指攻擊者部署偽AP 后,通過主動的方式斷開終端和合法AP 之間的連接來達到攻擊目的。實現(xiàn)主動式攻擊的方法一般分為物理層攻擊和MAC層攻擊[4]。物理層攻擊主要通過射頻干擾實現(xiàn)(RF Jamming Attack),該攻擊通過發(fā)出干擾射頻實現(xiàn)破壞無線通信的目的。MAC 層攻擊則主要利用802.11 協(xié)議身份認證的缺陷,由于控制幀和管理幀沒有相關(guān)的保護和認證方法,攻擊者可以通過偽造控制幀和管理幀的方法發(fā)起攻擊,導(dǎo)致合法AP 和客戶端連接斷開,引誘客戶端接入偽AP 以實現(xiàn)進一步的攻擊。
(1)物理層攻擊
物理層攻擊主要為射頻干擾攻擊。射頻干擾攻擊通過發(fā)出干擾射頻實現(xiàn)破壞無線通信的目的。IEEE 802.11 協(xié)議標準規(guī)定,無線局域網(wǎng)采用載波偵聽多路訪問/避免沖突(CSMA/CA)機制,該機制使用信道空閑評估程序來決定信道是否空閑[5]。射頻干擾攻擊通過在無線局域網(wǎng)工作的頻段上施加信號,使移動終端或者AP 誤以為信道繁忙,從而放棄通信。
(2)MAC 層攻擊
圖2 802.11協(xié)議狀態(tài)轉(zhuǎn)換
MAC 層的攻擊主要是針對身份認證缺陷的阻塞攻擊。IEEE 802.11 協(xié)議標準規(guī)定,只有當終端已認證已連接的情況下終端才能和AP 進行通信。其狀態(tài)轉(zhuǎn)換過程如圖2 所示,只有當終端保持為狀態(tài)3 時,通信才能正常進行。攻擊者利用此特性,構(gòu)造解除認證幀(Deauthentication)和解除連接幀(Disassociation)進行攻擊,使終端無法保持狀態(tài)3,阻塞其和AP 之間的通信。
目前主要有三種檢測偽AP 的方法。第一種為基于硬件特征的檢測方法,由于每一個設(shè)備都具有其獨特性,該方法利用相關(guān)的特征同事先存儲的信息進行比較實現(xiàn)偽AP 的檢測。第二種為基于網(wǎng)絡(luò)特征的檢測方法,通過網(wǎng)絡(luò)相關(guān)特征如RTT,運行traceroute 命令得到的路徑結(jié)果等特征作為偽AP 判定的特征。第三種為基于位置信息的方法,此種方法通過信號強度等數(shù)據(jù)結(jié)合機器學習算法對待測AP 進行定位,通過判定其位置與事先記錄的位置是否匹配實現(xiàn)對偽AP 的檢測。
由于每個AP 在硬件層面都具有其獨特性,基于硬件特征的檢測方法主要依靠AP 的硬件差異對AP 的合法性進行判斷。此種方法需要事先在數(shù)據(jù)庫中保存合法AP 的相關(guān)信息,在檢測時同已存儲的信息進行匹配以檢測偽AP 的存在。
Kohno 等人[6]提出一種將硬件時鐘偏差作為指紋建模的方案。由于AP 中諧振蕩器的原材料石英的切片方向和角度不同會造成設(shè)備的時鐘相對標準時鐘存在誤差,通過此誤差可以唯一的標識某一個AP。他們的方案通過收集到的TCP/ICMP 報文上的時間戳來測算時鐘偏差。
Jana 等人[7]同樣使用時鐘偏移(clock skew)進行偽AP 的檢測。但其發(fā)現(xiàn),TCP/ICMP 報文上的時間戳可以通過軟件手段進行偽造,所以其時鐘偏移是通過計算來自信標幀和請求響應(yīng)幀(beacon/probe response frames)的時間戳得到。
Sriram 等人[8]提出一種基于設(shè)備參數(shù)的方法。首先將合法AP 的MAC 地址、SSID 等設(shè)備參數(shù)保存在數(shù)據(jù)庫中;在檢測時,通過獲取相應(yīng)的設(shè)備參數(shù)與事先保存的信息進行比對以實現(xiàn)偽AP 的檢測。
同組織的合法AP 普遍在網(wǎng)絡(luò)相關(guān)參數(shù)上具有相似性,例如同組織的合法AP 通常會使用相同的出口網(wǎng)絡(luò)或者使用相同的網(wǎng)絡(luò)服務(wù)提供商,所以合法AP 的網(wǎng)絡(luò)時延或者數(shù)據(jù)傳輸路徑等具有相似性,通過此相似性可以區(qū)分出待測AP 是否為偽AP。
Nikbakhsh 等人[9]提出一種基于路由跟蹤的方法,該方法分別在兩個配置相同的AP 上執(zhí)行到相同地址的traceroute 命令,然后比較兩次路徑結(jié)果來判斷是否有偽AP 存在。若兩個AP 的結(jié)果不相符,則說明有偽AP 存在。但是此種方法沒有并沒有事先保存合法AP的traceroute 結(jié)果,所以僅能判斷是否有偽AP 存在。
劉洋[10]提出基于802.11 協(xié)議特征的檢測方案和基于traceroute 的釣魚AP 混合檢測方案。基于802.11協(xié)議的檢測方案提取AP 的協(xié)議特征信息,如AP 的MAC、速率特征等,同時向同一SSID 下的AP 發(fā)送特殊的請求探查報文,統(tǒng)計接收的探查響應(yīng)報文,最后通過相關(guān)信息與存儲的信息進行對比,實現(xiàn)釣魚AP 的檢測?;趖raceroute 的方案通過構(gòu)造ICMP-Traceroute、TCP-Traceroute 以及UDP-Traceroute 路由跟蹤報文,跟蹤測試點到指定目的服務(wù)器的路由路徑,實現(xiàn)釣魚AP 的檢測。
Zhang 等人[11]提出一種基于網(wǎng)絡(luò)狀態(tài)相似度的方法來檢測偽AP,其通過計算數(shù)據(jù)到服務(wù)器的RTT 和數(shù)據(jù)到AP 的RTT 的差值來對其網(wǎng)絡(luò)狀況進行畫像。通過獲得一段時間內(nèi)的網(wǎng)絡(luò)延遲數(shù)據(jù),計算網(wǎng)絡(luò)狀態(tài)的相似度。如果偽AP 和合法AP 的在一個局域網(wǎng)內(nèi)或者使用同一個網(wǎng)絡(luò)提供商,則該方法失效。
基于位置信息的檢測方法利用RSSI(Received Signal Strength Indication,無線信號接收強度)等數(shù)據(jù)對AP 的位置進行推算,通過判斷AP 現(xiàn)在的位置和記錄的位置是否匹配判斷該AP 是否為偽AP。此種方法一般應(yīng)用于室內(nèi),通過在固定位置搭設(shè)嗅探點,并進行離線訓練得到定位模型,在線檢測時通過嗅探器分別得到待檢測AP 的相關(guān)信息,通過該信息計算出待測AP的位置用于檢測。
Awad 等人[12]提出一種基于位置信息檢測偽AP 的方法。本文通過應(yīng)用粒子群優(yōu)化算法檢測并定位偽AP。RSSI 用于估計接入點與已知位置之間的距離。該方法通過收集一組RSSI 數(shù)據(jù)來估計待測AP 的位置并將其與真實AP 的位置進行比對來檢測偽AP。
Wu 等人[13]提出一種基于RSSI 的偽AP 檢測方法,其搭建了六個不同位置的嗅探器來分別得到某一個AP 的一組RSSI 數(shù)據(jù)。在離線分析階段,多次收集每個合法AP 的RSSI 數(shù)據(jù),并在聚類分析后得到兩個質(zhì)心之間的距離,從而得到相關(guān)的閾值。最后將每個AP的閾值分別保存在服務(wù)器中,并在檢測階段通過聚類分析檢測某個AP 是否為偽AP。
顧嘯林[14]在上述的方法上進行了改進,由于某些位置可能會發(fā)生距離較遠,某個嗅探器無法獲得該AP 數(shù)據(jù)的情況,在訓練階段可能存在某個RSSI 分量有缺失的問題。在數(shù)據(jù)預(yù)處理階段通過對缺失分量的均值化數(shù)據(jù)填補,數(shù)據(jù)剔除等手段防止缺失的分量導(dǎo)致離線訓練時造成的偏差以提高待測AP 定位的精度以實現(xiàn)檢測率的提高。
本文一共介紹了三種偽AP 檢測技術(shù),但每種方法都具有一定的缺陷。若使用傳統(tǒng)基于設(shè)備參數(shù)的方法,該種方法使用的特征如SSID、MAC 地址等一般可以通過在路由設(shè)置中進行設(shè)置,從而達到模仿合法AP的效果,通過這些字段進行偽AP 的檢測容易造成該種檢測方法失效;基于時鐘偏移的偽AP 檢測方法表現(xiàn)較好,但是在離線和在線檢測階段均需要較長的時間對時間偏移進行計算。基于網(wǎng)絡(luò)特征的方法通過RTT、運行traceroute 命令得到的路徑信息等特征實現(xiàn)對偽AP 的檢測,但是由于多種因素都會造成網(wǎng)絡(luò)特征的改變,導(dǎo)致該方法使用的特征不夠穩(wěn)定從而對檢測率有較大的影響。基于位置信息的檢測方法是目前偽AP檢測研究中最主要的方法,該方法的思想是通過收集相關(guān)信息推測出待測AP 的位置,但是該方法大多需要部署多個設(shè)備收集位置相關(guān)信息以增加定位精度,導(dǎo)致該方法所需的設(shè)備成本高,且部署復(fù)雜?;诖?,在未來的研究中偽AP 檢測應(yīng)該著重尋找更加穩(wěn)定、易于采集且難以偽造的特征以解決目前檢測方法的不足。