摘要:無線局域網(WLAN)為傳統局域網的補充,在許多領域獲得了廣泛應用,但由于其傳送數據采用無線傳輸媒介,無線局域網的傳送信息存在被竊取的危險,其安全問題也受到格外的關注。
關鍵詞:無線局域網;嗅探技術;網絡安全
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)36-2858-01
無線局域網(WLAN)利用電磁波在空氣中發送和接受數據,而無需線纜介質,因而安裝方便快捷、組網靈活,在許多領域獲得了廣泛的應用,但由于其傳送數據的開放性,發射的數據可能到達非預期的接收設備,因此通過WLAN傳送的信息存在被竊取的風險。嗅探(Sniffer)技術是網絡安全攻防技術中很重要的一種,是利用計算機的網絡接口截獲網絡中數據報文的一種技術。嗅探一般工作在網絡的底層,可以在對網絡傳輸數據進行記錄,從而捕獲賬號和口令、以及其他用戶敏感信息,甚至可以用來獲取更高級別的訪問權限、分析網絡結構進行網絡滲透等。對黑客來說,通過嗅探技術能以非常隱蔽的方式攫取網絡中的大量敏感信息,與主動掃描相比,嗅探行為更難被察覺,也更容易操作。對安全管理人員來說,借助嗅探技術,可以對網絡活動進行實時監控,并進行發現各種網絡攻擊行為。
在WLAN中網絡嗅探對信息安全的威脅具有很強的隱蔽性,運行監聽程序的主機在竊聽的過程中只是被動的接收網絡中傳輸的信息,它不會與其它主機交換信息,也不修改在網絡傳輸的信息包,使網絡信息的丟失不容易被發現。盡管它沒有對網絡進行主動攻擊或破壞行為明顯,但由它造成的損失也是不可估量的。隨著無線局域網技術的廣泛應用,其安全問題也被越來越多的用戶關注,只有掌握網絡嗅探的原理與本質,才能更有效地防患于未然,增強無線局域網的安全防護能力。
1 網絡嗅探原理
根據TCP/IP協議,數據包是經過封裝后,再被發送的。兩臺計算機完成通訊依靠的是MAC地址而與IP地址無關,而目標計算機MAC地址的獲取是通過ARP協議廣播得到的,而獲取的地址會保存在MAC地址表里并定期更新,期間,計算機是不會再去廣播尋址信息獲取目標MAC地址的,這就給了入侵者以可乘之機。
當一臺計算機要發送數據給另一臺計算機時,它會以IP地址為依據首先查詢自身的ARP地址表,如果里面沒有目標計算機的MAC信息,它就觸發ARP廣播尋址數據直到目標計算機返回自身地址報文,而一旦這個地址表里存在目標計算機的MAC信息,計算機就直接把這個地址作為數據鏈路層的以太網地址頭部封裝發送出去。為了避免出現MAC地址表保持著錯誤的數據,系統在一個指定的時期過后會清空MAC地址表,重新廣播獲取一份地址列表,而且新的ARP廣播可以無條件覆蓋原來的MAC地址表。
假設局域網內有兩臺計算機A和B在通訊,而計算機C要作為一個竊聽者的身份得到這兩臺計算機的通訊數據,那么它就必須想辦法讓自己能插入兩臺計算機之間的數據線路里,而在這種一對一的交換式網絡里,計算機C必須成為一個中間設備才能讓數據得以經過它,要實現這個目標,計算機C就要開始偽造虛假的ARP報文。
ARP尋址報文分兩種,一種是用于發送尋址信息的ARP查詢包,源機器使用它來廣播尋址信息,另一種則是目標機器的ARP應答包,用于回應源機器它的MAC地址,在竊聽存在的情況下,如果計算機C要竊聽計算機A的通訊,它就偽造一個IP地址為計算機B而MAC地址為計算機C的虛假ARP應答包發送給計算機A,造成計算機A的MAC地址表錯誤更新為計算機B的IP對應著計算機C的MAC地址的情況,這樣一來,系統通過IP地址獲得的MAC地址都是計算機C的,數據就會發給以監聽身份出現的計算機C了。但這樣會造成一種情況就是作為原目標方的計算機B會接收不到數據,因此充當假冒數據接收角色的計算機C必須擔當一個轉發者的角色,把從計算機A發送的數據返回給計算機B,讓兩機的通訊正常進行,這樣,計算機C就和計算機A、B形成了一個通訊鏈路,而對于計算機A和B而言,計算機C始終是透明存在的,它們并不知道計算機C在偷聽數據的傳播。只要計算機C在計算機A重新發送ARP查詢包前及時偽造虛假ARP應答包就能維持著這個通訊鏈路,從而獲得持續的數據記錄,同時也不會造成被監聽者的通訊異常。
計算機C為了監聽計算機A和B數據通訊而發起的這種行為,就是“ARP欺騙”(ARP Spoofing)或稱“ARP攻擊”(ARP Attacking),實際上,真實環境里的ARP欺騙除了嗅探計算機A的數據,通常也會順便把計算機B的數據給嗅探了去,只要計算機C在對計算機A發送偽裝成計算機B的ARP應答包的同時也向計算機B發送偽裝成計算機A的ARP應答包即可,這樣它就可作為一個雙向代理的身份插入兩者之間的通訊鏈路。
2 防范策略
鑒于網絡嗅探器的原理,盡管嗅探技術實現起來比較隱蔽,但并不是沒有防范的方法,可采取以下防范策略對嗅探行為進行防護。
1) 設置網絡為封閉系統。封閉系統是作為一項安全措施限制 SSID 的廣播,隱藏無線網絡。為了避免網絡被NetStumbler之類的工具發現,應把網絡設置為封閉系統。這樣可以比較好的禁止非授權訪問,但不能完全防止被嗅探。
2) 采用可靠的加密協議。如果用戶的無線網絡是用于傳輸比較敏感的數據,那么僅用WEP加密方式是遠遠不夠的,需要進一步采用適合用戶需求的第三方加密方式。加密協議簡單的可以理解為,介于HTTP協議與TCP協議之間的可選層,如SSL協議位于TCP/IP協議與各種應用層協議之間,在TCP之上建立了一個加密通道,對通過這一層的數據進行加密,防止使用明文傳輸信息,為數據通訊提供安全支持。而使用secure shell、secure copy或者IPV6協議都可以使得信息安全的傳輸,從而達到保密的效果。
3) 使用安全外殼協議(SSH)。SSH是一種在不安全網絡上提供安全遠程登錄及其它安全網絡服務的協議,通過使用RSA的算法建立連接。在授權完成后,接下來的通信數據是用IDEA技術來加密的。它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的“通道”,它為通過TCP/IP網絡通信提供了通用的最強的加密。目前,還沒有人突破過這種加密方法。嗅探到的信息自然將不再有任何價值。
4) 使用一次性口令(OTP)。通常的計算機口令是靜態的,容易被嗅探竊取。采用一次性口令技術,能使竊聽賬號信息失去意義。例如:采用口令序列(S/KEY)時,口令為一個單向的前后相關的序列,系統只用記錄第 N個口令。用戶用第N-1個口令登錄時,系統用單向算法算出第N個口令與自己保存的第N個口令匹配,以判斷用戶的合法性。由于N是有限的,用戶登錄N次后必須重新初始化口令序列。
5) 加強本機監控。不同操作系統的計算機采用的檢測工具不盡相同。大多數UNIX系列操作系統使用“ifconfig”就可以發現網卡是否工作在混雜模式下。但是在許多時候,本地監控卻并不可靠,因為黑客在使用Sniffer的同時,很可能種植了一個ifconfig的“代替品”,檢查的結果自然會隱藏真實的情況。所以,通常還要結合其他更高級的工具,例如tripwire、lsof等。
6) 監控本地局域網的數據幀。查找異常網絡行為是較好的檢測策略。因此系統管理員可以運行自己的Sniffer,例如tcpdump、Windump和snoop等等,監控網絡中指定主機的DNS流量,或使用分析計數器工具(如 AntiSniff)測量當前網絡的信息包延遲時間。
7) 使用安全的拓樸結構。Sniffer無法穿過交換機、路由器、網橋。網絡分段越細,則安全程度越大。
3 結束語
網絡嗅探比較簡單而且容易實現,特別是借助良好的開發環境,可以通過編程輕松實現預期目的,能造成很大的安全危害,但防范嗅探卻相當困難,主要是因為它們不容易被發現。在盡量采用上面提到的防范策略外,系統管理員要定期的對所管理的網絡進行安全測試,防止安全隱患。同時由于許多攻擊來自網絡內部,所以要控制擁有相當權限的用戶的數量。還應注重培訓,不斷提高網管人員的安全意識以及用戶使用網絡的良好習慣。另外,在使用技術防范的同時,安全管理的制度建設也是非常重要的。
參考文獻:
[1] 張耀疆.聚焦黑客—攻擊手段與防護策略[M].北京:人民郵電出版社,2002.
[2] 冷月.無線網絡保衛戰[J].計算機應用文摘,2006(26).
[3] 邊鋒.不得不說無線網絡安全六種簡單技巧[J].計算機與網絡,2006(20).
[4] 宋濤.無線局域網的安全措施[J].電信交換,2004(1).