天天看點

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

點選檢視第一章 點選檢視第三章

第2章 

攻擊類型

本章目标

在閱讀完本章并完成練習之後,你将能夠完成如下任務:

  • 描述最常見的網絡攻擊,包括會話劫持、病毒攻擊、特洛伊木馬、拒絕服務和緩沖區溢出。
  • 解釋這些攻擊是如何執行的。
  • 制定針對這些攻擊的基本防禦措施。
  • 配置系統以防範拒絕服務攻擊。
  • 配置系統以防範特洛伊木馬攻擊。
  • 配置系統以防禦緩沖區溢出攻擊。

2.1 引言

第1章介紹了計算機系統的一些常見危害,概述了網絡安全知識。本章将更為深入地研究具體類型的攻擊,分析系統最常受到攻擊的方式,并特别關注拒絕服務(Denial of Service,DoS)攻擊。它是Internet上最常見的一種攻擊方法,了解該類攻擊的工作原理和防範措施對管理者來說非常重要。

本章還将介紹病毒攻擊、特洛伊木馬攻擊以及一些不太常見的攻擊方法,如會話劫持(session hacking)攻擊和隧道(tunneling)攻擊。有一句古老的格言—“知識就是力量”,對資訊安全而言,這句格言不僅是好的建議,而且是建構整個網絡安全觀的一個公理。

2.2 了解拒絕服務攻擊

第一種攻擊類型是拒絕服務攻擊(DoS)。 回顧第1章學習的内容,拒絕服務攻擊是指旨在剝奪合法使用者使用目标系統的任何攻擊。此類攻擊實際上并不試圖入侵系統或擷取敏感資訊,它隻是試圖阻止合法使用者通路給定的系統。這種類型的攻擊是最常見的攻擊類别之一。許多專家認為它很常見,因為大多數形式的拒絕服務攻擊都很容易執行,這就意味着即使是低水準的攻擊者也經常可以成功執行。

拒絕服務攻擊的理念是基于任何裝置都有操作權限這一事實。這個事實适用于所有裝置,而不僅僅是計算機系統。例如,橋梁設計的承重有最高限,飛機在不續油的情況下有最長飛行距離,而汽車隻能加速到某一時速。所有這些不同的裝置都有一個共同的特點:在作業時能力有極限值。計算機或任何其他機器與這些裝置沒有什麼不同,它們也有局限性。任何計算機系統、Web伺服器或網絡都隻能處理有限的負載。

如何定義工作負載(及其限制)因機器而異。計算機系統的工作負載可以用多種不同的方式來定義,包括并發使用者的數量、檔案的大小、資料傳輸的速率或存儲的資料量。超過任何限制系統将停止響應。例如,如果你向Web伺服器發送的請求數多于它可以處理的請求數,那麼它就會過載,并且無法再響應其他請求。這就是DoS攻擊的理論基礎。簡單地發送請求使系統過載,它就無法再響應嘗試通路Web伺服器的合法使用者。

2.2.1 執行DoS

拒絕服務攻擊的概念很簡單。然而,大部分原理通過具體的例子會更容易了解。對于DoS攻擊,你需要通過一種安全的方法在教室或實驗室環境中來模拟它。示範DoS攻擊的一種簡單方法,特别是在教室環境中,涉及使用帶參數的ping指令。(回想一下,輸入ping /h或ping /?會顯示ping指令的哪些選項。)第一步,在一台計算機上運作Web伺服器,并将該計算機用作攻擊的目标。你可以使用任何喜歡的作業系統和Web伺服器,如Microsoft 的IIS(Internet Information Services,IIS)或Apache HTTP 伺服器,Apache可以從www.apache.org 免費下載下傳,Microsoft Windows 10附帶了IIS,是以你可以輕松找到要安裝和運作的Web伺服器。出于實驗的目的,最好找一台低性能的機器,一台舊機器或者一個舊筆記本電腦,都是非常理想的。你要找一個容易過載的機器。從本質上講,你正在尋找的是與設定真實Web伺服器時完全相反的目标。

按如下步驟在Windows上安裝Web伺服器:

1)從www.apache.org 下載下傳Apache for Windows。

2)在C:Program FilesApache GroupApache2conf目錄下找到httpd.conf檔案并打開它。

3)設定ServerName = localhost。

4)儲存檔案。

5)在指令提示符下輸入httpd start。

現在打開浏覽器,你應該能夠檢視預設的Apache網站。

按如下步驟在Linux上安裝Web伺服器:

1)從www.apache.org 下載下傳Apache for Linux(在許多Linux發行版本中,你隻需添加Apache Web伺服器軟體包)。

2)在/etc/httpd/conf中查找httpd.conf檔案。找到它後,右鍵單擊并使用文本編輯器打開它。

5)在shell中,輸入/etc/init.d/httpd start。伺服器啟動後,你會看到一條OK消息。

6)打開浏覽器通路

http://

localhost /。

你應該能夠看到Apache的預設網站。

當你準備讓Web伺服器上線(可從其他PC通路)時,在/etc/httpd/conf/httpd.conf檔案中更改以下設定:

供參考:更改配置檔案

無論何時更改配置檔案,都必須停止Apache伺服器并重新啟動它。若要停止Apache,請使用/etc/init.d/http stop指令。

  • 将servername更改為你注冊的URL或更改為你的IP:端口,如:10.10.10.117:80。
  • 更改listen以反映所需的IP和端口(配置檔案中有一個示例)。
  • 檢查documentroot目錄,確定該目錄是你提供Web頁面服務的位置。預設值應該是/var/www/html。
  • 在shell中輸入/etc/init.d/httpd start,啟動Web服務。

供參考:實驗室安全

此實驗對目标伺服器會有潛在危險。事實上,在整本書中,我們進行的實驗對真實的計算機系統都可能造成嚴重破壞。你應該僅在與主網絡斷開且不包含任何關鍵資訊的計算機上開展這些實驗。最好建立一個專門用于安全實踐的實驗室。

如果你使用的是Windows 7、2008或2012 Server版本,那麼還可以選擇使用微軟的 IIS作為Web伺服器。

下一步是驗證Web伺服器正在實際運作,并且可以通路其預設網頁。課堂上的某個人可以打開他的浏覽器并在位址欄中輸入目标伺服器的IP位址,他應該能看到該Web伺服器的預設網站。現在你可以對它進行相當原始的DoS攻擊了。

可以使用ping指令進行實際的攻擊。如果你不記得如何使用ping指令,那麼應該記住,在指令提示符下輸入ping /h會顯示ping指令的所有選項。本練習中使用的選項是-w和-t。-w選項指定ping程式等待目标響應的毫秒數。本實驗中将該選項設定為0,這樣它根本不會等。-t選項訓示ping程式持續發送資料包,直到明确告知它停止。另一個選項-l允許使用者更改發送的資料包的大小。請記住,TCP資料包隻能具有有限的大小,是以你要将這些資料包設定成盡可能大。

在Windows 10的指令提示符下(即Unix/Linux中的shell),輸入“ping <目标計算機的位址> -l 65000 -w 0 -t”。機器應該給出類似于圖2-1所示的響應。請注意,圖中是正在ping我自己機器的環回(loopback)位址。你需要把它替換為運作Web伺服器的計算機的位址。

當執行這一系列ping指令時,這台機器不斷地ping目标機器。在該練習中,教室或實驗室内隻有一台機器ping Web伺服器,應該不會對Web伺服器産生嚴重影響。這是因為該流量水準完全在目标Web伺服器的處理能力範圍内。但是,在其他計算機以相同方式ping伺服器之後,目标計算機的處理負擔加重了。如果你有足夠數量的計算機去ping目标伺服器,則最終将達到目标計算機停止響應請求的門檻值,這時你就無法再通路該網站了。達到此門檻值所需的計算機數量取決于你所使用的Web伺服器。本書作者在課堂上進行了這一實驗。在該實驗環境中,Apache Web伺服器運作在裝有Windows 7的Pentium III筆記本電腦上,隻有1 GB記憶體。在那種情況下,隻需要大約25台機器同時執行ping操作,Web伺服器便會停止響應合法請求。即使這個實驗沒有令機器崩潰,至少也會使它響應更慢。

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

這個實驗讓你感受了一下拒絕服務是如何執行的,目的是讓你更好地了解DoS背後蘊含的原理。請記住,實際的拒絕服務攻擊使用了更複雜的方法。還請注意,沒有真正的Web服務會在使用Windows 7的普通筆記本電腦上運作。這個練習僅僅示範了DoS攻擊背後的基本原理:隻需用大量的資料包淹沒目标計算機,它就無法再響應合法請求。這個基本概念如圖2-2所示。在這個實驗中,我們所做的隻是超過了實驗室Web伺服器的操作極限。

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

一般來說,用于DoS攻擊的方法比圖中所示的方法要複雜得多。雖然所有的DoS攻擊都試圖使目标機器過載,但是這樣做的方式多種多樣,而且有許多方式能自己發動攻擊。例如,黑客可能開發一種小型的病毒,其唯一目的就是對預定目标發起ping泛洪(flood)攻擊。病毒傳播後,被病毒感染的各種機器對目标系統開始ping泛洪攻擊。這種DoS很容易執行,且很難停止。本章後面将描述一些常見的DoS攻擊。

