不知不覺帳號密碼被竊:中間人攻擊介紹
在那些好萊塢大片中,總是對于電腦黑客有一些夸大不實的描述,譬如《虎膽龍威4》里,就把黑客神化,短短數秒就能夠破解別人的密碼、穿越網絡防火墻,取得機密資料…。雖然有些夸張,但在現實生活里,技術高深的黑客也確實能在在短短數分鐘之內,竊聽網絡上的一舉一動,當然也包括了你剛才輸入過的帳號密碼!今天本文要解析的內容,就在于如何進行網絡竊聽,而且神不知、鬼不絕,完全不在被竊聽的電腦上留下任何蛛絲馬跡!
MITM中間人攻擊
一、中間人攻擊原理
中間人攻擊(Man-in-the-Middle Attack,簡稱MITM攻擊)是一種通過竊取或竄改通信物理、邏輯鏈路間接完成攻擊行為的網絡攻擊方法。這種攻擊模式通過各種攻擊手段入侵控制,或者直接以物理接入方式操控兩臺通信計算機之間的主機,并通過這臺主機達到攻擊兩臺通信計算機中任意一方的目的。這個被攻擊者控制的通信節點就是所謂的“中間人”。
中間人攻擊很早就成為了黑客常用的一種攻擊手段,其思想可以追溯到上千年前的古代,春秋戰國時期竊符救趙的信陵君,竊取兵符控制軍隊即是針對魏王與軍隊之間信息傳遞方式的典型中間人攻擊。
MITM中間人攻擊
在網絡通信系統最被被設計出來時,安全因素并沒有被考慮到,互聯網工程任務組(IETF)設計的ARP、DNS、DHCP等常用協議都沒有考慮網絡通信被人惡意竄改的情況,即使在局域網中沒有攻擊者,只要有個別操作人員錯誤的配置了網絡中的一個非關鍵結點(如多啟動一個DHCP服務器),就有可能影響網絡中其它結點的正常網絡通信。
這些早期的協議更無法對簡單的物理連接改變而可能引發的安全問題進行防御。網絡標準的向下兼容性決定了現代網絡繼承了這些問題,大家依然會被這些問題困擾。嚴格說起來,中間人攻擊算是一種“概念”,它有很多實現方式。進行攻擊的黑客,首先要找到網絡協議的漏洞,對中間的網絡設備進行偷天換日,神不知鬼不覺的把自己替換成網絡傳輸過程必經的中間站,再紀錄下特定網段內的數據包。
中間人攻擊難以防御的地方在于:
1. 黑客在進行竊聽時,一般網絡鏈接仍能正常運行不會斷線,故而少有人會主動發現。
2. 使用者電腦上不會被安裝木馬或惡意軟件,也難以被殺毒軟件發現。
3. 黑客在欺騙網絡協議時,雖然可能會留下一些蛛絲馬跡,但由于網絡設備不會保留太多紀錄檔案,事后難以追蹤。
4. 絕大多數的網絡協議,仍然是基于“對方的數據是安全可靠”的假設來運作的,這導致黑客有太多漏洞可以鉆,欺騙網絡設備、偽裝成中間人。
搭線竊聽與中間人攻擊
二、中間人攻擊的典型網絡環境及其防御
中間人攻擊有兩種常見形式:基于監聽的信息竊取與身份仿冒,與基于代理的信息竊取與竄改。以下為中間人攻擊比較典型方式及其網絡環境
1.基于監聽的信息竊取
在同一個沖突域的局域網絡中攻擊者只要將網卡設為混雜模式,就可以輕松監聽網絡中的流量,通過Wireshark,Tcpdump等工具軟件就可以過濾出密碼、通信內容等敏感信息實現攻擊。由于很多通信協議都是以明文來進行傳輸的,如HTTP、FTP、Telnet等,如果通信數據被監聽,就會造成相當大的安全問題。
通過集線器連接的以太網絡或是以太網線路中被惡意物理接入集線器及監聽節點就是這種攻擊方式的常見網絡環境。其防御方法也很簡單,就是確保物理連接不被改動,沖突域中不存在第三方節點,如改用計算機直接連接交換機的組網方式。
2. 基于監聽的身份仿冒
在物理上不能保證通信不被監聽的情況下,為了保護重要信息不被泄露,網絡系統一般會對口令、敏感內容進行加密傳輸或引入Kerbose、SSL等協議對登錄認證等關鍵通信過程進行加密保護。但是限于性能、效率等因素,并不是所有網絡系統都能保證所有傳輸內容得到加密保護。
如一般的Web網站系統,只會對登錄認證過程進行加密,而后續用戶與網站的交互采用明文的HTTP協議傳輸。基于監聽的中間人攻擊,在口令或認證過程加密的情況下,通過其它技術手段也會對網絡造成安全威脅,比較典型的手法是針對HTTP Cookie的攻擊。
網站用戶在訪問網站前常常需要輸入用戶名與密碼。網站會為通過驗證的登錄用戶建立會話,一般會用Cookie(網站儲存在用戶本地瀏覽器上的數據,并在每次訪問時提交給網站)保持對會話追蹤以確認訪問者的身份及登陸狀態,并根據身份及登錄狀態為訪問者設置訪問網站資源的權限。當會話結束時,登陸信息就會被清除,但Cookie可能不會馬上失效。
盡管訪問者在瀏覽網站過程中通常沒有意識到這種會話的存在,但它確實發生在每一次的鏈接點擊過程中,是網站中最常見的會話形式。如果能夠獲取用于維持瀏覽器和登陸網站間會話狀態的Cookie,攻擊者可以模擬真實用戶的訪問,將竊取的Cookie發給網站服務器,這樣就能冒充合法的會話連接獲得在網站資源的相應權限(如圖1所示)。攻擊者一旦通過竊取Cookie完成對網站服務器的會話欺騙,受害者在網站上的個人數據將被任意查看和修改,受害者的帳號也可能被用于基于社交網絡的攻擊與詐騙。
圖1 基于Cookie的中間人攻擊示意圖
防御基于Cookie的中間人攻擊,服務器端可以把Cookie的有效時間設置為較短時間,以使已經結束會話的緩存狀態盡快失效。另外,服務器或IPS設備在處理Cookie時,可以綁定一些用戶信息如IP地址等,并對其進行驗證,這樣可以有效防止相當一部分的攻擊。作為Web用戶,在登錄后結束瀏覽時,應該使用退出功能明確通知服務器會話已經結束,使Cookie立即失效
3.基于中間代理的中間人攻擊
1) ARP欺騙(ARP Spoofing)
ARP欺騙是現代中間人攻擊中最早出現的攻擊形式,能夠讓與受害主機在相同子網的攻擊者主機竊取目標主機的所有網絡流,是比較容易執行且相當有效的中間人攻擊形式。
從ARP工作機制可以看出,ARP協議簡單易用,但是卻沒有任何安全機制,使用ARP協議的設備會接受在任何時間源自任何主機的ARP更新。這意味著攻擊者可以向子網內另一臺主機發送ARP數據包,并迫使目標主機更新其ARP緩存。ARP欺騙主要有仿冒網關或仿冒用戶兩類,由于子網內的主機與外網通信均需要經過網關,仿冒網關而進行的中間人攻擊最為常見。
ARP欺騙
如圖2所示,因為攻擊主機A仿冒網關向主機B發送了偽造的網關ARP報文,導致主機B的ARP表中記錄了錯誤的網關地址映射關系,正常的數據從而不能被網關接收。主機B原本通過網關發送到外網的所有數據報文都按照學習到的錯誤ARP表項發送到了攻擊者控制的主機A,此時主機A可以把主機B的報文解析修改后轉發給網關,并在后續將網關轉回的外網回應報文解析修改后轉發給主機B,成為主機B與網關之間的“中間人”。
防御ARP欺騙的主要方法有在整個局域網使用靜態ARP,及通過主機ARP防護軟件或交換機、路由器對ARP進行過濾及安全確認,其核心目標均是建立正確的ARP表項。靜態ARP通過手動配置或自動學習后再固化的方式,在主機及網絡設備上建立靜態不變的正確ARP表項。
圖2 ARP欺騙仿冒網關示意圖
而偽造ARP報文的檢測,需要由主機或網絡設備提借額外的安全功能。偽造ARP報文具有如下特點:源MAC地址/目的MAC地址和以太網幀封裝中的源MAC地址/目的MAC地址不一致;源IP地址和源MAC地址的映射關系不是合法用戶真實的映射關系。精確的過濾與安全確認能有效的阻止ARP欺騙的發生。
2) DNS欺騙(DNS Spoofing)
DNS欺騙是攻擊者冒充域名服務器讓目標主機把域名轉換成錯誤IP的一種欺騙行為,其目的是讓受害主機把通過域名查詢到的IP地址設為攻擊者所控制主機的IP地址。如果受到此類攻擊,用戶通過域名連接的目標服務器可能被悄無聲息地替換成了偽造服務。攻擊者也可以在偽服務器上把受害主機的流量解析修改后冒名轉發給真實的服務器,由“冒名頂替者”變為“中間人”。
DNS欺騙攻擊是一種非常危險的中間人攻擊,它容易被攻擊者利用并且竊取用戶的機密信息。其常被用于與釣魚網站配合,如將用戶對銀行主頁的訪問重定向到攻擊者所控制的釣魚網站,騙取銀行密碼等。
圖3 SSL欺騙攻擊示意圖
三、結束語
中間人攻擊是一種非常危險的攻擊形式,時常與釣魚網站、掛馬網站等攻擊形式結合,讓你不知不覺中泄漏電腦里的秘密,另外它會主動引導你下載病毒木馬或木碼。更重要的是,這種攻擊可能將我們認為絕對安全的網絡連接變成完全被人監聽控制的連接,使得網絡連接的私密性得不到保障,造成重要數據輕易落入攻擊者之手。由于網絡環境的復雜性,我們有必要對中間人攻擊有進行了解,具備初步判斷網絡連接安全性的能力。