文/本刊特約編輯 楊望
無線網絡目前已經不僅僅是校園有線網絡的補充,不斷增加的各類無線終端如手機、Pad讓無線網絡成為校園內越來越重要的通信載體,除了學校搭建的公用無線網絡,各種各樣的個人無線接入點也讓學校的無線網絡成為一個熱鬧的場地。但在這熱鬧中,也不乏各類惡意或無惡意的人在搜尋著無線網絡的漏洞,進行著各類的攻擊活動,除了加強個人的無線安全防護意識,部署無線的蜜罐和IDS也是監(jiān)控無線網絡安全的重要手段,目前商業(yè)的無線硬件產品商大都提供對應的產品,如AirDefence(Motorola)、Cisco等,但價格不菲,其實利用開源的工具我們可以只花費較小的費用就搭建起一個分布式的無線入侵檢測系統。本文將介紹如何利用OpenWRT和Kismet這兩種開源工具在普通商用無線路由器的基礎上來建立無線IDS系統。
有線網絡中大家最常用的IDS是Snort,但在無線網絡中我們不能直接使用Snort,這是因為無線網絡和有線網絡在物理與鏈路層的不同,讓IDS的需要功能也有不同。傳統的有線網絡只需要考慮三層(IP層)及其以上的報文,而無線的IDS同時需要考慮物理層和鏈路層的報文內容,因為大量的無線攻擊如無線欺騙、無線拒絕服務攻擊都是在這一層發(fā)生的。另一方面,無線的廣播性質讓無線IDS可以通過進入無線設備的Monitor模式收聽到覆蓋范圍內所有的無線報文活動,而有線網絡必須通過端口鏡像或分光等手段才能監(jiān)控到需要的報文。Kismet是無線網絡應用中重要的一款安全工具,它可以設置無線設備的模式進行無線報文的采集,同時可以進行無線鏈路層的攻擊檢測,還可以輸出上層報文給傳統的IDS如Snort進行更高層次的入侵檢測。
Kismet是一款用于無線網絡(802.11協議族)的多功能軟件,既可以用于無線網絡的檢測發(fā)現和報文采集,也可以用于無線的入侵檢測。目前可以在Linux、Windows(需要Cygwin)、
MacOS等多種系統上安裝。Kismet通過將支持無線芯片工作模式設為Monitor來進行被動的無線報文收集工作,并通過報文的協議解碼發(fā)現存在的AP、用戶以及他們之間的通訊。Google就曾被曝光使用制作GoogleMap的街景小車在城市漫游過程中使用Kismet收集了大量的無線數據,從而引發(fā)了用戶隱私泄漏問題。Kismet在收集和解析報文的同時,集成了二層和部分三層的入侵檢測功能,Kismet的檢測通過報文特征檢測和統計檢測兩種方式來實現。常見的警報包括:APSPOOF、DEAUTHFLOOD、DEAUTHCODEINVALID等。具體攻擊的含義可以在專門討論無線網絡漏洞和攻擊的網站(http://www.wve.org)查到。
Kismet一個重要的特點是客戶機-服務器的工作模式??蛻魴C模式下的Kismet可以看成一個探針程序,負責監(jiān)聽和收集報文,并將收集到的報文轉發(fā)給服務器。服務器模式下的Kismet進行報文的協議檢測、檢測和其他進一步的處理。這樣我們就可以在低成本的平臺上部署一系列的Kismet客戶端程序,從而確保檢測的范圍可以覆蓋足夠大的區(qū)域,再將每個客戶端的收集的報文統一集中到高性能的服務器進行下一步的處理。服務器端的Kismet還可以再通過虛擬端口將解碼后的無線報文輸出給傳統的IDS,進行高層的入侵檢測。
Kismet檢測無線網絡界面
無線IDS部署環(huán)境圖
有了入侵檢測系統,還需要有好的部署平臺,盡管Kismet可以在電腦的無線網卡上工作,但部署一系列的主機還是成本很高的事情,如果能將Kismet部署到一系列的無線路由器則可以極大的降低成本和部署的難度。要完成這樣的功能就需要另一個重要的開源工具:OpenWRT。
OpenWRT和DDWRT是兩個著名開源的無線路由器固件程序。這兩個程序源自思科一款低端的的無線路由器Linksys WRT54G無線路由器。在這款無線路由器以前,不存在開源的無線路由器固件,而當時有程序員意外的發(fā)現這款無線路由器的固件修改自Linux,按照開源版權的規(guī)定,思科既然使用了開源程序,就必須公開該路由器的固件程序,自此各類愛好者開始自該固件的基礎上開始設計自己的無線路由器固件程序,其中最有名的就是DDWRT和OpenWRT,而思科則將該路由器的固件從Linux平臺改到了VxWorks平臺。盡管開始的DDWRT和OpenWRT只針對這款路由器,但隨著程序的發(fā)展這兩款固件對越來越多的無線路由器提供了支持,只要該款路由器有足夠的內存和固存(Flash)的空間。目前OpenWRT基本對所有品牌的無線路由器都有支持,具體可以查詢http://wiki.openwrt.org/toh/start。
OpenWRT采用了ipkg作為軟件包的管理程序,所以在OpenWRT上安裝kismet非常簡單。部署時首先需要通過無線路由器的管理界面將OpenWRT的固件刷新到路由器上,然后重啟路由器進入OpenWRT系統,在配置好網絡以后,通過ipkg install kismet_drone wl的命令即可以完成kismet的探針程序的安裝。
有了合適的部署環(huán)境和檢測系統,我們就可以開始部署分布式的無線IDS系統。像在下圖部署的環(huán)境中,我們可以在合法的無線接入點附近部署一系列安裝了的Kismet探針程序的無線路由器,由于這些路由器只負責監(jiān)聽工作,所以探針無線路由器的數量可以遠小于正常工作的無線路由器數量。探針無線路由器通過有線網絡和后臺的Kismet服務器相連,將監(jiān)聽的報文傳回,進行具體的檢測工作。系統的管理人員可以通過有線或無線的網絡通道登陸Kismet服務器進行檢測結果的檢查和響應工作。限于篇幅,Kismet具體的配置方法和結果的查看分析方法我們將在后續(xù)的文章中繼續(xù)介紹。