1、http get攻擊:通過大量主機對受寒者發起http get請求 ,超過服務器處理能力;
當耗費的是服務器的cpu時,稱為cc攻擊;文末說明cc的特殊處
2、防范:
限制一下幾種情況:
一、控制 單台主機對服務器的並發數量
二、控制 單台主機的連續重復信息
三、控制 單台主機的http get 速率
四、http重定向,區分人機
3、詳細:
一、
二、通過檢測tcp cksum來判斷是否為二中所述情況;因為
優點:可防護二所描述情況
缺點:當內容是變化的或形式變化(實際內容不變)時,無法防御
三、
優點:可控制速率,對攻擊有一定抑制作用
缺點:無法根本解決問題; 對下1無法理解
四、這里的重定向 的目的是為了 通過重定向、重發這個過程來確定是否是瀏覽器在進行請求(瀏覽器可以自動處理重定向請求,以此來區分人機(假定為攻擊者無法模擬瀏覽器處理重定向,如果攻擊者軟件也可以模擬處理重定向,那就加點料,比如下面的只有b知道的信息,再看攻擊者能否,前面划掉的好像也不一定,為啥瀏覽器可以,模擬的就不可以?關鍵技術點是什么?到底能否模擬???!!!
這個點是:一般的自動化腳本是沒有辦法處理302、301重定向,除非帶內置瀏覽器;))
詳情如下:
優點:對無法模擬瀏覽器進行重定向請求處理的攻擊,可以有效防御
缺點:1、實現難度:需要對tcp進行完整的代理 ?大么
2、對性能的影響大 ?大么 ------------>這個應該主要是由於重定向時會斷開開始的鏈接 ;兩次發起鏈接,增加了握手造成的性能浪費?,針對這個下圖的方法給出了優化;
3、對業務的影響:如果給每個請求加重定向 呵呵噠
4、如果該重定向的跳轉是有輸入才跳轉,則瀏覽器也無法處理
ps:其實個人覺得在業務中,對請求的處理結合身份驗證可以簡化一部分場景:當不是允許的身份發出的請求直接拒絕,返回錯誤頁。不進
以上想法錯誤,這個攻擊是利用get請求,只要能發請求,你服務器就得對這個請求進行處理;怎么判斷處理與否才是解決方法(而不是上面說的處理完請求后進入下一步處理),這里給出的就是方法:判斷人機,非人(瀏覽器)的直接拋棄
這個個方法優化了浪費性能的問題。
所說的彌補一種的缺陷即是指加了料,一中是沒有加料的方法;
CC:由單台主機通過代理服務器發起大量耗費cpu的http get flood攻擊
1、通過代理,逃避並發連接數檢測(一般防火牆都可以檢查並發連接數)
2、http get 請求會耗費大量的服務器cpu,(如觸發后台服務器檢索)
一般先需要找的漏洞,在發起攻擊,屬於缺陷攻擊;
防護: