前言
2000 年 2 月上旬,發生了一連串著名網站受到攻擊的事件,遭受攻擊的有 Yahoo.com、eBay.com、amazon.com、buy.com 及 E*Trade Securities、CNN、ZDNet 等公司的網站(“FBI investigates,”2000,February 9;Cha& Schwartz,2000,February 10 )。
在這些事件中,駭客利用了阻斷服務攻擊( Denial-of-Service ( DoS ) attacks ),也可能是分散式的阻斷服務攻擊 ( Distributed Denial-of-Service ( DDoS ) attacks )。今年五月,全球知名的電腦系統安全權威 Steve Gibson,也得對這樣的攻擊投降,而令 Steve Gibson 傷透腦筋的電腦駭客,竟只有 13 歲。英國報導指出,今年五月時,Gibson 所成立的網站grc.com,曾經斷線 17 個小時,並連續二周遭到這樣的攻擊,聯邦調查局( FBI )表示愛莫能助,於是吉布森自行追查禍首,並在網站上發表公開信投降,才將整個事件告一個段落。
因此,可以知道這些阻斷服務攻擊的嚴重 ,而這些阻斷服務的攻擊其原理是如何?是如何發 攻擊及癱瘓網路的呢?本文將對此作詳細的分析。
TCP/IP 協定的安全漏洞
網際網路的核心是 TCP/IP 所構成。這一組網路上電腦之間的通訊協定構建了開放的、高擴充力的網際網路基礎架構,是網路快速成長的關鍵因素之一。然而,這些協定在設計之初,資訊安全並不是設計者關心的要點;許多 RFC 文件都指出安全因素並未被納入考慮。
於是,在 TCP/IP 的協定中,存在若干基本的安全問題,也就是說,TCP/TP 的協定本身存在若干的安全漏洞。這些漏洞常被駭客利用,成為阻斷服務攻擊的來源,例如,TCP/IP 協定中並沒有對來源位址作確認,這樣的設計結果,導致了無法找出攻擊的來源,因為,駭客便可對來源的 IP 造假,使受害者難以找出真正的攻擊來源。
一般使用阻斷服務攻擊的駭客,大多是為了好玩、報復及洩恨,因為這樣的攻擊,除了將網路、主機癱瘓掉之外,並無法竊取到企業內部的機密資料,嚴格地說起來,真正的高手,並不會去使用阻斷服務攻擊,但這樣的攻擊,造成的傷害確也不小。在Windows 2000 上市之前,曾有個以Windows 2000 架設並供駭客入侵測試的網站,微軟聲明禁止使用阻斷服務攻擊,但最後還是遭受了這樣的攻擊,可能是一些無法真正入侵成功的駭客,所展開的一種宣洩吧!目前已知的攻擊方式有數十種之多,如Ping of Death、SYN Flooding、UDP Bomb等及分散式阻斷服務,我們分別對其中說明。
《圖一 正常的TPC連線過程》 |
TCP SYN Flooding
TCP SYN Flooding 是利用 TCP/IP 協定的弱點,正常的 TCP 連結必須經過三筆訊息傳遞的交握( handshaking )過程方能完成,見(圖一)。一般在連線過程當中,Host 傳送一個同步 包( SYN )給Server,Server 回傳一個承認訊號( ACK )後,Host 再回傳自己的 ACK 並建立連線。如果 Host 主機不進行第三個步驟,Server 會預留暫存空間以等待接收資料,如果在同一時間發生太多建立連線的要求,且暫存空間也一直被建立而不被釋放出來處理資料,則系統會發生當機或癱瘓的情形 如(圖二)。
《圖二 Syn Flood的攻擊概念》 |
這種手法就是所謂的 SYN Flooding,而且駭客通常會以假冒 IP 的方式來攻擊,讓系統無法追溯攻擊者。這時網站遭受到 TCP SYN Flood 攻擊時,會有無法接收WWW 或 FTP 服務等請求的現象。
對於 SYN Flood 攻擊要如何防制呢?不幸地,這是 TCP/IP 的設計不良,較有效地方法是使用頻寬管理器限制連線或是和 ISP 配合,我們會在後面分散式阻斷服務攻擊詳述。
Smurf 攻擊
Ping 會送出單一的資料 包,然後等待回應。如果對於同一部主機連續給予大量的 ping 包,即 ping flood,則會造成網路及主機的大量資源耗盡。一種類似於ping storm,但威力更大的阻斷服務攻擊稱為 smurf (依攻擊程式之名稱命名)。
Smurf 利用 ICMP ( Internet Control Message Protocol )的 echo 回應;因為 smurf 的 echo 要求是向整個網路上全部的主機廣播,所以會衍生大量的反應 包,所有的反應 包送給單一的主機,即被攻擊的目標,造成服務被阻斷。如(圖三),駭客送出 ICMP echo 的 request 包給 Victim A,而這個 包的來源 IP 被修改成 10.254.8.9 到目的IP 的10.1.5.255,這時當 Network 10.1.5.0 的機器收到後,便對 10.254.8.9 的這台機器發 Ping flood,造成該機器和網路的資源耗盡。所以,駭客可以利用不知情的網路作為跳板,有效地放大攻擊能量,可以知道 smurf 也是相當有威力的阻斷服務攻擊。
《圖三 Smurfing攻擊示意圖》
|
避免駭客攻擊的方法
如何避免這樣的攻擊呢?Huegen ( 2000 )建議了三項作法:( 1 )關閉向內部網路廣播的功能,例如 Cisco 的路由器可以執行”no ip directed-broadcast”( 2 )利用存取控制表列( access control lists )來防止 ICMP echo 請求進入自己的區域網路( 3 )要求網路設備供應商關閉 ICMP 廣播式 echo 的回應功能。這樣應該可以避免成為駭客攻擊的跳板。
在除了上面二種較常見的攻擊方法外,還有只針對系統漏洞的 DOS 攻擊,像是針對 Microsoft 的 OOB 攻擊,或是 UDP Bomb 及 Teardrop 的攻擊,都會使主機或網路癱瘓掉。下面,將介紹分散式阻斷服務攻擊( Distributed denial of Service Attack ),它集合了一些 DOS 的攻擊技巧,同時,造成的傷害也更大。
分散式阻斷服務攻擊( Distributed denial of Service Attack )
Yahoo 等著名的電子商務網站,及前面所提到的 grc.com 網站都是遭受所謂的 DDOS 的攻擊,所謂的 DDOS 就是將一些 DOS 的攻擊程式分散於多台電腦,再一起攻擊目標網站。如(圖四),每一台被控制的電腦,都發 Ping Flood 或 Syc Flood等等的 DOS 攻擊,這樣連合起來,由攻擊者下達單一的、簡潔的命令,指揮數 部或數千部的電腦同時向目標主機大量地投擲資料 包,造成目標主機整個網路和主機的癱瘓,當時攻擊 Yahoo! 網站的能量達到每秒1 Gagabits 以上,可以想像 DDOS 威力的強大。
這些發 DOS 攻擊的機器,大多是例用一些駭客程式,如 TFN、TFN2K 等,雖然是現成的一些駭客程式,但必須先入侵數十台機器的電腦,並植入後門程式及 DDOS 程式才行,因此,完成整個 DDOS 的部署並不是這麼容易的,至少駭客必須先入侵這些發 攻擊的電腦才行,雖然這對某些程度的駭客也不是很難,但一定會花掉許多時間。
而這些電腦是怎麼被入侵的呢?駭客可以利用這些電腦上的安全漏洞,直接入侵這台電腦,通常,這些電腦的安全防護都相當弱,甚至在這些電腦的網路上根本沒有部署防火牆或入侵偵器系統,因此,很容易成為駭客下手的目標。
《圖四 DDDS的基本架構》
|
(圖四)說明了 DDOS 的攻擊模式,駭客入侵了網際網路上一堆的電腦後,選擇其中的一台或多台電腦作為 Master Server,而其他台電腦被當作「執行者」,也就是「攻擊者」,「執行者」的電腦上會放入agents 也稱為 daemons 的 DOS 程式。
這時駭客下達命令給 Master 發 攻擊, Master 再下達給這些 daemons,同時向目標投擲大量的 包,形成暴風雨式的DDOS 攻擊。像是 TFN ( Tribe Flood Network )、TFN2K 都是這樣的架構。Trinoo 則多了一層架構於 Master Server和 daemons 的中間,其攻擊 包是為 UDP 包。其他的 DDoS 工具則使用不同型態的 包。
TFN 及 stacheldraht 的「執行者」可執行威力強大的 smurf 攻擊,或選用 UDP、TCP SYN、ICMP echo 等三種型態之一的 包;TFN2K 則有混合不同型態 包的能力,包含了UDP flood,ICMP echo flood,ICMP broadcast flood ( Smurf ),TCP SYN attack。而這些 DDOS 的程式,也有愈來愈完整的機制,像是 Trinoo甚至於使用了 password 作為溝通;TFN2K 則更進一步對控制通訊予以加密,可以想像得到,未來的 DDOS 程式的發展將來愈來愈難捉摸。
結語
當受到 DOS 或 DDOS 攻擊時,要怎麼作反制呢?很不幸地,反制這些攻擊非常的不容易,以目前的技術來看,網站都是處於「防」的狀態,我們並沒有辦法馬上知道對方是誰,因為來源的 IP 可能是假的,也不可能在發現對方是誰後,再反擊回去,因為,這樣您也成了駭客,同樣也作了違法的事。
目前比較有效的解決方法,還是需要和ISP 配合,過濾掉一些不應該進來的 包,同時,也必須請 ISP 方面過濾掉由企業所發出去的非正常 包,如非企業內部的 IP,避免企業內有人成為 DDOS 的 daemons,這樣全面的配合,包含了各 ISP 和企業,才能將 DDOS 的傷害減至最少。另一方面,就是犯罪紀錄的收集和法律的修訂,藉由執法單位的力量,使得這些駭客不會輕易地作出違法的事情,這樣,網際網路才能真正發揮它的效能。
(本文作者任職於鈺松國際)
駭客與電腦病毒比較
|
駭客(Hacker)
駭客猶如被限制出境者(非企業網管人員),以幾可亂真的 Password 欺矇海關守門員(如同企業網路的Gateway ),進入國境(企業網路)後,鎖定迫害對象(各企業電腦主機),進行各種破壞動作。沒有合法身分認證的電腦駭客通常都會先想辦法取得一個合法的通行密碼,就可以藉者這把鑰匙在網路上通行無阻。
電腦病毒(Virus)
電腦病毒沒有特定目標,猶如某人持有合法護照,但在出入境時,攜帶的行李被放置槍砲彈藥等違禁品(病毒程式),海關(如同企業網路的 Gateway )並沒有察覺,於是在突破第一道關卡後,這些違禁品進入國境(個人電腦或企業網路),隨時產生破壞動做。
一個合法的使用者在有意無意間所「引進」病毒,其管道可能是直接從網際網路下載檔案、或者是開啟e-mail中含有病毒的附加檔案( Attachment)所感染。 |