神不知,鬼不覺,你的帳號密碼是如何被竊聽的?─中間人攻擊〈Man-in-the-middle Attack〉初探

Posted by Mr. Friday

(本文已同步刊登在密技偷偷報十月號)

好萊塢電影裡,總是對於電腦駭客有一些誇大不實的描述,譬如Die Hard 4〈終極警探4〉裡面,就把駭客講得實在有夠神,總是隨隨便便在幾秒內就能夠破解別人的密碼、穿越防火牆,取得機密資料,最後抱得美人歸〈誤〉…。不過誇張歸誇張,在現實生活裡,有能耐的駭客的確能夠在短短數分鐘之內,竊聽網路上的一舉一動,當然也包括了你剛才輸入過的帳號密碼!今天本文要解析的內容,就在於如何進行網路竊聽,而且神不知、鬼不絕,完全不在被竊聽的電腦上留下任何蛛絲馬跡!

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

另一個影片禁止網頁嵌入,大家得自己點過去看:

http://tw.youtube.com/watch?v=xWUuZqB4kCc

限於篇幅,這裡並不會細細說明軟體的操作細節,運作原理才是本文的重點。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://en.wikipedia.org/wiki/Man-in-the-middle_attack

Wired對於BGP協定被破解的報導:http://blog.wired.com/27bstroke6/2008/08/revealed-the-in.html

http://blog.wired.com/27bstroke6/2008/08/how-to-intercep.html

MMDays:重新發明網際網路

http://mmdays.com/2007/06/16/clean-slate/

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!
  • 真是太危險了,網路如此不安全,真要命。

  • 真是太危險了,網路如此不安全,真要命。

  • Willy

    雖然可以「竊聽」
    但現在不是有加密的技術?
    聽到卻聽不懂?

  • Willy

    雖然可以「竊聽」
    但現在不是有加密的技術?
    聽到卻聽不懂?

  • Michael

    @Willy
    雖然有加密技術, 但不是所有軟體都有提供加密功能
    例如官方的MSN也只有登入時加密過, 其他的傳輸是plaintext

    其實網路安全最脆弱的地方是一般人的安全意識
    例如常用的BBS, 有多少人知道帳號密碼是用plaintext傳送的?
    有多少人登入PTT是用”ssh://[email protected]”?
    而網站設計者也要負點責任,
    有多少server明明有有提供SSL(https://…), 可是登入的defult網址是http://…
    (某人力銀行網頁就是…帳號還是身份證字號…)

  • Michael

    @Willy
    雖然有加密技術, 但不是所有軟體都有提供加密功能
    例如官方的MSN也只有登入時加密過, 其他的傳輸是plaintext

    其實網路安全最脆弱的地方是一般人的安全意識
    例如常用的BBS, 有多少人知道帳號密碼是用plaintext傳送的?
    有多少人登入PTT是用”ssh://[email protected]”?
    而網站設計者也要負點責任,
    有多少server明明有有提供SSL(https://…), 可是登入的defult網址是http://…
    (某人力銀行網頁就是…帳號還是身份證字號…)

  • iguest

    >或許會有人認為本文所寫的解說太過詳盡,連軟體都有教學影片,容易導致更多的網路攻擊事件。但我認為清楚的教學說明是必要的,

    100%認同這一點,試圖遮掩網路攻擊手法,無異於駝鳥心態;唯有讓大眾真正知道網路不安全,才能促成更新更安全的網際網路!

  • iguest

    >或許會有人認為本文所寫的解說太過詳盡,連軟體都有教學影片,容易導致更多的網路攻擊事件。但我認為清楚的教學說明是必要的,

    100%認同這一點,試圖遮掩網路攻擊手法,無異於駝鳥心態;唯有讓大眾真正知道網路不安全,才能促成更新更安全的網際網路!

  • 看来加密显得非常的重要了

  • 看来加密显得非常的重要了

  • Jaw109

    聽起來好像所謂的”駭客(Hacker)”一詞…
    被當作是調皮搗蛋的傢伙

  • Jaw109

    聽起來好像所謂的”駭客(Hacker)”一詞…
    被當作是調皮搗蛋的傢伙

  • Willy

    我同意”使用者自覺”的重要性
    只可惜一般人所受的教導並不夠
    這應成為一種生活常識才是
    我想除了了解竊聽的原理之外
    作為使用者
    是不是有什麼防範或應該要注意的地方?
    (就是煩請高手再寫一篇囉)

  • Willy

    我同意”使用者自覺”的重要性
    只可惜一般人所受的教導並不夠
    這應成為一種生活常識才是
    我想除了了解竊聽的原理之外
    作為使用者
    是不是有什麼防範或應該要注意的地方?
    (就是煩請高手再寫一篇囉)

  • 這篇解說真不錯,有圖真的比較好懂。
    但這麼說來,使用者資料根本無所遁形?
    加密要靠硬體軟體,似乎也非一般屬「使用者」的大眾可自己做到的防範啊。

  • 這篇解說真不錯,有圖真的比較好懂。
    但這麼說來,使用者資料根本無所遁形?
    加密要靠硬體軟體,似乎也非一般屬「使用者」的大眾可自己做到的防範啊。

  • 加密後「竊聽」是否真的,聽到卻聽不懂?

  • 加密後「竊聽」是否真的,聽到卻聽不懂?

  • 還是用有加密過的連線比較安全。
    密碼設為複雜一點,就很難暴力破解了

  • 還是用有加密過的連線比較安全。
    密碼設為複雜一點,就很難暴力破解了

  • ImyP

    “每個人都會上網,但是對基本的網路安全認識與防範卻太過缺乏,甚至連電腦被竊聽、裝木馬、被癱瘓之後,只曉得要重灌,但重灌好了之後仍不知道如何防範。”
    真的說出很多技術人員的心聲,要解決問題先要了解問題,重灌根本就是沒有解決問題…

  • ImyP

    “每個人都會上網,但是對基本的網路安全認識與防範卻太過缺乏,甚至連電腦被竊聽、裝木馬、被癱瘓之後,只曉得要重灌,但重灌好了之後仍不知道如何防範。”
    真的說出很多技術人員的心聲,要解決問題先要了解問題,重灌根本就是沒有解決問題…

  • 因為在區網使用hub都是用廣播的方式傳送
    如果用wireshark的雜亂模式
    是否根本連ARP Spoofing都不需要?

  • 因為在區網使用hub都是用廣播的方式傳送
    如果用wireshark的雜亂模式
    是否根本連ARP Spoofing都不需要?

  • 電腦駭客的聚會選在拉斯維加斯阿…..
    After Party 不知道都在做什麼…

  • 電腦駭客的聚會選在拉斯維加斯阿…..
    After Party 不知道都在做什麼…

  • Pingback: Cain & Abel | BreakingMaze()

  • Pingback: 【資訊人權貴專欄】受不了手機屢被入侵、監控,西藏人成立安全的自由軟體市集 F-Droid | TechOrange《 平台、開發與通路 |()

  • Pingback: I am interested in internet security | 回到小時候單純的喜歡 Back to My Innocence()

  • Pingback: 西藏送給 Android 用戶的禮物: 保障隱私與安全的自由軟體市集 F-Droid | PanSci 泛科學()

  • Pingback: PanSci 泛科學()

  • Pingback: 【資訊人權貴專欄】蘋果在 iMessage 中留下監聽後門,被資安專家抓包了! | TechOrange《 平台、開發與通路 |()

  • Pingback: PanSci 泛科學()

  • Pingback: 【資訊人權貴專欄】現在開始學加密,就算全世界都想監視你也不用怕 | TechOrange《 爆橘 |()

  • Pingback: 好站與連結分享 2014/05 | Vixual()

  • Pingback: 安卓和蘋果用戶小心了!最新 SSL/TSL 漏洞 Freak 可能讓你資料洩光光 | TechOrange()

  • Pingback: 安卓和蘋果用戶小心了!最新 SSL/TSL 漏洞 Freak 可能讓你資料洩光光 | 发头条()

  • Pingback: 安卓和蘋果用戶小心了!最新 SSL/TSL 漏洞 Freak 可能讓你資料洩光光 | 網路與創業每日必讀()

  • 廣神

    如果有看過國家地理頻道的《駭客智多星》,就知道其實危險的地方不只網際網路而已,現實生活中到處都是

  • 廣神

    同意,資訊安全的部分(以及其他的基礎電腦知識),台灣的學校電腦課幾乎都不教,反而教畫畫、修圖之類的(又不是在上美術課),導致多數學生連許多最基本的電腦使用常識和保護意識都不懂