黃 濤 羅 寧 張 欽 沙琪松 孫飛虎
(桂林電子科技大學,廣西 桂林541004)
隨著信息時代的快速發(fā)展,人們的上網(wǎng)方式也發(fā)生了極大的變化,從臺式電腦到筆記本電腦再到平板電腦、手機,到現(xiàn)在人們?nèi)粘I畹母鱾€方面已經(jīng)離不開無線網(wǎng)絡(luò),而用到最多的無線網(wǎng)絡(luò)當屬WiFi。WiFi可以保證工作和娛樂活動的正常進行。但是,萬事都有兩面性,WiFi無線網(wǎng)絡(luò)為人們帶來便利的同時也會造成一些問題。人們在連接WiFi時,如果將個人信息放在一個相對不安全或者有漏洞的平臺時,攻擊者也就是不法分子可以通過共享網(wǎng)絡(luò)和黑客技術(shù)竊取用戶的個人信息,隨著各種移動支付以及App的普及,WiFi安全問題必須得到重視。
釣魚WiFi顧名思義就是用來釣“魚”的WiFi,而“魚”就是那些喜歡連接免費WiFi的手機、電腦用戶等,一旦用戶連接上了攻擊者偽造或者攻擊過的WiFi就有可能被竊取信息。而本文介紹的軟件的應(yīng)用目的就是為了防止這樣的事情發(fā)生,通過有效地識別釣魚WiFi,那么黑客利用釣魚WiFi竊取用戶信息就無從談起。本文介紹的是由作者開發(fā)的一款軟件,可以掃描出周圍的可連接WiFi,并通過各種攻擊檢測原理在識別到釣魚WiFi時對用戶進行反饋,如果未檢測到釣魚危險,則信任該WiFi,并將其MAC地址添加到白名單。
ARP是Address Resolution Protocol的簡稱,中文翻譯是地址解析協(xié)議,是根據(jù)IP地址獲取MAC地址的一個協(xié)議,它屬于TCP/IP協(xié)議簇。主機發(fā)送數(shù)據(jù)信息時將包含目標IP地址的ARP請求廣播到局域網(wǎng)絡(luò)上的所有主機,并接收返回消息,以此確定目標的MAC地址。收到返回消息后,將該IP地址和MAC地址存入本機的ARP緩存中并保留一段時間,下次請求時直接查詢ARP緩存以節(jié)約資源。ARP攻擊是指攻擊者利用地址解析協(xié)議運作機制進行的攻擊,ARP攻擊分很多種,常見的有IP沖突攻擊、ARP溢出攻擊以及ARP欺騙攻擊。其中,IP沖突攻擊原理是制造出局域網(wǎng)上有另一臺主機與目標主機共享一個IP地址的假象,這樣就違反了IP地址不能共享的原則,目標主機會被警告,大量的攻擊數(shù)據(jù)包會使目標主機消耗大量資源甚至導致目標主機癱瘓。而ARP溢出攻擊是向目標主機發(fā)送大量的偽造的MAC—IP映射,目標主機會消耗大量資源去維護ARP高速緩存,如果進一步采用分布式攻擊甚至會導致目標主機癱瘓。以上兩種攻擊方式都是使目標主機癱瘓或不能提供服務(wù),而釣魚WiFi常用的ARP攻擊手段是ARP欺騙攻擊。
ARP欺騙攻擊是ARP常用攻擊類型中最常見的一種。其原理是由攻擊者發(fā)送假的ARP數(shù)據(jù)包到局域網(wǎng)上,特別是送到指定的網(wǎng)關(guān)上。其目的是要讓原本應(yīng)該送到特定的IP地址的數(shù)據(jù)被錯誤送到攻擊者的主機,攻擊者通過ARP欺騙使局域網(wǎng)內(nèi)目標主機發(fā)送給網(wǎng)關(guān)的數(shù)據(jù)信息都發(fā)送給攻擊者。目標主機刷新自己的ARP使得原本在自己的ARP緩存表中對變應(yīng)的網(wǎng)關(guān)的MAC地址為攻擊者的MAC地址,這樣一來其他用戶原本要通過網(wǎng)關(guān)發(fā)送出去的數(shù)據(jù)流就會發(fā)往攻擊者主機,為了防止被發(fā)現(xiàn),攻擊者還會將修改或刪除后的數(shù)據(jù)流再轉(zhuǎn)發(fā)給網(wǎng)關(guān),同時欺騙了網(wǎng)關(guān)和目標主機,這樣就會造成用戶的數(shù)據(jù)被篡改或外泄。
DNS是Domain Name System的簡稱,中文翻譯是域名系統(tǒng),是互聯(lián)網(wǎng)的一項服務(wù),它也屬于TCP/IP協(xié)議簇。它作為將域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使用戶更方便地訪問互聯(lián)網(wǎng)。
DNS作為網(wǎng)絡(luò)的基礎(chǔ)服務(wù),其原理也相對比較簡單,其解析過程缺乏認證機制非常容易受到欺騙攻擊。DNS攻擊常用DNS欺騙的手段,利用DNS協(xié)議缺少認證的特點,在目標主機發(fā)送DNS請求后,攻擊者如果冒充域名服務(wù)器并發(fā)送帶有錯誤信息的IP地址的DNS相應(yīng)報文,相當于把目標主機查詢的IP地址設(shè)為攻擊者的IP地址,導致目標主機上網(wǎng)就只能看到攻擊者的網(wǎng)頁,而不是想要取得的正確的網(wǎng)站的主頁,比如,原本用戶要訪問www.baidu.com,卻因為DNS欺騙訪問到了攻擊者事先搭建的網(wǎng)頁。DNS欺騙其實并沒有真正“黑掉”對方的網(wǎng)站,而是一種類似重定向的冒名頂替罷了。
在Windows平臺,我們利用編程語言Python下的第三方庫Scapy偵聽局域網(wǎng),向目標主機發(fā)送數(shù)據(jù)包并通過sniff函數(shù)中的filter功能對數(shù)據(jù)包進行過濾,提取ARP數(shù)據(jù)包,而攻擊者進行ARP欺騙時是向目標主機發(fā)送大量的ARP數(shù)據(jù)包,通過這個原理可以給當前局域網(wǎng)設(shè)置閾值,當單位時間內(nèi)接收到來自同一個MAC地址發(fā)送的ARP數(shù)據(jù)包超過閾值時,軟件系統(tǒng)將自動判定目標主機受到ARP攻擊并進行警報提示,同時進行Windows操作系統(tǒng)的靜態(tài)ARP綁定WiFi設(shè)備的MAC地址,這種方法可以極好地防止目標主機受到ARP欺騙攻擊,在Windows操作系統(tǒng)上的ARP靜態(tài)綁定的命令是:先通過ARP-a查詢高速緩存下的項目,再找到并記錄WiFi對應(yīng)的MAC地址和IP地址,再使用命令A(yù)RP-s IP地址MAC地址進行ARP靜態(tài)綁定。
DNS欺騙是欺騙目標主機訪問攻擊者的主頁或搭建的網(wǎng)站,檢測方式是通過網(wǎng)絡(luò)請求以及DNS處理訪問事先記錄的多個常用網(wǎng)站,如百度、搜狐等搜索引擎的IP地址,然后在檢測每隔一段單位時間IP地址并記錄到數(shù)據(jù)庫中進行對比,某一時刻的IP地址與之前記錄的IP地址有差異時進行警報提示。
因為釣魚WiFi的種類很多,攻擊手段也大有不同,我們僅能模擬并測試兩種攻擊手段并以此進行研究防御措施,同時,我們不知道DNS攻擊方面攻擊者會對哪個URL進行重定向,我們只能將常用的www.baidu.com、www.souhu.com等常用網(wǎng)站作為測試目標進行檢測。雖然我們可以對ARP欺騙進行預(yù)防處理,但是對于防止DNS欺騙并沒有采取相關(guān)措施,原因是對于DNS欺騙的預(yù)防手段需要手動進行操作,如嚴格配置防火墻的控制訪問策略,針對DNS服務(wù)器安全設(shè)定高優(yōu)先級防護策略,嚴格控制內(nèi)外用戶對DNS服務(wù)器的訪問,防止有攻擊者竊取權(quán)限篡改DNS記錄,還有分離內(nèi)外部DNS服務(wù)器、部署入侵防御系統(tǒng)等,預(yù)防手段過于復雜,所以只實現(xiàn)了DNS欺騙檢測功能。
公共場合下的WiFi給我們帶來了極大的便利,彌補了有線網(wǎng)絡(luò)的不足,但是其帶來的安全問題不可忽視,在保證個人信息安全的前提下能夠?qū)o線網(wǎng)絡(luò)的優(yōu)勢完全發(fā)揮是現(xiàn)在5G時代到來時不得不考慮的問題。為了避免釣魚WiFi攻擊,保護信息安全,必須對針對WiFi發(fā)起的攻擊進行充分研究,設(shè)置更多更有效的保護措施,以保障WiFi的安全性。即使是再強大的保護系統(tǒng)或是檢測軟件,黑客等不法分子都會找到縫隙乘虛而入,所以,保護機制要不斷更新,任何保護都不是牢不可破的也不是毫無漏洞的。