1、ARP防護概述html
經過以前的文章,咱們已經瞭解了ARP***的危害,***採用ARP軟件進行掃描併發送欺騙應答,同處一個局域網的普通用戶就可能遭受斷網***、流量被限、帳號被竊的危險。因爲***門檻很是低,普通人只要拿到***軟件就能夠擾亂網絡秩序,致使如今的公共網絡、家庭網絡、校園網、企業內網等變得脆弱無比。
web
因此,如何進行有效的ARP防護?做爲普通用戶怎麼防護?做爲網絡/安全管理員又怎麼防護?有哪些ARP防護軟件?若是被ARP***了,如何揪出"內鬼",並"優雅的還手"?瀏覽器
接下來,咱們經過圖解的方式來深刻了解ARP防護原理與解決方案。安全
2、ARP防護原理與解決方案微信
在講解ARP防護以前,咱們先回顧下ARP***最經典的一幕=>網絡
當PC1詢問PC2的MAC地址時,***者PC3返回ARP欺騙回應包:個人IP地址是IP2,MAC地址是MAC3。一旦PC1記錄了錯誤的ARP映射,則發給與PC2的數據,都會落到PC3手裏。併發
也就是說,ARP***的罪魁禍首即是這種"欺騙包",若針對欺騙包的處理是不相信或不接收的話,則不會出現問題。處理這種欺騙行爲咱們無法提早在***端作手腳,由於"敵在暗處我在明處"。這樣的話,咱們就剩下兩個解決方法:運維
①保證電腦不接收欺騙包ide
②保證電腦收到欺騙包以後不相信oop
目前網絡安全行業現有的ARP防護方案,基本都是上面兩個方法的具體實現。咱們來看看這張防護圖:
①當***發起ARP欺騙包時,會途徑局域網裏面的交換機或無線路由器等網絡設備;
②若是網絡設備可以識別這種欺騙包,而且提早丟棄掉,則電腦/手機端就不會被欺騙;
③若是網絡設備沒有攔截這種欺騙包,則電腦/手機端須要作安全防護,而後再丟棄。
簡單來講,ARP防護能夠在網絡設備上實現,也能夠在用戶端實現,更能夠在網絡設備和用戶端同時實現。接下來,咱們先來了解下網絡設備(例如這裏的交換機)的防護技術。
上面這張圖,展示的是交換機的ARP防護能力,當PC2發送ARP迴應包時,交換機將其轉發給PC1,而當PC3發送ARP迴應包(欺騙)時,交換機直接丟棄。
可是,人家PC3上臉上又沒有寫着"hacker",憑什麼交換機要丟棄它的ARP迴應包?憑什麼判斷它的包就是"欺騙"的呢?
接下來,我就要給你們介紹下局域網安全裏比較經常使用的防護技術,這種防護技術被稱爲DAI(Dynamic ARP Inspection)- 動態ARP檢測,原理能夠用兩句話簡單歸納:
①交換機記錄每一個接口對應的IP地址和MAC,即port<->mac<->ip,生成DAI檢測表;
②交換機檢測每一個接口發送過來的ARP迴應包,根據DAI表判斷是否違規,若違規則丟棄此數據包並對接口進行懲罰。
咱們知道,PC3是在交換機的Port三、MAC地址是MAC3,IP地址是IP3,因此本地DAI表項內容是<port3-mac3-ip3>。當交換機從接口Port3收到ARP迴應包,內容倒是IP2和MAC3映射,即<port3-mac3-ip2>。
經判斷,這個包就是虛假的欺騙包,交換機立刻丟棄這個包,而且能夠對接口作懲罰(不一樣設備的懲罰方式有所不一樣,能夠直接將接口"軟關閉",直接將***者斷網;也能夠"靜默處理",僅丟棄欺騙包,其餘通訊正常)
上面這個動態ARP監測技術,能夠說是目前防護ARP***最有效的方法之一。可是,做爲初學者,你們可能還會有疑問:
①通常的交換機或網絡設備能部署動態ARP監測技術嗎?
②鏈接用戶的交換機,怎麼能識別IP地址信息呢?
③上面這張DAI表是如何生成的?是否是像CAM表同樣能自動識別?
這裏要給你們說個稍微悲傷一點的事實,大部分能支持這種動態ARP監測技術的交換機或者無線路由器,都基本是企業級的產品。即使是企業級交換機,具有局域網安全防護功能的設備,價格都要高出很多,因此不少中小型企業網或校園網,基本都願意買"閹割版"網絡接入產品,由於"能通就行",至於安全性怎樣,這是另外要考慮的問題。
因此,簡單的交換機不具有動態ARP監測技術,即使市面上有帶安全防護的網絡產品,企業、學校、醫院等大量網絡,仍然在早期採購的時候,用的是比較基礎版本的交換機。固然,隨着網絡與安全市場的激烈競爭和網絡安全意識的加強,之後會愈來愈好。
另外,交換機能識別IP地址信息嗎?
從如今的網絡技術來看,分層界限愈來愈模糊,融合式的網絡設備纔是主流,如今的接入交換機基本能被Telnet/SSH/Web管理,更專業的交換機同時支持動態ARP監測(dai)、IP源防禦(ipsg)、DHCP偵聽(dhcp snooping)、端口安全、AAA、802.1x等局域網安全技術,已經超越了原有二層交換機的定義。
因此,交換機能讀三層甚至七層的數據包已經不是什麼新鮮事了,不要被"交換機就是二層設備"給束縛了,這只是紙面上的定義。
最後一個問題,DAI檢測表是如何生成的?
在上面圖解中,咱們看到交換機查看的表已經不是原來的CAM表了,內容也不太同樣,CAM表的內容主要是MAC和Port的映射,而DAI檢測表則是Port、MAC、IP三個信息映射。
目前這張表支持兩種方式來生成=>
第一種方式就是手工靜態綁定:即用戶接入網絡以後,管理員根據此用戶電腦的MAC和IP地址,而後在接口上綁死,缺點就是用戶數太多的話,手工綁定管不過來。
第二種方式就是目前最主流的作法,即在交換機上開啓DHCP偵聽技術,當用戶第一次經過DHCP獲取到地址的時候,交換機就把用戶電腦的IP、MAC、Port信息記錄在DHCP偵聽表,後面ARP檢測直接調用這張DHCP偵聽表便可。
小結:以上即是在網絡設備上部署的ARP防護技術,經過動態ARP監測技術(DAI),能夠很好的解決ARP欺騙問題。技術雖好,但局域網內的交換機、無線路由器是否支持DAI,這個則取決於實際網絡狀況,尤爲是十面埋伏的公共WiFi網絡、脆弱無比的家庭網絡、能通就行的校園網絡...... 咱們都應該持懷疑態度,至少不能徹底信任這些網絡。
既然這樣的話,普通用戶有沒有"自救"的方法,可以抵擋ARP***呢?答案是確定的=>
對於普通用戶,陌生網絡不要隨意接入,確定是首選考慮的;固然,這裏研究的是用戶已經接入了網絡,如何作安全防護的問題。從上圖能夠看到,用戶(電腦或手機)最重要的即是經過安裝ARP防火牆作安全防護,不少普通用戶甚至「以電腦裸奔爲豪,以罵安全廠商爲榮」,這是對技術的嚴重藐視,對本身隱私的不負責任。普通小白必定要記住一句話:你沒有被黑,只是你尚未到達被黑的價值。
ARP防火牆在技術實現上,通常都有如下功能:
①綁定正確的的IP和MAC映射,收到***包時不被欺騙。
②可以根據網絡數據包特徵(參考上一篇講解的ARP***數據包溯源分析),自動識別局域網存在的ARP掃描和欺騙行爲,並作出***判斷(哪一個主機作了***,IP和MAC是多少)。
那麼,有哪些常見的ARP安全產品呢?
自帶ARP防護功能:騰訊電腦管家、360安全衛士……
專業的ARP防火牆:彩影ARP、金山貝殼、360ARP防火牆……
採用安全產品確定是普通用戶最省時省力的作法,而對於技術人/工程師而言,若是不屑於使用安全產品,而且但願解決ARP***行爲,也能夠經過"ARP雙向綁定"的技術來實現。什麼是"ARP雙向綁定"呢?
從上圖能夠看到,PC1和PC2通訊雙方都靜態綁定對方的IP和MAC映射,即使收到ARP欺騙包,因爲靜態綁定的ARP映射條目優先級高於動態學習到的,因此能夠保證不被欺騙。
這種作法很是"綠色無污染",由於不須要額外的軟件安裝,可是缺點也很是明顯,例如普通用戶不知道如何在電腦上作ARP靜態綁定,另外工做量也比較大,每一個主機和網關設備都須要綁定整個局域網的ARP靜態映射。如下面的家庭WiFi網絡爲例:
像這個WiFi網絡,若是經過ARP雙向綁定來解決安全問題,配置量其實蠻大的,固然,這就基本可以保障內網主機間經過以及主機訪問互聯網的安全性了。
Windows arp靜態綁定方法=>
①進入命令行cmd界面;
② [arp -s ip地址 mac地址],例如:arp -s 192.168.1.1 00-11-22-a1-c6-09
注:家用無線路由器若要進行ARP綁定,則須要經過web登陸並進行圖形操做
小結:用戶端的ARP防護方法,要麼安裝ARP防火牆,要麼作ARP雙向綁定。對於絕大部分用戶來說,雖然安裝防火牆不是保證百分百安全了,可是可以解決很大一部分的隱患。
3、若是被ARP***了,如何揪出"內鬼"並"優雅的還手"?
相比"如何防護ARP***",我相信更多人感興趣的是"如何揪出內鬼並進行還手",由於"揪出內鬼"的時候,咱們充當着"網絡警察"的角色(把小偷逮住),而"優雅的還手"又充當着"法官"的角色(懲治小偷)。
而充當網絡警察或法官這種角色,我可能算是比較有經驗的...... 從我剛接觸網絡/安全到如今,充當的次數多的數不過來:在學校外面租房的時候(別想歪)、在網吧上網的時候、在音樂餐吧吃飯的時候、在麥當勞/德克士蹭網的時候......可能普通用戶以爲稀疏日常的地方,在網絡世界裏實則暗流涌動。
我第一次"抓內鬼當法官"應該是在2010年的時候,當時在學校旁邊租了一個房子本身作技術研究。有一天晚上,網速變得特別慢,網頁基本無法打開,QQ勉強還能掛着,可是租房以來網絡一直還能夠,雖然不算快,可是也至少知足日常上網需求啊。我心想:算了,畢竟租的房子通常,每月網費也就30快,房東拉的寬帶可能比較垃圾不穩定吧,明天再看看。
次日早上爬起來,發現網絡一點問題都沒有,該開的網頁,該下載的資料,都沒有任何影響,恩,心情不錯,不用專門跑回學校一趟下載資源之類的。可是到了晚上七八點的時候,網絡又出現問題了,跟昨天晚上的狀況如出一轍,基本無法上網,可是網卡又顯示鏈接着,這讓我很是的鬱悶。
而後我忽然想起這幾天,這棟樓好像新來了一個租客,這棟樓一共就四層,一層就3戶租客,一共也就10來戶,而一樓仍是房東本身一家人住,我本身住二樓。基本上這棟樓裏的租客都能記得七七八八,因此若是有陌生面孔的話,一眼就能認出來,咱們暫且把這我的稱爲H,看上去是個上班族。
雖然當時仍是個小菜鳥,可是畢竟學這塊的,仍是有點敏感:擦,會不會是這我的白天去上班,晚上回來宿舍,就開始限制咱們的網速啊?
你不犯我,相安無事,你若範我,我必搞你。(年輕人仍是有點浮躁啊....)
行,開幹吧,多想沒用。而後便拿出了P2P終結者(忘了當時用什麼軟件了,不過八九不離十)一掃描,想探探網絡究竟。
萬萬沒想到啊,竟然遇到老司機了,人家局域網權限比我還高(不少局域網流控軟件都有權限的概念,若同一個局域網同時有多個使用這個流控軟件,則權限高的優先控制,其餘人的軟件會自動退出),網絡掃描進行一半,就提示"局域網有多人使用,因爲你權限較低暫停退出"這樣的提示,這樣一來,就驗證了個人判斷,這個內鬼應該是H。自從他來了以後,這個網絡就出了問題。這棟樓的網絡拓撲結構是這樣的=>
普通小白遇到這種狀況,裝個ARP防火牆,咬咬牙也就過去了。可是咋們學網絡和安全的,遇到這種狀況,感受就好像被人騎在頭上同樣。那咋辦呢?做爲一個理科男,作事情仍是得按步驟走,不能被脾氣牽着走,雖然當時已經很是生氣了,可是基本定下來這個解決流程:
第一:立刻給電腦安裝防火牆,先脫離H的控制(當時電腦竟然是裸奔的...);
第二:想盡辦法找到H的IP和MAC地址(不少小夥伴看到這裏可能會想:直接上去樓上揍他一頓不就得了,還費什麼勁找地址啊。這個有必要說明下:①我個頭沒人家大隻 ②人家要是問:你有證據嗎,你取證了嗎? 因此,武力不能解決問題,可是技術能力能夠。)
第三:千方百計拿到網絡控制權,把他踢下去。
第一步:具體就不說了,也忘了當時裝的什麼安全軟件了;
第二步:怎麼找到***者的IP和MAC地址呢?2010年的安全軟件,不像如今的ARP防火牆,可以主動告警,而且說明***次數和***源,因此仍是須要本身折騰下:熟練的打開電腦以前安裝好了的wireshark,監聽本身電腦網卡的流量,設置流量過濾器(僅過濾arp協議),不出意外,接下來就是一堆"帶有節奏的ARP掃描包"(還記不記得以前章節說過的,ARP***通常會涉及到持續的內網掃描和欺騙***)。當時收到的數據包大概這樣的:
經過流量數據包分析,很快就肯定了***者的IP和MAC地址。這裏要注意:雖然抓到了***者的IP和MAC地址,可是!咱們仍是無法實錘的證實:***者就是H。
這個***者是否是真的H啊?怎麼肯定就是這我的乾的呢?如何把虛擬世界裏的地址跟真實世界的人匹配起來?
接下來我便想到了一個方法:若是咱們能先拿到網絡的控制權,而後把***者給踢下去直接斷網,同時保證其餘人網絡連通;而後,誰要是下去跟房東溝通反饋不能上網,不就能夠基本判定這我的就是***者? 說白了,就是"誰叫誰小狗"......
好,到了計劃的第三步:如何拿到整個網絡的控制權?這裏就沒走的那麼順暢了:如今的實際狀況是:我和***者同時開啓局域網流控軟件,而是我被踢下來了,由於我權限低一些。當時的第一個想法是:我換一個流控軟件不就得了?這樣我不跟你拼這個軟件的權限。可是仔細想了想,即使換一個流控軟件能用,可是頂多也就是打個平手,我控制不了你,你也控制不了我,但最終遭殃的仍是其餘普通小白,這個方法不能"斬草除根"啊。
怎麼辦呢?是否是隻能跟他打個平手。在這裏卡了好久但又心有不甘,而後到了大半夜了忽然頓悟:擦,爲何要跟他"限來限去"呢,直接上整棟樓的出口路由器,把他踢出去不就得了?路由器(應該是TP-LINK)就在一樓樓梯口,而後其餘樓層加一個hub級聯上去,因此你們都在一個網絡裏面。
但問題是沒有路由器的後臺登陸密碼,怎麼解決呢?抱着僥倖的心理,查看電腦網關地址,而後瀏覽器輸入網關地址,彈出了登陸頁面,嘗試admin/admin?不行,再嘗試admin/123456?仍是不行...... 就這樣嘗試了常見的十幾二十個帳號密碼,都提示帳號密碼錯誤,看來運氣不是很好。
既然這樣的話,就只能拿出暴力破解軟件跑幾個詞典看看,用hydra掛着用戶名和密碼詞典,慢慢的看着命令行輸出,但輸出結果基本都是failed...... 因此,次日晚上雖然發現了***者的IP和MAC地址信息,可是拿他沒辦法,只能先忍着。
到了第三天白天,腦子裏想的都是如何登陸這個路由器後臺管理界面,嘗試跑了幾個詞典都無法登陸,心理又在想:房東不該該會設置太複雜的密碼啊,四五十歲的阿姨,徹底不懂技術啊,網絡應該也是叫人搞的,即使別人設置密碼也應該給阿姨設置比較簡單的讓她好記的,方便後面維護之類的...... 一想到這裏,趕忙從櫃子裏掏出以前的租房合約和房東名片,而後把房東的手機號碼、房東的姓名拼音等信息作成簡單的密碼詞典,再從新跑一次,還沒反應過來,就顯示密碼嘗試成功:admin/房東手機號碼。萬萬沒想到,覺得只要6位或者8位的密碼,竟然是一個11位的手機號碼,以前嘗試的詞典都是8位之內的。
接下來用瀏覽器訪問路由器後臺管理界面,進入主機列表,還沒發現這個昨晚***者的IP地址上線。等到了晚上七八點的時候,終於在路由器上發現這個IP地址,並且,wireshark同時也抓到了這個***者發起的掃描包。看來是***者一回到宿舍,打開電腦,就直接掛着***軟件,確實是個"慣犯"啊。好吧,看到這個狀況,我直接在出口路由器上把這個IP和MAC地址禁用,看接下來發生什麼。
果真,大概過了半個鍾,有人從樓上下來,直接去一樓找房東阿姨去了,具體說什麼這個不清楚,可是應該是詢問是否是寬帶欠費之類的致使不能上網。
過了一會,阿姨帶着他上來二樓..... 而後敲門詢問:大家二樓能不能上網啊?你們都陸續回答:能夠啊、沒問題啊。與此同時,我已經肯定了:眼前的這我的,H就是***者!他大概沒料到,本身已經控制了內網,怎麼可能被踢掉之類呢。
阿姨也不知道怎麼辦,只能說明天看看吧。看着他無辜的眼神回樓上去了,我也以爲抓到內鬼也就算了,先把他解禁看看。而後"慣犯"又上線了,看來沒有吃夠苦頭啊,當天晚上直接讓他斷網。以後的幾個晚上相似的狀況慢慢少了,由於只要他一掃描發起***,我這邊就斷他網,而後隔10分鐘或者半個鍾看看他反應,就這樣慢慢地把他制服了,整棟樓的網絡也就逐漸恢復了平靜……
4、ARP防護總結
①ARP***很是低門檻,可是形成的影響卻很大,包括斷網***、流量被限、帳號被盜等;
②ARP防護能夠在網絡端(網絡設備)上部署,也能夠在用戶端(電腦/手機)上部署;
③網絡設備(例如交換機)部署ARP防護,一般須要用到DAI(動態ARP監測)技術,更加專業的局域網安全防護,還可能結合DHCP偵聽、IP源防禦、端口安全、AAA、802.1X等技術,這些專業的防護技術,是由網絡運維和安全運維工程師來實施的。
④用戶端(電腦/手機)實施ARP防護,最好的方法就是不要隨意接入陌生網絡,而且安裝ARP防火牆。固然,技術宅的話,能夠採用"ARP雙向綁定"的方法,相對比較麻煩,可是也奏效。
⑤做爲一名有素養的網絡/安全工程師,應該不做惡。可是若是遭受***,應該揪出內鬼並"優雅的還手",作一個網絡警察,還普通用戶一個乾淨的網絡環境。
【相關推薦】
新浪微博:@拼客學院陳鑫傑
微信公衆號:拼客院長陳鑫傑