從幾個不同的機器上發起的DoS攻擊被稱為分布式拒絕服務(Distributed Denial of Service,DDoS)。

DDoS正變得越來越普遍,事實上它才是目前最常見的DoS攻擊類型。本章後面讨論的大多數執行個體都是DDoS攻擊。這種拒絕服務攻擊形式越來越普遍的兩個原因是:

  • 如果有多台機器攻擊目标系統,那麼使目标系統過載更容易實作。由于新的伺服器能夠處理更高的工作負載,是以從一台計算機上執行DoS攻擊越來越困難。
  • 允許攻擊者從其他人的機器發起攻擊,進而可以保護攻擊者的匿名性。從自己的機器發起攻擊可能會有風險,因為每個資料包都有可能被追根溯源。這意味着幾乎百分之百會被抓獲。

DoS攻擊背後隐含的基本原理很簡單。攻擊者的真正問題是避免自己被抓獲。下一節将研究一些具體的DoS攻擊類型,并回顧具體的案例。

2.2.2 SYN泛洪攻擊

執行DoS最原始的方法就是發送大量的ping指令。更複雜的方法要使用特定類型的資料包。一種非常流行的DoS攻擊叫作SYN泛洪(SYN flood)攻擊。這種特定的攻擊類型取決于黑客是否掌握了如何與伺服器建立連接配接。當使用TCP協定在網絡中的用戶端和伺服器之間發起會話時,在伺服器上會留出記憶體中的一小塊緩沖空間來處理建立會話的“握手”消息交換。會話建立資料包包含一個用于辨別消息交換序列号的SYN字段。

SYN泛洪攻擊試圖破壞這個過程。在這種攻擊中,攻擊者非常快地發送多個連接配接請求,但不響應伺服器發回來的應答。換句話說,攻擊者請求連接配接,但卻從不遵循其餘部分的連接配接。這使得伺服器上的連接配接保持半開放,配置設定給它們的緩沖區記憶體被占用,其他應用程式不能使用。盡管緩沖區中的資料包在一段時間(通常大約是三分鐘)之後會因為沒有回複被丢棄,但大量這類錯誤連接配接請求的後果使得合法的會話請求難以建立,如圖2-3所示。

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

Web伺服器上曾發生過許多有名的SYN泛洪攻擊。這種攻擊類型之是以普遍,是因為任何參與TCP通信的機器都易受攻擊—而所有連接配接到Internet的機器幾乎都參與TCP通信。TCP資料包交換是Web伺服器通信的全部基礎。有幾種方法可以防範這些攻擊。其中一些方法需要的技術比其他方法的複雜。你可以根據你的網絡環境和專業水準選擇最适合的方法。

1.使用微塊防禦

微塊(micro block)防禦通過改變伺服器為任何連接配接請求配置設定記憶體的方式來避免SYN泛洪攻擊。伺服器不配置設定完整的連接配接對象,而是隻配置設定一個微記錄。這種技術的較新實作為入站的SYN對象配置設定少至16位元組。設定微塊的細節與具體的作業系統有關。這種防禦技術并不太常見,許多網絡管理者甚至都不知道還有這種方法。

2.使用帶寬節流防禦

防禦DoS攻擊的一種常用方法是用防火牆或入侵檢測系統檢測來自一個或多個IP位址的過多流量,然後限制相應的帶寬。這就是使用帶寬節流(bandwidth throttling)來減輕DoS攻擊的方法。

3.使用SYN cookie防禦

正如SYN cookie名字所提示的,該方法使用cookie,但與許多網站上使用的标準cookie不同。使用本方法,系統并非立即在存儲器中建立用于握手過程的緩沖空間。取而代之,它首先發送SYNACK(開始握手過程的确認信号)。SYNACK包有一個精心建構的cookie,它由請求連接配接的用戶端機器的IP位址、端口号和其他資訊經過雜湊演算法産生。當用戶端以正常ACK(确認)響應時,該響應包括來自該cookie的資訊,伺服器随後驗證該資訊。這樣,直到握手過程的第三階段,系統才給它配置設定全部存儲。然而,SYN cookie中使用的哈希密碼是相當密集的,是以期望擁有大量入站連接配接的系統管理者可能會選擇不使用這種防禦技術。是以,這種方法也不太常用,但并不像微塊防禦那樣罕見。

這種防禦機制同時也說明了一個事實,即大多數防禦需要在性能和安全之間進行權衡。SYN cookie所需的資源開銷可能會降低性能,尤其是當存在大量流量時。然而,SYN cookie是防禦多種類型DoS的強大手段之一。最佳的解決方案是使用一個非常高性能的伺服器(或伺服器群)來處理資源開銷并實作SYN cookie。

供參考:狀态包檢查

實作一個不僅能檢查單個資料包,而且還能檢查整個“會話”的防火牆是阻止SYN泛洪最簡單的方法之一。這種狀态包檢查(Stateful Packet Inspection, SPI)防火牆可檢視來自給定源的所有包。是以,如果來自一個IP位址的數千個SYN資料包沒有相應的SYNACK資料包,就該引起懷疑并被阻止。

4.使用RST cookie防禦

另一個比SYN cookie更容易實作的cookie方法是RST cookie。在這種方法中,伺服器向用戶端發送一個錯誤的SYNACK。用戶端應該生成一個RST(reset)資料包,告訴伺服器發生了錯誤。因為用戶端發回了一個通知伺服器錯誤的資料包,是以伺服器現在知道用戶端的請求是合法的,并将以正常方式接受來自該用戶端的入站連接配接。但這種方法有兩個缺點。首先,對于一些使用早期Windows的機器和/或位于防火牆後面進行通信的機器來說,可能會出現問題。其次,一些防火牆可能會阻塞SYNACK包的傳回。

5.使用堆棧調整防禦

堆棧調整(stack tweaking)方法涉及更改伺服器上的TCP堆棧,這樣當SYN連接配接不完整時,可縮短逾時時長。不幸的是,這種保護方法隻會使針對該目标的SYN泛洪變得困難,但對于一個不達目的不罷休的黑客來說,攻擊仍然是可能的。堆棧調整比其他方法更複雜,我們将在第8章進行更全面的讨論。

這些方法的具體實作過程依賴于Web伺服器所使用的作業系統。管理者應該查閱作業系統的文檔或相關網站,以找到明确的說明。防禦DoS攻擊的最有效方法是綜合使用這些方法。将SYN cookie或RST cookie與堆棧調整結合使用是保護Web伺服器的很好方法。通過多種方法的結合,每種方法都可以克服其他方法的缺點。把這些方法結合起來,就像同時使用警報系統和警衛來保護建築物一樣。警衛可以做出警報系統不能做的決定,但警報系統從不睡覺,不會被賄賂,也從不分心。這兩種方法結合在一起可以克服對方的弱點。

供參考:堆棧調整

堆棧調整的過程通常是相當複雜的,這依賴于具體作業系統。一些作業系統的文檔對這個主題沒有任何幫助。此外,它隻會降低危險,但不會阻止危險。基于這個原因,它不像其他方法那樣被頻繁使用。

2.2.3 Smurf攻擊

Smurf攻擊是一種十分流行的DoS攻擊。它是以首次執行此攻擊的應用程式命名的。在Smurf攻擊中,一個ICMP包被發送到網絡的廣播位址,但它的傳回位址被修改為該網絡中的某一台計算機,很可能是一個關鍵的伺服器。然後,網絡上的所有計算機都将通過ping目标計算機進行響應。ICMP資料包使用Internet控制消息協定(Internet Control Message Protocol,ICMP)在Internet上發送錯誤消息。因為資料包發送的位址是廣播位址,是以該位址通過将資料包發送到網絡上的所有主機進行響應,然後這些主機又将資料包發送到僞裝的源位址。不斷地發送這樣的資料包将導緻網絡本身對它的一個或多個成員伺服器執行DoS攻擊。這種攻擊既聰明又簡單。最大的困難是在目标網絡上啟動資料包。這個任務可以通過某個軟體來實作,如由病毒或特洛伊木馬發送資料包。圖2-4示範了這種攻擊。

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

Smurf攻擊是一些惡意組織發揮其創造力的一個執行個體。它有時被視為在自身免疫性疾病中的生物過程的數字等價物。在這種疾病中,免疫系統攻擊病人自己的身體。在Smurf攻擊中,網絡對自己的系統執行DoS攻擊。這種方法的巧妙性說明,如果你負責網絡中的系統安全,那麼嘗試創造性地、前瞻性地工作很重要。計算機攻擊的實施者是富有創造力的,他們不斷開發新技術,如果你的防守不如攻擊者的進攻有創造性和睿智,那麼你的系統被攻陷隻是時間問題。

可以用兩種方式防禦Smurf攻擊:

  • 最直接的方法是配置所有的路由器,讓它們不轉發任何直接廣播的資料包。這些資料包是Smurf攻擊的基礎,如果路由器不轉發它們,那麼攻擊就被限定在一個子網中。
  • 第二種方法是防範特洛伊木馬(本章後面将深入讨論)。因為Smurf攻擊是由特洛伊木馬傳播的軟體發起的,是以阻止最初的傳輸可以阻止攻擊。禁止雇員下載下傳應用程式,同時使用足夠的病毒掃描程式來保護系統,這些政策也可以很好地保護系統免受木馬攻擊,進而防止Smurf攻擊。

使用代理伺服器也很有必要。代理伺服器可以隐藏機器的内部IP位址,這使得你的系統更不容易受到Smurf攻擊。第3章和第4章将詳細介紹另一個重要工具—代理伺服器和防火牆。

2.2.4 死亡之ping

死亡之ping(Ping of Death,PoD)可能是DoS攻擊中最簡單、最原始的一種形式,它是基于使目标系統過載的原理。TCP資料包的大小是有限的。在某些情況下,僅僅發送一個超大的資料包就可以使目标機器當機。

這種攻擊與本章前面讨論的教室的示例非常相似。這兩種攻擊的目的都是使目标系統過載并停止響應。PoD可以攻擊無法處理超長資料包的系統。如果成功,伺服器将徹底關閉。當然,它還可以重新啟動。

防止這種攻擊的唯一安全保障是確定對所有作業系統和軟體都進行例行修補。這種攻擊依賴于特定作業系統或應用程式在處理異常大的TCP資料包時存在的漏洞。當發現這樣的漏洞時,廠商通常會釋出更新檔。存在PoD攻擊的可能性,也是必須在所有系統上保持更新檔更新的衆多原因之一。

PoD這種攻擊越來越不常見,這是因為新版的作業系統能夠很好地處理死亡之ping所依賴的超大資料包。如果作業系統設計得當,它會丢棄任何過大的資料包,進而消除PoD攻擊可能帶來的任何負面影響。

2.2.5 UDP泛洪

UDP(User Datagram Protocol,使用者資料報協定)泛洪攻擊實際上是本章前面描述的實驗的變種。UDP是一種無連接配接協定,它在傳輸資料之前不需要建立任何連接配接。TCP資料包需要連接配接并會等待接收方的确認,然後才會發送下一個資料包,每個資料包都必須經過确認。UDP資料包簡單地發送資料包而不需要進行确認。這樣可以更為快速地發送資料包,也就更容易執行DoS攻擊。

當攻擊者将UDP資料包發送到受害系統的任意端口時,UDP泛洪攻擊就發生了。當受害系統接收到UDP資料包時,它會确定什麼應用程式正在目标端口上等待。當它意識到沒有應用程式在端口上等待時,它将生成一個目标不可達(destination unreachable)的ICMP資料包,發送到僞造的源位址。如果有足夠多的UDP資料包發送給受害系統的端口,系統就會崩潰。

2.2.6 ICMP泛洪

ICMP泛洪是你在網絡安全文獻中經常遇到的一個術語。實際上,它隻是前面實驗中使用的ping泛洪的另一個名稱。ICMP資料包是ping和tracert(該指令在Windows中是tracert,在Linux中是traceroute)實用程式中使用的資料包的類型。

2.2.7 DHCP耗竭

DHCP耗竭(DHCP starvation)是另一種常見的攻擊。如果足夠多的請求湧向網絡,攻擊者可以無限期地徹底耗盡由DHCP伺服器配置設定的位址空間。有一些工具,比如Gobbler,可以幫你做到這一點。拒絕來自外部網絡的DHCP請求可以防止這種攻擊。

2.2.8 HTTP Post DoS

HTTP Post DoS通過發送合法的HTTP Post消息進行攻擊。Post消息中有一個字段是“content-length”(内容長度)。該字段指出後面跟随消息的大小。在這種攻擊中,攻擊者以極慢的速度發送實際的消息體。之後Web伺服器“挂起”等待消息完成。對于健壯性強的伺服器,攻擊者需要同時發起多個HTTP Post攻擊。

2.2.9 PDoS

永久性拒絕服務(Permanent Denial of Service,PDoS)攻擊對系統的損害非常嚴重,以至于受害計算機需要重新安裝作業系統,甚至需要新的硬體。這種攻擊有時被稱為phlashing,通常涉及對裝置固件的DoS攻擊。

2.2.10 分布式反彈拒絕服務

如前所述,分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊變得越來越普遍。大多數此類攻擊依賴于讓各種機器(伺服器或工作站)攻擊目标。分布式反彈拒絕服務(Distributed Reflection Denial of Service,DRDoS)是一種特殊類型的DoS攻擊。與所有此類攻擊一樣,黑客通過讓大量計算機攻擊標明的目标來實作攻擊。但是,這種攻擊的工作原理與其他DoS攻擊稍有不同。這種方法不是讓計算機攻擊目标,而是誘騙Internet路由器來攻擊目标。

Internet骨幹網上的許多路由器都用179端口進行通信。這種攻擊利用該通信鍊路讓路由器攻擊目标系統。這種攻擊之是以特别可惡,是因為它并不要求對其中的路由器進行任何攻擊。攻擊者不需要使用路由器上的任何軟體就能讓它參與攻擊。相反,黑客向各路由器發送一系列請求連接配接的資料包。這些資料包是被篡改過的,它們看起來像是來自目标系統的IP位址。路由器通過啟動與目标系統的連接配接來響應。而實際情況是這些來自多個路由器的大量連接配接,都指向同一個目标系統。這樣做的後果是使目标系統無法通路。圖2-5說明了這種攻擊。

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

2.2.11 DoS工具

DoS攻擊變得如此普遍的一個原因是有許多工具可用來執行攻擊。這些工具在Internet上比比皆是,而且大多數情況下都可以免費下載下傳,是以任何謹慎的管理者都應該知道它們。除了作為攻擊工具使用之外,它們還可以用于測試你防禦DoS攻擊的安全措施。

實踐中:攻擊你自己的系統

測試你對特定類型攻擊的防禦能力的最好方式就是模拟該攻擊。無論你采取什麼樣的對策,在受到攻擊之前,你都不會真正知道它們是否有效。在真正的攻擊發生之前發現真相會更好。最好的方法是使用軍事風格的戰鬥演習。

這種方法并不是要在一台實際的機器上進行試驗。最好的方法是找一台為測試目的而設定的機器。在這台機器上完成你的各種安全措施,然後讓這台機器遭受你希望防範的攻擊。這可以給你防禦的有效性提供實實在在的證據。

當你進行這類練習時,應該遵循以下幾條原則:

  • 使用一個測試系統,而不是一個實際的系統。
  • 詳細記錄攻擊前系統的狀态(使用什麼作業系統、更新檔、硬體配置、CPU使用、記憶體使用、安裝了什麼軟體以及系統的配置)。
  • 詳細并且準确記錄你采取了什麼安全措施。
  • 詳細記錄機器受到的每種類型的攻擊。
  • 記錄機器如何響應。

當完成這個戰鬥演習之後,你應該借鑒軍隊的另一個思想,即行動後的評估。簡單地說,就是簡明扼要地記錄下系統防禦是如何執行的,以及這些表征你系統的安全性如何。

然而,一個不幸的事實是,這種特定的安全措施在業界并不常用,主要原因是它需要資源。你必須投入一台測試機器,更重要的是,還要花很多時間來做這個練習。大多數IT部門都有非常繁重的工作,根本無法騰出必要的時間來進行這項訓練。然而,這絕對是安全顧問應該參與的事情。

1. Low Orbit Ion Cannon

低軌道離子炮(Low Orbit Ion Cannon,LOIC)可能是最有名的,當然也是最簡單的DoS工具之一。通過在Internet上搜尋,你就可以從多個網站下載下傳它。

首先将URL或IP位址放入目标框中。然後點選Lock On按鈕。你可以更改選擇的方法、速率、線程數以及是否等待答複這些設定。然後點選IMMA CHARGIN MAH LAZER按鈕開始攻擊,如圖2-6所示。

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

2. HOIC

高軌道離子炮(High Orbit Ion Cannon,HOIC)比LOIC更先進,但實際上更容易運作。單擊“+”按鈕添加目标,會出現一個彈出視窗,你可以在其中輸入URL以及一些設定。

3. DoSHTTP

這個工具使用起來也很簡單。選擇目标、代理(即模拟什麼浏覽器類型)、多少個套接字、請求,然後即可開始泛洪攻擊。

2.2.12 真實的示例

現在,你應該牢固掌握了什麼是DoS攻擊,并對其工作原理有了基本的了解。你還應該對如何保護你的網絡免受這些攻擊有一些基本的想法。下面我們開始讨論這種攻擊的具體示例。以下對幾個實際攻擊示例的分析展示了黑客發動攻擊所使用的方法、攻擊的效果、它們的檢測以及管理者為解決它們而采取的步驟。

供參考:病毒還是蠕蟲?

你會在不同的書中看到術語病毒(virus)和蠕蟲(worm),它們有時可互換,然而,兩者之間卻存在差異。蠕蟲是一種特殊類型的病毒,它可以在沒有任何人為互動的情況下傳播。傳統的病毒攻擊是作為電子郵件附件,操作人員必須打開附件才能啟動感染。而蠕蟲不需要人類使用者的任何活動就能擴散。有些書使用這些術語相當嚴格。這裡的術語“病毒”描述了這兩種情形。

1. FakeAV

FakeAV病毒于2012年7月首次出現。它感染了從Windows 95到Windows 7以及Windows Server 2003的Windows系統。它是一個假冒的防病毒軟體(是以名稱為FakeAV)。它會彈出虛假的病毒警告。這不是第一個假冒防病毒的惡意軟體,但它卻是比較新的一個。

2. Flame

如果沒有讨論Flame(火焰),那麼任何關于病毒的現代讨論都是不完整的。這種病毒最早出現在2012年,針對的是Windows作業系統。這種病毒之是以引人注目是因為它是專門為間諜活動設計的。它于2012年5月在多個地點被首次發現,包括伊朗政府的站點。Flame是一款間諜軟體,它可以監控網絡流量,并對被感染的系統進行截屏。

這種惡意軟體将加密後的資料存儲到本地資料庫中,它還能夠根據運作在目标機器上的特定防毒軟體改變自己的行為,這說明該惡意軟體非常複雜。同樣值得注意的是,Flame使用了一個僞造的微軟證書進行簽名,這意味着Windows系統會信任該軟體。

3. MyDoom

MyDoom是一種很古老但又非常經典的病毒,是以值得在任何關于病毒的讨論中出現。在2004年年初,想沒聽說過MyDoom蠕蟲都不容易。它是一種經典的DDoS攻擊。病毒/蠕蟲把自己通過電子郵件發送給通訊錄中的每個人,然後,在預設的時間,所有受感染的機器開始對www.sco.com發起協同攻擊。請注意,這個網站現在已經不存在了。據估計,受感染的機器數量在50萬到100萬台之間。這次攻擊成功地關閉了聖克魯斯行動(Santa Cruz Operation,SCO)網站。應該指出的是,早在DDoS攻擊實際執行的前一天,網絡管理者和家庭使用者就很清楚MyDoom可能會做什麼。有幾個工具可以在Internet上免費獲得,用于清除特定的病毒/蠕蟲。然而,顯然很多人沒有采取必要的步驟來清除他們機器上的這種病毒/蠕蟲。

研究該攻擊之是以有趣,有以下幾個原因:

  • 這是一個經典的蠕蟲示例。它使用多種傳播模式,可以作為電子郵件附件傳播,也可以在網絡上複制自己。
  • 它是向一個非常具體的目标發動分布式拒絕服務攻擊的工具。
  • 顯然它是賽博恐怖主義的一個案例(盡管MyDoom的創造者肯定不這麼認為)。

對于那些不知道這個故事的讀者,這裡簡單介紹一下。Santa Cruz Operation(SCO)制作了Unix作業系統的一個版本。與大多數Unix版本一樣,它們的版本受版權保護。在MyDoom攻擊的幾個月前,SCO開始指控某些Linux發行版包含了SCO Unix的代碼片段。SCO向許多Linux使用者發出信函,要求收取許可費。Linux社群中的許多人認為這是在試圖破壞Linux(一種開源的作業系統)的日益普及。SCO甚至更進了一步,對發行Linux的主要公司提起了訴訟。對于許多法律和技術分析人士來說,這種說法似乎毫無根據。

許多分析人士認為,MyDoom病毒/蠕蟲是由某個感覺SCO不可接受的人(或群體)建立的。黑客(黑客群體)發起該病毒,對SCO造成經濟損失,并損害公司的公衆形象。這使得MyDoom病毒成為賽博恐怖主義的一個确切案例:一個團體基于意識形态分歧攻擊另一個團體的技術資産。大量的網站塗改事件和其他小規模攻擊都是由于意識形态沖突引起的。然而,MyDoom是第一次如此廣泛并取得成功的攻擊。這一事件開創了資訊戰的新趨勢。随着技術越來越廉價,戰術越來越容易掌握,在未來幾年此類攻擊可能會越來越多。

這種攻擊造成的确切經濟損失幾乎無法計算。它包括對客戶服務的損失、銷售的損失以及負面宣傳的影響。SCO懸賞25萬美元,獎勵任何提供資訊以使肇事者繩之以法的人,這表明他們認為攻擊的影響超過了獎金的數額。

特别值得注意的是,MyDoom病毒的變種在其最初目的達成很久之後仍然不斷出現。這些變種使用了基本的MyDoom引擎,并以類似的風格傳播,但效果不同。至少在2005年2月,MyDoom的新版本出現了。

供參考:Mac系統安全嗎?

Macintosh的一些使用者認為他們的系統是安全的,不會受到病毒攻擊。然而,MacSecurity病毒以及諸如MacDefender等的相關病毒,都證明了這種觀點是沒有根據的。這些相關的病毒都是為Macintosh作業系統設計的假的防病毒軟體。它們在2011年和2012年開始流行。雖然針對Macintosh編寫的病毒确實要少得多,但随着蘋果公司獲得了更大的市場佔有率,針對Macintosh編寫的病毒也會越來越多。

4. Gameover ZeuS

Gameover ZeuS是一種建立點到點僵屍網絡的病毒。本質上講,它在受感染的計算機和指揮控制計算機之間建立加密的通信,允許攻擊者控制各種受感染的計算機。2014年,美國司法部暫時關閉了指揮控制計算機的通信;2015年,美國聯邦調查局宣布懸賞300萬美元獎勵提供資訊以緝拿Evgeniy Bogachev的人,因為Evgeniy Bogachev涉嫌參與了Gameover ZeuS。

指揮控制計算機是僵屍網絡中用來控制其他計算機的計算機,它們是管理僵屍網絡的中心節點。

5. CryptoLocker和CryptoWall

勒索軟體中最廣為人知的一個例子就是臭名昭著的CryptoLocker,它于2013年首次被發現。CryptoLocker使用非對稱加密來鎖定使用者的檔案。目前已經發現了CryptoLocker的幾個變種。

CryptoWall是CryptoLocker的一個變種,在2014年8月首次被發現。它的外觀和行為都很像CryptoLocker。除了加密敏感檔案外,它還會與指揮控制伺服器通信,甚至會對受感染的機器進行截屏。2015年3月,一個與間諜軟體TSPY_FAREIT.YOI捆綁在一起的CryptoWall變種被發現,它除了持有索取贖金的檔案外,還從受感染系統竊驗證書。

2.2.13 防禦DoS攻擊

沒有萬無一失的方法可用來防範所有的DoS攻擊,就像沒有萬無一失的方法來防止黑客企圖或網絡攻擊一樣。然而,可以采取一些措施将危險降到最低。除了前面讨論的SYN和RST cookie之外,本節将研究管理者可以采取的一些步驟,以使他們的系統不易受到DoS攻擊。

首先要考慮這些攻擊是如何進行的。它們可能是通過ICMP資料包執行的,ICMP資料包用于在Internet上發送錯誤消息,或者由ping和traceroute這樣的實用程式發送。簡單地配置防火牆以拒絕來自外網的ICMP資料包将是保護網絡免受DoS攻擊的主要步驟。由于DoS/DDoS攻擊可以通過各種各樣的協定來執行,是以你還可以将防火牆配置為不管是什麼協定或端口,都完全不允許任何流量入站。這似乎是個激進的步驟,但它肯定是安全的步驟。

供參考:阻塞所有流量

大多數網絡都必須允許一些流量入站。這可能是到網絡的Web伺服器或電子郵件伺服器的流量。由于這個原因,你往往不會看到防火牆阻止所有流量入站的情況。如果你不能阻止所有的流量入站,那麼就盡可能有所選擇,隻允許絕對必要的流量入站。

如果你的網絡足夠大,大到有内部路由器,那麼可以配置這些路由器,以禁止任何非源于你所在網絡的流量。這樣,即便資料包通過了防火牆,它們也不會在整個網絡中傳播。由于所有TCP包都有一個源IP位址,是以判斷一個包是來自網絡内部還是來自網絡外部并不困難。另一種可能性是在所有路由器上禁止所有直接IP廣播。這可以防止路由器向網絡上的所有機器發送廣播資料包,進而阻止許多DoS攻擊。

由于許多分布式DoS攻擊依賴于“不知情”的計算機作為發起點,是以減少這種攻擊的一種方法是保護你的計算機免受病毒/蠕蟲和特洛伊木馬的攻擊。本章稍後将讨論如何防範這些攻擊,但現在需要記住三個要點:

  • 始終使用病毒掃描軟體并保持更新。
  • 始終保持作業系統和軟體更新檔更新。
  • 制定政策規定員工不能下載下傳任何東西到他們的機器上,除非下載下傳經過了IT人員允許。

這些步驟都不能確定你的網絡徹底安全,不成為DoS攻擊的受害者或攻擊的發起點,将有助于減少發生這兩種情況的可能性。關于該話題有一個很好的資源就是SANS 研究所網站www.sans.org/dosstep/ 。這個網站有很多防禦DoS攻擊的好技巧。

2.3 防禦緩沖區溢出攻擊

病毒、DoS和特洛伊木馬攻擊可能是攻擊系統最常見的方式,但它們并不是唯一可用的方法。攻擊系統的另一種方式稱為緩沖區溢出(buffer overflow)攻擊,或者稱為緩沖區過載(buffer overrun)攻擊。一些專家認為,緩沖區溢出攻擊發生的頻率不比DoS攻擊發生的頻率低,幾年以前可能是這樣,但現在的情況有所不同。緩沖區溢出攻擊設計成在緩沖區中放置比緩沖區容量更多的資料。但回想一下,至少有一種蠕蟲使用緩沖區溢出來感染目标機器。這意味着,盡管這種威脅可能比以前小了,但它仍然是一個非常真實的威脅。

任何與網際網路或專用網絡通信的程式都必須接收一些資料。這些資料至少是暫時地存儲在記憶體中,這個記憶體中的空間被稱為緩沖區(buffer)。如果編寫應用程式的程式員非常認真,那麼緩沖區将截斷或拒絕任何超過緩沖區限制的資訊。考慮到在目标系統上可能運作的應用程式的數量以及每個應用程式中的緩沖區數量,至少有一個緩沖區沒有被正确編寫的機率足以引起任何謹慎的系統管理者的關注。一個有一定程式設計技能的人就可以編寫程式,有目的地向緩沖區中寫入超出其容量的資料。例如,如果緩沖區可以容納1024位元組的資料,而你試圖用2048位元組填充它,那麼額外的1024位元組就會被輕松地加載到記憶體中。圖2-7說明了這個概念。

帶你讀《網絡防禦與安全對策:原理與實踐(原書第3版)》之二:攻擊類型第2章 

如果額外的資料實際上是一個惡意程式,那麼它已經被加載到記憶體中并在目标系統上運作。或者,攻擊者可能隻是想讓目标機器的記憶體泛洪,進而覆寫目前正在記憶體中的其他項目并導緻它們崩潰。無論哪種方式,緩沖區溢出都是非常嚴重的攻擊。

幸運的是,緩沖區溢出攻擊比DoS或簡單的MS Outlook腳本病毒更難執行。要建立緩沖區溢出攻擊,黑客必須具備良好的某種程式設計語言知識(通常選擇C或C++),并充分了解目标作業系統/應用程式,知道它是否具有緩沖區溢出弱點,以及如何利用該弱點。

供參考:什麼是Outlook腳本病毒?

微軟的 Outlook允許程式員使用Visual Basic程式設計語言的一個子集編寫腳本,這種語言被稱為VBA(Visual Basic for Applications)。實際上,微軟所有的Office産品都内置了這種腳本語言。程式員還可以使用與VBA關聯密切的VBScript語言。這兩種語言都很易學。如果将這樣的腳本附加到電子郵件中,并且收件人正在使用Outlook,則腳本可以執行。腳本的執行可以做很多事情,包括掃描位址簿、查找位址、發送電子郵件、删除電子郵件等。

是否易受緩沖區溢出攻擊完全取決于軟體的缺陷。一個完美程式不會允許緩沖區溢出。因為不可能做到完美,是以防止緩沖區溢出攻擊的最佳防禦措施就是定期給軟體打更新檔,以便在廠商發現漏洞後及時修正缺陷。

供參考:緩沖區溢出如何發生?

緩沖區溢出攻擊隻有在軟體(通常是作業系統或Web伺服器)中存在某個缺陷時才能發生。這意味着防止這種類型攻擊的唯一方法是提高軟體的品質。不幸的是,許多軟體廠商似乎更注重快速上市,而不是廣泛地測試和審查軟體。精通安全的管理者會關注軟體廠商所使用的測試方法。

2.4 防禦IP欺騙

IP欺騙(IP spoofing)本質上是黑客擷取計算機非授權通路的一種技術。盡管這是IP欺騙最常見的原因,但有時隻是為了掩蓋DoS攻擊的來源。實際上,DoS和DDoS攻擊通常會掩蓋發起攻擊的計算機的IP位址。

在IP欺騙中,入侵者發送給計算機系統的消息使用了不同于其實際來源的IP位址。如果入侵者的目的是獲得非授權通路,那麼被欺騙的IP位址是目标認為可信的主機的位址。要成功實施IP欺騙攻擊,黑客必須首先找到一個目标系統認為是可信來源的機器的IP位址。黑客可能會使用各種技術來找到可信主機的IP位址。在擁有了可信的IP位址之後,入侵者就可以修改其傳輸的資料包首部,使得這些資料包看上去來自于那個主機。

與許多其他類型的攻擊不同,IP欺騙在用于真正的攻擊之前,安全專家在理論上就已經知道它。早在20世紀80年代,學術界就開始讨論IP欺騙的概念。雖然人們對隐含在這種技術背後的概念已經有一段時間的了解,但那也隻是停留在理論上,直到Robert Morris發現了TCP協定中一個被稱為序列預測(sequence prediction)的安全弱點。Stephen Bellovin在他的著名論文“TCP/IP協定集中的安全問題”(Security Problems in the TCP/IP Protocol Suite)中深入探讨了這個問題。

現在IP欺騙攻擊正變得越來越少,主要是因為它們使用的場合越來越安全,在某些情況下這些場合已經不再使用。但是,欺騙手段目前仍然可以使用,是以所有安全管理者都應該解決這個問題。解決IP欺騙問題的方法包括:

  • 不要透露關于你的内部IP位址的任何資訊,這有助于防止這些位址被“欺騙”。
  • 使用網絡監控軟體監控入站的IP資料包以發現IP欺騙迹象。有一款比較普及的産品是Netlog。這款産品及與其相似的産品都是在從外部接口入站的資料包中,查找那些源IP位址和目标IP位址都是你的本地域中位址的資料包。本質上,這意味着這些入站資料包宣稱來自網絡内部,但明明來自你的網絡之外。找到一個這樣的包就意味着攻擊正在進行。

IP欺騙的危險在于,一些防火牆不會檢查來自内部IP位址的資料包。如果過濾路由器沒有配置成過濾其源位址為本地域的入站資料包,那麼這些包是可以通過過濾路由器的。

潛在易受攻擊的路由器配置的例子包括:

  • 支援多個内部接口到外網的路由器;
  • 代理應用使用源IP位址進行認證的代理防火牆;
  • 有兩個網卡、支援内部網絡劃分子網的路由器;
  • 不過濾源位址是本地域的資料包的路由器。

防止IP欺騙的最好方法就是安裝一個過濾路由器。過濾路由器對入站的資料包進行過濾,如果資料包有來自内部網絡的源位址,則不允許它通過。此外,還應該過濾源位址與内部網絡不同的出站資料包,以防止源自你的站點的源IP欺騙攻擊。許多商用防火牆廠商,如Cisco、FortiGate、D-Link和Juniper,都提供了這種選項。

如果你的廠商提供的路由器不支援對網卡在入站端進行過濾,并且你覺得需要立即過濾這些包,那麼你可以通過在外部網卡和外部連接配接之間安裝第二個路由器來過濾僞裝IP的資料包。将此路由器與原路由器連接配接的接口配置為阻塞所有源位址為内部網絡位址的資料包。為此,可以使用一台過濾路由器或者具有兩個網卡、支援包過濾的Unix系統。

2.5 防禦會話劫持

另一種攻擊形式是會話劫持(session hijacking)。TCP會話劫持是指黑客接管兩台機器之間的TCP會話的過程。由于身份認證通常隻在TCP會話開始時進行,這就允許黑客插入通信流并控制會話。例如,一個人可能遠端登入到一台機器。在他與主機建立連接配接之後,黑客可能會使用會話劫持來接管該會話,進而通路目标機器。

一種常用的會話劫持方法是使用源路由(source-routed)IP資料包。這允許網絡上A點的黑客通過讓IP資料包穿過自己的機器而參與B和C之間的會話。

最常見的會話劫持類型是“中間人攻擊”(man-in-the-middle attack)。在這種情形中,黑客使用某種類型的包嗅探程式,簡單地監聽兩台計算機之間的傳輸,擷取他想要的任何資訊,但不幹擾對話。

此類攻擊的一個常見功能是對會話的一端執行DoS攻擊,以阻止其響應。因為那個端點不再響應,是以黑客便可以插入他自己的機器來代替那個端點。

劫持連接配接的目的是利用信任關系并獲得對原來沒有通路權的系統的通路。

真正能夠防禦會話劫持的唯一方法是使用加密傳輸。第6章将讨論各種加密方法。如果資料包沒有加密,那麼通信就很容易受到會話劫持的攻擊。許多網絡管理者在外網通信時使用加密傳輸,但很少加密内網通信。要獲得真正高水準的安全性,請考慮對所有傳輸都進行加密。

在第15章中将詳細讨論包嗅探器。現在你需要知道的是,資料包嗅探器是一種軟體,它能攔截在網絡或Internet上傳輸的資料包并複制它們。這樣攻擊者可以得到每個包的副本。這些工具在網絡流量監控中有合法用途,但也可以被黑客用來攔截通信,在某些情況下,還用于會話劫持。

2.6 阻止病毒和特洛伊木馬攻擊

本章前幾節讨論了拒絕服務攻擊、緩沖區溢出攻擊和會話劫持。然而,病毒攻擊才是對任何網絡而言最常見的威脅。是以,對于任何有安全意識的網絡管理者來說,防範病毒攻擊必不可少。

2.6.1 病毒

根據定義,計算機病毒是一種自我複制的程式。一般來說,病毒還有其他一些令人憎惡的功能,但自我複制和快速傳播是其特征。對于受感染的網絡來說,這種增長對被感染的網絡來說本身就是一個問題。蠕蟲是一種可以在沒有人類互動的情況下進行複制的病毒。

想想臭名昭著的Slammer病毒以及其快速、大容量掃描帶來的危害。任何快速傳播的病毒都可能降低網絡的功能和響應能力。它可能導緻過多的網絡流量,并阻止網絡正常運作。僅僅讓流量超過網絡設計的承載能力,就能讓網絡陷入暫時性非正常工作之中。

1.病毒是如何傳播的

你已經看過了病毒是如何影響受感染的系統的,并檢視了一些實際案例。很明顯,防止計算機病毒的關鍵是阻止它傳播到其他計算機。要做到這一點,你必須對病毒的典型傳播方式有很好的了解。病毒通常有兩種傳播方式。

第一種方式是掃描計算機以獲得與網絡的連接配接,然後将自己複制到該計算機可以通路的網絡上的其他計算機。這是病毒最有效的傳播方式,也是蠕蟲的典型傳播方式。當然,這種方法比其他方法需要更多的程式設計技能。第二種更流行的方式是閱讀電子郵件位址簿并将自己發送給位址簿中的每一個人。編寫這種類型的病毒程式很簡單,這也解釋了它為什麼使用得如此普遍。

到目前為止,第二種方式是病毒傳播最常用的方式,而微軟的Outlook可能是這種病毒最為頻繁攻擊的電子郵件程式。與其說這是由于Outlook存在安全漏洞,不如說是因為Outlook能輕松上手。所有微軟的Office産品都設計成了讓合法的程式員能夠通路該應用程式的許多内部對象,進而可輕松建立能內建到微軟Office套件中的應用程式。例如,程式員可以編寫一個應用程式來通路Word文檔、導入Excel電子表格,然後使用Outlook自動将生成的文檔通過電子郵件發送給相關方。微軟在簡化這個過程方面做得特别好。完成這些任務通常僅僅需要編寫少量程式。在Outlook中,引用Outlook并發送電子郵件隻需不到5行代碼。這意味着一個程式可以讓Outlook自己發送電子郵件,而無須讓使用者知道。Internet上有大量代碼示例展示怎樣做到這一點,并且都是免費的。

無論病毒是怎麼到來的,在它進入一個系統之後便試圖傳播。在許多情況下,病毒還試圖對系統造成傷害。在病毒進入系統後,它可以做任何合法程式可以做的事情。這意味着它潛在地可以删除檔案、更改系統設定或造成其他危害。病毒攻擊的威脅再怎麼強調也不為過。讓我們花點時間來看看一些病毒的爆發,看一下它們是如何運作的,并描述它們所造成的破壞。其中有些病毒較老,有些病毒則是近期的。

2. Sobig病毒

Sobig病毒是一種舊病毒,但它是研究病毒傳播的一個很好的例子。關于這種病毒,令人感興趣的是其多模态傳播方式。換句話說,它使用了不止一種機制來傳播和感染新機器。Sobig将自己複制到網絡的任何共享驅動器上,并将自己通過電子郵件發送給位址簿中的每個人。正是由于這種傳播方式,Sobig可以被歸類為蠕蟲而不是簡單的病毒。這種多模态傳播能力說明Sobig這種病毒特别惡毒(virulent)—表示病毒傳播迅速且容易感染新目标的術語。

正是由于病毒的多模态傳播能力,是以確定你所在機構的每個人都受到合适的安全政策和程式的警告是非常關鍵的。如果網絡上的一個人很不幸地打開了一封包含Sobig病毒的電子郵件,那麼它不僅感染了這台機器,而且還感染了這個人可以通路的網絡上的每個共享驅動器。

與大多數電子郵件傳播的病毒攻擊一樣,這種病毒在郵件的主題或标題中有一些标志,可以用來識别電子郵件是否被病毒感染。電子郵件的标題可能是“here is the sample”或“the document”,并鼓勵人們打開附件。打開後病毒就将自己複制到Windows系統目錄中。一些Sobig變種病毒讓計算機從Internet上下載下傳一個檔案,并導緻列印問題。一些網絡列印機會開始列印垃圾。Sobig.E變種甚至寫Windows系統資料庫,使病毒在計算機啟動時即被加載。這些複雜的特性表明,Sobig的建立者知道如何通路Windows系統資料庫、如何通路共享驅動器、如何更改Windows啟動和如何通路Outlook。

推薦給所有安全管理者一個我本人使用的方法,即定期向你所在機構中的每個人發送電子郵件,告訴他們識别電子郵件被感染的标志。像www.f-secure.com 這樣的網站列出了目前的病毒以及它們在電子郵件中的表現形式。我對這個清單進行總結,然後每個月發給機關裡的每個人一次或兩次。這樣,機構的所有成員都知道他們絕對不應該打開的電子郵件。如果将此方法與不斷灌輸謹慎對待非預期電子郵件的方法相結合,就可以大大降低感染病毒的機率。

這種特定的病毒傳播如此之快,受感染的網絡如此之多,以至于僅僅是病毒的多次複制就足以使一些網絡陷入癱瘓。該病毒并沒有破壞檔案或破壞系統,但因為它産生了大量的流量,使受其感染的網絡陷入停滞。這種病毒本身具有中等水準的複雜性。在它消亡之後,許多變種開始出現,并進一步使情況複雜化。

3.病毒變種

有時,一些膽大的有惡意企圖的程式員收到一個病毒副本(可能是他自己的機器被感染了)後,決定對它進行逆向工程。許多病毒攻擊是以附加在電子郵件上的腳本形式來實作的。這意味着與傳統的編譯後的程式不同,病毒的源代碼易于閱讀和修改。這些程式員簡單地擷取病毒源代碼,引入某些更改,然後重新釋出變種。因制造病毒而被捕的人常常是變種病毒的開發者,他們缺乏原始病毒作者的技能,是以很容易被捕。

供參考:病毒的經濟影響

要準确計算Flame、FakeAV、MacDefender或者任何其他病毒造成的經濟損害是不可能的。然而,如果考慮IT專業人員在清理特定病毒上花費的時間,那麼全球任何病毒的代價都是數百萬美元。如果算上通過防病毒軟體、雇傭顧問和購買像本書這樣的書籍

來防禦這些病毒的花費,那麼所有病毒每年的影響很容易達到數十億美元。事實上,一項研究顯示,2007年病毒造成的經濟損失超過140億美元。

出于這個原因,許多安全專家建議政府對病毒制造者采取更嚴厲的懲罰措施。聯邦執法機構在調查這些罪行方面發揮更積極的作用也會有所幫助。例如,一些像微軟這樣的私人公司已然開始提供大量的資訊,引導抓捕病毒創造者,這是非常積極的舉措。

你可以在以下網站了解更多關于病毒(包括以前或現有病毒)的資訊:

  • www.f-secure.com/en/web/labs_global/from-the-labs
  • www.cert.org/news/
  • www.symantec.com/security-center

供參考:為什麼要編寫病毒?

對于Flame(火焰病毒)或Stuxnet(震網病毒)來說,确定病毒作者的動機并不難。這些病毒的目的是監視或幹擾特定國家的特定政府活動。在其他情況下,病毒(尤其是勒索軟體)是從受害者身上榨取錢财計劃的一部分。再說一遍,動機不難辨識。然而,對于其他病毒,如Bagle和Mimail,在第一時間了解為什麼創造這些病毒就比較困難了。據我所知,目前還沒有關于病毒作者思想的正式心理學研究。然而,通過在各種論壇上與所謂的病毒作者進行互動,并閱讀已被定罪的病毒作者的訪談資料,我可以對他們的心态發表一些見解。

在某些情況下,病毒作者隻是想證明他能夠做到。對一些人來說,僅僅知道他們“智勝”了衆多安全專家,就能給他們一種滿足感。對另一些人來說,制造大面積傷害的能力給他們灌輸了一種力量感,而這種力量感可能是他們在其他方面感覺不到的。當病毒作者被抓獲時,往往發現他們很年輕、聰明、技術熟練,有強烈的反社會傾向,并且一般與任何同齡人群體格格不入。編寫病毒幫助他們宣洩情感,就像其他人從破壞公物和塗鴉中得到的一樣。

4.病毒騙局

另一種病毒曾經在某種程度上很流行:“非病毒病毒”,即病毒騙局(virus hoax)。黑客不是真正地編寫一個病毒,而是簡單地向他擁有的每個位址發送電子郵件。這封電子郵件聲稱來自某個知名的防病毒中心,并警告說有一種新的病毒正在傳播。然後,電子郵件訓示使用者從計算機中删除一個檔案,以清除病毒。然而,這個檔案并不是真正的病毒,而是計算機系統的一部分。最早的一種病毒騙局jdbgmgr.exe就采用了此模式。它鼓勵讀者删除一個系統實際需要的檔案。令人驚訝的是,很多人都采納了這個建議,他們不僅删除了檔案,而且還迅速給朋友和同僚發了電子郵件,警告他們也從計算機中删除檔案。

所有病毒攻擊(病毒騙局除外)的一個共同主題是,訓示接收者打開某種類型的附件。病毒傳播的主要方式是作為電子郵件附件。是以使用下面幾個簡單的規則就可以大大降低機器感染病毒的機率:

  • 始終使用病毒掃描器。McAfee和諾頓(Norton)是兩個被廣泛接受和使用的病毒掃描器。Malware Bytes、AVG以及其他軟體也很有效。每隔一年大約花費30美元更新。在第9章将更為詳細地讨論病毒攻擊和病毒掃描器。
  • 如果你對某一附件沒有把握,那麼不要打開它。
  • 你甚至可以與朋友和同僚交換一個代碼字。告訴他們,如果他們想給你發送附件,應該在郵件的标題中加上代碼字。沒有看到代碼字,你就不要打開任何附件。
  • 不要相信發送給你的“安全警告”。微軟不會以這種方式發出警報。定期檢查微軟網站,以及前面提到的一個殺毒網站。微軟的安全網站(www.microsoft.com/security/ )是獲得微軟安全更新的唯一可靠網站。其他安全站點可能有準确的資訊(如www.sans.org ),但如果你使用的是特定廠商的軟體(如微軟),那麼到其站點查找警報和擷取更新檔才是最好的方式。

這些規則不會讓系統得到100%的病毒防護,但在安全防護方面邁出了一大步。

2.6.2 病毒的分類

病毒的種類非常多。在本節中,我們将簡要介紹一些主要的病毒類型。病毒可以按照其傳播方式或它們在目标計算機上的活動來分類。必須指出的是,不同的專家對病毒的分類方式稍有不同。本節中介紹的分類法很通用,這是我多年來自創的一種分類方式,我發現這種分類法非常有用。

1.宏病毒

宏病毒感染Office文檔中的宏(macro)。許多Office産品,包括微軟的Office,都允許使用者編寫稱為宏的微程式,這些宏也可以寫成病毒。在某些業務應用程式中,宏病毒被寫入宏中。比如,Microsoft Office允許使用者編寫宏來自動化完成某些任務。Microsoft Outlook設計成能讓程式員使用Visual Basic程式設計語言的一個子集,即Visual Basic for Applications(VBA)來編寫腳本。實際上,所有Microsoft Office産品都内置了這種腳本語言。程式員也可以使用與VBA 相關的VBScript語言。這兩種語言都很易學。如果這樣的腳本附加到電子郵件中,并且收件人正在使用Outlook,則腳本可以執行。這個執行可以做很多事情,包括掃描位址簿、查找位址、發送電子郵件、删除電子郵件等。

2.引導扇區病毒

引導扇區(boot sector)病毒不會感染目标計算機的作業系統,而是攻擊驅動器的引導扇區。這使得傳統防毒軟體更難檢測和删除它們。這種防毒軟體安裝在作業系統中,并且在某種程度上隻在作業系統的上下文中運作。通過在作業系統之外操作,引導扇區病毒更難檢測和删除。混合型病毒(multipartite virus)以多種方式攻擊計算機—例如,感染硬碟的引導扇區和作業系統中的一個或多個檔案。

3.隐形病毒

隐形(stealth)病毒是最大的病毒群體之一。這類病毒包括使用一種或多種技術隐藏自身的任何病毒。換句話說,這是試圖避開防毒軟體的病毒。

特洛伊木馬是隐藏病毒的一種絕好方法。通過将其綁定到一個合法的程式,病毒不僅會欺騙使用者安裝它,而且還可能逃避防病毒軟體。

多态型病毒會不時地改變其形式,以避免被防病毒軟體發現。一種更進階的形式叫作變态(metamorphic)病毒,它可以完全改變自己,不過這需要一個輔助子產品來執行改寫。

稀疏感染(sparse infector)病毒試圖通過偶爾的惡意行為來逃避檢測。使用稀疏感染病毒,使用者會在短時間内看到症狀,然後一段時間内沒有症狀。在某些情況下,稀疏感染的目标是特定的程式,但病毒隻在目标程式執行的第10次或第20次時才執行。或者,一個稀疏感染病毒可能會突然活躍起來,然後休眠一段時間。這類病毒有很多變種,但基本原則是相同的:減少攻擊頻率,進而降低被發現的機率。

載荷分段(fragmented payload)是一種相當複雜的隐藏病毒的方法。病毒被分成多個子產品。其中,加載器子產品無害,不太可能觸發任何防毒軟體,但是它會分别下載下傳其他片段。當所有片段都準備好時,加載程式将組裝它們并釋放病毒。

4.勒索軟體

現如今,在讨論惡意軟體時不可能不探讨勒索軟體(ransomware)。事實上,就在我寫這本書的時候,世界剛遭受了一次大規模的勒索軟體襲擊。它剛開始攻擊英格蘭和蘇格蘭的醫療保健系統,後來傳播到了更多地方。這個病毒就是臭名昭著的WannaCry病毒。盡管許多人第一次開始探讨勒索軟體是在2013年CryptoLocker出現時,但勒索軟體出現的時間實際上比這早得多。第一個已知的勒索軟體是1989年的PC Cyborg Trojan,它隻使用一個弱的對稱密碼加密檔案名。

一般來說,勒索軟體像蠕蟲一樣工作,然後或者禁用系統服務,或者加密使用者檔案。最後索要贖金來釋放這些檔案或服務。

2.6.3 特洛伊木馬

當你在本章看到特洛伊木馬這個術語時,你可能已經知道它是什麼了。特洛伊木馬是一個程式,它看起來是良性的,但實際上卻有惡意目的。你可能會收到或下載下傳一個看起來像是無害的商業工具或遊戲的程式。更有可能的是,特洛伊木馬不過是附在一封看上去無害的電子郵件上的一個腳本。當你運作程式或打開附件時,它會做一些你想不到的事情,例如:

  • 從一個網站下載下傳有害軟體;
  • 在你的機器上安裝鍵盤記錄器或其他間諜軟體;
  • 删除檔案;
  • 為黑客打開後門。

病毒和特洛伊木馬攻擊組合是很常見的。在這些情況下,特洛伊木馬會像病毒一樣傳播。MyDoom病毒在機器上打開了一個端口,後來一種名為Doomjuice的病毒會利用這個端口,這樣MyDoom就變成了病毒和特洛伊木馬的組合體。

供參考:MyDoom是特洛伊木馬嗎?

一些專家認為,MyDoom實際上不是特洛伊木馬,因為它并不僞裝成良性軟體。然而,有人可能會争辯說,發送MyDoom的電子郵件附件确實聲稱自己是一個合法附件,是以它可以被歸類為特洛伊木馬。不管你是否同意MyDoom是特洛伊木馬,它确實很好地說明了惡意軟體可以通過多種途徑造成傷害。

特洛伊木馬也可以專門為某個人定制。如果黑客想要窺探某個人,比如公司的會計,那麼他可以專門設計一個程式來吸引那個人的注意。例如,如果黑客知道會計癡迷于高爾夫,他就可以寫一個程式,計算障礙并列出最好的高爾夫球課程。黑客把這個程式釋出到一個免費的Web伺服器上。然後給許多人發電子郵件,包括那名會計,告訴他們關于免費軟體的事。該軟體一旦安裝,就檢查目前登入人員的姓名。如果登入名與會計的名稱比對,那麼該軟體就在使用者不知情的情況下下載下傳鍵盤記錄器或其他監控應用。如果該軟體不破壞檔案或複制自己,那麼它可能在相當長的一段時間内不被檢測到。

編寫這樣的程式可能在幾乎任何中等能力程式員的技能範圍内。這是許多機構禁止将任何軟體下載下傳到公司機器上的原因之一。我尚未見過任何采用這種方式定制特洛伊木馬的實際案例。但請記住,那些制造病毒攻擊的人往往是具有創新精神的人。

另一種要考慮到的情況是具有相當破壞性的情況。在不披露程式設計細節的情況下,這裡勾勒出一個基本情景來展示特洛伊木馬的嚴重危害。想象一下,有一個小應用程式能顯示一系列奧薩馬·本·拉登的照片。這可能會受到許多美國人的歡迎,尤其是軍隊、情報部門或國防相關行業的人。現在假設應用程式簡單地在機器上休眠一段時間,它不需要像病毒一樣複制,因為計算機使用者本人可能會把它發送給他的許多同僚。在特定的日期和時間,軟體連接配接到它能連接配接的任何驅動器,包括網絡驅動器,開始删除所有檔案。

如果這樣的特洛伊木馬被“無拘無束”地釋放,那麼30天之内它可能會被傳送到成千上萬的人手中。想象一下,當成千上萬的計算機開始删除檔案和檔案夾時遭受的破壞。

這個場景會讓你感到恐慌。包括專業人士在内的電腦使用者通常會從Internet上下載下傳各種檔案,包括有趣的Flash動畫和一些可愛的遊戲。每次雇員下載下傳這種性質的檔案時,就有可能會下載下傳到特洛伊木馬。即便不是統計學家也能意識到,如果員工持續這樣做足夠長的時間,那麼他們最終會把特洛伊木馬下載下傳到公司的機器上。

供參考:特洛伊木馬案例

強烈警告讀者不要嘗試實際建立任何以上這些特洛伊木馬場景。發放這種應用程式是一種犯罪,可能會導緻長期的監獄刑罰和嚴重的民事處罰。這些例子隻是為了向你展示特洛伊木馬的破壞性。

建立特洛伊木馬和病毒的人極富創造力,新的變種不斷出現。很可能有其他人已經想到了與我所展示的場景相類似的東西。呈現這些場景的目的是確定網絡管理者具有适當程度的謹慎。坦率地說,我希望每個網絡管理者對病毒和特洛伊木馬都有一定程度的偏執。

2.7 本章小結

本章讨論了系統最常見的威脅:病毒攻擊、拒絕服務攻擊、特洛伊木馬、會話劫持和緩沖區溢出攻擊。諸如身份盜用和網絡釣魚(使用虛假的電子郵件和網站來搜集終端使用者的資訊,這些資訊可以用于身份盜用和欺詐)等其他攻擊發生得更頻繁,但它們對機構網絡的直接威脅并不像對個人那麼大。這就是為什麼本章将重點放在攻擊上—它們才是網絡安全最該關心的。

在每種情況下,各種防禦機制都可以分為兩類:技術性的或程式性的。技術性防禦是指那些你可以安裝或配置以使系統更安全的項目。這包括微塊(micro block)、RST cookie、堆棧調整和防病毒軟體。過程性防禦包括調整終端使用者的行為以提高安全性,這些措施包括不下載下傳可疑檔案和不打開未經驗證的附件。當你通讀本書時,會發現網絡防禦必須從兩個角度進行。後續章節将詳細讨論技術性防禦(防火牆、病毒掃描程式等),還将用整個章節專門讨論過程性防禦(政策和過程)。了解有必要同時使用這兩種方法保護你的網絡是至關重要的。

很明顯,保護你的系統是絕對關鍵的。在接下來的練習中,你将嘗試使用諾頓和McAfee來練習防病毒程式。黑客攻擊系統的方式多種多樣,是以保護系統安全可能是一項相當複雜的任務。第6章将讨論更具體的方法,你可以通過這些方法來保護你的系統。

2.8 自測題

2.8.1 多項選擇題

1.從攻擊者的角度來看,DoS攻擊的主要缺點是什麼?

A.必須持續攻擊                 
B.攻擊不會造成實際損害
C.攻擊易于被挫敗                 
D.攻擊很難執行
           

2.哪種DoS攻擊基于保持連接配接半開?

A. 死亡之ping                     
B. Smurf攻擊
C.分布式拒絕服務                 
D. SYN泛洪
           

3.依賴于向用戶端發回哈希代碼的DoS防禦的名稱是什麼?

A.堆棧調整                     
B. RST cookie
C. SYN cookie                     
D.伺服器反彈
           

4.如果你的Web伺服器資源有限,但你需要強大的DoS防禦,那麼下列哪一種防禦方式是最好的?

A.防火牆                     
B. RST cookie
C. SYN cookie                     
D.堆棧調整
           

5.堆棧調整防禦的技術弱點是什麼?

A.它很複雜,需要非常熟練的技術人員來實施     
B.它隻會減少逾時,但不會真正阻止DoS攻擊
C.它是資源密集型的,會降低伺服器的性能    
D.對DoS攻擊無效
           

6.導緻網絡上的機器對該網絡的某個伺服器發起DoS攻擊,該DoS攻擊的名稱是什麼?

A. Smurf攻擊                     
B. SYN泛洪
C. 死亡之ping                     
D.分布式拒絕服務
           

7.下列哪種病毒攻擊會引發DoS攻擊?

A. Faux                     
B. Walachi
C. Bagle                     
D. MyDoom
           

8.下列哪一種是推薦的防禦DoS攻擊的防火牆配置?

A.阻塞來自外網的ICMP資料包             
B.阻塞所有入站的資料包
C.阻塞所有ICMP資料包            
D.阻塞來自外網的TCP資料包
           

9.以下哪一項正确描述了緩沖區溢出攻擊?

A.發送大量的TCP包使目标過載的攻擊         
B.試圖将大量資料放入記憶體緩沖區的攻擊
C.試圖發送超大TCP包的攻擊             
D.試圖将配置錯誤的資料放入記憶體緩沖區的攻擊
           

10.防止緩沖區溢出攻擊的最佳方法是什麼?

A.使用健壯的防火牆                 
B.在路由器上阻塞TCP包
C.給所有軟體打更新檔并保持更新        
D.停止所有的ICMP流量
           

11.下面哪一項是IP欺騙的最佳定義?

A.發送一個看上去來自可信IP位址的資料包    
B.将資料包重新路由到不同的IP位址
C.建立一個看起來是不同站點的僞網站         
D.發送配置錯誤的資料包
           

12.IP欺騙攻擊的内在危險是什麼?

A.對目标系統非常有害            
B.許多這類攻擊為其他攻擊打開了大門
C.難以停止                       
D.許多防火牆不檢檢視似來自内部網絡中的資料包
           

13.防禦IP欺騙的最佳方法是什麼?

A.安裝路由器/防火牆,阻止看似來自網絡内部的資料包
B. 安裝路由器/防火牆,阻止看似來自外網的資料包
C.阻塞所有入站的TCP流量
D.阻塞所有入站的ICMP流量
           

14.關于會話劫持,下面哪個選項的描述最恰當?

A.通過特洛伊木馬接管目标機器        
B.遠端控制目标機器
C.控制兩台機器之間的通信鍊路        
D.控制登入會話
           

15.下列哪個選項是關于病毒的最佳定義?

A.造成系統檔案損壞的軟體             
B.自我複制的軟體
C.對任何檔案造成損害的軟體             
D.附加到電子郵件的軟體
           

16.什麼是特洛伊木馬?

A.自我複制的軟體                 
B.看起來是良性的軟體,但實際上有某些惡意目的
C.删除系統檔案、感染其他機器的軟體         
D.對系統造成損害的軟體
           

2.8.2 練習題

練習2.1 基本的DoS攻擊

1.設定一台裝有Web伺服器的機器。

2.使用實驗室裡的其他機器ping該目标機器。

3.繼續這樣做,直到目标不能夠再響應合法的請求。

4.注意成功執行DoS攻擊所需的每秒資料包總數。

練習2.2 配置防火牆來阻止DoS攻擊

(注意:此練習僅适用于能通路實驗室防火牆的班。)

1.使用防火牆的文檔,了解如何阻塞入站的ICMP包。

2.配置防火牆阻塞這些包。

3.現在使用防火牆嘗試再做一次練習2.1,看看它是否成功。

練習 2.3 安裝諾頓防病毒軟體

1.去諾頓的網站下載下傳它的試用版防病毒程式。

2.配置它并掃描你的計算機。

3.去McAfee的網站下載下傳它的試用版防病毒程式。

4.配置它并掃描你的計算機。

5.注意區分兩個病毒掃描器在可用性、使用體驗以及通用性能方面的差別。你會推薦哪一個,為什麼?

練習2.4 配置路由器

(注意:此練習僅适用于能通路實驗室路由器的班。)

1.查閱你的路由器文檔,了解如何禁止來自外網的流量。

2.配置路由器以阻止來自外網的流量。

3.ping網絡伺服器以測試你的配置是否阻塞了外網的流量。

練習2.5 了解Blaster病毒

1.使用Web或其他資源查找Blaster病毒的資訊。

2.描述這種病毒是如何工作、如何傳播的。

3.研究并描述該病毒造成的破壞類型和數量。

4.病毒作者是否已被抓獲或起訴?

5.為防禦這種特定的病毒提出建議。

練習2.6 了解MyDoom

1.使用Web或其他資源查找有關MyDoom病毒的資訊。

2.8.3 項目題

項目2.1 最近的病毒攻擊

1.使用Web或其他資源,查找在過去90天内傳播的新病毒。

2.注意該病毒是如何傳播的、造成的損害,以及建議的防範步驟。

3.這種病毒與Sasser病毒和MyDoom病毒相比如何?

項目2.2 建立防病毒政策

1.使用Web查找一個機構的防病毒政策。第1章列出的推薦資源是進行這類搜尋的好地方。或者,你可以找一些你接觸過的機構的政策,比如你的學校或者你的公司。

2.對該特定機關的防病毒政策,你會提出什麼改進建議?

3.你的建議應該非常具體,并且包含支援這些建議的詳細理由。

項目2.3 為什麼會存在緩沖區溢出漏洞?

考慮緩沖區溢出漏洞是如何産生的,解釋為什麼你認為存在這些漏洞,提出建議以預防或減少此類漏洞。

繼續閱讀