搜尋此網誌

2010年6月3日 星期四

[技術分享] 釣魚攻擊

FacebookTop 之前我提到有關釣魚攻擊的研究報告與防範之道,這次我想要針對釣魚攻擊本身做個解釋。釣魚攻擊英文是 Phishing,我沒有拼錯,確實不是 Fishing,據聞這可能是 Phreaking 與 Fishing 的合體字。釣魚攻擊 (原始) 指的是利用假冒成合法的通訊對象,以騙取對方機密資料的手法。常見的例子為透過電子郵件或即時通訊等方式,誘騙使用者進入一個外觀很像合法網站 (如 eBay) 的假網站,之後使用者輸入的帳號/密碼就會被這個假網站所記錄。比較簡單的假網站可能在取得帳號/密碼之後就將使用者導回真正的目標網站,而有些假網站的模擬程度就更高了。但是一般而言,除非有別的安全機制,不然只要取得使用者的帳號/密碼就已經足夠取得使用者所有的資訊,所以假網站通常並不需要很複雜的功能。

魚叉式釣魚攻擊與社交網站

早期的釣魚攻擊多屬於大量散發的形式,所以目標網站的選取除了具備高價值外,也需要具備足夠的使用者。但是現在已經有越來越多針對特定目標 (如某某公司的員工) 的釣魚攻擊,這類攻擊又稱為魚叉式釣魚攻擊 (Spear Phishing)。而因為目標網站必須具備高價值,所以釣魚攻擊主要以假冒拍賣網站、金流或財務服務網站為主。而隨著社交網站的盛行,這類網站也漸漸受到釣魚攻擊者的重視。這類網站本身或許沒有多少直接的金錢利益,但是因為使用者眾,所以可以取得不少珍貴的個人資料,此外找到名人的機會也大了許多。除此之外,因為大部分使用者會有重複使用密碼的習慣,所以透過社交網站取得的帳號/密碼,也可以用來當作入侵其他系統的基礎。

建立釣魚網站

在 CEH 的領域中,把建立釣魚網站分為三個步驟,分別為

  1. 註冊一個假的網域名稱。
  2. 建立一個與目標網站很像的假網站。
  3. 利用電子郵件 (或其他方式,如即時通訊) 的方式誘使更多使用者前往。

不管是在哪一個步驟,都有一個很重要的考量,那就是如何”假”的不會引起使用者的質疑,並一步步地走入惡意份子設計好的圈套。

註冊一個假的網域名稱

首先在第一個步驟上,釣魚攻擊者都會將假網站的網址精心設計,以期誤導使用者的判斷。常用的手法包含

  • 利用子網域的方式。例如使用 http://www.nokia.evil.com/ 可能會讓使用者誤認為這是屬於 nokia 的網站,實際上這卻是 evil.com 的網站。 因為網址的階層是由低到高,跟人類習慣的表達方式是相反的。
  • 利用數字進行視覺的混淆。例如使用 http://www.goog1e.com/ 來假冒是 http://www.google.com/

建立一個與目標網站很像的假網站

可以利用一些複製網站的工具來達成。除此之外,也有專門的工具可以用來製作假的釣魚網站。

利用電子郵件 (或其他方式,如即時通訊) 的方式誘使更多使用者前往

惡意份子會利用各種社交手法,誘使使用者點選連結以前往假冒的網站。常見的情況包含要求使用者因為帳號被停用而必須緊急進行密碼重置的動作,或是登入可以獲得好康贈禮等。除了誘使使用者點選外,這些訊息還必須想辦法隱藏真正的連結,手法包含:

  • 利用連結的顯示文字。例如使用 http://www.nokia.com/ 的方式讓使用者以為點選的連結會連到 www.nokia.com ,但是實際上卻是連到 www.evil.com。 這個方法適用於點選之前。
  • 利用圖片的方式加以連結,而圖片顯示足夠讓使用者產生信心的內容 (如知名品牌的 Logo)。這個方法適用於點選之前。
  • 利用短網址的服務,讓真正連結的網址消失。這個方法適用於點選之前。
  • 利用跳出視窗或 Javascript 的功能,將位置列 (Address bar) 隱藏起來。這個方法適用於點選之後。
  • 使用自動登入的功能。例如使用 http://www.google.com@www.evil.com 這樣的連結,實際上是利用 www.google.com 這個帳號登入 www.evil.com 的網站,而不是連結到 www.google.com 。目前新版的瀏覽器會針對這樣的連結方式產生警告訊息,並要求使用者加以確認。這個方法通常用於點選之後。

攻擊手法

釣魚攻擊除了上述的基本款之外,其實還有其他各式各樣不同的形式。同樣以 CEH 的資料為例,釣魚攻擊可分為下列幾種形式。必須特別注意的是,實際上的攻擊手法並不一定能夠如此明確的加以分類,甚至可能同時混用多種方式。

  • 中間人攻擊 (Man-in-the-Middle Attacks)
  • URL 混淆攻擊 (URL Obfuscation Attacks) - 這就是我們上述的基本款。
  • 跨網站腳本攻擊 (Cross-Site Scripting Attacks) - 利用跨網站腳本攻擊,攻擊者可以在不改變連結網址的情況下執行攻擊程式,並獲取所需的資訊。這個問題屬於目標網站本身的安全漏洞。
  • 隱藏攻擊 (Hidden Attacks) - 利用內插或修改合法網頁內容的方式,改變使用者的使用行為。例如修改登入框,並將登入資訊送到另外一個網站,而非原始的目標網站。這個問題同樣屬於目標網站本身的安全漏洞。
  • 客戶端的弱點 (Client-side Vulnerabilities)
  • 假冒式釣魚攻擊 (Deceptive Phishing)
  • 惡意程式為主的釣魚攻擊 (Malware-based Phishing)
  • DNS 為主的釣魚攻擊 (DNS-based Phishing) - 利用 DNS 快取汙染 (DNS Cache Poisoning) 或是修改 DNS 設定的方式。這種方法通常也歸類在中間人攻擊所用的手法。
  • 內容注射釣魚攻擊 (Content-injection Phishing)
  • 搜尋引擎釣魚攻擊 (Search Engine Phishing) - 透過電子郵件或即時通訊散布訊息有時候很容易引起使用者的忽略與懷疑,但是大多數的使用者不會懷疑搜尋引擎提供的資料。

如果以原始定義來看,有些攻擊手法歸類在釣魚攻擊似乎是有些牽強,然而這就是理論與現實的差異。現實中,惡意份子可不會管甚麼分類不分類,只要有效,就算是不倫不類也沒關係。而如果我們過於拘泥在文字遊戲上面,其實對問題的解決並不會有多大的幫助。

中間人攻擊 (Man-in-the-Middle Attacks)

假冒網站的做法,雖然大多時候有其效果,但是大多僅限於欺瞞警覺心不夠的使用者。對於細心的使用者,甚至是當電腦安裝具備偵測釣魚網站能力的工具時,這樣的做法在效果上就會大打折扣。在此情況下,中間人攻擊就可以派上用場了。所謂的中間人攻擊,就是在你的電腦與目標網站 (如eBay) 之間安插上一個受惡意份子控制的程式。而當你在進行網站瀏覽時,雖然你以為是與真正的網站進行溝通,實際上卻是與這個惡意程式溝通,也因此所有傳輸的資料都將被一覽無遺 (不管加密與否)。使用的手法其實也不複雜,但是技術含量卻較原始的手法高了些,常見手法如下:

  • 修改瀏覽器的快取伺服器 (proxy) 設定。至於如何修改,可以透過其他的惡意程式在使用者不知情的情況下加以修改,或者是假冒為 open proxy 讓使用者自行上當。
  • 利用 DNS 快取汙染 (DNS Cache Poisoning) 的攻擊手法,將合法網站的 DNS 紀錄指向釣魚網站的 IP 位址。
  • 除了 DNS 快取汙染外,也可以修改作業系統的 DNS 設定,並利用惡意 DNS 將合法網站指向釣魚網站的 IP 位址。
  • 在真正的伺服器上安裝通透性快取伺服器 (transparent proxy) ,以便攔截所有進出的資料。

就像所有的攻擊手法一般,釣魚攻擊也在不斷的進化與改變。但是新技術不見得比較有效,反而是那些基本且看似簡單的攻擊手法才是令人防不勝防,所以保持警覺心絕對是必須且最重要的自保法門。

沒有留言:

張貼留言

About