流量劫持是如何產生的?(二)
4. ARP 攻擊
這種攻擊大家幾乎都聽出老繭了,即使不懂電腦的人也知道裝個 ARP 防火墻保平安,其危害之大可想而知。
簡單的說,ARP 就是廣播查詢某個 IP 對應的 MAC 地址,在用這個 IP 的人回個聲。知道這個 IP 對應的 MAC 地址,就可以鏈路通信了(鏈路層只能通過MAC地址通信)。
如果有人冒充回復,并搶在正常人之前,偽造的答案也就先入為主。IP 被解析到錯誤的地址上,之后所有的通信都被劫持了。
事實上,早期的系統還有個更嚴重的BUG:直接給用戶發送一個 ARP 回復包,即使對方從沒請求過,系統也會接受這個回復,并提前保存里面的記錄。這種基于緩存的投毒,讓劫持成功率更上一層樓。
防范措施:由于這種攻擊太過泛濫,以至大部分路由器都帶了防 ARP 攻擊的功能。客戶端的 ARP 防火墻也數不勝數,似乎成了安全軟件的標配。當然,系統也支持強制綁定 IP 與 MAC 的對應,必要時可以使用。
很多教程都是用 Wireshark 來演示,事實上當年有一款叫 Iris 的軟件非常好用,可以修改封包再次發送,用它可以很容易搞明白各種攻擊的原理。不過N年沒更新了還不支持64位的。
5. DHCP 釣魚
現實中,并不是每個人都會配置網絡參數,或者出于方便,讓網絡系統自動配置。出于這個目的,DHCP 服務誕生了。
由于沒有配置IP地址、網關、DNS 等,在網絡上是寸步難行的,因此首先需要從 DHCP 那獲得這些。然而,既然連 IP 地址都沒有,那又是如何通信的?顯然,只能發到廣播地址(255.255.255.255)上,而自己則暫時使用無效的IP地址(0.0.0.0)。(事實上,鏈路層的通信只要有 MAC 地址就行,IP 地址已屬于網絡層了,但 DHCP 由于某些特殊需要使用的是 UDP 協議)
因為是發往廣播,內網環境里的所有用戶都能聽到。如果存在多個DHCP服務器,則分別予以回復;用戶則選擇最先收到的。由于規則是如此簡單,以至于用戶沒有選擇的余地。
尚若黑客也在內網里也開啟了 DHCP 服務,用戶收到的回復包很可能就是黑客發出的,這時用戶的網絡配置完全聽天由命了,不想被劫持都難了。
防范措施:如果是用網線上網的話,最好還是手動的配置。當然,管理員應該嚴格控制 DHCP 回復的權限,只允許交換機特定的接口才有資格發送回復包。
只要是這類提問/搶答模式的,都面臨被冒充回答的風險。很多原理都類似。
6. DNS 劫持
如同 ARP 將 IP 解析成 MAC 地址 一樣,DNS 負責將域名解析成 IP 地址。作為網絡層的服務,面對的用戶更廣泛,當然面臨的風險也大的多。一旦遭到入侵,所有用戶都倒霉了。近些年的重大網絡事故無不和 DNS 有關。
DNS 服務一旦被黑客控制,用戶發起的各種域名解析,都將被暗中操控。將正常網站解析成黑客服務器的 IP,并事先開啟了 HTTP 代理,用戶上網時幾乎看不出任何破綻;而黑客則獲取到所有訪問流量,各種網站賬號信息都將一覽無余。
由于 DNS 服務器的重要性,現實中通常有著較高的安全防護,想入侵它系統不是件易事。但實際未必如此興師動眾,一些 DNS 程序本身就存在著設計缺陷,導致黑客能控制某些域名的指向。其中最惡名昭彰的當屬 DNS 緩存投毒。
大家或許已發現,域名->IP->MAC->接口,只要是動態查詢的就會多一個環節,風險自然增加。靈活性與安全性始終是不可兼得。
防范措施:手動設置一些權威的 DNS 服務器,例如 8.8.8.8,4.4.4.4 會靠譜的多。
公網上的 DNS 劫持很少發生,但家用路由器的 DNS 劫持已泛濫成災了。開頭報道的路由器漏洞,最終的利用方式也就是修改了 DNS 地址。