1.DDoS攻擊概念
DoS的攻擊方式有很多種,最基本的DoS攻擊就是利用合理的服務請求來占用過多的服務資源,從而使合法用戶無法得到服務的響應。
DDoS攻擊手段是在傳統的DoS攻擊基礎之上產生的一類攻擊方式。單一的DoS攻擊一般是采用一對一方式的,當攻擊目標是CPU速度低、內存小或者網絡帶寬小等各項性能指標不高的網絡時,它的效果是明顯的。隨著計算機與網絡技術的發展,計算機的處理能力迅速增長,內存大大增加,同時也出現了千兆級別的網絡,這使得DoS攻擊的困難程度加大了——目標對惡意攻擊包的“消化能力”加強了不少,例如攻擊軟件每秒鐘可以發送3 000個攻擊包,但主機與網絡帶寬每秒鐘可以處理10000個攻擊包,這樣一來攻擊就不會產生什么效果。
這時侯分布式的拒絕服務攻擊手段(DDoS)就應運而生了。如果理解了DoS攻擊的話,它的原理就很簡單。如果說計算機與網絡的處理能力加大了10倍,用一臺攻擊機來攻擊不再能起作用的話,攻擊者使用10臺攻擊機同時攻擊呢?用100臺呢?DDoS就是利用更多的傀儡機來發起進攻,以比從前更大的規模來進攻受害者。
高速廣泛連接的網絡給大家帶來了方便,也為DDoS攻擊創造了極為有利的條件。在低速網絡時代時,黑客占領攻擊用的傀儡機時,總是會優先考慮離目標網絡距離近的機器,因為經過路由器的跳數少,效果好。而現在電信骨十節點之間的連接都是以G為級別的,大城市之間更可以達到2.5G的連接,這使得攻擊可以從更遠的地方或者其他城市發起,攻擊者的傀儡機位置可以在分布在更大的范圍,選擇起來更靈活了。
被DDoS攻擊時的現象如下:
(1)被攻擊主機上有大量等待的TCP連接;
(2)網絡中充斥著大量的無用的數據包,源地址為假:
(3)制造高流量無用數據,造成網絡擁塞,使受害主機無法正常和外界通信:
(4)利用受害主機提供的服務或傳輸協議上的缺陷,反復高速地發出特定的服務請求,使受害主機無法及時處理所有正常請求;
(5)嚴重時會造成系統死機。
2.攻擊運行原理
一個比較完善的DDoS攻擊體系分成4大部分,其中最重要的第2和第3部分,它們分別用做控制和實際發起攻擊。請注意控制機與攻擊機的區別,對第4部分的受害者來說,DDoS的實際攻擊包是從第3部分攻擊傀儡機上發出的,第2部分的控制機只發布命令而不參與實際的攻擊。對第2和第3部分計算機,黑客有控制權或者是部分的控制權,并把相應的DDoS程序上傳到這些平臺上,這些程序與正常的程序一樣運行并等待來自黑客的指令,通常它還會利用各種手段隱藏自己不被別人發現。在平時,這些傀儡機器并沒有什么異常,可是一旦黑客連接到它們進行控制,并發出指令的時候,攻擊傀儡機就成為害人者去發起攻擊了。
下面講講黑客如何組織一次DDoS攻擊。這里用“組織”這個詞,是因為DDoS并不像入侵一臺主機那樣簡單。一般來說,黑客進行DDoS攻擊時會經過如下的步驟。
(1)搜集了解目標的情況。下列情況是黑客非常關心的情報:
●被攻擊目標主機數目、地址情況;
●目標主機的配置、性能;
●目標的帶寬。
對于DDoS攻擊者來說,攻擊互聯網上的某個站點,如http://www.mytarget.com,有一個重點就是確定到底有多少臺主機在支持這個站點,一個大的網站可能有很多臺主機利用負載均衡技術提供同一個網站的WWW服務。所以事先搜集情報對DDoS攻擊者來說是非常重要的,這關系到使用多少臺傀儡機才能達到效果的問題。簡單地考慮一下,在相同的條件下,攻擊同一站點的2臺主機需要2臺傀儡機的話,攻擊5臺主機可能就需要5臺以上的傀儡機。有人說做攻擊的傀儡機越多越好,反正不管你有多少臺主機我都用盡量多的傀儡機來攻就是了,傀儡機多了效果更好。
但在實際過程中,有很多黑客并不進行情報的搜集而直接進行DDoS的攻擊,這時候攻擊的盲目性就很大了,效果如何也要靠運氣。
2)占領傀儡機。黑客最感興趣的是有下列情況的主機:
●鏈路狀態好的主機;
●性能好的主機;
●安全管理水平差的主機。
這一部分實際上是使用了另一大類的攻擊手段:利用形攻擊。這是和DDoS并列的攻擊方式。簡單地說,就是占領和控制被攻擊的主機,取得最高的管理權限,或者至少得到一個有權限完成DDoS攻擊任務的賬號。對于一個DDoS攻擊者來說,準備好一定數量的傀儡機是一個必要的條件,下面說一下攻擊者是如何攻擊并占領它們的。
首先,黑客做的工作一般是掃描,隨機地或者是有針對性地利用掃描器去發現互聯網上那些有漏洞的機器,像程序的溢出漏洞、cgi、Unicode、ftp、數據庫漏洞……都是黑客希望看到的掃描結果。隨后就是嘗試入侵,了,具體的手段就不在這里多說了,讀者感興趣的話可以在網上查到很多關于這些內容的文章。
假設黑客現在占領了一臺傀儡機,然后他做什么呢?除了上面說過留后門擦腳印這些基本工作之外,他會把DDoS攻擊用的程序上載過去,一般是利用ftp。在攻擊機上,會有一個DDoS的發包程序,黑客就是利用它來向受害目標發送惡意攻擊包的。
(3)實際攻擊。經過前2個階段的精心準備之后,黑客就開始瞄準目標準備發射了。前面的準備做得好的話,實際攻擊過程反而是比較簡單的。黑客登錄到做為控制臺的傀儡機,向所有的攻擊機發出命令:“預備~,瞄準~,開火!”。這時候埋伏在攻擊機中的DDoS攻擊程序就會響應控制臺的命令,一起向受害主機以高速度發送大量的數據包,導致它死機或是無法響應正常的請求。黑客一般會以遠遠超出受害方處理能力的速度進行攻擊,他們不會“憐香惜玉”。
老到的攻擊者會一邊攻擊,一邊用各種手段來監視攻擊的效果,在需要的時候進行一些調整。簡單些就是開個窗口不斷地ping目標主機,在能接到回應的時候就再加大一些流量或是再命令更多的傀儡機來加入攻擊。
3.DDoS的防范
到目前為止,進行DDoS攻擊的防范還是比較困難的。因為這種攻擊的特點是利用了 TCP/IP協議的漏洞,除非不用TCP/IP,才有可能完全抵御住DDoS攻擊。一位資深的安全專家給了個形象的比喻:DDoS就好像有1 000個人同時給你家里打電話,這時候你的朋友還打得進來嗎?
不過即使它難以防范,也不是說我們就應該逆來順受,實際上防止DDoS并不是絕對不可行的事情。互聯網的使用者是各種各樣的,與DDoS做斗爭,不同的角色有不同的任務。我們以下面幾種角色為例進行講解:
●企業網管理員;
●ISP、ICP管理員;
●骨干網絡運營商。
(1)企業網管理員。網管員做為一個企業內部網的管理者,往往也是安全員、守護神。在他維護的網絡中有一些服務器需要向外提供WWW服務,因而不可避免地成為DDoS的攻擊目標,他該如何做呢?可以從主機與網絡設備兩個角度去考慮。
1)主機上的設置。幾乎所有的主機平臺都有抵御DoS的設置,總結一下,基本的有幾種:
①關閉不必要的服務;
②限制同時打開的Syn半連接數目;
③縮短Syn半連接的time out時間;
④及時更新系統補丁。
2)網絡設備上的設置。企業網的網絡設備可以從防火墻與路由器上考慮。這兩個設備是到外界的接口設備,在進行防DDoS設置的同時,要注意一下這是以多大的效率犧牲為代價的,對你來說是否值得。
對防火墻來說,可以考慮:
①禁止對主機的非開放服務的訪問;
②限制同時打開的SYN最大連接數;
③限制特定IP地址的訪問;
④啟用防火墻的防DDoS的屬性;
⑤嚴格限制對外開放的服務器的向外訪問。
第五項主要是防止自己的服務器被當做工具去害人。
對路由器(以Cisco路由器為例)來說,可以考慮:
①Cisco Express Forwarding(CEF):
②使用unicast reverse-path:
③訪問控制列表(ACL)過濾;
④設置SYN數據包流量速率;
⑤升級版本過低的ISO;
⑥為路由器建立log server。
其中使用CEF和Unicast設置時要特別注意,使用不當會造成路由器工作效率嚴重下降,升級IOS也應謹慎。路由器是網絡的核心設備,與大家分享一下進行設置修改時的小經驗,就是先不保存。Cisco路由器有兩份配置startup config和running config,修改的時候改變的是running config,可以讓這個配置先跑一段時間,覺得可行后再保存配置到startup config;而如果不滿意想恢復原來的配置,用copy start run就行了。
(2)ISP/ICP管理員。ISP/ICP為很多中小型企業提供了各種規模的主機托管業務,所以在防DDoS時,除了與企業網管理員一樣的手段外,還要特別注意自己管理范圍內的客戶托管主機不要成為傀儡機。客觀上說,這些托管主機的安全性普遍是很差的,有的連基本的補丁都沒有打就赤膊上陣了,成為黑客最喜歡的“肉雞”,因為不管這臺機器黑客怎么用都不會有被發現的危險,它的安全管理太差了;還不必說托管的主機都是高性能、高帶寬的——簡直就是為DDoS定制的。而做為ISP的管理員,對托管主機是沒有直接管理的權力的,只能通知讓客戶來處理。實際情況是,有很多客戶與自己的托管主機服務商配合得不是很好,造成ISP管理員明知自己負責的一臺托管主機成為了傀儡機,卻沒有什么辦法的局面。
(3)骨干網絡運營商。他們提供了互聯網存在的物理基礎。如果骨干網絡運營商可以很好地合作的話,DDoS攻擊可以很好地被預防。在2000年yahoo等知名網站被攻擊后,美國的網絡安全研究機構提出了骨干運營商聯手來解決DDoS攻擊的方案。其實方法很簡單,就是每家運營商在自己的出口路由器上進行源IP地址的驗證,如果在自己的路由表中沒有到這個數據包源IP的路由,就丟掉這個包。這種方法可以阻止黑客利用偽造的源IP來進行 DDoS攻擊。不過同樣,這樣做會降低路由器的效率,這也是骨干運營商非常關注的問題,所以這種做法真正采用起來還很困難。
對DDoS的原理與應付方法的研究一直在進行中,找到一個既有效又切實可行的方案不是一朝一夕的事情。但目前我們至少可以做到把自己的網絡與主機維護好,首先不讓自己的主機成為別人利用的對象去攻擊別人。其次,在受到攻擊的時候,要盡量地保存證據,以便事后追查,一個良好的網絡和日志系統是必要的。無論DDoS的防御向何處發展,這都將是一個社會工程,需要IT界的同行們來一起關注,通力合作。