黑客“借刀殺人”,阿里 14 年經驗安全大佬教你如何防禦 DDoS 攻擊

【CSDN 編者按】DDoS 攻擊近幾年來非常常見,許多知名的平臺網站都遭遇過。當應用層 DDoS 攻擊當前已經是最常見的攻擊類型之時,對於程序員而言,有哪些必須掌握的 DDoS 攻擊的知識點,更為關鍵的是,如何進行有效的防禦實踐?在「CSDN 在線峰會 —— 阿里雲核心技術競爭力」上,在系統、應用、網絡安全領域擁有 14 年研究經驗的阿里雲資深安全專家葉敏深入分享了新型應用層 DDoS 攻擊防禦的最佳實踐,希望能夠對所有技術人有所啟發及裨益。

複製鏈接或點擊「閱讀原文」可免費觀看葉敏老師分享視頻:

https://edu.csdn.net/course/play/28249/388361

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

作者 | 葉敏,阿里雲資深安全專家

頭圖 | CSDN 下載自東方 IC

出品 | CSDN(ID:CSDNnews)

一、應用層 DDoS 攻擊介紹

DDoS 攻擊長久以來困擾著互聯網企業,從我們雲盾監測到的 DDoS 攻擊流量峰值來看,最近幾年攻擊流量在大幅上漲,從 2014 年我們對外宣佈防禦了全球最大的 DDoS 攻擊,453.8Gbps,到現在 T 級別的 DDoS 也變得很常見。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

大流量 DDoS 攻擊存在了很多年,雖然攻擊流量一直在增長,但是攻擊類型變化不大,一直以 SYN Flood、UDP Flood、UDP 反射攻擊為主。針對大流量攻擊已經有了非常有效的防禦手段,以前這種大流量攻擊遇到安全設備時,就像進了黑洞一樣被吞噬,防禦成功率很高,但是黑客們不服輸,他們向這個黑洞發起了新的挑戰。

如果把攻擊流量偽裝成正常業務的流量,那麼安全防禦設備就很難區分出攻擊流量,這樣就能穿過防禦設備攻擊到後端的應用,這就是應用層 DDoS 攻擊,也叫 CC( Challenge Collapsar )攻擊,就是挑戰黑洞的意思。

二、應用層 DDoS 的攻擊方式

應用層 DDoS 最近幾年越來越受到黑客的青睞,從監測到的數據來看,應用層 DDoS 攻擊在 2019 年就有翻倍增長。

除了容易繞過防禦設備,還有一個重要的原因是應用層 DDoS 攻擊更加高效,因為應用層的攻擊都要觸發上層應用的處理邏輯,其中可能有數據庫查詢、遠程 API 調用、文件讀寫,甚至有複雜的計算邏輯,所以這些流量會對服務端帶來更大的壓力。攻擊者精心挑選的帶有複雜邏輯的 URL 進行攻擊,可以用很小的流量對應用或數據庫產生巨大壓力。攻擊者不需要用到很大的帶寬,甚至對服務端只有小幅度的 QPS 上漲,讓檢測和防禦都變得更有挑戰。

DDoS 攻擊最典型的方式是殭屍網絡,黑客控制了大量的傀儡主機(肉雞或 bot)向目標發起攻擊。這些傀儡主機可能是服務器、PC、手機或 IoT 設備。

在應用層 DDoS 攻擊中,我們發現另一種借刀殺人的攻擊方式也很常見,黑客在一些熱門的網頁中嵌入了帶有攻擊行為的 JavaScript 代碼,當訪問者打開這些網頁時,瀏覽器就循環對目標發起攻擊,在一些停留時間比較長的網頁,比如長篇小說或小電影網站,再加上不停的有新用戶訪問,攻擊就會持續很長時間。雖然黑客沒有控制這些設備的權限,但是他藉助這些正常用戶的瀏覽器實現了大規模的應用層 DDoS 攻擊。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

