DDOS攻防資料整理

前言

日常開發(fā)中有時會遇到業(yè)務(wù)接口被刷了,因此想做一篇相關(guān)的文章摘要整理。

基本概念

維基給出的定義:DDOS攻擊即denial-of-service attack 是一種爬蟲攻擊。
但是有的地方又喜歡把DDOS 作為一大類攻擊的總稱,其中爬蟲攻擊是很典型的一種,個人認為具體怎么叫沒有必要深究。
攻擊者通過這種方式讓一臺機器或網(wǎng)絡(luò)資源宕機不可用。當然攻擊者也有可能是通過大量的請求,獲取業(yè)務(wù)數(shù)據(jù),例如美團、攜程、大眾點評等的內(nèi)容數(shù)據(jù)。
通常攻擊者通過偽造成正常用戶,偽造UA、cookie等等,通過海量的ip代理服務(wù)器發(fā)起請求,較為嚴重的,會造成CPU滿、帶寬滿、內(nèi)存滿、連接數(shù)滿等等,進而影響到正常用戶的訪問請求。

建議閱讀阮大的DDOS 攻擊的防范教程,親身示范生動具體??


解決辦法

DDOS沒有絕對完善的解決辦法!

DDOS的攻防中,只能是雙方之間的較量硬碰硬,并沒有一招制勝的說法。閱讀了各類資料,大致整理了幾個要點

  1. 準備一個備份網(wǎng)站
    在服務(wù)器下線了,最低限度通過這種頁面告訴用戶正在搶修中。這種臨時主頁建議放到 Github Pages 或者 Netlify,它們的帶寬大,可以應(yīng)對攻擊,而且都支持綁定域名,還能從源碼自動構(gòu)建。
  2. web服務(wù)器攔截ip請求
    非常消耗性能。假使黑客通過發(fā)動成千上萬的肉雞,在短時間內(nèi)發(fā)起海量訪問,這種做法就沒有用了。
  3. 借助SLB產(chǎn)品
    參考了底部阿里云的文章,借助其SLB產(chǎn)品在web服務(wù)器前幫助過濾請求。關(guān)鍵詞:清洗、黑洞。進行攻擊報文過濾、流量限速、包限速甚至為保護整個集群的安全所有入流量丟棄處理。具體做法移步相應(yīng)的產(chǎn)品說明書。
  4. 架設(shè)硬件防火墻
    在web服務(wù)器前架設(shè)防火墻專門過濾請求,但這種價格也昂貴。
    類似的
  5. 帶寬擴容
    當遭到攻擊,短時間內(nèi)急劇擴容,提供幾倍或幾十倍的帶寬,頂住大流量的請求。為什么云服務(wù)商可以提供防護產(chǎn)品,因為他們有大量冗余帶寬,可以用來消化 DDOS 攻擊。
  6. CDN
    CDN指的是網(wǎng)站的靜態(tài)內(nèi)容分發(fā)到多個服務(wù)器,用戶就近訪問,提高速度。因此,CDN 也是帶寬擴容的一種方法,可以用來防御 DDOS 攻擊。
    網(wǎng)站內(nèi)容存放在源服務(wù)器,CDN 上面是內(nèi)容的緩存。用戶只允許訪問 CDN,如果內(nèi)容不在 CDN 上,CDN 再向源服務(wù)器發(fā)出請求。這樣的話,只要 CDN 夠大,就可以抵御很大的攻擊。不過,這種方法有一個前提,網(wǎng)站的大部分內(nèi)容必須可以靜態(tài)緩存。對于動態(tài)內(nèi)容為主的網(wǎng)站(比如論壇),就要想別的辦法,盡量減少用戶對動態(tài)數(shù)據(jù)的請求。
  7. 鏡像服務(wù)器
    本質(zhì)也就是自己搭建一個微型 CDN。各大云服務(wù)商提供的高防 IP,背后也是這樣做的:網(wǎng)站域名指向高防 IP,它提供一個緩沖層,清洗流量,并對源服務(wù)器的內(nèi)容進行緩存。
    這里有一個關(guān)鍵點,一旦上了 CDN,千萬不要泄露源服務(wù)器的 IP 地址,否則攻擊者可以繞過 CDN 直接攻擊源服務(wù)器。阮大也遇到了繞過直接被攻擊源服務(wù)器的情況,最后他買了彈性 IP ,可以動態(tài)掛載主機實例,受到攻擊就換一個地址。

等等還有很多。一些防的越徹底的算法,也會增加正常業(yè)務(wù)數(shù)據(jù)丟失的風險,當然這是難以避免的。


有效的DDoS防護機制應(yīng)該包含以下六個步驟
  1. 提前能檢測到攻擊,并啟動相應(yīng)的減緩攻擊措施
  2. 當攻擊上升到一個等級沒有被成功阻止下來,立刻通知相應(yīng)的處理團隊
  3. 核實攻擊的確是在發(fā)生,分析,提供解決方案在必要時云端遷移
  4. 將遷移信號發(fā)送給云端,同時帶上這次攻擊的詳細細節(jié)
  5. 云端開始轉(zhuǎn)移并清洗請求數(shù)據(jù),通常是借助 Border Gateway Protocol (BGP) or the Domain Name System (DNS)
  6. 當攻擊結(jié)束,When the attack is over, traffic is restored to its normal path through the ISP.

先前提到的解決方案應(yīng)該歸納到第一點的減緩攻擊措施里。如果還是沒有攔截下來,可以按照這個流程去處理,至少在第一時間可以保持服務(wù)正常(當然是用備用的網(wǎng)頁也是個好的方案,但這個更加成熟)


心得

就像開篇講的一樣,DDOS攻擊并沒有最好的根治之法,做不到徹底防御,只能采取各種手段在一定程度上減緩攻擊傷害。所以平時服務(wù)器的運維工作還是要做好基本的保障,將DDOS攻擊帶來的損失盡量降低到最小。


參考

阮一峰的DDOS 攻擊的防范教程
聊一聊負載均衡SLB的DDoS防護
How to Defend Against DDoS Attacks: Six Steps

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容