Man-in-the-middle

Man-in-the-middle


簡單的說就是駭客扮演中間人角色,冒充伺服器接收你傳送的訊息,再冒充你把訊息傳給真正的伺服器,因此可以在通訊兩端不知情的情況下竊取或更改傳遞的訊息。例如軟體「Cain & Abel」鑽的是ARP協定的漏洞,透過「ARP Spoofing」的技巧,欺騙特定電腦,假冒自己成中間人。

講到網路竊聽,許多人可能還是不太清楚實際上是怎麼運作的。聽到這個名詞的瞬間,腦中所聯想到的畫面,可能還是動作片裡偵探在房 間裡偷裝竊聽器的模樣。事實上,的確有一些網路竊聽的概念是源自這種模式:駭客在你電腦裡面裝木馬軟體,再把你打過的每一個字透過網路偷偷傳送出來。不過 這種模式有個缺點,就是容易留下證據,畢竟竊聽器〈木馬程式〉還留在對方電腦裡。但是,今天要介紹的這種攻擊卻完全不同;這種攻擊不需要在你電腦上裝病毒 或木馬,也不會在你電腦上留下任何紀錄,卻能紀錄到你在網路上的任何一舉一動,的是來無影去無蹤。它的名字叫做:Man-in-the-middle attack,簡稱MITM〈中間人攻擊〉。


網路訊息的傳輸過程,大體上可以用傳統的信件收送機制來模擬:首先把你要寄送的信件〈封包〉,寫上目的地地址後,投送到最近的郵局〈網路閘道;Gateway〉,郵局就會根據目的地地址,把訊息送給他所知道最接近的另一間郵局去。不過,真實世界的送信機制與虛擬網路傳輸,有一個很根本的差 異:中間幫忙傳輸的人,到底是誰?在現實生活裡,各地的郵局都是由政府中央機關管理,但網路上幫忙傳輸封包的閘道卻沒有一個統一的管理機制。難以驗證每個網路元件的身分,是網際網路當年發展時沒有嚴加設計導致的原罪;這也導致網路上的各種傳輸協定,多半是直接建立在「我相信其他人傳過來的訊息」的假設上: 有人說他的IP是10.0.0.1,我就相信;有人告訴我走這條路比較近,我就相信。熟悉網路傳輸架構的人,對於這樣的假設,應該都不陌生才是。然而這樣 容易相信他人的設計,卻為資訊安全投下了不確定的變數。

什麼變數?我們今天要介紹的Man-in-the-middle中間人攻擊,就是非常巧妙的利用了Internet的這個盲點。Man in the middle,指的是在網路傳輸過程中,協助傳送封包的網路元件。有心竊聽的駭客,透過網路協定容易相信他人的特點,將自己偽裝成協助傳訊的網路元件,實則把網路上的流量通通紀錄下來。不懂?看看以下的圖吧!
原本的傳輸機制:

mitm1

而遭到駭客以中間人攻擊的網路傳輸則像下圖所示:
mitm2

嚴格說起來,中間人攻擊算是一種「概念」,也就是說有很多實作方式。進行攻擊的駭客,首先要找到網路協定的漏洞,對中間的網路設備進行偷天換日,神不知鬼不覺的把自己替換成網路傳輸必經的中途站,再紀錄下特定網段的一舉一動。
中間人攻擊難以防禦的地方在於:

1. 駭客在進行竊聽時,一般網路活動仍能正常運作不會斷線,故鮮少有人會主動發現。
2. 使用者電腦上不會被安裝木馬或惡意軟體,也難以被防毒軟體發現。
3. 駭客在欺騙網路協定時,雖然可能會留下一些蛛絲馬跡,但基於效能與磁碟空間考量,網路裝置一般而言都不會保留太多紀錄檔,造成事後追蹤極為困難。
4. 絕大多數的網路協定,仍然是基於「我相信其他人傳過來的訊息」的假設在運作的,這導致駭客有太多漏洞可以鑽,藉以欺騙網路設備、偽裝成中間人。
關於第四點,這絕對是MITM攻擊至今仍層出不窮的原因。網際網路能通,是建立在眾多的TCP/IP協定合作的結果,但只要有一個協定被發現有漏洞可鑽,就可能被駭客趁虛而入。而現在的狀況是,幾乎每一個協定或多或少都有漏洞,導致MITM攻擊幾乎是防不勝防…!接下來,我們就直接來看一個範 例:Cain and Abel。

Cain & Abel是從oxid.it這個 網站發佈的軟體。原文音譯是「該隱與亞伯」,是聖經裡亞當和夏娃兒子的名字。不過,聖經故事跟這個軟體所作的事顯然沒什麼關係…
mitm3 Cain-and-Abel