互聯網上 HTTP/HTTPS 服務佔比最大,所以針對 HTTP/HTTPS 協議的應用層 DDoS 攻擊也是最常見的,我們把它叫 HTTP Flood。雖然都是發起 HTTP 請求,但是也有不同的方式,防禦的難度也不一樣。我們分析過很多 DDoS 木馬,有些直接拼接 HTTP 報文內容發送給服務端,這種通常攻擊手法比較單一,而且也沒有考慮 Cookie 和 HTTP 跳轉,更不能執行 JavaScript。

進一步我們發現有些木馬使用現成的 HTTP 庫,它對 HTTP 協議的支持更完善,部分可以支持 Cookie 和 HTTP 跳轉,但沒有瀏覽器引擎所以不能執行 JavaScript。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

再進一步我們發現帶有瀏覽器引擎的攻擊方式,它其實就是個無窗口的瀏覽器,可以完整的支持 Cookie、HTTP 跳轉和 JavaScript。我們也發現直接使用瀏覽器進行攻擊的,有 Windows 平臺的惡意軟件中嵌入 IE 控件,移動 App 中嵌入 WebView 控件,前面講到的熱門網頁嵌入 JavaScript 也是瀏覽器攻擊的例子。因為攻擊流量本身就是瀏覽器發起的請求,所以這種識別難度更大。

另外一種應用層 DDoS 攻擊是針對 SSL,據統計全球超過 85%的網頁已經啟用 HTTPS 協議了,所以攻擊目標範圍很大。我們知道建立一個 SSL 連接的開銷是比較大的,有人分析過,建立一個 SSL 連接服務端消耗的計算資源是客戶端的 15 倍,所以如果攻擊者向目標服務器發起大量 SSL 連接握手,就會對目標服務器產生巨大的性能壓力。這裡還有一個挑戰在於,只有在 SSL 握手完成以後,才會傳輸應用層的數據內容,所以通過數據包內容來檢測攻擊,在這裡就不適用。

前面講的很多攻擊方式跟 HTTP/HTTPS 業務有關係,但是私有協議也是存在應用層 DDoS 攻擊的,這個在很多遊戲業務中比較常見。一些粗暴的攻擊方式是建立 TCP 連接後,發送隨機的垃圾數據,一般情況下服務端遇到非法數據會直接斷開這個連接。

但是也有一些耐心的攻擊者,對正常的業務流量進行抓包,然後用重放的方式對目標發起攻擊,一方面是這種正常的流量會讓服務端執行更多的業務邏輯計算,比如登錄操作需求查詢數據庫,從而產生更大的攻擊效果,另一個方面是很難把重放流量跟正常用戶流量區分開來,對檢測和防禦有更大挑戰。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

從這些攻擊方式中可以看到,應用層 DDoS 攻擊不再是簡單粗暴的大流量衝擊,而是攻擊者精心構造的數據包,偽裝成正常流量繞過防禦設備,攻擊後端的應用和服務。

三、傳統的應用層 DDoS 防禦方案

傳統的防禦策略是頻率限制,在源 IP、URL 精度進行限速,攔截高頻的訪問者。目前大多數 CC 防禦產品都向用戶提供限速功能。但是頻率限速有很多缺陷,因為不同的業務 QPS 差異很大,默認的限速策略並不能適用於所有場景,比如如下所示,第一個流量圖,峰值流量達到 20 萬 QPS,而第二個圖峰值才 2 萬 QPS,我們直覺上判斷第二個是攻擊行為,但是顯然這兩個業務不能用相同的限速策略的。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

另一個問題是,當一個網站訪問量很大時,一些脆弱的接口能承受的 QPS 又很低,全局的限速策略就不適用了。粗暴的攔截 IP 還可能引起誤傷,如果一個源 IP 訪問量過大就把 IP 加黑名單,有可能將 NAT 出口 IP 拉黑,在大的公司、學校裡有一個人發起攻擊就把整個出口 IP 攔截了會影響到正常用戶的訪問。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

