中間人 (MitM) 攻擊是一種主要的網(wǎng)絡(luò)威脅,它的名字來源于攻擊者將自己插入兩個(gè)通信方之間的事實(shí)。如果所有通信都在到達(dá)目的地的途中通過攻擊者,這會(huì)導(dǎo)致攻擊者在消息到達(dá)預(yù)期收件人之前丟棄、閱讀或修改消息。
中間人 (MitM) 攻擊的工作原理
要執(zhí)行中間人攻擊,攻擊者需要完成兩個(gè)目標(biāo)。首先,他們需要以某種方式將自己插入到通信中,以使他們能夠攔截前往目的地的流量。攻擊者可以實(shí)現(xiàn)此目的的一些方法包括:
- 惡意 Wi-Fi:所有 W-Fi 流量都流經(jīng)無線接入點(diǎn) (AP),因此控制無線 AP 并誘騙用戶連接的攻擊者可以攔截他們的所有流量。
- ARP 欺騙:地址解析協(xié)議 (ARP) 用于將 IP 地址映射到 MAC 地址。通過使用虛假的 ARP 消息,攻擊者將目標(biāo)的 IP 地址映射到他們的 MAC 地址,從而導(dǎo)致目標(biāo)的流量被發(fā)送給他們。
- DNS 欺騙:域名系統(tǒng)(DNS)將域名映射到 IP 地址。使用虛假 DNS 記錄毒化 DNS 緩存可能會(huì)導(dǎo)致到目標(biāo)域的流量被路由到攻擊者的 IP 地址。
- BGP 劫持:邊界網(wǎng)關(guān)協(xié)議 (BGP) 用于識(shí)別具有到特定 IP 地址的最佳路由的自治系統(tǒng) (AS)。BGP 劫持涉及發(fā)布虛假路由以導(dǎo)致某些流量流經(jīng)攻擊者的系統(tǒng)。
一旦處于通信中間,攻擊者需要能夠讀取消息;但是,很大一部分互聯(lián)網(wǎng)流量是使用 SSL/TLS 加密的。如果流量被加密,那么讀取和修改消息需要能夠欺騙或破壞 SSL/TLS 連接。
這可以通過幾種不同的方式來實(shí)現(xiàn)。如果攻擊者可以欺騙用戶接受站點(diǎn)的虛假數(shù)字證書,那么攻擊者將能夠解密客戶端的流量并在將其發(fā)送到服務(wù)器之前對(duì)其進(jìn)行讀取或修改。或者,攻擊者可以使用 SSL 剝離或降級(jí)攻擊來破壞 SSL/TLS 會(huì)話的安全性。
中間人攻擊示例
中間人攻擊可以通過多種方式進(jìn)行,這取決于被攻擊的協(xié)議和攻擊者的目標(biāo)。例如,當(dāng)通信流未加密并且攻擊者自然位于目標(biāo)流量將采用的路徑上時(shí),執(zhí)行中間人攻擊會(huì)更容易。
場(chǎng)景 1:易受攻擊的物聯(lián)網(wǎng)/移動(dòng)應(yīng)用程序
普通用戶已接受過有關(guān)如何根據(jù) URL 欄中的 https 和鎖定圖標(biāo)確定其 Web 瀏覽會(huì)話是否加密的教育。但是,使用移動(dòng)應(yīng)用程序和物聯(lián)網(wǎng)(IoT) 設(shè)備驗(yàn)證數(shù)據(jù)流是否已加密更加困難。這些安全性較差并使用未加密的協(xié)議(例如 Telnet 或 HTTP)進(jìn)行通信的情況并不少見。
如果是這種情況,那么攻擊者可以輕松讀取并可能修改移動(dòng)應(yīng)用程序或物聯(lián)網(wǎng)設(shè)備與服務(wù)器之間流動(dòng)的數(shù)據(jù)。通過使用無線接入點(diǎn)或某種形式的欺騙,攻擊者可以將自己插入通信流中,以便所有流量都流經(jīng)它們。由于這些協(xié)議缺乏對(duì)數(shù)據(jù)完整性或真實(shí)性的內(nèi)置檢查,因此攻擊者可以隨意更改流量的內(nèi)容。
場(chǎng)景 2:假數(shù)字證書
SSL/TLS 旨在通過為網(wǎng)絡(luò)流量提供機(jī)密性、完整性和身份驗(yàn)證來防止中間人攻擊。但是,它依賴于用戶只接受特定域的有效數(shù)字證書。如果攻擊者可以誘騙用戶訪問網(wǎng)絡(luò)釣魚站點(diǎn),說服他們接受假證書,或者破壞公司用于SSL 檢查的數(shù)字證書,那么這些保護(hù)措施就會(huì)被破壞。
在這種情況下,攻擊者維護(hù)兩個(gè)使用 SSL/TLS 加密的單獨(dú)會(huì)話。一方面,它連接到客戶端,同時(shí)偽裝成服務(wù)器并使用其偽造的 SSL 證書。另一方面,它偽裝成連接到合法服務(wù)器的客戶端。由于攻擊者控制了兩個(gè)會(huì)話,他們可以從一個(gè)會(huì)話中解密數(shù)據(jù),檢查和修改它,然后為另一個(gè)會(huì)話重新加密。
中間人攻擊防護(hù)
中間人攻擊依賴于攻擊者能夠攔截和讀取流量。防止這種情況發(fā)生的一些Internet 安全最佳實(shí)踐包括:
- 謹(jǐn)防公共 Wi-Fi:公共 Wi-Fi上的流量全部通過 AP,可能處于攻擊者的控制之下。僅連接到已知且受信任的 Wi-Fi 網(wǎng)絡(luò)。
- 使用 VPN:虛擬專用網(wǎng)絡(luò) (VPN) 對(duì)遠(yuǎn)程用戶或站點(diǎn)與 VPN 端點(diǎn)之間的流量進(jìn)行加密。這可以防止中間人攻擊者讀取或修改截獲的流量。
- 驗(yàn)證數(shù)字證書:合法網(wǎng)站應(yīng)始終具有在瀏覽器中顯示為有效的數(shù)字證書。信任可疑證書可能會(huì)導(dǎo)致中間人攻擊。