-
分佈式拒絕服務攻擊
同義詞 DDOS通常指分佈式拒絕服務攻擊算法
分佈式拒絕
服務(DDoS:Distributed Denial of Service)攻擊指藉助於客戶/服務器技術,將多個計算機聯合起來做爲攻擊平臺,對一個或多個目標發動DDoS攻擊,從而成倍地提升拒絕服務攻擊的威力。一般,攻擊者使用一個偷竊賬號將DDoS主控程序安裝在一個計算機上,在一個設定的時間主控程序將與大量代理程序
通信,代理程序已經被安裝在網絡上的許多計算機上。代理程序收到指令時就發動攻擊。利用客戶/
服務器技術,主控程序能在幾秒鐘內激活成百上千次代理程序的運行。
-
中文名
-
分佈式拒絕服務攻擊
-
外文名
-
Distributed denial of service attack
-
目 標
-
DoS攻擊
-
借 助
-
服務器技術
定義
首先從一個比方來深刻理解什麼是DDOS。
一羣惡霸試圖讓對面那家有着競爭關係的商鋪沒法正常營業,他們會採起什麼手段呢?(只爲舉例,切勿模仿)惡霸們扮做普通客戶一直擁擠在對手的商鋪,賴着不走,真正的購物者卻沒法進入;或者老是和營業員有一搭沒一搭的東扯西扯,讓工做人員不能正常服務客戶;也能夠爲商鋪的經營者提供虛假信息,商鋪的上上下下忙成一團以後卻發現都是一場空,最終跑了真正的大客戶,損失慘重。此外惡霸們完成這些壞事有時憑單幹難以完成,須要叫上不少人一塊兒。嗯,網絡安全領域中DoS和DDoS攻擊就遵循着這些思路。
在信息安全的三要素——「保密性」、「完整性」和「可用性」中,DoS(Denial of Service),即拒絕服務攻擊,針對的目標正是「可用性」。該攻擊方式利用目標系統網絡服務功能缺陷或者直接消耗其系統資源,使得該目標系統沒法提供正常的服務。
DdoS的攻擊方式有不少種,最基本的
DoS攻擊就是利用合理的
服務請求來佔用過多的服務資源,從而使合法用戶沒法獲得服務的響應。單一的DoS攻擊通常是採用一對一方式的,當攻擊目標
CPU速度低、內存小或者網絡帶寬小等等各項指標不高的性能,它的效果是明顯的。隨着計算機與網絡技術的發展,計算機的處理能力迅速增加,內存大大增長,同時也出現了
千兆級別的網絡,這使得DoS攻擊的困難程度加大了-目標對惡意攻擊包的"消化能力"增強了很多。這時候分佈式的拒絕
服務攻擊手段(DDoS)就應運而生了。DDoS就是利用更多的
傀儡機(
肉雞)來發起進攻,以比從前更大的規模來進攻受害者
攻擊方式
DDoS攻擊經過大量合法的請求佔用大量網絡資源,以達到癱瘓網絡的目的。 這種攻擊方式可分爲如下幾種:
-
經過使網絡過載來干擾甚至阻斷正常的網絡通信;
-
-
-
IP欺騙攻擊是一種
黑客經過向
服務端發送虛假的包以欺騙
服務器的
DDOS攻擊示意圖
作法。具體說,就是將包中的源
IP地址設置爲不存在或不合法的值。
服務器一旦接受到該包便會返回接受請求包,但實際上這個包永遠返回不到來源處的計算機。這種作法使
服務器必需開啓本身的監聽端口不斷等待,也就浪費了系統各方面的資源。
這種攻擊方式與SYN floods相似,不過在
LAND attack攻擊包中的源地址和目標地址都是攻擊對象的IP。這種攻擊會致使被攻擊的機器死循環,最終耗盡資源而
死機。
ICMPfloods是經過向未良好設置的
路由器發送廣播信息佔用系統資源的作法。
與前面敘說的攻擊方式不一樣,Application level floods主要是針對應用軟件層的,也就是高於OSI的。它一樣是以大量消耗系統資源爲目的,經過向IIS這樣的網絡
服務程序提出無節制的資源申請來迫害正常的網絡服務。
攻擊現象
-
-
-
源地址爲假 製造高流量無用數據,形成
網絡擁塞,使受害
主機沒法正常和外界
通信;
-
利用受害
主機提供的
傳輸協議上的缺陷反覆高速的發出特定的
服務請求,使主機沒法處理全部正常請求;
-
攻擊特色
分佈式拒絕服務攻擊採起的攻擊手段就是分佈式的,在攻擊的模式改變了傳統的點對點的攻擊模式,使攻擊方式出現了沒有規律的狀況,並且在進行攻擊的時候,一般使用的也是常見的協議和服務,這樣只是從協議和服務的類型上是很難對攻擊進行區分的。在進行攻擊的時候,攻擊數據包都是通過假裝的,在源IP 地址上也是進行僞造的,這樣就很難對攻擊進行地址的肯定,在查找方面也是很難的。這樣就致使了分佈式拒絕服務攻擊在檢驗方法上是很難作到的。
攻擊特性
對分佈式攻擊進行必要的分析,就能夠獲得這種攻擊的特性。分佈式拒絕服務在進行攻擊的時候,要對攻擊目標的流量地址進行集中,而後在攻擊的時候不會出現擁塞控制。在進行攻擊的時候會選擇使用隨機的端口來進行攻擊,會經過數千端口對攻擊的目標發送大量的數據包,使用固定的端口進行攻擊的時候,會向同一個端口發送大量的數據包。
分類
按照TCP/IP協議的層次可將DDOS攻擊分爲基於ARP的攻擊、基於ICMP的攻擊、基於IP的攻擊、基於UDP的攻擊、基於TCP的攻擊和基於應用層的攻擊。
基於ARP
ARP是無鏈接的協議,當收到攻擊者發送來的ARP應答時。它將接收ARP應答包中所提供的信息。更新ARP緩存。所以,含有錯誤源地址信息的ARP請求和含有錯誤目標地址信息的ARP應答均會使上層應用忙於處理這種異常而沒法響應外來請求,使得目標主機喪失網絡通訊能力。產生拒絕服務,如ARP重定向攻擊。
基於ICMP
攻擊者向一個子網的廣播地址發送多個ICMP Echo請求數據包。並將源地址假裝成想要攻擊的目標主機的地址。這樣,該子網上的全部主機均對此ICMP Echo請求包做出答覆,向被攻擊的目標主機發送數據包,使該主機受到攻擊,致使網絡阻塞。
基於IP
TCP/IP中的IP數據包在網絡傳遞時,數據包能夠分紅更小的片斷。到達目的地後再進行合併重裝。在實現分段從新組裝的進程中存在漏洞,缺少必要的檢查。利用IP報文分片後重組的重疊現象攻擊服務器,進而引發服務器內核崩潰。如Teardrop是基於IP的攻擊。
基於應用層
應用層包括SMTP,HTTP,DNS等各類應用協議。其中SMTP定義瞭如何在兩個主機間傳輸郵件的過程,基於標準SMTP的郵件服務器,在客戶端請求發送郵件時,是不對其身份進行驗證的。另外,許多郵件服務器都容許郵件中繼。攻擊者利用郵件服務器持續不斷地向攻擊目標發送垃圾郵件,大量侵佔服務器資源。
流程
DDoS並不象入侵一臺主機那樣簡單。瞭解這些原理以後,你便會更加明白入侵者的意圖,今後便掌握了預防的技巧。通常來講,
黑客進行DDoS攻擊時會通過這樣的步驟:
蒐集資料
下列狀況是
黑客很是關心的情報:
被攻擊目標主機數目、地址狀況 目標主機的配置、性能 目標的寬帶。
對於DDoS攻擊者來講,攻擊
互聯網上的某個站點,有一個重點就是肯定到底有多少臺
主機在支持這個站點,一個大的網站可能有不少臺主機利用
負載均衡技術提供同一個網站的
www
服務。
若是要進行DDoS攻擊的話,應該攻擊哪個地址呢?使這臺機器癱瘓,但其餘的
主機仍是能向外提供
www
服務,因此想讓別人訪問不到網站的話,要全部這些
IP地址的機器都癱掉才行。在實際的應用中,一個IP地址每每還表明着數臺機器:網站維護者使用了四層或七層交換機來作
負載均衡,把對一個IP地址的訪問以特定的算法分配到下屬的每一個
主機上去。這時對於DDoS攻擊者來講狀況就更復雜了,他面對的任務多是讓幾十臺
主機的
服務都不正常。
因此說事先蒐集情報對DDoS攻擊者來講是很是重要的,這關係到使用多少臺
傀儡機才能達到效果的問題。簡單地考慮一下,在相同的條件下,攻擊同一站點的2臺主機須要2臺
傀儡機的話,攻擊5臺主機可能就須要5臺以上的傀儡機。有人說作攻擊的
傀儡機越多越好,無論你有多少臺主機我都用盡可能多的傀儡機來攻就是了,反正傀儡機超過了時候效果更好。
但在實際過程當中,有不少
黑客並不進行情報的蒐集而直接進行DDoS的攻擊,這時候攻擊的盲目性就很大了,效果如何也要靠運氣。其實作黑客也象
網管員同樣,是不能偷懶的。一件事作得好與壞,態度最重要,水平還在其次。
佔領
黑客最感興趣的是有下列狀況的
主機:
網絡
狀態好的主機 性能好的主機 安全管理水平差的主機
這一部分其實是使用了另外一大類的攻擊手段:利用形攻擊。這是和DDoS並列的攻擊方式。簡單地說,就是佔領和控制被攻擊的主機。取得最高的管理權限,或者至少獲得一個有權限完成DDoS攻擊任務的賬號。對於一個DDoS攻擊者來講,準備好必定數量的
傀儡機是一個必要的條件,下面說一下他是如何攻擊並佔領它們。
首先,
黑客作的工做通常是掃描,隨機地或者是有針對性地利用掃描器去發現
互聯網上那些有
漏洞的機器,像程序的
溢出漏洞、
cgi、
Unicode、
ftp、數據庫漏洞…(簡直舉不勝舉啊),都是黑客但願看到的掃描結果。隨後就是嘗試入侵了,具體的手段就不在這裏多說了,感興趣的話網上有不少關於這些內容的文章。
總之
黑客佔領了一臺
傀儡機了!而後他作什麼呢?除了上面說過留後門擦腳印這些基本工做以外,他會把DDoS攻擊用的程序上載過去,通常是利用
ftp。在攻擊機上,會有一個DDoS的發包程序,
黑客就是利用它來向受害目標發送惡意攻擊包的。
實際攻擊
通過前2個階段的精心準備以後,
黑客就開始瞄準目標準備發射了。前面的準備作得好的話,實際攻擊過程反而是比較簡單的。就象圖示裏的那樣,
黑客登陸到作爲控制檯的
傀儡機,向全部的攻擊機發出命令:"預備~ ,瞄準~,開火!"。這時候埋伏在攻擊機中的DDoS攻擊程序就會響應控制檯的命令,一塊兒向受害主機以高速度發送大量的
數據包,致使它
死機或是沒法響應正常的請求。
黑客通常會以遠遠超出受害方處理能力的速度進行攻擊,他們不會"
憐香惜玉"。
老道的攻擊者一邊攻擊,還會用各類手段來監視攻擊的效果,在須要的時候進行一些調整。簡單些就是開個窗口不斷地
ping目標主機,在能接到迴應的時候就再加大一些流量或是再命令更多的
傀儡機來加入攻擊。
防範
主機設置
全部的主機平臺都有抵禦DoS的設置,總結一下,基本的有幾種:
限制同時打開的Syn半鏈接數目
縮短Syn半鏈接的time out 時間
網絡設置
網絡設備能夠從
防火牆與
路由器上考慮。這兩個設備是到外界的接口設備,在進行防DDoS設置的同時,要注意一下這是以多大的效率犧牲爲代價的,對你來講是否值得。
禁止對主機的非開放
服務的訪問 限制同時打開的SYN最大鏈接數 限制特定IP地址的訪問 啓用
防火牆的防DDoS的屬性 嚴格限制對外開放的服務器的向外訪問 第五項主要是防止本身的
服務器被當作工具去害人。
設置SYN
數據包流量速率 升級版本太低的ISO 爲
路由器創建log server
Windows系統防護
對於windows系統來講,能夠從如下幾個方面來進行防護:
一. 啓用 SYN 攻擊保護
啓用 SYN 攻擊保護的命名值位於此註冊表項的下面:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。
值名稱: SynAttackProtect
建議值: 2
有效值: 0 – 2
說明:使 TCP 調整 SYN-ACK 的重傳。配置此值後,在遇到 SYN 攻擊時,對鏈接超時的響應將更快速。在超過 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值後,將觸發 SYN 攻擊保護。
設置 SYN 保護閾值
下列值肯定觸發 SYN 保護的閾值。這一部分中的全部註冊表項和值都位於註冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。這些註冊表項和值是:
值名稱: TcpMaxPortsExhausted
建議值: 5
有效值: 0 – 65535
說明:指定觸發 SYN 洪水攻擊保護所必須超過的 TCP 鏈接請求數的閾值。
值名稱: TcpMaxHalfOpen
建議的數值數據: 500
有效值: 100 – 65535
說明:在啓用 SynAttackProtect 後,該值指定處於 SYN_RCVD 狀態的 TCP 鏈接數的閾值。在超過 SynAttackProtect 後,將觸發 SYN 洪水攻擊保護。
值名稱: TcpMaxHalfOpenRetried
建議的數值數據: 400
有效值: 80 – 65535
說明:在啓用 SynAttackProtect 後,該值指定處於至少已發送一次重傳的 SYN_RCVD 狀態中的 TCP 鏈接數的閾值。在超過 SynAttackProtect 後,將觸發 SYN 洪水攻擊保護。
設置其餘保護
這一部分中的全部註冊表項和值都位於註冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。這些註冊表項和值是:
值名稱: TcpMaxConnectResponseRetransmissions
建議的數值數據: 2
有效值: 0 – 255
說明:控制在響應一次 SYN 請求以後、在取消重傳嘗試以前 SYN-ACK 的重傳次數。
值名稱: TcpMaxDataRetransmissions
建議的數值數據: 2
有效值: 0 – 65535
說明:指定在終止鏈接以前 TCP 重傳一個數據段(不是鏈接請求段)的次數。
值名稱: EnablePMTUDiscovery
建議的數值數據: 0
有效值: 0, 1
說明:將該值設置爲 1(默認值)可強制 TCP 查找在通向遠程主機的路徑上的最大傳輸單元或最大數據包大小。攻擊者可能將數據包強制分段,這會使堆棧不堪重負。對於不是來自本地子網的主機的鏈接,將該值指定爲 0 可將最大傳輸單元強制設爲 576 字節。
值名稱: KeepAliveTime
建議的數值數據: 300000
有效值: 80 – 4294967295
說明:指定 TCP 嘗試經過發送持續存活的數據包來驗證空閒鏈接是否仍然未被觸動的頻率。
值名稱: NoNameReleaseOnDemand
建議的數值數據: 1
有效值: 0, 1
說明:指定計算機在收到名稱發佈請求時是否發佈其 NetBIOS 名稱。
使用表 1 中彙總的值可得到最大程度的保護。
表 1:建議值
值名稱
|
值 (REG_DWORD)
|
SynAttackProtect
|
2
|
TcpMaxPortsExhausted
|
1
|
TcpMaxHalfOpen
|
500
|
TcpMaxHalfOpenRetried
|
400
|
TcpMaxConnectResponseRetransmissions
|
2
|
TcpMaxDataRetransmissions
|
2
|
EnablePMTUDiscovery
|
0
|
KeepAliveTime
|
300000(5 分鐘)
|
NoNameReleaseOnDemand
|
1
|
二. 抵禦 ICMP 攻擊
這一部分的命名值都位於註冊表項 HK
LM\System\CurrentControlSet\Services\AFD\Parameters 的下面
值: EnableICMPRedirect
建議的數值數據: 0
有效值:0(禁用),1(啓用)
說明:經過將此註冊表值修改成 0,可以在收到 ICMP 重定向數據包時禁止建立高成本的主機路由。
使用表 2 中彙總的值能夠得到最大程度的保護:
表 2:建議值
值名稱
|
值 (REG_DWORD)
|
EnableICMPRedirect
|
0
|
三. 抵禦 SNMP 攻擊
這一部分的命名值位於註冊表項HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。
值: EnableDeadGWDetect
建議的數值數據: 0
有效值:0(禁用),1(啓用)
說明:禁止攻擊者強制切換到備用網關
使用表 3 中彙總的值能夠得到最大程度的保護:
表 3:建議值
值名稱
|
值 (REG_DWORD)
|
EnableDeadGWDetect
|
0
|
四. AFD.SYS 保護
下面的註冊表項指定內核模式驅動程序 Afd.sys 的參數。Afd.sys 用於支持 Windows Sockets 應用程序。這一部分的全部註冊表項和值都位於註冊表項 HKLM\System\CurrentControlSet\Services\AFD\Parameters 的下面。這些註冊表項和值是:
值 EnableDynamicBacklog
建議的數值數據: 1
有效值:0(禁用),1(啓用)
說明:指定 AFD.SYS 功能,以有效處理大量的 SYN_RCVD 鏈接。有關詳細信息,請參閱「Internet Server Unavailable Because of Malicious SYN Attacks」,
值名稱: MinimumDynamicBacklog
建議的數值數據: 20
有效值: 0 – 4294967295
說明:指定在偵聽的終結點上所容許的最小空閒鏈接數。若是空閒鏈接的數目低於該值,線程將被排隊,以建立更多的空閒鏈接
值名稱:MaximumDynamicBacklog
建議的數值數據: 20000
有效值: 0 – 4294967295
說明:指定空閒鏈接以及處於 SYN_RCVD 狀態的鏈接的最大總數。
值名稱: DynamicBacklogGrowthDelta
建議的數值數據: 10
有效值: 0 – 4294967295
默認狀況下是否出現:否
說明:指定在須要增長鏈接時將要建立的空閒鏈接數。
使用表 4 中彙總的
值能夠得到最大程度的保護。
表 4:建議值
值名稱
|
值 (REG_DWORD)
|
EnableDynamicBacklog
|
1
|
MinimumDynamicBacklog
|
20
|
MaximumDynamicBacklog
|
20000
|
DynamicBacklogGrowthDelta
|
10
|
其餘保護
這一部分的全部註冊表項和值都位於註冊表項HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。
保護屏蔽的網絡細節
網絡地址轉換 (NAT) 用於將網絡與傳入鏈接屏蔽開來。攻擊者可能規避此屏蔽,以便使用 IP 源路由來肯定網絡拓撲。
值: DisableIPSourceRouting
建議的數值數據: 1
有效值:0(轉發全部數據包),1(不轉發源路由數據包),2(丟棄全部傳入的源路由數據包)。
說明:禁用 IP 源路由,後者容許發送者確認數據報在網絡中應採用的路由。
避免接受數據包片斷
處理數據包片斷能夠是高成本的。雖然拒絕服務不多來自外圍網絡內,但此設置能防止處理數據包片斷。
值: EnableFragmentChecking
建議的數值數據: 1
有效值:0(禁用),1(啓用)
說明:禁止 IP 堆棧接受數據包片斷。
切勿轉發去往多臺主機的數據包
多播數據包可能被多臺主機響應,從而致使響應淹沒網絡。
值: EnableMulticastForwarding
建議的數值數據: 0
有效範圍:0 (false),1 (true)
說明:路由服務使用此參數來控制是否轉發 IP 多播。此參數由路由和遠程訪問服務建立。
只有防火牆能夠在網絡間轉發數據包
多主機服務器切勿在它所鏈接的網絡之間轉發數據包。明顯的例外是防火牆。
值: IPEnableRouter
建議的數值數據: 0
有效範圍:0 (false),1 (true)
說明:將此參數設置爲 1 (true) 會使系統在它所鏈接的網絡之間路由 IP 數據包。
屏蔽網絡拓撲結構細節
可使用 ICMP 數據包請求主機的子網掩碼。只泄漏此信息是無害的;可是,能夠利用多臺主機的響應來了解內部網絡的狀況。
值: EnableAddrMaskReply
建議的數值數據: 0
有效範圍:0 (false),1 (true)
說明:此參數控制計算機是否響應 ICMP 地址屏蔽請求。
使用表 5 中彙總的值能夠得到最大程度的保護。
表 5:建議值
值名稱
|
值 (REG_DWORD)
|
DisableIPSourceRouting
|
1
|
EnableFragmentChecking
|
1
|
EnableMulticastForwarding
|
0
|
IPEnableRouter
|
0
|
EnableAddrMaskReply
|
0
|
缺陷
在測試這些值的變化時,請參照在產品中所指望的網絡流量進行測試。這些設置會修改被認爲正常並偏離了測試默認值的項目的閾值。一些閾值可能因爲範圍過小而沒法在客戶端的鏈接速度劇烈變化時可靠地支持客戶端。
攻擊原理
拒絕服務攻擊即攻擊者想辦法讓目標機器中止提供服務或資源訪問。這些資源包括磁盤空間、內存、進程甚至網絡帶寬,從而阻止正經常使用戶的訪問。其實對網絡帶寬進行的消耗性攻擊只是拒絕服務攻擊的一小部分,只要可以對目標形成麻煩,使某些服務被暫停甚至主機死機,都屬於拒絕服務攻擊。拒絕服務攻擊問題也一直得不到合理的解決,究其緣由是由於這是因爲網絡協議自己的安全缺陷形成的,從而拒絕服務攻擊也成爲了攻擊者的終極手法。攻擊者進行拒絕服務攻擊,實際上讓服務器實現兩種效果:一是迫使服務器的緩衝區滿,不接收新的請求;二是使用IP欺騙,迫使服務器把合法用戶的鏈接復位,影響合法用戶的鏈接。
DDOS(分佈式拒絕服務):凡是能致使合法用戶不可以訪問正常網絡服務的行爲都算是拒絕服務攻擊。 也就是說拒絕服務攻擊的目的很是明確,就是要阻止合法用戶對正常網絡資源的訪問,從而達成攻擊者不可告人的目的。
雖然一樣是拒絕服務攻擊,可是DDOS 和DOS 仍是有所不一樣,DDOS的攻擊策略側重於經過不少「殭屍主機」(被攻擊者入侵過或可間接利用的主機)向受害主機發送大量看似合法的網絡包, 從而形成網絡阻塞或服務器資源耗盡而致使拒絕服務, 分佈式拒絕服務攻擊一旦被實施, 攻擊網絡包就會猶如洪水般涌向受害主機, 從而把合法用戶的網絡包淹沒, 致使合法用戶沒法正常訪問服務器的網絡資源, 所以, 拒絕服務攻擊又被稱之爲 「洪水式攻擊」 ,常見的 DDOS 攻擊手段有 SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood 等;而 DOS 則側重於經過對主機特定漏洞的利用攻擊致使網絡棧失效、
系統崩潰、 主機死機而沒法提供正常的網絡服務功能, 從而形成拒絕服務, 常見的 DOS 攻擊手段有 T earDrop、 Land、 Jolt、 IGMP Nuker、 Boink、 Smurf、 Bonk、OOB 等。就這兩種拒絕服務攻擊而言,危害較大的主要是 DDOS 攻擊,緣由是很難防範,至於 DOS 攻擊,經過給主機服務器打補丁或安裝防火牆軟件就能夠很好地防範DDOS 的表現形式主要有兩種,一種爲流量攻擊,主要是針對網絡帶寬的攻擊,即大量攻擊包致使網絡帶寬被阻塞, 合法網絡包被虛假的攻擊包淹沒而沒法到達主機; 另外一種爲資源耗盡攻擊,主要是針對服務器主機的攻擊,即經過大量攻擊包致使主機的內存被耗盡或CPU 被內核及應用程序佔完,形成的沒法提供網絡服務。
如何判斷網站是否遭受了流量攻擊可經過 Ping 命令來測試,若發現 Ping 超時或丟包嚴重(假定平時是正常的),則可能遭受了流量攻擊,此時若發現和你的主機接在同一交換機上的服務器也訪問不了, 基本能夠肯定是遭受了流量攻擊。 固然, 這樣測試的前提是你到服務器主機之間的 ICMP 協議沒有被路由器和防火牆等設備屏蔽, 不然可採起 T elnet 主機服務器的網絡服務端口來測試,效果是同樣的。不過有一點能夠確定,假如平時 Ping 你的主機服務器和接在同一交換機上的主機服務器都是正常的,忽然都 Ping 不通了或者是嚴重丟包,那麼假如能夠排除網絡故障因素的話則確定是遭受了流量攻擊,再一個流量攻擊的典型現象是,一旦遭受流量攻擊,會發現用遠程終端鏈接網站服務器會失敗。
相對於流量攻擊而言, 資源耗盡攻擊要容易判斷一些, 假如平時 Ping 網站主機和訪問網站都是正常的,發現忽然網站訪問很是緩慢或沒法訪問了,而 Ping 還能夠 Ping 通,則極可能遭受了資源耗盡攻擊 ,此時若在服務器上用Nistat -na命令觀察到有大量的SYN_RECEIVED、TIME_W AIT、FIN_W AIT_1 等狀態存在,而EST BLISHED 不多,則可斷定確定是遭受了資源耗盡攻擊。還有一種屬於資源耗盡攻擊的現象是,Ping 本身的網站主機 Ping 不通或者是丟包嚴重,而 Ping 與本身的主機在同一交換機上的服務器則正常,形成這種緣由是網站主機遭受攻擊後致使系統內核或某些應用程序 CPU 利用率達到 100%沒法迴應 Ping 命令,其實帶寬仍是有的,不然就 Ping 不通接在同一交換機上的主機了。
攻擊手段
當前主要有三種流行的 DDOS:
一、SYN/ACK Flood 攻擊:
這種攻擊方法是經典最有效的 DDOS 方法, 可通殺各類系統的網絡服務, 主要是經過向
受害主機發送大量僞造源 IP 和源端口的 SYN 或 ACK 包,致使主機的緩存資源被耗盡或忙
於發送迴應包而形成拒絕服務, 因爲源都是僞造的故追蹤起來比較困難, 缺點是實施起來有
必定難度, 須要高帶寬的殭屍主機支持。 少許的這種攻擊會致使主機服務器沒法訪問, 但卻
能夠 Ping 的通, 在服務器上用 Netstat -na 命令會觀察到存在大量的 SYN_RECEIVED 狀態,
大量的這種攻擊會致使 Ping 失敗、TCP/IP 棧失效,並會出現系統凝固現象,即不響應鍵盤
和鼠標。普通防火牆大多沒法抵禦此種攻擊。
二、TCP 全鏈接攻擊:
這種攻擊是爲了繞過常規防火牆的檢查而設計的,通常狀況下,常規防火牆大多具有過
濾 T earDrop、Land 等 DOS 攻擊的能力,但對於正常的 TCP 鏈接是放過的,卻不知不少網
絡服務程序(如:IIS、Apache 等 W eb 服務器)能接受的 TCP 鏈接數是有限的,一旦有大
量的 TCP 鏈接,即使是正常的,也會致使網站訪問很是緩慢甚至沒法訪問,TCP 全鏈接攻
擊就是經過許多殭屍主機不斷地與受害服務器創建大量的 TCP 鏈接,直到服務器的內存等
資源被耗盡而被拖跨, 從而形成拒絕服務, 這種攻擊的特色是可繞過通常防火牆的防禦而達
到攻擊目的,缺點是須要找不少殭屍主機,而且因爲殭屍主機的 IP 是暴露的,所以容易被
追蹤。
三、刷 Script 腳本攻擊:
這種攻擊主要是針對存在 ASP、JSP、PHP、CGI 等腳本程序,並調用 MSSQLServer、
MySQLServer、Oracle 等數據庫的網站系統而設計的,特徵是和服務器創建正常的 TCP 連
接, 並不斷的向腳本程序提交查詢、 列表等大量耗費數據庫資源的調用, 通常來講, 提交一
個 GET 或 POST 指令對客戶端的耗費和帶寬的佔用是幾乎能夠忽略的,而服務器爲處理此
請求卻可能要從上萬條記錄中去查出某個記錄, 這種處理過程對資源的耗費是很大的, 常見
的數據庫服務器不多能支持數百個查詢指令同時執行,而這對於客戶端來講倒是垂手可得
的, 所以攻擊者只需經過 Proxy 代理向主機服務器大量遞交查詢指令, 只需數分鐘就會把服
務器資源消耗掉而致使拒絕服務,常見的現象就是網站慢如蝸牛、ASP 程序失效、PHP 連
接數據庫失敗、數據庫主程序佔用 CPU 偏高。這種攻擊的特色是能夠徹底繞過普通的防火
牆防禦, 輕鬆找一些 Proxy 代理就可實施攻擊, 缺點是對付只有靜態頁面的網站效果會大打
折扣,而且有些 Proxy 會暴露攻擊者的 IP 地址。
怎麼抵禦 DDOS
僅僅依靠某種系統或產品防住 DDOS 是不現實的, 能夠確定的是, 徹底杜絕 DDOS
是不可能的,但經過適當的措施抵禦 90%的 DDOS 攻擊是能夠作到的,基於攻擊和防護都
有成本開銷的緣故,若經過適當的辦法加強了抵禦 DDOS 的能力,也就意味着加大了攻擊
者的攻擊成本,那麼絕大多數攻擊者將沒法繼續下去而放棄,也就至關於成功的抵禦了
DDOS 攻擊。
防護基礎
整體來講,對DoS和DDoS的防範主要從下面幾個方面考慮:
-
儘量對系統加載最新補丁,並採起有效的合規性配置,下降漏洞利用風險;
-
採起合適的安全域劃分,配置防火牆、入侵檢測和防範系統,減緩攻擊。
-
採用分佈式組網、負載均衡、提高系統容量等可靠性措施,加強整體服務能力。
可參考措施以下:
一、採用高性能的網絡設備引
首先要保證網絡設備不能成爲瓶頸,所以選擇路由器、交換機、硬件防火牆等設備的時候要儘可能選用知名度高、 口碑好的產品。 再就是假如和網絡提供商有特殊關係或協議的話就更好了,當大量攻擊發生的時候請他們在網絡接點處作一下流量限制來對抗某些種類的DDOS 攻擊是很是有效的。
二、儘可能避免 NAT 的使用
不管是路由器仍是硬件防禦牆設備要儘可能避免採用網絡地址轉換 NAT 的使用, 由於採用此技術會較大下降網絡通訊能力,其實緣由很簡單,由於 NA T 須要對地址來回轉換,轉換過程當中須要對網絡包的校驗和進行計算,所以浪費了不少 CPU 的時間,但有些時候必須使用 NA T,那就沒有好辦法了。
三、充足的網絡帶寬保證
網絡帶寬直接決定了能抗受攻擊的能力, 倘若僅僅有 10M 帶寬的話, 不管採起什麼措施都很難對抗當今的 SYNFlood 攻擊, 至少要選擇 100M 的共享帶寬,最好的固然是掛在1000M 的主幹上了。但須要注意的是,主機上的網卡是 1000M 的並不意味着它的網絡帶寬就是千兆的, 若把它接在 100M 的交換機上, 它的實際帶寬不會超過 100M, 再就是接在 100M的帶寬上也不等於就有了百兆的帶寬, 由於網絡服務商極可能會在交換機上限制實際帶寬爲10M,這點必定要搞清楚。
四、升級主機服務器硬件
在有網絡帶寬保證的前提下,請儘可能提高硬件配置,要有效對抗每秒 10 萬個 SYN 攻擊包,服務器的配置至少應該爲:P4 2.4G/DDR512M/SCSI-HD,起關鍵做用的主要是 CPU 和內存, 如有志強雙 CPU 的話就用它吧, 內存必定要選擇 DDR 的高速內存, 硬盤要儘可能選擇SCSI 的,別隻貪 IDE 價格不貴量還足的便宜,不然會付出高昂的性能代價,再就是網卡必定要選用 3COM 或 Intel 等名牌的,如果 Realtek 的仍是用在本身的 PC 上吧。
五、把網站作成靜態頁面
大量事實證實,把網站儘量作成靜態頁面,不只能大大提升抗攻擊能力,並且還給黑客入侵帶來很多麻煩,至少到爲止關於 HTML 的溢出還沒出現,新浪、搜狐、網易等門戶網站主要都是靜態頁面, 若你非須要動態腳本調用, 那就把它弄到另一臺單獨主機去,免的遭受攻擊時連累主服務器, 固然, 適當放一些不作數據庫調用腳本仍是能夠的, 此外,最好在須要調用數據庫的腳本中拒絕使用代理的訪問, 由於經驗代表使用代理訪問你網站的80%屬於惡意行爲。