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