GitChat 被惡意攻擊引發的技術性思考:拒絕服務攻擊
「文末高能」
編輯 | 哈比
拒絕服務的類型很多,挑幾個有特性的來講,推薦讀者按照本文所說內容,嘗試手動復現,紙上得來終覺淺,絕知此事要躬行。
拒絕服務概念
拒絕服務攻擊(Denial of Service,簡稱 DOS,即拒絕服務)造成其攻擊行為被稱為 DoS 攻擊,其目的是使計算機或網路無法提供正常的服務。
最常見的 DoS 攻擊有計算機網路帶寬攻擊和連通性攻擊。帶寬攻擊指以極大的通信量衝擊網路,使得所有可用網路資源都被消耗殆盡 , 最後導致合法的用戶請求無法通過。
Dos 是 Denial of Service,不是微軟的操作系統的 DOS,兩者是不相同的,因此正規的規範寫作應該是 DoS 而不是 DOS。
DoS 拒絕服務和 DDoS 拒絕服務的區別:
DoS 由單一機器發起,利用程序漏洞或者一台機拖一台機進行資源消耗來進行拒絕服務攻擊
DDoS 則相比 DoS 多了一個 「D」,意思也很好理解,當前背景下,分散式設計技術成熟,DoS 這種攻擊手段也有了分散式拒絕服務,也就是 DDoS。
DoS 是一對一的,他拼的是攻防雙方的帶寬處理能力,如果你沒有漏洞,我就給你發包,單純的耗你的資源,對方處理不過來,自然也就進入暫停服務狀態。
相反,如果對方能夠處理,你的攻擊也就毫無效果,比如你是一台 1G1H1M 的的伺服器,對方是一台 16G16H30M 的伺服器,對拼資源能夠打得過么?顯然打不過啊,在沒有漏洞的狀態下,單憑數據處理能力打得過才怪了 ….
畫面好比你 1 級新人一身的白裝去砍 80 級的世界 BOSS 白野豬,沒有麻痹戒指也沒有裝備回收,只有一地的寂寞……
DDoS 則是多對一的攻擊,他和 Dos 不同的是,這下不是一對一了,是多對一,一群機器把所有的 CPU 資源拿來和攻擊你,你說你伺服器配置比我好?
沒關係的,人多力量大,我有 10000 個 1G1H1M 的機器拿來發包,有問題么?人多佔理就是打的你沒脾氣。
這就好比打群架,你的攻擊力是 1000,好比太極宗師楊露禪的級別,但你只有一人,你的對手攻擊力是 1,好比某街頭欺凌良家婦女的肥仔。
剛開始你路見不平拔刀相助,一拍桌子:」 姑娘莫怕,在下來救你。「然後和肥仔展開廝殺,你完爆肥仔。按照調戲良家婦女的情節發展,肥仔一般會有兄弟,而這個肥仔的兄弟是 10000 個攻擊力等於 1 的小肥仔,大肥仔來一嗓子:」 小的們上,砍死他。」
這個時候你慌了,你說:「兄弟,江湖人將就的是公平正道啊,一個一個的上單挑得不?」
肥仔:「嘿嘿,我們這道的只講手段。」
你:」 無恥老賊!」
只能喊出這一句後默默挨打,你說兄弟我還有一事要求,就是能不能不要踩臉啊?
你可能在想攻擊力差距這麼大,一個招秒了吧?不不不,回到我們所說的群毆情節,什麼叫群毆?一起上才叫群毆,一萬個小肥仔一起上怕不怕,單挑肯定是不存在的。
DDoS 也是如此,在於人多量大,一打一我打不過你,那麼我群毆,有幾率打得過你。我可以使用並發,打流量,瘋狂訪問網頁,你本身處理不過來,那麼就會產生拒絕服務。
我還可以換種方式講這個概念。
比如火災發生了,一個安全門很小,平常出入兩三個人可以放行,但是火災來了,人多,都在往安全門竄,原本只能容納兩三個人通過的門,突然來了一群壯漢來擠進來,門肯定不讓過。
拒絕通行了,也就拒絕服務了,原因是資源/人數溢出太大。
以前拒絕服務挺簡單的,使用的人耶大多數是那些不學無數的年輕人,我沒什麼技術,就是單純的想乾死你。
現在可不簡單吶,使用的人群不僅僅是那些年輕人,已經上升到黑產鏈了,利益鏈就是敲詐,勒索服務。
筆者接到過不少小公司的安全諮詢,都有一個共同問題,就是被拒絕服務攻擊者所敲詐勒索。
你開站可以,你可以賺錢,但是你必須給我交保護費,這樣我有錢賺,你也有錢賺;如果不給,那我就打你的網站,打死了,你沒得錢賺,我也沒得錢賺。
相比之下,初創公司一般都會選擇交錢給保護費,也是一種無奈之舉。拒絕服務的解決辦法就是拼資源,或者購買抗 D 設備,要不然還真的沒法搞。
從上面那個故事也可以看出拒絕服務的特性:不要臉,沒辦法,極其無賴。這也是我在前文所說為什麼是互聯網之痛的原因。接下來講講技術性的東西。
DoS 的攻擊途徑
網路-> 服務-> 服務應用
比如,我從我從我電腦去訪問我伺服器的應用 HTTP Server,操作系統會建立三次握手,中間就經過了網路服務,接著交給操作系統返回給服務端,比如阿帕奇,到這裡從我本機的數據已經發出去了,那麼應該還會返回一次到我的本機,完成一次循環。
那麼,中途打斷任何一次訪問,我的本機都是不會收到服務端的返回數據,就對我一個人造成了拒絕訪問,其他人不一定也是拒絕服務狀態。
如果是一條光纜設備,上游和下游鏈接了無數客戶端,把這個設備打死了,造成的拒絕服務就不是單一層面的了,所以看拒絕服務要要分清楚。
可以針對一個應用服務去打,讓這個完整的數據流不完整就可以造成拒絕服務。例如公司網站打不開,你懷疑是被攻擊了。這個時候你就去問同事,同事說他可以打開。
那麼,你打不開的原因很多,可能是你上游的路由被打死了,讓你三層握手不完整,屬於單一 DoS 攻擊,你的同事能打開,說明公司網站並不是拒絕服務的狀態,只是僅僅對你一個人產生了拒絕服務。
DoS 的攻擊方式屬於耗資源方式,通常有以下幾種模式。
1. 帶寬
發送大量數據包,塞流量,好比一個飯館只能容納 100 個人,我塞 100 個人進來不吃飯只是坐著,自然讓其他顧客無法吃飯,造成拒絕服務。
2. 伺服器處理量
比如伺服器的並發量,打群架,一個人買一個蘋果產生一條訂單,伺服器最大同時處理一百條訂單,我找二百個人來買蘋果,並發處理不過來就拒絕服務了。
3. 伺服器的 CPU 和內存
伺服器的兩項必備就是看 CPU 和內存,操作系統的配置太低也能給你塞滿。
4. 應用
應用程序,理解成一個 Web 應用就好了,回到買蘋果,處理能力太低了,也就拒絕服務了。很多時候都是應用層拒絕,造成操作系統拒絕,專打你的 CPU,CPU 百分之百,隨時卡死。
由此說明,D 的方法有很多,從任何地方都可以 D 你。不管是單一還是眾多的 D 類型,目標總是讓系統或者程序達到上限或者崩潰,完成拒絕服務狀態即可。
Dos 攻擊類型分類
DoS 的攻擊類型分類有以下幾種。
1. 打網路
比如 UDP 協議的 Flood,TCP 的 Flood,就是給你發巨量的包來耗盡你的資源。
2. 打協議
比如 Syn Flood、UDP Flood
3. 打應用
利用大量頻繁的訪問操作系統特定的資源類型,可以是一個文件,(png)也可以是 Apache 等。
DoS 攻擊技術原理
Syn Flood 攻擊圖解:
Syn Flood 的草圖
在進行連接時,TCP 需要三次握手,客戶端要發起 TCP 連接到服務端,那麼會先發一個 Syn 包,建立連接了後才能建立後面的鏈接,圖中我已經畫出來了。
A 發送 Syn 發送給電腦,電腦收到了 Syn 知道你想和我建立鏈接,電腦回你一個 Syn-ACK,你拿到這個包後發送給電腦 ACK 包,這樣 TCP 三次握手就完成了。
第一次握手:建立連接時,客戶端發送 syn 包 (syn=j) 到伺服器,並進入 SYN_SEND 狀態,等待伺服器確認;
第二次握手:伺服器收到 syn 包,必須確認客戶的 SYN(ack=j+1),同時自己也發送一個 SYN 包(syn=k),即 SYN+ACK 包,此時伺服器進入 SYN_RECV 狀態;
第三次握手:客戶端收到伺服器的 SYN+ACK 包,向伺服器發送確認包 ACK(ack=k+1),此包發送完畢,客戶端和伺服器進入 ESTABLISHED 狀態,完成三次握手。
如果有一個用戶,也就是用戶 A,發送一堆 Syn 包,電腦會給他回 SYN-ACK 包,但是第三次的 ACK,用戶 A 不去回包,電腦就會一直等著你這個包,建立是不完整的,掛在那裡。
如果一堆不完整的鏈接建立在哪裡,超出了最大連接數,就會產生拒絕服務。這樣,第二個用戶,也就是 B,發 SYN 包給電腦,電腦此刻已經不回包了,是拒絕服務狀態了,無法正常建立 TCP 鏈接。
下面我將實戰怎麼用 Syn Flood 攻擊。
我開了兩台機,一台是 Windows2003,一台是 Linux。
用 scapy 進行構造數據包 syn 攻擊。
i=IP()i.display()
命令是查看 IP 包頭的內容。
此處的 「I」,不是固定的,是個變數,為了方便我定義為了 I。
唯一要修改的就是目標地址,也就是 src 和 dst 兩個函數內容。
>>> i.dst="192.168.0.9">>> i.display()###[ IP ]### version= 4 ihl= None tos= 0x0 len= None id= 1 flags= frag= 0 ttl= 64 proto= hopopt chksum= None src= 192.168.0.10 dst= 192.168.0.9 options>>>
IP 頭的包定義好了,接下來定義 TCP 的包。
命令是 t=TCP()>>> t.display()###[ TCP ]### sport= ftp_data dport= http seq= 0 ack= 0 dataofs= None reserved= 0 flags= S window= 8192 chksum= None urgptr= 0 options= {}
這些函數的說明相信讀者也能自己看懂,我攻擊的是靶機上的 22 埠,就把埠改一下即可。
>>> t.dport=22>>> t.display()###[ TCP ]### sport= ftp_data dport= ssh seq= 0 ack= 0 dataofs= None reserved= 0 flags= S window= 8192 chksum= None urgptr= 0 options= {}>>>
TCP 包和 IP 包都配置完成了,接下來就是發送出去了。
IP 包頭要在前面,TCP 包頭要在後面才行。
命令如下:
sr1(i/t,verbose=1,timeout=2)
然後發送出去,這裡的 verbose 和 timeout 都可以不要。
包丟回來了,可以看一下,這就是一次 SYN 攻擊,當然量小是不夠的,可以寫個小腳本自動並發,把過程給簡略,發送大量的 SYN 包過去。
可以開抓包看一下發送的 SYN 包和流量過程。
我手動發了很多次,抓包結果如圖。
可以看到從我本機和 Linux 靶機建立的 TCP 鏈接都沒有成功,全是未完整的。
沒寫腳本,有興趣的讀者可以自己寫個 py 腳本,塞滿 22 埠連不上就可以了,也就是 SSH 服務。
要打什麼服務改什麼埠就行了。
另外值得一提的是,拒絕服務攻擊里常帶有 IP 地址欺騙,用來繞過一些 IP 黑名單模擬多用戶打群架來發起 DDoS 攻擊,也可以防止溯源。
Sockstress 攻擊實例
這是一個針對 TCP 服務的拒絕服務攻擊,是利用建立大量的 socket 鏈接,完成三次握手,用戶端不接受數據。
這種攻擊方法非常的騷,肥仔打楊露禪一對一也不是完全沒有贏過的幾率。
特點就是攻擊者的消耗資源小,CPU 內存這些耗的很低很低。
怎麼理解呢?在 TCP 三次握手的交流中,最後一次 ACK 包,攻擊者將 Window 窗口大小設置為 0
電腦收到了,發現你的包大小為 0,於是服務端就以為你在忙,就會一直等你忙完然後建立鏈接。
把你的 TCP 鏈接給掛著,我不停的發包,發給你,讓你維持這個包的存在,我作為攻擊者消耗肯定很小,而服務端要不停的拿資源出來等我鏈接。
肥仔單挑楊露禪就是這樣子了。
我給你發 SYN,你給我回 SYN-ACK,你給我回 ACK 過去,ACK 里的 Window 我設置為 0,這樣子設置一個循環,不停的去發包。
就造成了 Sockstress 攻擊,可以按照這個思路去寫一個腳本來模擬攻擊。
./sock_stress.pyWARNING: No route found for IPv6 destination :: (no default route?)********************************************************* Python SockStress DoS **** by rNma0y **** Gitchat! *********************************************************Usage - ./sock_stress.py [Target-IP] [Port Number] [Threads]Example - ./sock_stress.py 10.0.0.5 21 20Example will perform a 20x multi-threaded sock-stress DoS attack against the FTP (port 21) service on 10.0.0.5***NOTE***Make sure you target a port that responds when a connection is maderoot@kali:~# ./sock_stress.py 192.168.0.9 22 200WARNING: No route found for IPv6 destination :: (no default route?)********************************************************* Python SockStress DoS **** by rNma0y **** Gitchat! *********************************************************The onslaught has begun...use Ctrl+C to stop the attack
腳本運行結果如圖所示,繼續攻擊 22 埠,也就是 SSH,遠程連接 SSH 已經連不上了。
回到 Linux 的機器,查看流量,可以看到我從我本機發出來的 TCP 連接都是在連接靶機的 22 埠。
斷掉攻擊後,重新連接 SSH。
ssh msfadmin@192.168.0.9msfadmin@192.168.0.9"s password: Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686The programs included with the Ubuntu system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted byapplicable law.To access official Ubuntu documentation, please visit:http://help.ubuntu.com/No mail.Last login: Sun Nov 12 11:02:55 2017 from 192.168.0.10msfadmin@metasploitable:~$
可以看到秒連接,到這裡為止,Sockstress 攻擊復現完畢。
DNS 放大攻擊
普通的 DoS 攻擊配合 DNS 放大來講是個神技,好比楊露禪得到了太極拳的真諦
DOS 攻擊原理:發送大量的數據包消耗目標主機資源,使其無法正常工作。
DNS 放大攻擊的原理:偽造 DNS 數據包,向 DNS 伺服器發送域名查詢報文了,而 DNS 伺服器返回的應答報文則會發送給被攻擊主機。
放大體現在請求 DNS 回復的類型為 ANY,攻擊者向伺服器請求的包長度為 1 個位元組,而伺服器向被攻擊主機回復的 ANY 類型 DNS 包長度為 10 位元組,大約放大了 10 倍。
DNS 協議放大攻擊就是利用協議特性來進行放大攻擊流量效果,特點是請求流量小,但是響應非常巨大,翻幾十倍幾百倍都可以。
假設楊露禪一對一,打肥皂的傷害是 1000,經過秘法放大後,打到肥皂身上就是 100000,此時楊露禪是帶著面紗的,偽造了一個身份是肥仔的手下,借肥仔的手下的身份去打了肥仔。
肥仔不樂意了,回包給你,經過肥仔秘法提升後的傷害打到你身上就是你當初所打的傷害的一百倍。
楊露禪又換了個身份,用肥仔的身份去惹事,惹了江湖上的白髮魔女和包租婆。
包租婆看到自己受到了傷害,不服,自然就會打到肥仔的身上。
故事說明了,依靠身份欺騙(IP)偽造,去惹 DNS 伺服器,用小流量打 DNS 伺服器,DNS 伺服器放大後返回給你的偽造 IP,偽造 IP 那個人無辜躺槍。
就這樣,DNS 放大攻擊技術完成。
原理就是給開啟了遞歸查詢的伺服器發起查詢,DNS 伺服器成為流量放大和攻擊者,大量的 DNS 伺服器就可以實現巨量 DDos 攻擊。
很遺憾,我並沒有找到有遞歸查詢的 DNS 伺服器,我的網路環境也不允許我偽造 IP 源無法演示 DNS 流量放大的效果,有興趣的讀者可以自行尋找。
SNMP 放大攻擊
SNMP 是一個網路管理協議,SNMP(Simple Network Management Protocol,簡單網路管理協議),是目前網路中應用最為廣泛的網路管理協議,它提供了一個管理框架來監控和維和互聯網設備,它使用 UDP161 埠進行通信。
攻擊者向互聯網上開啟 SNMP 服務的設備發送 GetBulk 請求,並使用默認通信字元串作為認證憑據。常見的默認通信字元串如 public、private 以及一些廠商默認的通信字元串。
GetBulk 請求是在 SNMPv2 中添加的的,該請求會讓 SNMP 設備儘可能多的返回數據,這也就是 SNMP 放大攻擊的利用點。
攻擊者先將源地址改成要攻擊的目標 IP,再使用默認的通信字元串,向大量 SNMP 設備發出 GetBulk 請求,設備收到 GetBulk 請求數據包後,會將一大段的設備檢索信息返回給目標主機,最終目標主機會被這些 SNMP 設備返回的數據包淹沒,導致拒絕服務。
SNMP 的埠一般是 161,此種攻擊方法的特點則是請求流量小,結果流量大,能夠偽造源 IP 來實施攻擊。
SNMP 需要先在你的伺服器下安裝好 SNMP 服務,如圖所示:
然後雙擊打開配置,設置如下:
這裡的團體相當於密鑰,但他不是固定的,還有接受來自任何主機的數據包是我個人為了方便,讀者可以自行添加主機 IP 地址。然後啟動服務,回到主機進行發包攻擊。
root@kali:~# scapyINFO: Can"t import python gnuplot wrapper . Won"t be able to plot.WARNING: No route found for IPv6 destination :: (no default route?)Welcome to Scapy (2.3.2)>>> >>> >>> >>> i=IP()>>> i.display()###[ IP ]### version= 4 ihl= None tos= 0x0 len= None id= 1 flags= frag= 0 ttl= 64 proto= hopopt chksum= None src= 127.0.0.1 dst= 127.0.0.1 options>>> i.dst="192.168.0.14">>> i.display()###[ IP ]### version= 4 ihl= None tos= 0x0 len= None id= 1 flags= frag= 0 ttl= 64 proto= hopopt chksum= None src= 192.168.0.10 dst= 192.168.0.14 options>>> u=UDP()>>> u.dport=161>>> u.display()###[ UDP ]### sport= domain dport= domain len= None chksum= None>>> s=SNMP()>>> s.display()###[ SNMP ]### version= v2c community= "public" PDU |###[ SNMPget ]### | id= 0 | error= no_error | error_index= 0 | varbindlist>>>
community= 『public』
到這裡,如果你設置的密碼不是 public,就要改,我這裡需要更改。接著就要需要用到前文所說 SNMP 的 「bulk」 函數,不懂的請上翻。
>>> s.community="rNma0y">>> b=SNMPbulk()>>> b.display()###[ SNMPbulk ]### id= 0 non_repeaters= 0 max_repetitions= 0 varbindlist>>> b.max_repetitions=100>>>
b.max_repetitions=100 就是查詢一百次,把流量放大一百倍。
>>> s.display()###[ SNMP ]### version= v2c community= "rNma0y" PDU |###[ SNMPget ]### | id= 0 | error= no_error | error_index= 0 | varbindlist>>> s.PDU=b>>> s.display |>, |>] |> |>>>>> s.display()###[ SNMP ]### version= v2c community= "rNma0y" PDU |###[ SNMPbulk ]### | id= 0 | non_repeaters= 0 | max_repetitions= 100 | varbindlist | |###[ SNMPvarbind ]### | | oid= | | value= | |###[ SNMPvarbind ]### | | oid= | | value=
檢查無誤後就可發送數據包。
>>> sr1(r)Begin emission:.Finished to send 1 packets.WARNING: DNS RR prematured end (ofs=8484, len=1460)WARNING: DNS RR prematured end (ofs=8694, len=1460)WARNING: more DNS RR prematured end (ofs=5175, len=1460)*Received 2 packets, got 1 answers, remaining 0 packets>>
我插這串代碼的時候,Gitchat 的寫作頁面卡死了,造成了某 JS 調試後刪除了大部分代碼 …..
可以看到,我發出去了 94 個位元組,返回來的包是 1514+1514+1423=4451 個位元組,翻了多少倍?400 倍。
這還只是重複了一百次,如果重複兩百次呢?一千次呢?幾兆位元組也能通過放大攻擊達到幾 GB 的恐怖威力。
NTP 放大攻擊
NTP 放大攻擊所利用的協議是 NTP 協議,全稱是 Network Time Protocol,網路時間協議。是用於在互聯網中對不同主機進行時間同步的協議。
其中運行某些版本 NTP 的伺服器默認開啟了對 MONLIST 命令的支持,這條命令的作用是向請求者返回最近通過 NTP 協議與本伺服器進行通信的 IP 地址列表,最多支持返回 600 條記錄。走 UDP123 埠。
也就是說,如果一台 NTP 伺服器有超過 600 個 IP 地址使用過它提供的 NTP 服務,那麼通過一次 MONLIST 請求,你會收到返回的包含 600 條記錄的數據包。這應該遠遠大於你發送查詢命令的數據包大小。
攻擊原理來自 NTP 的查詢服務,NTP 伺服器可以返回最後同步時間的 600 個客戶端 IP,沒 6 個 IP 成一個獨立數據包,最多一百個數據包,放大的攻擊倍數則是 100 倍。
這個攻擊的實例則需要用到 Nmap 腳本掃描,來發現 NTP 服務
具體操作過程如下:
nmap - sU -p 埠 ip
通過 nmap 的弱點掃描去掃描開放了 123 的埠,很大幾率能發現 NTP 服務。
如果開著的,你就可以利用,用來做傀儡機進行流量放大攻擊,並不需要木馬什麼的控制。
現在 NTP 安裝好後,NTP 查詢服務是默認關閉的,我這也沒有靶機進行演示,各位讀者可以自行搭建個 Ubuntu 的靶機安裝 NTP 埠後進行體驗,NTP 服務大概能放大 100 倍以上。
關於 DoS 防禦方案如下
但是要明白,只能緩解,不能完全解決。防範 SYN Flood 攻擊如下:
首先確認網路負載掛了空包,接著就可以按以下緩解 SYN Flood,SYN Flood 攻擊大量消耗伺服器的 CPU、內存資源,並佔滿 SYN 等待隊列。
相應地,我們修改內核參數即可有效緩解。主要參數如下:
接著啟用 SYN Cookie 參數,設置最大連接數。啟用 SYN Cookie、設置 SYN 最大隊列長度以及設置 SYN+ACK 最大重試次數。
SYN Cookie 的作用是緩解伺服器資源壓力。啟用之前,伺服器在接到 SYN 數據包後,立即分配存儲空間,並隨機化一個數字作為 SYN 號發送 SYN+ACK 數據包。然後保存連接的狀態信息等待客戶端確認。
啟用 SYN Cookie 之後,伺服器不再分配存儲空間,而且通過基於時間種子的隨機數演算法設置一個 SYN 號,替代完全隨機的 SYN 號。發送完 SYN+ACK 確認報文之後,清空資源不保存任何狀態信息。
直到伺服器接到客戶端的最終 ACK 包,通過 Cookie 檢驗演算法鑒定是否與發出去的 SYN+ACK 報文序列號匹配,匹配則通過完成握手,失敗則丟棄。
最後一步靠防火牆設置規則。
到了多樣化 DDoS 攻擊的時候,具體可以根據經濟實力來決定。增強防禦能力增加攻擊者攻擊成本即可。
升級伺服器寬頻;
升級伺服器配置;
購買抗 D 服務;
防火牆做流量清洗;
Web 服務偽靜態或者純靜態能減小攻擊。
這類攻擊沒辦法根除,只能緩解。
DDoS 攻防戰的思考
DDoS 打的是鈔票,CDN 一夜七八萬的大有人在,作為黑產鏈中必不可缺的一部分,裡面究竟有什麼利益鏈呢?
1. 敲詐勒索
DDoS 由於成本低、實施容易等特點,在較早期就開始成為不法之徒在網路上敲詐勒索的主要方式。首先,勒索者或勒索組織選取目標網站,對其發起示威性的 DDoS 攻擊,使其業務受到影響。接著,勒索者向受害者發送勒索信,收取所謂的「保護費」。如果受害者不按照要求支付費用,就會繼續遭到更猛烈的攻擊。因此,對於眾多互聯網業務的經營者來說,DDoS 敲詐勒索始終是一個揮之不去的夢魘。
場景:初創公司,在線支付中心。
2. 商業競爭
類比同行競爭,我們貨一樣的質量,你賣的卻比我的好,有嫉妒就回來攻擊你,讓你損失營業額。
筆者遇到過一個真實的事情,有兩家網吧,都是網咖的形式,挨著很近,但是 A 這家網吧總比 B 這家網吧生意好的多,A 老闆不高興便找了兩個人全天對 B 網吧進行 DDoS,B 網吧遭受了攻擊後,玩家看 A 網吧太卡了,便跑去 B 網吧上網。
這樣,A 網吧流失用戶,B 網吧人流增加,造成商業競爭。
應用場景:電商,遊戲,有利益競爭的行業。
DDoS 的人員太多,利益鏈也不止這一種,從事 DDoS 的人員不需要任何技術,會動滑鼠和鍵盤就可以了。
※連接組、深度學習以及未來五年的 AI
※手把手教你寫一個中文聊天機器人
TAG:GitChat技術雜談 |