No products in the cart.
什麽是DDOS攻擊?分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。
什麽是DDOS攻擊 ?
?
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
首先從一個比方來深入理解什麽是DDOS。
一群惡霸試圖讓對面那家有著競爭關系的商鋪無法正常營業,他們會采取什麽手段呢?(只爲舉例,切勿模仿)惡霸們扮作普通客戶一直擁擠在對手的商鋪,賴著不走,真正的購物者卻無法進入;或者總是和營業員有一搭沒一搭的東扯西扯,讓工作人員不能正常服務客戶;也可以爲商鋪的經營者提供虛假信息,商鋪的上上下下忙成一團之後卻發現都是一場空,最終跑了真正的大客戶,損失慘重。此外惡霸們完成這些壞事有時憑單幹難以完成,需要叫上很多人一起。嗯,網絡安全領域中DoS和DDoS攻擊就遵循著這些思路。
?
在信息安全的三要素--"保密性"、"完整性"和"可用性"中,DoS(Denial of Service),即拒绝服务攻击,针对的目标正是"可用性"。该攻击方式利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。
?
DdoS的攻擊方式有很多種,最基本的DoS攻擊就是利用合理的服務請求來占用過多的服務資源,從而使合法用戶無法得到服務的響應。單一的DoS攻擊一般是采用一對一方式的,當攻擊目標CPU速度低、內存小或者網絡帶寬小等等各項指標不高的性能,它的效果是明顯的。隨著計算機與網絡技術的發展,計算機的處理能力迅速增長,內存大大增加,同時也出現了千兆級別的網絡,這使得DoS攻擊的困難程度加大了-目標對惡意攻擊包的"消化能力"加強了不少。這時候分布式的拒絕服務攻擊手段(DDoS)就應運而生了。DDoS就是利用更多的傀儡機(肉雞)來發起進攻,比從前更大的規模來進攻受害者
?
DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。 这种攻击方式可分为以下几种:
IP Spoofing
IP欺騙攻擊是一種黑客通過向服務端發送虛假的包以欺騙服務器
的做法。具體說,就是將包中的源IP地址設置爲不存在或不合法的值。服務器一旦接受到該包便會返回接受請求包,但實際上這個包永遠返回不到來源處的計算機。這種做法使服務器必需開啓自己的監聽端口不斷等待,也就浪費了系統各方面的資源。
LAND attack
这种攻击方式与SYN floods类似,不过在LAND attack攻击包中的原地址和目标地址都是攻击对象的IP。这种攻击会导致被攻击的机器死循环,最终耗尽资源而死机。
ICMP floods
ICMPfloods是通過向未良好設置的路由器發送廣播信息占用系統資源的做法。
Application
与前面叙说的攻击方式不同,Application level floods主要是针对应用软件层的,也就是高于OSI的。它同样是以大量消耗系统资源为目的,通过向IIS这样的网络服务程序提出无节制的资源申请来迫害正常的网络服务。
??
被攻擊主機上有大量等待的TCP連接;
網絡中充斥著大量的無用的數據包;
源地址为假 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;
利用受害主機提供的傳輸協議上的缺陷反複高速的發出特定的服務請求,使主機無法處理所有正常請求;
嚴重時會造成系統死機。
分布式拒绝服务攻击采取的攻击手段就是分布式的,在攻击的模式改变了传统的点对点的攻击模式,使攻击方式出现了没有规律的情况,而且在进行攻击的时候,通常使用的也是常见的协议和服务,这样只是从协议和服务的类型上是很难对攻击进行区分的。在进行攻击的时候,攻击数据包都是经过伪装的,在源IP 地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的。这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的。
對分布式攻擊進行必要的分析,就可以得到這種攻擊的特性。分布式拒絕服務在進行攻擊的時候,要對攻擊目標的流量地址進行集中,然後在攻擊的時候不會出現擁塞控制。在進行攻擊的時候會選擇使用隨機的端口來進行攻擊,會通過數千端口對攻擊的目標發送大量的數據包,使用固定的端口進行攻擊的時候,會向同一個端口發送大量的數據包。
按照TCP/IP协议的层次可将DDOS攻擊分为基于ARP的攻击、基于ICMP的攻击、基于IP的攻击、基于UDP的攻击、基于TCP的攻击和基于應用層的攻击。
ARP是無連接的協議,當收到攻擊者發送來的ARP應答時。它將接收ARP應答包中所提供的信息。更新ARP緩存。因此,含有錯誤源地址信息的ARP請求和含有錯誤目標地址信息的ARP應答均會使上層應用忙于處理這種異常而無法響應外來請求,使得目標主機喪失網絡通信能力。産生拒絕服務,如ARP重定向攻擊。
攻击者向一个子网的广播地址发送多个ICMP Echo请求数据包。并将源地址伪装成想要攻击的目标主机的地址。这样,该子网上的所有主机均对此ICMP Echo请求包作出答复,向被攻击的目标主机发送数据包,使该主机受到攻击,导致网络阻塞。
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目標主機,在能接到回應的時候就再加大一些流量或是再命令更多的傀儡機來加入攻擊。
?
當下DDoS攻擊規模不斷突破上限,攻擊方式越發複雜。面對複雜的攻擊形式,對于企業和組織來說依靠傳統的解決方法並不能做到一勞永逸,無疑需要更完備的DDoS防護方案。本文將針對常見的攻擊場景,聊聊DDoS防禦手段有哪些。對這個內容感興趣的小夥伴,可以接著往下閱讀。
?
與訪問控制一樣,DDoS防禦過去都是通過速率限制等技術在網絡層進行觀察和應用的。但對于如今的超大規模公有雲提供商,網絡層攻擊需要更大的規模,並且應用通常與網絡層相分離。因此,攻擊者將在堆棧中“上移”;現代DDoS攻擊針對的是HTTP層或應用本身的邏輯。例如,攻擊者可能會利用公共圖書館提供的圖書搜索API,反複請求圖書館中所有圖書的完整列表,從而占用大量的數據庫資源和網絡帶寬。 ?
?
說到DDoS防禦手段有哪些,有幾種可供選擇的安全解決方案,如部署高防IP、定期檢查服務器安全、使用防火牆和入侵檢測系統以及使用雲服務商的防禦措施,這些解決方案都可發揮一定作用。未雨綢缪是DDoS防禦的最佳方式。防止此類攻擊的關鍵是要具備一種可以區分惡意和合法流量的系統。爲了保護客戶免遭DDoS攻擊,F5分布式雲平台高效運營著一個全球安全網絡,該解決方案將本地防禦與基于分布式雲的DDoS防護相結合,以強大的控制力抵禦具有針對性的網絡和應用層攻擊。 ?
?
实际上,在面对本地防护、云清洗服务和混合解决方案等选择,问题不在于是否应该部署DDoS防御架构,而是哪一种架构可以最有效地帮助公司确保服务的连续性,并在面临攻击时将损失降至最低。F5 DDoS缓解可以部署在业务所需的架构和运营模型中,提供架构和运营模式的拒绝服务防御,根据应用在云端、本地或两者混合的托管位置,以及所倾向的实际管理水平,提供最适合业务的保护模式。
?
ddoS分布式拒絕服務,簡單來說是向服務器同時發布大量請求,讓被攻擊的服務器資源耗盡,服務器資源當然包括計算、網絡、存儲等,也就是通過一些手段使得服務器的計算性能達到上限、網絡帶寬被占滿或者存儲空間被用完,這樣服務器就無法響應正常的請求了。用戶可通過以下措施預防ddos攻擊。
?
1、減少暴露面 ?
?
盡可能少的把端口暴露在公網上,減少可能的攻擊點。 ?
?
配置安全組、acl訪問控制或者iptables防火牆規則,這三種操作的目的其實都是一樣的,都是爲了限制不明客戶端的訪問,只是生效的地方不一樣。一般來說,我們肯定希望把這些流量在離服務器更遠的地方限制住。 ?
?
將服務器放在cdn、負載均衡後面,目的其實是和第二點一樣。cdn可以緩存服務器資源到各個邊緣節點上,讓用戶就近訪問最近的邊緣節點,從而緩解服務器的壓力。負載均衡可以配置調度算法,將流量按需分配給後端服務器,並且對後端進行個性化的健康監測,將不健康的服務器踢出,不繼續處理請求。
?
2、服務器安全加固 ?
?
及時更新安全補丁。
?
優化內核參數如半連接timeout時間、全連接隊列長度、禁用icmp廣播等等。 ?
?
3、及時止損 ?
?
如果沒有防禦成功,需要及時止損,將影響降到最低。 ?
?
在部署服務的階段,我們就應該盡可能一個集群只部署一個服務,讓服務之間互不影響,即使某個服務受到了攻擊,也可以把影響降到最小。
建立完善的監控告警機制。這個公司內部應該都有,監控cpu使用率、連接數之類的,如果達到阈值,就會發出告警,交由專人處理。 ?
?
對系統進行壓測,配置限速機制。我們需要對業務架構進行完善的壓力測試,以評估現有架構的吞吐能力。並根據系統性能對業務進行限速,避免ddos攻擊將服務器打挂。 ?
?
集群具有可伸縮性。當集群某些指標達到阈值時,爲了讓業務不受損,應該及時對集群進行擴容。 ?
?
4、識別異常流量 ?
?
預防ddos攻擊的關鍵其實就是怎麽識別正常流量和異常流量。這需要我們對ddos攻擊的方法非常了解,對不同的ddos攻擊類型做出相應的防禦動作。 ?
?
服務器本身幾乎沒有識別異常流量的能力,所以大部分企業都會購買anti-ddos服務或者waf這樣的專業設備來防禦ddos攻擊。 ?
?
anti-ddos當然也分爲硬件設備和軟件。硬件anti-ddos一般會旁挂到彙聚或者核心交換機上,交換機將流量鏡像一份發給ddos,ddos識別出異常流量後會做一些流量清洗動作。 ?
?
軟件antiddos可能會直接安裝到四七層網關上,對經過四七層網關的流量進行過濾。顯而易見,軟件anti-ddos的優點就是便宜,簡單;缺點是可能會拖累四七層網關的性能,可防護的ddos類型和防禦能力肯定不如硬件anti-ddos。 ?
?
但其實有的地方硬件和軟件anti-ddos都會用,硬件antiddos主要是進行一個流量清洗的功能,軟件antiddos在硬件的後面,主要做一個兜底的作用。
?
5、syn flood
?
syn flood是最常见的一种ddos攻击,在服务器、网关、anti-ddos每一个环节都有相应的手段可以进行防御。 ?
?
syn cookie。syn cookie已集成到了linux内核,是在服务器上防御syn flood的方法。服务器每当收到一个syn,就会创建一个半连接队列,来缓存连接信息,当半连接队列满了之后,服务器就无法处理正常请求了。所以我们需要找到一种方法,不用记录全部的连接信息。我们知道,服务器发出的第二次握手的序列号是服务器自己生成的,syn cookie将连接的部分信息(mss、时间戳、四元组)通过某种算法生成一个唯一的序列号给客户端,并且这个序列号是可以解码的。服务器收到第三次握手的确认序列号后,将这个值减1,就可以还原出之前的序列号。可以看到,服务器巧妙地通过这种方式间接保存了一部分SYN报文的信息,节省了服务器的部分资源,但是同时也增加了加解密的计算。
?
syn proxy。syn proxy在四层网关中用的比较多,用法也比较简单。网关收到syn后,并不直接发送给后端服务器,而是代替后端,与客户端进行三次握手,当握手成功之后,再与后端服务器进行三次握手。syn proxy经常与syn cookie结合起来用,网关在于客户端三次握手的过程中可以使用syn cookie。syn proxy有一个问题就是两次握手的序列号不一样,所以网关在后续的数据传输阶段还要继续调整序列号和确认序列号。
首包丢弃。这种方法比较暴力,syn flood不会重传,所以我们只要把第一个syn包都丢弃了,正常请求后进行重传,异常请求就被丢弃了。
?
算法。antiddos可以通過統計syn包占到所有流量的比例,當這個比例達到某個阈值時,即判定受到了ddos攻擊。然後就到了識別異常流量的時候了,如果antiddos可以查到會話信息,那就簡單了,那些在幾分鍾內完成過三次握手的源ip地址,是ddos攻擊的可能性較小,可以直接放行。剩下的ip地址是ddos攻擊的可能性就比較大了。我們知道ddos攻擊可以分爲隨機源ip和真實源ip兩種。antiddos可以將syn包的個數除以源ip的數目,如果大于某個阈值,則可以判定爲真實源ip攻擊,直接將這幾個源ip地址的syn包全部丟棄就可以了;如果小與某個阈值,則判定爲隨機源ip攻擊,這時可以利用上面說的首包丟棄的方法,判斷出正常流量,將正常的源ip地址放行。 ?
?
6、ack/fin/rst flood ?
?
這三種ddos攻擊比較類似,都依賴于會話。如果沒有建立會話,那不管是在服務器還是在網關都會直接被丟棄的。判斷是否收到攻擊也比較簡單,就比較命中會話的報文和沒命中的比例就好了。 ?
?
7、其他 ?
?
其他的一些攻击比如udp reflect、http flood、ssl flood,都是一些接近正常流量的请求,感觉识别异常流量比较复杂,应该只能通过算法来识别。也可以借鉴syn flood的防御方法,主要还是得识别出异常流量和正常流量的源ip地址。 ?
?
最后如果有条件的话,可以使用hping3模拟三四层的ddos攻击,测试antiddos的功能。hping3不支持ipv6,不过网上有很多开源的ipv6 ddos测试工具如thcsyn6。
?
7、接入CDN5防護,直接接入,打不死,隨便打,無效退款,支持測試,打死賠錢? ?
?