如何建立自己的文檔寫文章(怎么在電腦上建立文檔寫文章)
前言
1?IP欺騙
IP是什么
在網絡中,所有的設備都會分配一個地址。這個地址就仿佛小藍的家地址「?多少號多少室」,這個號就是分配給整個子網的,「?室」對應的號碼即分配給子網中計算機的,這就是網絡中的地址?!柑枴箤奶柎a為網絡號,「?室」對應的號碼為主機號,這個地址的整體就是?IP地址。
通過IP地址我們能知道什么?
通過?IP?地址,我們就可以知道判斷訪問對象服務器的位置,通過這個?IP?地址就可以判斷訪問對象服務器的位置,從而將消息發送到服務器。一般發送者發出的消息首先經過子網的集線器,轉發到最近的路由器,然后根據路由位置訪問下一個路由器的位置,直到重點
IP欺騙技術
騙唄,拐騙,誘騙!
IP?欺騙技術就是?偽造某臺主機的?IP?地址的技術。通過IP?地址的偽裝使得某臺主機能夠?偽裝另外的一臺主機,而這臺主機往往具有某種特權或者被另外的主機所信任。
假設現在有一個合法用戶?(1.1.1.1)已經同服務器建立正常的連接,攻擊者構造攻擊的?TCP?數據,偽裝自己的?IP?為?1.1.1.1,并向服務器發送一個帶有?RSI?位的?TCP?數據段。服務器接收到這樣的數據后,認為從?1.1.1.1發送的連接有錯誤,就會清空緩沖區中建立好的連接。
這時,如果合法用戶?1.1.1.1再發送合法數據,服務器就已經沒有這樣的連接了,該用戶就必須從新開始建立連接。攻擊時,偽造大量的IP地址,向目標發送?RST?數據,使服務器不對合法用戶服務。雖然IP地址欺騙攻擊有著相當難度,但我們應該清醒地意識到,這種攻擊非常廣泛,入侵往往從這種攻擊開始。
2?SYN?Flooding
SYN?Flooding簡介
拒絕服務攻擊(DDoS)從1970?年出現直到今天都依然在作祟,并給全球范圍內的各大組織帶來了不可估量的損失。?SYN?Flood是互聯網上最經典的DDoS攻擊方式之一,最早出現于?1999?年左右,雅虎是當時最著名的受害者。?SYN?Flood攻擊利用了?TCP三次握手的缺陷,能夠以較小代價使目標服務器無法響應,且難以追查。
SYN?flood是一種常見的?DOS(denial?of?service拒絕服務)和?DDos(distributed?denial?of?serivce?分布式拒絕服務)攻擊方式。這是一種使用TCP協議缺陷,發送大量的?偽造的?TCP?連接請求,使得被攻擊方?CPU?或內存資源耗盡,最終導致被攻擊方無法提供正常的服務。
TCP?SYN?Flood攻擊原理
TCP?SYN?Flood攻擊利用的是?TCP的三次握手(?SYN?->?SYN/ACK?->?ACK),假設連接發起方是A,連接接受方是?B,即?B?在某個端口(?Port)上監聽A發出的連接請求,過程如下圖所示,左邊是A,右邊是B。
A?首先發送?SYN(Synchronization)消息給?B,要求?B?做好接收數據的準備;B?收到后反饋?SYN-ACK(Synchronization-Acknowledgement)?消息給A,這個消息的目的有兩個:
向?A?確認已做好接收數據的準備,
同時要求?A?也做好接收數據的準備,此時?B?已向?A?確認好接收狀態,并等待?A?的確認,連接處于?半開狀態(Half-Open)?,顧名思義只開了一半;A?收到后再次發送?ACK?(Acknowledgement)?消息給B,向?B?確認也做好了接收數據的準備,至此三次握手完成,「?連接?」就建立了,
大家注意到沒有,最關鍵的一點在于雙方是否都按對方的要求進入了?可以接收消息的狀態。而這個狀態的確認主要是雙方將要使用的?消息序號(SquenceNum),?TCP為保證消息按發送順序抵達接收方的上層應用,需要用?消息序號來標記消息的發送先后順序的。
TCP是「?雙工」(Duplex)連接,同時支持雙向通信,也就是雙方同時可向對方發送消息,其中?SYN和?SYN-ACK消息開啟了A→B的單向通信通道(B?獲知了?A?的消息序號);?SYN-ACK和?ACK消息開啟了B→A單向通信通道(A獲知了B的消息序號)。
上面討論的是雙方在誠實守信,正常情況下的通信。
但實際情況是,網絡可能不穩定會丟包,使握手消息不能抵達對方,也可能是對方故意不按規矩來,故意延遲或不發送握手確認消息。
假設?B?通過某?TCP端口提供服務,B?在收到?A?的?SYN消息時,積極的反饋了?SYN-ACK消息,使連接進入?半開狀態,因為?B?不確定自己發給?A?的?SYN-ACK消息或?A?反饋的?ACK?消息是否會丟在半路,所以會給每個待完成的半開連接都設一個?Timer,如果超過時間還沒有收到?A?的?ACK消息,則重新發送一次?SYN-ACK消息給A,直到重試超過一定次數時才會放棄。
B?為幫助?A?能順利連接,需要?分配內核資源維護半開連接,那么當?B?面臨海量的連接?A?時,如上圖所示,?SYN?Flood攻擊就形成了。攻擊方?A?可以控制肉雞向?B?發送大量?SYN?消息但不響應?ACK?消息,或者干脆偽造?SYN?消息中的?Source?IP,使?B?反饋的?SYN-ACK消息石沉大海,導致?B?被大量注定不能完成的半開連接占據,直到資源耗盡,停止響應正常的連接請求。
3?UDP?Flooding
UDP洪泛是也是一種拒絕服務攻擊,將大量的用戶數據報協議(?UDP)數據包發送到目標服務器,目的是壓倒該設備的處理和響應能力。防火墻保護目標服務器也可能因?UDP泛濫而耗盡,從而導致對合法流量的拒絕服務。
UDP?Flood攻擊如何工作?
UDP?Flood主要通過利用服務器響應發送到其中一個端口的?UDP數據包所采取的步驟。在正常情況下,當服務器在特定端口接收到?UDP數據包時,會經過兩個步驟:
服務器首先檢查是否正在運行正在偵聽指定端口的請求的程序。
如果沒有程序在該端口接收數據包,則服務器使用?ICMP?(ping)數據包進行響應,以通知發送方目的地不可達。
首先,接待員接收到呼叫者要求連接到特定房間的電話。接待員然后需要查看所有房間的清單,以確保客人在房間中可用,并愿意接聽電話。碰巧的是,此時如果突然間所有的電話線同時亮起來,那么他們就會很快就變得不堪重負了。
當服務器接收到每個新的?UDP數據包時,它將通過步驟來處理請求,并利用該過程中的服務器資源。發送?UDP報文時,每個報文將包含源設備的?IP地址。在這種類型的?DDoS攻擊期間,攻擊者通常不會使用自己的真實?IP地址,而是會欺騙?UDP數據包的源?IP地址,從而阻止攻擊者的真實位置被暴露并潛在地飽和來自目標的響應數據包服務器。
由于目標服務器利用資源檢查并響應每個接收到的?UDP數據包的結果,當接收到大量?UDP數據包時,目標的資源可能會迅速耗盡,導致對正常流量的拒絕服務。
如何緩解?UDP洪水攻擊?
大多數操作系統部分限制了?ICMP報文的響應速率,以中斷需要?ICMP?響應的?DDoS攻擊。這種緩解的一個缺點是在攻擊過程中,合法的數據包也可能被過濾。如果?UDP?Flood的容量足夠高以使目標服務器的防火墻的狀態表飽和,則在服務器級別發生的任何緩解都將不足以應對目標設備上游的瓶頸。
4?TCP?重置攻擊
在?TCP重置攻擊中,攻擊者通過向通信的一方或雙方發送偽造的消息,告訴它們立即斷開連接,從而使通信雙方連接中斷。正常情況下,如果客戶端收發現到達的報文段對于相關連接而言是不正確的,?TCP就會發送一個重置報文段,從而導致?TCP連接的快速拆卸。
TCP重置攻擊利用這一機制,通過向通信方發送偽造的重置報文段,欺騙通信雙方提前關閉?TCP?連接。如果偽造的重置報文段完全逼真,接收者就會認為它有效,并關閉?TCP連接,防止連接被用來進一步交換信息。服務端可以創建一個新的?TCP連接來恢復通信,但仍然可能會被攻擊者重置連接。萬幸的是,攻擊者需要一定的時間來組裝和發送偽造的報文,所以一般情況下這種攻擊只對長連接有殺傷力,對于短連接而言,你還沒攻擊呢,人家已經完成了信息交換。
從某種意義上來說,偽造?TCP報文段是很容易的,因為?TCP/IP都沒有任何內置的方法來驗證服務端的身份。有些特殊的?IP?擴展協議(例如?IPSec?)確實可以驗證身份,但并沒有被廣泛使用。客戶端只能接收報文段,并在可能的情況下使用更高級別的協議(如?TLS?)來驗證服務端的身份。但這個方法對?TCP重置包并不適用,因為?TCP重置包是?TCP協議本身的一部分,無法使用更高級別的協議進行驗證。
5.?模擬攻擊
以下實驗是在?OSX?系統中完成的,其他系統請自行測試。
現在來總結一下偽造一個?TCP重置報文要做哪些事情:
嗅探通信雙方的交換信息。
截獲一個?ACK?標志位置位?1?的報文段,并讀取其?ACK?號。
偽造一個?TCP?重置報文段(?RST?標志位置為?1),其序列號等于上面截獲的報文的?ACK?號。這只是理想情況下的方案,假設信息交換的速度不是很快。大多數情況下為了增加成功率,可以連續發送序列號不同的重置報文。
將偽造的重置報文發送給通信的一方或雙方,時其中斷連接。
為了實驗簡單,我們可以使用本地計算機通過?localhost?與自己通信,然后對自己進行?TCP?重置攻擊。需要以下幾個步驟:
在兩個終端之間建立一個?TCP?連接。
編寫一個能嗅探通信雙方數據的攻擊程序。
修改攻擊程序,偽造并發送重置報文。
下面正式開始實驗。
建立?TCP?連接
可以使用?netcat?工具來建立?TCP?連接,這個工很多操作系統都預裝了。打開第一個終端窗口,運行以下命令:
$nc?-nvl?8000
這個命令會啟動一個?TCP?服務,監聽端口為?8000?。接著再打開第二個終端窗口,運行以下命令:
$nc?127.0.0.1?8000
該命令會嘗試與上面的服務建立連接,在其中一個窗口輸入一些字符,就會通過?TCP?連接發送給另一個窗口并打印出來。
嗅探流量
編寫一個攻擊程序,使用?Python?網絡庫?scapy?來讀取兩個終端窗口之間交換的數據,并將其打印到終端上。代碼比較長,下面為一部份,完整代碼后臺回復?TCP攻擊,代碼的核心是調用?scapy?的嗅探方法:
這段代碼告訴?scapy?在?lo0?網絡接口上嗅探數據包,并記錄所有?TCP?連接的詳細信息。
iface?:?告訴?scapy?在?lo0?(localhost)網絡接口上進行監聽。
lfilter?:?這是個過濾器,告訴?scapy?忽略所有不屬于指定的?TCP?連接(通信雙方皆為?localhost?,且端口號為?8000?)的數據包。
prn?:?scapy?通過這個函數來操作所有符合?lfilter?規則的數據包。上面的例子只是將數據包打印到終端,下文將會修改函數來偽造重置報文。
count?:?scapy?函數返回之前需要嗅探的數據包數量。
發送偽造的重置報文
下面開始修改程序,發送偽造的?TCP?重置報文來進行?TCP?重置攻擊。根據上面的解讀,只需要修改?prn?函數就行了,讓其檢查數據包,提取必要參數,并利用這些參數來偽造?TCP?重置報文并發送。
例如,假設該程序截獲了一個從(?src_ip?,?src_port?)發往?(?dst_ip?,?dst_port?)的報文段,該報文段的?ACK?標志位已置為?1,ACK?號為?100,000?。攻擊程序接下來要做的是:
由于偽造的數據包是對截獲的數據包的響應,所以偽造數據包的源?IP/Port?應該是截獲數據包的目的?IP/Port?,反之亦然。
將偽造數據包的?RST?標志位置為?1,以表示這是一個重置報文。
將偽造數據包的序列號設置為截獲數據包的?ACK?號,因為這是發送方期望收到的下一個序列號。
調用?scapy?的?send?方法,將偽造的數據包發送給截獲數據包的發送方。
對于我的程序而言,只需將這一行取消注釋,并注釋這一行的上面一行,就可以全面攻擊了。按照步驟?1?的方法設置?TCP?連接,打開第三個窗口運行攻擊程序,然后在?TCP?連接的其中一個終端輸入一些字符串,你會發現?TCP?連接被中斷了!
進一步實驗
可以繼續使用攻擊程序進行實驗,將偽造數據包的序列號加減?1?看看會發生什么,是不是確實需要和截獲數據包的?ACK?號完全相同。
打開?Wireshark?,監聽?lo0?網絡接口,并使用過濾器?ip.src?==?127.0.0.1?&&?ip.dst?==?127.0.0.1?&&?tcp.port?==?8000?來過濾無關數據。你可以看到?TCP?連接的所有細節。
在連接上更快速地發送數據流,使攻擊更難執行。
6?中間人攻擊
豬八戒要向小藍表白,于是寫了一封信給小藍,結果第三者小黑攔截到了這封信,把這封信進行了篡改,于是乎在他們之間進行搞破壞行動。這個馬文才就是中間人,實施的就是中間人攻擊。好我們繼續聊聊什么是中間人攻擊。
什么是中間人
攻擊中間人攻擊英文名叫?Man-in-the-MiddleAttack,簡稱「MITM攻擊」。指攻擊者與通訊的兩端分別創建獨立的聯系,并交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方?直接對話,但事實上整個會話都被攻擊者完全控制。我們畫一張圖:
中間人
從這張圖可以看到,中間人其實就是攻擊者。通過這種原理,有很多實現的用途,比如說,你在手機上瀏覽不健康網站的時候,手機就會提示你,此網站可能含有病毒,是否繼續訪問還是做其他的操作等等。
中間人攻擊的原理
舉個例子,我和公司簽了一個一份勞動合同,一人一份合同。不曉得哪個可能改了合同內容,不知道真假了,怎么搞?只好找專業的機構來鑒定,自然就要花錢。
在安全領域有句話:?我們沒有辦法杜絕網絡犯罪,只好想辦法提高網絡犯罪的成本。既然沒法杜絕這種情況,那我們就想辦法提高作案的成本,今天我們就簡單了解下基本的網絡安全知識,也是面試中的高頻面試題了。
為了避免雙方說活不算數的情況,雙方引入第三家機構,將合同原文給可信任的第三方機構,只要這個機構不監守自盜,合同就相對安全。
如果第三方機構內部不嚴格或容易出現紕漏
雖然我們將合同原文給第三方機構了,為了防止內部人員的更改,需要采取什么措施呢
一種可行的辦法是引入摘要算法。即合同和摘要一起,為了簡單的理解摘要。大家可以想象這個摘要為一個函數,這個函數對原文進行了加密,會產生一個唯一的散列值,一旦原文發生一點點變化,那么這個散列值將會變化。
有哪些常用的摘要算法呢
目前比較常用的加密算法有消息摘要算法和安全散列算法(?SHA)。?MD5是將任意長度的文章轉化為一個128位的散列值,可是在2004年,?MD5被證實了容易發生碰撞,即兩篇原文產生相同的摘要。這樣的話相當于直接給黑客一個后門,輕松偽造摘要。
所以在大部分的情況下都會選擇SHA算法
出現內鬼了怎么辦?
看似很安全的場面了,理論上來說杜絕了篡改合同的做法。主要某個員工同時具有修改合同和摘要的權利,那搞事兒就是時間的問題了,畢竟沒哪個系統可以完全的杜絕員工接觸敏感信息,除非敏感信息都不存在。所以能不能考慮將合同和摘要分開存儲呢
那如何確保員工不會修改合同呢
這確實蠻難的,不過辦法總比困難多。我們將合同放在雙方手中,摘要放在第三方機構,篡改難度進一步加大
那么員工萬一和某個用戶串通好了呢
看來放在第三方的機構還是不好使,同樣存在不小風險。所以還需要尋找新的方案,這就出現了數字簽名和證書
數字證書和簽名
同樣的,舉個例子。Sum?和?Mike?兩個人簽合同。Sum?首先用?SHA算法計算合同的摘要,然后用自己私鑰將摘要加密,得到數字簽名。Sum?將合同原文、簽名,以及公鑰三者都交給?Mike
如果?Sum?想要證明合同是?Mike?的,那么就要使用?Mike?的公鑰,將這個簽名解密得到摘要x,然后Mike?計算原文的sha摘要Y,隨后對比x和y,如果兩者相等,就認為數據沒有被篡改
在這樣的過程中,Mike?是不能更改?Sum?的合同,因為要修改合同不僅僅要修改原文還要修改摘要,修改摘要需要提供Mike?的私鑰,私鑰即?Sum?獨有的密碼,公鑰即?Sum?公布給他人使用的密碼
總之,公鑰加密的數據只能私鑰可以解密。私鑰加密的數據只有公鑰可以解密,這就是非對稱加密
對稱與非對稱加密
隱私保護?不是嚇唬大家,信息是透明的兄die,不過盡量去維護個人的隱私吧,今天學習對稱加密和非對稱加密。
大家先讀讀這個字"鑰",是讀"yao",我以前也是,其實讀"yue"
對稱加密
對稱加密,顧名思義,加密方與解密方使用同一鑰匙(秘鑰)。具體一些就是,發送方通過使用相應的加密算法和秘鑰,對將要發送的信息進行加密;對于接收方而言,使用解密算法和相同的秘鑰解鎖信息,從而有能力閱讀信息。
常見的對稱加密算法
DES
DES使用的密鑰表面上是64位的,然而只有其中的56位被實際用于算法,其余8位可以被用于奇偶校驗,并在算法中被丟棄。因此,?DES的有效密鑰長度為56位,通常稱?DES的密鑰長度為56位。假設秘鑰為?56?位,采用暴力破Jie的方式,其秘鑰個數為2的56次方,那么每納秒執行一次解密所需要的時間差不多1年的樣子。當然,沒人這么干。?DES現在已經不是一種安全的加密方法,主要因為它使用的56位密鑰過短。
IDEA
國際數據加密算法(International?Data?Encryption?Algorithm)。秘鑰長度128位,優點沒有專利的限制。
AES
當DES被破解以后,沒過多久推出了?AES算法,提供了三種長度供選擇,128?位、192?位和?256,為了保證性能不受太大的影響,選擇128即可。
SM1和SM4
之前幾種都是國外的,我們國內自行研究了國密?**SM1?**和?SM4。其中S都屬于國家標準,算法公開。優點就是國家的大力支持和認可
總結下幾種
非對稱算法
在對稱加密中,發送方與接收方使用相同的秘鑰。那么在非對稱加密中則是發送方與接收方使用的不同的秘鑰。其主要解決的問題是防止在秘鑰協商的過程中發生泄漏。比如在對稱加密中,小藍將需要發送的消息加密,然后告訴你密碼是123balala,ok,對于其他人而言,很容易就能劫持到密碼是123balala。那么在非對稱的情況下,小藍告訴所有人密碼是123balala,對于中間人而言,拿到也沒用,因為沒有私鑰。所以,非對稱密鑰其實主要解決了密鑰分發的難題。如下圖
非對稱算法
其實我們經常都在使用非對稱加密,比如使用多臺服務器搭建大數據平臺hadoop,為了方便多臺機器設置免密登錄,是不是就會涉及到秘鑰分發。再比如搭建docker集群也會使用相關非對稱加密算法。
常見的非對稱加密
RSA(RSA?加密算法,RSA?Algorithm)
優勢是性能比較快,如果想要較高的加密難度,需要很長的秘鑰。
ECC
基于橢圓曲線提出。是目前加密強度最高的非對稱加密算法
SM2
同樣基于橢圓曲線問題設計。最大優勢就是國家認可和大力支持。
三種對比
散列算法
這個大家應該更加熟悉了,比如我們平常使用的MD5校驗,在很多時候,我并不是拿來進行加密,而是用來獲得唯一性ID。在做系統的過程中,存儲用戶的各種密碼信息,通常都會通過散列算法,最終存儲其散列值。
常見的散列
MD5
MD5?可以用來生成一個?128?位的消息摘要,它是目前應用比較普遍的散列算法,具體的應用場景你可以自行??參閱。雖然,因為算法的缺陷,它的唯一性已經被破解了,但是大部分場景下,這并不會構成安全問題。但是,如果不是長度受限(32?個字符),我還是不推薦你繼續使用?MD5的。
SHA
安全散列算法。**SHA?**分為?SHA1和?SH2兩個版本。該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預映射或信息),并把它們轉化為長度較短、位數固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程。
SM3
國密算法?SM3。加密強度和SHA-256想不多。主要是收到國家的支持。
總結
至此,總結下,大部分情況下使用對稱加密,具有比較不錯的安全性。如果需要分布式進行秘鑰分發,考慮非對稱。如果不需要可逆計算則散列算法。因為這段時間有這方面需求,就看了一些這方面的資料,入坑信息安全,就怕以后洗發水都不用買。謝謝大家查看!
問題還有,此時如果?Sum?否認給過?Mike?的公鑰和合同,不久gg了
所以需要?Sum?過的話做過的事兒需要足夠的信譽,這就引入了第三方機構和證書機制。
證書之所以會有信用,是因為證書的簽發方擁有信用。所以如果?Sum?想讓?Mike?承認自己的公鑰,Sum?不會直接將公鑰給?Mike?,而是提供由第三方機構,含有公鑰的證書。如果?Mike?也信任這個機構,法律都認可,那ik,信任關系成立
如上圖所示,Sum?將自己的申請提交給機構,產生證書的原文。機構用自己的私鑰簽名?Sum?的申請原文(先根據原文內容計算摘要,再用私鑰加密),得到帶有簽名信息的證書。Mike?拿到帶簽名信息的證書,通過第三方機構的公鑰進行解密,獲得?Sum?證書的摘要、證書的原文。有了?Sum?證書的摘要和原文,Mike?就可以進行驗簽。驗簽通過,Mike?就可以確認?Sum?的證書的確是第三方機構簽發的。
用上面這樣一個機制,合同的雙方都無法否認合同。這個解決方案的核心在于需要第三方信用服務機構提供信用背書。這里產生了一個最基礎的信任鏈,如果第三方機構的信任崩潰,比如被黑客攻破,那整條信任鏈條也就斷裂了
為了讓這個信任條更加穩固,就需要環環相扣,打造更長的信任鏈,避免單點信任風險
上圖中,由信譽最好的根證書機構提供根證書,然后根證書機構去簽發二級機構的證書;二級機構去簽發三級機構的證書;最后有由三級機構去簽發?Sum?證書。
如果要驗證?Sum?證書的合法性,就需要用三級機構證書中的公鑰去解密?Sum?證書的數字簽名。
如果要驗證三級機構證書的合法性,就需要用二級機構的證書去解密三級機構證書的數字簽名。
如果要驗證二級結構證書的合法性,就需要用根證書去解密。
以上,就構成了一個相對長一些的信任鏈。如果其中一方想要作弊是非常困難的,除非鏈條中的所有機構同時聯合起來,進行欺詐。
中間人攻擊如何避免?
既然知道了中間人攻擊的原理也知道了他的危險,現在我們看看如何避免。相信我們都遇到過下面這種狀況:
出現這個界面的很多情況下,都是遇到了中間人攻擊的現象,需要對安全證書進行及時地監測。而且大名鼎鼎的github網站,也曾遭遇過中間人攻擊:
想要避免中間人攻擊的方法目前主要有兩個:
客戶端不要輕易相信證書:因為這些證書極有可能是中間人。
App?可以提前預埋證書在本地:意思是我們本地提前有一些證書,這樣其他證書就不能再起作用了。
7?DDOS
通過上面的描述,總之即好多種攻擊都是?DDOS攻擊,所以簡單總結下這個攻擊相關內容。
其實,像全球互聯網各大公司,均遭受過大量的?DDoS。
2018年,GitHub?在一瞬間遭到高達?1.35Tbps?的帶寬攻擊。這次?DDoS?攻擊幾乎可以堪稱是互聯網有史以來規模最大、威力最大的?DDoS?攻擊了。在?GitHub?遭到攻擊后,僅僅一周后,DDoS?攻擊又開始對?Google、亞馬遜甚至?Pornhub?等網站進行了?DDoS?攻擊。后續的?DDoS?攻擊帶寬最高也達到了?1Tbps。
那?DDoS?攻擊究竟是什么?
DDos?全名?Distributed?Denial?of?Service,翻譯成中文就是?分布式拒絕服務。指的是處于不同位置的多個攻擊者同時向一個或數個目標發動攻擊,是一種分布的、協同的大規模攻擊方式。單一的DoS攻擊一般是采用一對一方式的,它利用網絡協議和操作系統的一些缺陷,采用?欺騙和偽裝的策略來進行網絡攻擊,使網站服務器充斥大量要求回復的信息,消耗網絡帶寬或系統資源,導致網絡或系統不勝負荷以至于癱瘓而停止提供正常的網絡服務。
舉個例子
我開了一家有五十個座位的重慶火鍋店,由于用料上等,童叟無欺。平時門庭若市,生意特別紅火,而對面二狗家的火鍋店卻無人問津。二狗為了對付我,想了一個辦法,叫了五十個人來我的火鍋店坐著卻不點菜,讓別的客人無法吃飯。
上面這個例子講的就是典型的?DDoS?攻擊,一般來說是指攻擊者利用“肉雞”對目標網站在較短的時間內發起大量請求,大規模消耗目標網站的主機資源,讓它無法正常服務。在線游戲、互聯網金融等領域是?DDoS?攻擊的高發行業。
攻擊方式很多,比如?ICMP?Flood、?UDP?Flood、?NTP?Flood、?SYN?Flood、?CC?攻擊、?DNS?Query?Flood等等。
SYN?Flood進行DDoS攻擊的實現原理**
SYN?Flood是一種利用?TCP協議缺陷,發送大量偽造的?TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負荷或內存不足)的攻擊方式。
一次正常的建立?TCP連接,需要三次握手:客戶端發送?SYN報文,服務端收到請求并返回報文表示接受,客戶端也返回確認,完成連接。
SYN?Flood就是用戶向服務器發送報文后突然死機或掉線,那么服務器在發出應答報文后就無法收到客戶端的確認報文(第三次握手無法完成),這時服務器端一般會重試并等待一段時間后再丟棄這個未完成的連接。
一個用戶出現異常導致服務器的一個線程等待一會兒并不是大問題,但惡意攻擊者大量模擬這種情況,服務器端為了維護數以萬計的半連接而消耗非常多的資源,結果往往是無暇理睬客戶的正常請求,甚至崩潰。從正常客戶的角度看來,網站失去了響應,無法訪問。
如何應對?DDoS?攻擊?
高防服務器
還是拿開的重慶火鍋店舉例,高防服務器就是我給重慶火鍋店增加了兩名保安,這兩名保安可以讓保護店鋪不受流氓騷擾,并且還會定期在店鋪周圍巡邏防止流氓騷擾。
高防服務器主要是指能獨立硬防御?50Gbps?以上的服務器,能夠幫助網站拒絕服務攻擊,定期掃描網絡主節點等,這東西是不錯,就是貴~
黑名單
面對火鍋店里面的流氓,我一怒之下將他們拍照入檔,并禁止他們踏入店鋪,但是有的時候遇到長得像的人也會禁止他進入店鋪。這個就是設置黑名單,此方法秉承的就是“錯殺一千,也不放一百”的原則,會封鎖正常流量,影響到正常業務。
DDoS?清洗
DDos清洗,就是我發現客人進店幾分鐘以后,但是一直不點餐,我就把他踢出店里。
DDoS清洗會對用戶請求數據進行實時監控,及時發現?**DOS?**攻擊等異常流量,在不影響正常業務開展的情況下清洗掉這些異常流量。
CDN?加速
CDN?加速,我們可以這么理解:為了減少流氓騷擾,我干脆將火鍋店開到了線上,承接外賣服務,這樣流氓找不到店在哪里,也耍不來流氓了。
在現實中,CDN?服務將網站訪問流量分配到了各個節點中,這樣一方面隱藏網站的真實?IP,另一方面即使遭遇?DDoS攻擊,也可以將流量分散到各個節點中,防止源站崩潰。
總結
計算機網絡涉及的知識點較多,文中也就算是提了一下,更深此的理解還需要大家去看相應的書籍,感覺看了這一篇,當面試官問?DDOS?或者?TCP?涉及哪些攻擊技術知識點的時候,能夠回答出來就好了,咋們下一篇再見!
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。