所以應用層 DDoS 防禦有個關鍵點是要做更精細化的策略,很多 CC 防禦產品支持用戶自定義策略,將指定的數據包丟掉。對於非 HTTP 協議,部分產品提供讓用戶配置報文過濾特徵,對 HTTP 協議,多數安全產品都提供用戶配置 HTTP 各個維度的組合攔截條件。但是 DDoS 防禦都是爭分奪秒的,這種人工分析和配置策略存在嚴重的滯後性。另外這種策略非常依賴安全專家經驗,以及對業務的瞭解。

一些自動化的方案也在廣泛使用,大家可能遇到過訪問一個網站時出現一個白屏頁面,上邊提示在做安全檢測,幾秒鐘後跳轉到目標頁面,這個叫 JavaScript 挑戰。服務端向客戶端返回一個校驗頁面,裡邊包含了校驗瀏覽器的 JavaScript 代碼,如果用真實瀏覽器訪問並且有正常用戶行為,就可以校驗通過。它也有一些缺點,就是隻適用於網頁,如果是 API 接口,這種挑戰會讓正常業務中斷,另外也不適用於非 HTTP 協議。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

人機校驗方式也被用於應用層 DDoS 防禦,包括圖形驗證碼或者需要用戶點擊、滑動的校驗方式,這種做法雖然很多場景在使用,但非常影響用戶體驗,而且它同樣存在缺陷,只能適用於網頁,不能用於 API 接口和非 HTTP 協議。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

四、智能化的防禦方案

1. 縱深防禦的架構

這些方案都存在一定的缺陷,沒有一個方案是可以解決所有場景下的 DDoS 攻擊,所以我們在最近幾年做了一個縱深防禦方案,考慮到了各種不同的攻擊方式,我們從多個維度進行了流量分析和防禦,包括數據包內容特徵、訪問行為、客戶端挑戰和智能化的限速,其中大量應用了自動化分析建模,精細到每個業務、每個 URL 進行訪問基線分析,自動發現其中的異常,並且基於阿里雲的優勢大規模應用了威脅情報技術。以下圖中大部分新的防禦手段都是為防禦應用層 DDoS 攻擊而設計的。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

2. 智能的自適應方案

  • 為什麼需要自適應?

不管是默認的防護模板,還是讓用戶去配置,都不是個好的方案。當有大量不同業務的時候,我們必須要一個自適應的方案,根據業務的歷史流量自動分析出正常情況下的基線,基於這個基線去發現異常,並阻斷異常請求。

  • 自適應的難點與挑戰

難點一:如何自動刻畫業務基線,並避免歷史攻擊的干擾?

比如以下圖中第一個流量圖,我們能夠自動識別出來它的週期性波動並生成它的頻率基線,雖然峰值 QPS 非常高,但是它符合歷史頻率基線,所以我們判定它是正常行為。第二個圖,雖然峰值 QPS 不高,但是它不符合歷史基線,所以判定存在攻擊行為。

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

整個過程需要基於數據自動完成,因為在存在大量不同業務的情況下,人工標註是不現實的。同時,倘若網站歷史上存在攻擊,也需要自動剔除攻擊時的數據,避免干擾。

難點二:如何在攻擊第一時間發現異常並作出處置?

發現流量存在異常僅僅是第一步,最重要的是識別出來哪些流量是異常的,並且自動生成策略把它阻斷掉。每個業務的流量都不一樣,攻擊方式也千變萬化,顯然不能用一個固定的特徵去區分出攻擊流量和正常流量。同樣的,找出攻擊流量的關鍵是要知道正常流量長什麼樣,我們從幾十個維度,在業務正常的時候學習出流量的基線畫像,精細到每個域名、每個端口、每個 URL,同樣也是千人千面。當發生攻擊時,流量分析引擎可以根據當前流量和基線的對比,自動生成攔截攻擊流量的策略。

3. 降維打擊的協同防禦

在阿里雲我們每天防禦了海量的攻擊,每一次防禦都是可以輸出有價值的信息用於保護更多的其他客戶。

就像免疫系統一樣,一個客戶遭受過一種類型的攻擊,該攻擊情況就會進入威脅情報系統中,自動分析出攻擊手法和攻擊源 IP 特性,並生成多維度的針對性方案。下次再發生這種攻擊時,所有客戶都可以受到保護。

五、應用層 DDoS 攻防的發展

DDoS 防禦需要爭分奪秒,能快一分鐘,業務中斷就少一分鐘,整個防禦系統要足夠實時。在流量的採集、分析和攔截都要做到實時化,特別是攻擊流量大的時候,實時分析對整個鏈路的性能都有很大挑戰。要做到足夠快,人工分析一定是來不及的,必須要足夠自動化、智能化,通過離線的基線畫像計算,加上實時的智能策略,我們現在做到了 95%以上的應用層 DDoS 攻擊都可以在 3 分鐘內自動防禦成功,將業務恢復,因為整個分析決策鏈路長,其中還是有很大改進空間。

應用層 DDoS 還有很多挑戰等著我們去解決,誤殺問題是其中一個,當業務有促銷、秒殺活動時,短時間內流量激增,部分秒殺場景中大量 IP 集中訪問一個頁面,甚至此時正常業務就已經受到影響,服務端響應過慢了,此時各個維度都跟正常基線相關非常大,攻擊檢測系統很容易將這種行為誤判為 DDoS 攻擊。

另外一個難題是,防禦系統非常依賴業務的基線畫像做防禦策略,如果一個新上線的業務就遭受攻擊,或者業務剛接入防禦系統,此時防禦系統缺少該業務的畫像,並不知道它正常流量是怎樣的,防禦效果就會大打折扣。另外一個問題也發生過多次,在一些業務中客戶端有重連的邏輯,或者出錯後重傳的邏輯,如果客戶端邏輯設置不當,當服務端發生異常時不斷重連或重傳,也容易誤判為攻擊行為,導致整個 IP 被封禁。針對這些防禦缺陷,我們也在設計新的技術方案,包括訪問源、客戶端的信譽評分,儘量減少對正常用戶的誤殺。

從歷史發展來看,DDoS 的攻防技術一直在發展,但是攻擊和防禦從來都沒有哪一方是佔據絕對優勢的,雙方的技術總是在螺旋上升。只要有利益存在,黑客就會不斷挑戰我們的防禦方案,雖然今天我們做了大量防禦技術上的創新,但是道高一尺,魔高一丈,黑客一定會研究新的攻擊技術繞過我們的防禦系統,從簡單、粗暴的攻擊方式往精細化、智能化方向發展,進而迫使我們研究新的防禦技術,未來攻擊和防禦技術都會邁上一個新的臺階。

作者簡介:

葉敏,阿里雲資深安全專家,在系統、應用、網絡安全領域有14年研究經驗,阿里反釣魚、雲盾反入侵、網絡安全產品技術負責人,在網絡安全攻防方面有豐富的經驗,其主導建設的多項安全技術保護了阿里雲百萬級客戶。

作為“百萬人學AI”的重要組成部分,2020 AIProCon 開發者萬人大會將於6月26日通過線上直播形式,讓開發者們一站式學習瞭解當下 AI 的前沿技術研究、核心技術與應用以及企業案例的實踐經驗,同時還可以在線參加精彩多樣的開發者沙龍與編程項目。參與前瞻系列活動、在線直播互動,不僅可以與上萬名開發者們一起交流,還有機會贏取直播專屬好禮,與技術大咖連麥。

評論區留言入選,可獲得價值299元的「2020 AI開發者萬人大會」在線直播門票一張。 快來動動手指,寫下你想說的話吧!

黑客“借刀杀人”,阿里 14 年经验安全大佬教你如何防御 DDoS 攻击

☞微軟為一人收購一公司?破解索尼程序、寫黑客小說,看他彪悍的程序人生!

☞中國無人機“老炮兒”回憶錄

☞4 年 46 個版本,一文讀懂 Spring Cloud 發展歷史

☞京東商城背後的AI技術能力揭秘 - 基於關鍵詞自動生成摘要

☞互聯網之父確診新冠,一代傳奇:任谷歌副總裁、NASA 訪問科學家

☞從未如此簡單:10分鐘帶你逆襲Kafka!

☞無代碼時代來臨,程序員如何保住飯碗?


分享到:


相關文章: