需求場景
作為公有云計算平臺,SAE長期以來一直飽受各種攻擊,這里面涉及各種類型,包括Syn-flood、UDP-floold、DNS/NTP反射、TCP flag攻擊等,當然這里面最常見還是基于HTTP協(xié)議的CC攻擊,因為篇幅有限,所以今天先不介紹TCP/IP防火墻,集中在HTTP層面。
我們可以把正常的HTTP訪問分為:
HTTP訪問=正常訪問+抓站+攻擊
這三類行為有明顯的區(qū)分特征,主要體現(xiàn)在頻率和特征上,比如抓站的目的是抓取信息,而不是讓你網(wǎng)站502,而攻擊往往是要把網(wǎng)站Rank打下來,直接打到用戶訪問不了。而這三類行為又沒有特別清晰的界限,比如何種訪問叫正常抓站?抓到什么程度叫惡意抓站?這些定義往往是跟用戶業(yè)務行為相關,從云計算平臺的角度界定起來有難度。舉個例子,內推網(wǎng)是SAE上的一個HR招聘網(wǎng)站,每天有上千萬的訪問,從內推的角度肯定希望各大搜索引擎能夠合理的抓取/索引,擴大信息出口,但又不希望同行抓取,保護有價值的內容,但這個度是跟業(yè)務相關的,可能在業(yè)務初期可以松點,業(yè)務起來后可以嚴一點。
兩層HTTP防火墻
從云計算平臺,無法幫用戶設定這些跟業(yè)務緊密相關的參數(shù),只能把這個關交給用戶自身,這也就形成了“應用防火墻”。但從云計算平臺角度,又有義務幫用戶擋住惡意的CC攻擊,于是,SAE把這兩類需求組成了兩個產品:“應用防火墻”,用戶可以從SAE操作面板看到,應用防火墻的難點在于充分自定義,包括觸發(fā)閾值后的行為,這部分SAE近期將進行版本升級,功能將會更強大,今天先重點說“CC防火墻”。
策略中心
策略分成下面兩個維度:
1)首先確定哪些應用可能被攻擊(當前PV/IP、歷史PV/IP),這里面需要降噪處理,否則有些業(yè)務突然正常的流量突增(秒殺)可能收到影響
2)針對A篩選出來的可能被攻擊的應用,分析其IP行為,這里分為兩步:
·將IP按行為進行分組,行為類似的IP為一組,組規(guī)模越大的可疑性越大(動用的資源更多)
·針對群組IP分析,主要依靠 Feq(Request)/Num(URI),可疑性與頻率成正比,而與訪問地址的離散度成反比
自學習:
任何規(guī)則都會存在誤殺,所以必要的自學習是必要的,系統(tǒng)會跟實際情況通過梯度下降算法調整策略參數(shù)的最優(yōu)點。另外,對于機器學習,準確率和召回率是一對矛盾體,針對我們遇到的場景,我們的所有參數(shù)學習都偏向準確率,因為召回率可以由應用防火墻做補充,從我們線上運行的實際情況看,準確率為100%,目前沒有誤報。
SAE利用CC防火墻結合應用防火墻,有效的保護了用戶的HTTP請求,當然目前這套系統(tǒng)還存在著不足,包括Storm計算能力、應用防火墻的自定義性不足、應用防火墻重定向等方面,這也是我們后面的工作方向。
..
|