歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux安全

cc攻擊分析

第一 先學習一下tcp ip協議
1、連接建立階段的三次握手
一般情況下,客戶端連到服務器叫做主動打開,服務器上的端口監聽叫做被動打開
a、准備,服務器進程被動打開端口
b、第一次:客戶發送SYN報文,主動打開連接。這個報文中的序號叫做ISN(初始序號),是隨機產生的。(SYN報文不帶數據,但是消耗一個序號)
c、第二次:服務器收到後,發送SYN+ACK報文。
d、第三次:客戶段收到後,發送ACK報文進行確認。

2、連接正常終止的三次握手協議:(以客戶主動關閉為例)
a、客戶:發送FIN,主動關閉
b、服務器:發送FIN+ACK(當然可以加最後一塊報文)
c、客戶:發ACK確認

3、半關閉與四次握手:
半關閉:一方雖然關閉了發送數據,但還是可以接收數據
a、客戶:發送FIN
b、服務器:發ACK,同時通知應用進程
c、服務器繼續傳數據
d、服務器發FIN
e、客戶發ACK


4、連接復位與RST標記:在一端的TCP可以請求拒絕一個連接,或者 異常終止一條連接 或者 終止一條空閒連接時候,這些都可以用RST標記位完成。

5、狀態轉移(有限狀態機制)

(1)、正常流程的狀態轉移:(C表示客戶端,S表示服務器,+表示接收,-表示發送)
C: CLOSED--(-SYN)-->SYN-SEND--(+"SYN+ACK", -ACK)-->ESTABLISHED--(-FIN)-->
FIN-WAIT-1--(+ACK)-->FIN-WAIT-2--(+FIN, -ACK)-->TIME_WAIT--(2MSL之後)-->CLOSED

S: CLOSED--(被動打開)-->LISTEN--(+SYN, -"SYN+ACK")-->SYN-RCVD--(+ACK)-->ESTABLISHED--(+FIN, -ACK)-->CLOSE-WAIT--(-FIN)-->LAST-ACK--(+ACK)-->CLOSED

其中,CLOSE-WAIT表示收到第一個FIN,發送了ACK,等應用進程關閉

(2)、拒絕連接時的狀態轉移:
C: CLOSED--(-SYN)-->SYN-SEND--(+"RST+ACK")-->CLOSED
S: CLOSED--(被動打開)-->LISTEN--(-"ACK+RST")-->SYN-RCVD--(過段時間)-->LISTEN

(3)、異常終止時候的狀態轉移
C: ...ESTABLISHED--(-"ACK+RST")-->CLOSED

S: ...ESTABLISHED--(+"ACK+RST")-->CLOSED

第二 分析一下cc攻擊
CC攻擊是實現DDoS其中一種方法。CC攻擊的特點:業內有人將CC攻擊稱之為“Web殺手”,當web服務遭受到時候,見不到虛假IP,更特別的是見不到特別大的異常流量。而且與傳統的ddos的實現方法相比,cc攻擊只需一個普通用戶的網絡流量,就足以掛掉一台高性能的Web服務器。

通過命令行查看是否被攻擊
當Web遭受CC攻擊時,80端口將被大量的垃圾數據堵塞了,正常的連接被中止,最終導致拒絕對外提供服務。在命令行下輸入命令netstat -an可查看當前的連接情況,如果看到大量類似如下的連接記錄時,可以斷定服務器正在遭受cc攻擊。
  TCP 192.8.8.8:80 8.7.1.6:2205 SYN_RECEIVED 4
解釋:“8.7.1.6”就是被用來代理攻擊的主機的IP,“SYN_RECEIVED”表示TCP連接狀態標志,表明無法建立握手應答處於等待狀態。因為來自不同的代理IP的攻擊,所以這樣的記錄一般都會有很多條,這是受到攻擊的一個重要特征。
Copyright © Linux教程網 All Rights Reserved