從網站上的簡介可以得知,Cain & Abel是針對微軟作業系統而設計的密碼竊取軟體〈他們宣稱是密碼「復原」軟體〉。Cain & Abel要怎麼使用呢?youtube上有很完整的影片教學:
另一個影片禁止網頁嵌入,大家得自己點過去看:
限於篇幅,這裡並不會細細說明軟體的操作細節,運作原理才是本文的重點。Cain & Abel鑽的是ARP這個協定的漏洞,透過一種叫做「ARP Spoofing」的技巧,欺騙特定電腦,假冒自己成中間人。
ARP原本的作用是解析IP與網卡實際位置的對應關係,是網路運作不可或缺的協定。以下是ARP的運作原理圖解:

正牌Gateway
mitm4
mitm5

乍看之下,上面的運作好像沒什麼問題?不,問題可大了。ARP Spoofing是這樣做的:
mitm6
mitm7

看懂了吧?這就是所謂的ARP Spoofing〈ARP欺騙〉,透過ARP協議的弱點,神不知鬼不覺地冒充為Gateway。Cain & Abel就是利用ARP Spoofing所設計出來的MITM攻擊軟體,同時欺騙傳訊中的兩端,把自己冒充為中間人。對於一般人網友來說,Cain & Abel算是相當方便的工具,提供了GUI介面,只要指定竊聽的對象,就會幫你進行竊聽。其實從Cain & Abel的log檔裡,可以看到它能記下竊聽對象的網路活動,如果竊聽的對象是一台Windows的機器,它還能自動把帳號密碼擷取出來,難怪自稱是「密碼復原軟體」!

不過,像Cain & Abel這樣的中間人攻擊軟體是有其極限的。因為ARP是在區域網路內使用的協定,所以駭客必須要被攻擊的對象處在同一個網段裡,這限制了ARP Spoofing的攻擊範圍;而且相較於其他的漏洞,ARP Spoofing算是比較知名的,所以市面上的知名網路設備廠商,也逐漸提供防堵ARP Spoofing的功能。但是除了透過ARP Spoofing,網路上仍有為數不少的漏洞,讓駭客有了攻擊的機會。

約莫三個月前,在拉斯維加斯,一場名為DefCon的電腦駭客聚會的最後一天最後一刻,臨時插進了一個主題。這段演說主講人是Anton Kapela與Alex Pilosov,而他們接下來的話讓全場大為震驚:他們已經成功的破解了BGP〈Border Gateway Protocol〉,透過BGP的安全性漏洞,他們將可以竊聽網際網路上的任何網路活動。就在發表演說的當下,全場94%的網路傳輸已被他們在紐約設立的監聽中心,而當下完全沒有人能察覺得出來。

Anton Kapela與Alex Pilosov所用的方法,雖然暫時還沒有很詳細的解析,但是原理一樣是透過網路漏洞進行中間人攻擊,唯一不同的是,這次他們所鑽的漏洞來自於BGP。 BGP是整個Internet最被廣泛使用的routing協定,若被發現漏洞,影響的層面可不只是區域網路而已。然而,BGP畢竟也是建立在「相信他人」為前提建造出來的網路通訊協定,國外已有不少相關研究指出這樣的設計並不安全,相關研究至少可以追溯到1980年 代。而事實上,BGP也不是第一次被發現有漏洞了。

為了有效防範中間人攻擊,一些大型公司機關〈尤其是銀行〉的內部網路開始採取用加密連線,例如HTTPS、SSH、SFTP等等(S指的是 Secure,安全之意),把網路的傳輸內容通通進行加密,如此一來就算駭客能用中間人攻擊進行竊聽,看到的也只會是一群無意義的亂碼。唔,那這樣就算安全了嗎?其實,這些軟體本身也不見得沒有弱點,但若只論中間人攻擊的話,還是能提供一定程度的防範。

所謂「道高一尺,魔高一丈」,當年Internet被發明之後,或許大家太過專注在網路協定的功能與效能面,卻忽略了安全性部分,導致今日網路漏洞 層出不窮,讓駭客有機可乘。因此在前年美國的Stanford大學一個團隊提出了Clean Slate Design for the Internet計畫,也就是要「重新發明網際網路」。不過現在的Internet實在太過普遍了,要取而代之,恐怕還要等上十幾年呢。

MITM是網路上相當常見的竊聽技巧,然而大多數網友對它的認識卻太少。或許會有人認為本文所寫的解說太過詳盡,連軟體都有教學影片,容易導致更多 的網路攻擊事件。但我認為清楚的教學說明是必要的,每個人都會上網,但是對基本的網路安全認識與防範卻太過缺乏,甚至連電腦被竊聽、裝木馬、被癱瘓之後, 只曉得要重灌,但重灌好了之後仍不知道如何防範。希望這篇文章,除了讓大家認識駭客的竊聽手法之外,也能讓大家對網路安原,能有更深一層的認識與防範。



參考文章:
Wikipedia上對於中間人攻擊的解釋:
http://mmdays.com/2008/11/10/mitm/

0 意見: