什么是DoS?什么是DDoS?它們的危害是什么?怎樣有效預防它們?我想這是每一個網(wǎng)絡管理人員都關心的問題。下面,我就以問答的形式,從DoS的概念、行為以及預防手段幾個方面詳細地論述DoS攻防。
Q:何為拒絕服務攻擊?
A:DoS是Denial of Service的簡稱,即拒絕服務,造成DoS的攻擊行為被稱為DoS攻擊,其目的是使計算機或網(wǎng)絡無法提供正常的服務。最常見的DoS攻擊有計算機網(wǎng)絡帶寬攻擊和連通性攻擊。帶寬攻擊指以極大的通信量沖擊網(wǎng)絡,使得所有可用網(wǎng)絡資源都被消耗殆盡,最后導致合法的用戶請求就無法通過。連通性攻擊指用大量的連接請求沖擊計算機,使得所有可用的操作系統(tǒng)資源都被消耗殆盡,最終計算機無法再處理合法用戶的請求。例如,2000年2月6日那個星期對Yahoo網(wǎng)站發(fā)生的主要是帶寬攻擊。
Q:何為分布式拒絕服務攻擊?
A:分布式拒絕服務(DDoS:Distributed Denial of Service)攻擊指借助于客戶/服務器技術,將多個計算機聯(lián)合起來作為攻擊平臺,對一個或多個目標發(fā)動DoS攻擊,從而成倍地提高拒絕服務攻擊的威力。通常,攻擊者使用一個偷竊帳號將DDoS主控程序安裝在一個計算機上,在一個設定的時間主控程序?qū)⑴c大量代理程序通訊,代理程序已經(jīng)被安裝在Internet上的許多計算機上。代理程序收到指令時就發(fā)動攻擊。利用客戶/服務器技術,主控程序能在幾秒鐘內(nèi)激活成百上千次代理程序的運行。
Q:DDoS攻擊怎樣影響Web站點?
當對一個Web站點執(zhí)行 DDoS 攻擊時,這個站點的一個或多個Web服務會接到非常多的請求,最終使它無法再正常使用。在一個DDoS攻擊期間,如果有一個不知情的用戶發(fā)出了正常的頁面請求,這個請求會完全失敗,或者是頁面下載速度變得極其緩慢,看起來就是站點無法使用。典型的DDoS攻擊利用許多計算機同時對目標站點發(fā)出成千上萬個請求。為了避免被追蹤,攻擊者會闖進網(wǎng)上的一些無保護的計算機內(nèi),在這些計算機上藏匿DDoS程序,將它們作為同謀和跳板,最后聯(lián)合起來發(fā)動匿名攻擊。
Q:有沒有遠離DDoS攻擊危險的快速而簡便的方法?
A:沒有。但是有一個簡單的基本原則:防止計算機被黑客劫持后成為攻擊的平臺,這樣就在攻擊發(fā)生前將問題徹底排除了。
攻擊者很喜歡把非商業(yè)計算機作為攻擊平臺,因為這些計算機更容易被攻陷。比如,大學系統(tǒng)經(jīng)常是攻擊者選擇的目標,因為它們經(jīng)常是人手不足,或者是為了便于學生使用而將安全設置到最低等級。但這并不是一個國家的問題,世界上任何一個Internet服務器都可用被用來作為攻擊的平臺。
所以,我們必須"團結成一個整體",通過全球合作來保護Internet。最起碼要從自己做起,檢查自己的上網(wǎng)計算機,確保它們不會成為DDoS的攻擊平臺。這不僅僅是為了做一個Internet好公民,更是為在發(fā)生了DDoS 攻擊時,有證據(jù)能表明:我的計算機是無罪的。
Q:政府能對防范DoS攻擊起很大的作用嗎?
A:毫無疑問,政府通過在Internet 上施加多種限制規(guī)定,就能極大地控制DoS類型的攻擊,至少是那些來自本國的攻擊。例如,可以對上網(wǎng)要求相當于駕駛執(zhí)照那樣的許可證,對站點要求相當于"工商許可"的許可證,對所有的 ISP進行嚴格規(guī)范,就象對許多公共設施(如水、氣等)的要求一樣。
但是請注意:限制犯罪活動和限制經(jīng)濟增長、教育、信息資源以及一般人身自由之間只是一線之隔,政府對此很難掌握,因此許多政府正在尋求一些非干預性的方法。例如,美國前總統(tǒng)Clinton曾提出在大學畢業(yè)生中發(fā)展一個信息安全計算機聯(lián)合會,培養(yǎng)所謂"計算機警察",以反抗DDoS和其它類型的計算機犯罪。
Q:如何檢測我的服務器是否存在DDoS攻擊程序?
要檢測DDoS攻擊程序的存在,可以有2種方法:
1、通常,我們可以使用文件系統(tǒng)掃描工具來確定在服務器文件系統(tǒng)上是否存在已知的DDoS攻擊程序。
同病毒軟件一樣,每當有新的DDoS發(fā)明出來,當前的DDoS工具就將過時,或者它對現(xiàn)存的DDoS進行修改而避開檢查。所以,要選擇最近更新的掃描工具才能檢測到最新的DDoS攻擊程序。
FBI提供了一個工具叫做"find_ddos",用于檢測一些已知的拒絕服務工具,包括trinoo進程、trinoo主人、加強的tfn進程、tfn客戶程序、tfn2k客戶程序和tfn-rush客戶程序。Find_ddos可以從以下地址下載:
http://www.jintaigroup.com.cn/index2/refuse/n2.htm。
請注意,F(xiàn)BI的這個工具并不能保證捕獲所有的DDoS工具。如果侵入者安裝了一個根文件包,那么find_ddos程序就有可能無法處理它。
另外,http://www.nessus.org站點也提供一個免費的掃描工具。當然還有一些商務工具也可以使用。
2、還可使用手工方法對起源于本地網(wǎng)絡中的DDoS活動進行雙重檢查。
在Web服務器與Internet或者上游ISP連接之間的防火墻上建立一個濾波器,以尋找spoofed (哄騙)信息包,也就是那些不是從你自己的網(wǎng)絡上生成的信息包。這就是所謂的出口過濾。如果在你的網(wǎng)絡上正在生成spoofed信息包,那么這很可能是一個DDoS程序生成的。然后跟蹤這些spoofed信息的源頭,將計算機離線開始清理工作。
屏蔽經(jīng)常受到遠程控制而受到威脅的端口,比如37337。
為了對所有的變化都進行研究并采取相應的措施,建議使用nmap 或saint這樣的工具經(jīng)常對網(wǎng)絡的開放端口進行掃描。Nmap,即Network Mapper,是Linux下的網(wǎng)絡掃描和嗅探工具包,它不僅可以幫助網(wǎng)管人員深入探測UDP或TCP端口,直至主機所使用的操作系統(tǒng),還可以將所有探測結果記錄到各種格式的日志中,為系統(tǒng)安全服務。Info World這樣評價Nmap:如果你的目的是在40000英尺高度上看看你的網(wǎng)絡,那基于Windows的端口掃描工具就足夠了,但是如果你真的關心你的網(wǎng)絡安全,并努力想找到那些可能被侵入者發(fā)現(xiàn)的系統(tǒng)漏洞,那你最好花點時間去安裝并使用一個Linux工具--Nmap。SAINT是一個基于SATAN的安全評估工具,它能定期認證并掃描所有遠程可探測漏洞,包括以下特點:防火墻掃描,從CERT&CIAC的公告來更新安全檢查,嚴厲的4級(紅、黃、褐、綠)警告和一個有很多HTML特點的界面。
Q:如果在服務器上發(fā)現(xiàn)了一個 DDoS主機程序應該怎么辦?
A:如果在系統(tǒng)上出現(xiàn)了特洛伊木馬程序,就表明系統(tǒng)上有一個弱點被人利用了。在系統(tǒng)上可能已經(jīng)發(fā)生了一些細微或不那么細微的變化,雖然系統(tǒng)可能還沒有表現(xiàn)出外在的問題,但不能因此而放松警惕。
執(zhí)行你的組織中的應急反應策略。如果現(xiàn)在還沒有這樣的策略,那么至少要執(zhí)行以下這些應急步驟:
從有疑點的第一個事件開始,按照危害的嚴重程度,把一切都寫下來。從技術上和法律上,這都是很有幫助的。
不要對外散布關于你的組織所受到的威脅的消息。這不會有任何幫助,而且還會讓媒體卷進來。你只需要通知那些能幫助你解決這些問題的人,以及組織的管理人員和法律人士。
向你的組織中最權威的安全專家求助。如果沒有這樣的人,可以向咨詢公司尋求幫助,這些公司對你正在運行的操作系統(tǒng)和系統(tǒng)軟件應急處理方面的問題是很有經(jīng)驗的。
從網(wǎng)絡上把受到威脅的計算機移走,最簡單也最徹底的方法就是拔掉網(wǎng)線。如果這個計算機的作用很關鍵,那么就要配置一個熱備份機器。如果沒有熱備份機器,那么就要停工嘍。
要對受到威脅的計算機的文件系統(tǒng)進行備份。在備份之前,要把操作系統(tǒng)管理的所有動態(tài)數(shù)據(jù)表都轉(zhuǎn)換成標準文件,以便以后進行分析。例如,當前正在執(zhí)行的程序列表、當前登錄用戶、當前網(wǎng)絡連接。為了更加保險,建議使用兩種不同的備份程序做兩個系統(tǒng)備份。
關掉受到威脅的計算機。
重新啟動計算機。
重新格式化系統(tǒng)軟件使用的驅(qū)動器。
重新安裝操作系統(tǒng)。
安裝操作系統(tǒng)的所有補丁程序包。
恢復文件系統(tǒng)。不要覆蓋任何系統(tǒng)文件,恢復之前手動檢測所有的口令。
把計算機重新連入網(wǎng)絡。
檢測網(wǎng)絡上的其它計算機,看看別處有沒有被利用的弱點。
Q:如何防止服務器被當做DDoS主機?
A:建議采取如下步驟:
1、首先要充分認識和理解Internet服務器上存在的弱點:
除非是已經(jīng)采取了特殊措施,Internet服務器都有主機名和IP地址,Internet上的任何人都能很容易地查找到這些信息。
許多組織都不把防火墻放在Internet服務器之前,這樣即使是防火墻能夠輕易阻止的探測和攻擊也無法阻擋。
默認狀態(tài)下,服務器監(jiān)聽來自標準端口的服務請求,并很自然地試圖處理這些請求。
服務器本來就是要在無人照料的情況下運行的,所有一般不會有一個用戶現(xiàn)身來尋找不正常的動作。
服務器還經(jīng)常需要遠程管理,因此它們要接受來自用戶的遠程連接,這些用戶通常具有非常強大的權限。
許多服務器都會在關機之后自動重新啟動,而這正是那些攻擊者在利用它的時候所希望的。
2、如果系統(tǒng)已經(jīng)受到了威脅,立即備份文件系統(tǒng),然后重新安裝操作系統(tǒng)并恢復文件系統(tǒng)。
3、安裝軟件產(chǎn)商提供的操作系統(tǒng)升級程序。如果升級程序是與系統(tǒng)安全相關的,那在安裝的時候尤其要注意。一定要仔細閱讀軟件產(chǎn)商的升級文件readme,因為有些升級程序并不是測試得那么好,其中有些缺點可能反而對你的系統(tǒng)造成危害。
4、對服務器進行保護。
關閉所有不必要的系統(tǒng)服務。操作系統(tǒng)所提供的許多服務并不是Web服務器所需要的,例如基于RPC的服務。要采取"先拒絕,再允許"的策略。除非這個服務是完全必要的,就先將其關閉。
首先要確定哪些基于程序的服務可以關閉,如FTP、 telnet等。在文件系統(tǒng)中,這些服務很容易找到,都是可執(zhí)行程序。
很多系統(tǒng)都曾受到緩沖區(qū)溢出漏洞的威脅。
檢測操作系統(tǒng)文檔,看看它是否在內(nèi)核級提供了以不可視的單獨程序形式存在的服務。例如,netmask服務就可以在內(nèi)核級運行。這種情況下,首先確定可以設置哪些參數(shù),然后關閉不必要的內(nèi)核級服務。
聯(lián)系操作系統(tǒng)供應商,看看是否還有其它內(nèi)核級服務不在系統(tǒng)文檔內(nèi),如果有的話,就應該禁止它們。
一旦將所有這些不必要的服務都禁止之后,要對整個系統(tǒng)作一個加密校驗和操作,以備今后出現(xiàn)疑點時使用。對于基于UNIX的系統(tǒng),Tripwire能夠完成這個功能,詳細資料請參閱:http://www.tripwiresecurity.com/。
http://www.cert.org/security-improvement/practices/p043.html有關于加密檢驗和的詳細信息。
配置Web服務器軟件。首先要驗證已經(jīng)安裝了最新版本的Web 服務器軟件。其次,關閉Web 服務器軟件所提供的所有不必要服務,比如關閉不是必須的Java支持、CGI支持和服務器端腳本支持。
限制對服務器的物理訪問。要采取適當行動,確保服務器只能被指定的系統(tǒng)管理員訪問。如果侵入者能夠?qū)Ψ掌鬟M行物理訪問的話,只需一張軟盤就能打敗全世界的安全保衛(wèi)措施。
Q:如何防止個人計算機成為 DDoS 主機?
A:建議采取如下步驟:
1、首先要充分認識并理解Internet客戶機所存在的弱點:
Internet客戶機,即連接到Internet的個人計算機,也可以受到威脅成為DDoS攻擊的代理機。
全部時間都連接到Internet上的個人計算機對DDoS 侵入者特別有用。
威脅一個個人計算機的最簡單也最常用的方法是通過用戶下載的文件,那些作為屏保、游戲和圖像形式出現(xiàn)的惡意程序是罪魁禍首。
那些允許后臺處理和多任務處理的新個人計算機操作系統(tǒng),如Windows 98、Windows NT工作站、Linux,使他們成為DDoS攻擊的可能代理。
2、如果系統(tǒng)已經(jīng)受到了威脅,理解備份文件系統(tǒng),重新安裝操作系統(tǒng)并恢復文件系統(tǒng)。
3、安裝存在系統(tǒng)銷售商提供的操作系統(tǒng)升級程序。
4、對客戶機/個人計算機進行保護。
要通知本地網(wǎng)絡上所有Internet用戶,尤其是那些全部時間都連接到Internet上的用戶,由于他們的計算機有可能被用作攻擊代理,所以必須裝備最新的檢測軟件。
反病毒軟件中一般都包括可檢測許多DDoS 程序的升級程序,建議下載并安裝其最新版本。例如,Norton的相關程序可以在http://www.symantec.com/avcenter/venc/data/w32.dos.trinoo.html獲得,NAI的相關程序可以在http://vil.nai.com/vil/DoS98506.asp獲得。
注意,如果在客戶系統(tǒng)上已經(jīng)有惡意程序在運行,這些檢測程序可能就不起作用了。Norton的情況是,開啟實時保護,然后重新啟動計算機,檢查已經(jīng)在操作中的DDoS代理程序。