記得郭德綱有這么一個(gè)著名的段子:家中屋漏,外面下小雨,屋里下大雨;外面下大雨,全家人就只能站到院子里避雨。如果我們把屋子換成傘,外面下雨,傘里也下雨,你還會(huì)用這樣的傘嗎?
“簡(jiǎn)直是笑話,誰(shuí)會(huì)用這樣的傘?”,你可能會(huì)這么說(shuō)。不過(guò),是不是有漏雨的傘,咱先別著急下結(jié)論。這凡事都有個(gè)體驗(yàn)和比較。沒(méi)有體驗(yàn)和比較,你就不知道到底什么樣的傘叫好傘。
在前兩天阿里云論壇的安全版塊里有這么一個(gè)有趣兒的熱帖。在這個(gè)帖子里,樓主講了這么一個(gè)有趣兒的事兒:“我現(xiàn)在操作2個(gè)網(wǎng)站: 一個(gè)心理測(cè)試大百科www.A.com,部署在阿里云,開(kāi)通云盾。另 一個(gè)是www.B.cn,部署在XX數(shù)碼。 昨天這2個(gè)網(wǎng)站后臺(tái)都發(fā)現(xiàn)了同樣的警告框。但是只有XX數(shù)碼上的www.B.cn中招了。 2個(gè)程序版本一樣,為什么阿里云上的心理測(cè)試大百科www.A.com沒(méi)中招呢? ”
樓主所謂的“中招”是指在他采用PHPCMS系統(tǒng)的網(wǎng)站后臺(tái)多了一個(gè)超級(jí)管理員用戶-pcmanage。而這個(gè)pcmanage超管用戶并非他自己添加,而是被別人偷偷地加上去的。
好個(gè)從石頭縫里蹦出來(lái)的孫悟空。開(kāi)過(guò)網(wǎng)站的小伙伴想必都應(yīng)該非常清楚事情的嚴(yán)重性了。PHPCMS系統(tǒng)的“超級(jí)管理員”就像它的命名一樣,擁有對(duì)網(wǎng)站系統(tǒng)的一切權(quán)限。如果黑客擁有了攻擊目標(biāo)網(wǎng)站的超級(jí)管理員賬號(hào),后果可想而知。
那么,黑客是如何偷偷添加超級(jí)管理員賬號(hào)的呢?簡(jiǎn)言之,黑客利用PHPCMS系統(tǒng)的0day漏洞,竊取了網(wǎng)站專門用來(lái)防護(hù)跨站攻擊的Token,通過(guò)劫持管理員的HTTP會(huì)話,在管理員絲毫沒(méi)有察覺(jué)的情況下,利用管理員的身份成功添加了超級(jí)管理員賬戶——一個(gè)無(wú)所不能的孫悟空。
有些拗口,別急,下面我們?cè)敿?xì)說(shuō)說(shuō)黑客是怎么攻擊的。經(jīng)過(guò)阿里云安全技術(shù)團(tuán)隊(duì)的分析,黑客當(dāng)時(shí)是利用了PHPCMS系統(tǒng)存在的一個(gè)漏洞發(fā)起了CSRF攻擊,最終添加了超管賬號(hào)。
CSRF(Cross-site request forgery),中文名稱跨站請(qǐng)求偽造,是在用戶會(huì)話下通過(guò)第三方網(wǎng)站發(fā)起GET/POST的請(qǐng)求——這些請(qǐng)求用戶未必知道和愿意做,可以把它視作一種HTTP會(huì)話劫持。下圖是典型的CSRF攻擊過(guò)程:
圖1: CSRF典型攻擊過(guò)程
從上圖可以看出,A網(wǎng)站通過(guò)cookie來(lái)識(shí)別用戶(C),當(dāng)用戶成功進(jìn)行身份驗(yàn)證之后瀏覽器就會(huì)得到一個(gè)標(biāo)識(shí)其身份的cookie,只要不關(guān)閉瀏覽器或者退出登錄,以后訪問(wèn)A網(wǎng)站會(huì)一直帶上這個(gè)cookie。如果這期間瀏覽器被人控制著向A網(wǎng)站發(fā)起請(qǐng)求去執(zhí)行一些用戶不想做的功能(比如添加賬號(hào)),這就是會(huì)話劫持了。因?yàn)檫@個(gè)不是用戶真正想發(fā)出的請(qǐng)求,這就是所謂的“請(qǐng)求偽造”。此外,由于請(qǐng)求可以從第三方網(wǎng)站提交,所以前綴跨站二字,即從B網(wǎng)站發(fā)起。
PHPCMS系統(tǒng)對(duì)于CSRF的防護(hù)主要是通過(guò)在會(huì)話中加入令牌(Token)方式來(lái)實(shí)現(xiàn),黑客恰恰是利用了0day漏洞在偷竊了Token后,發(fā)起了CSRF攻擊并劫持了管理員的身份。
面對(duì)這樣一個(gè)0day漏洞攻擊,阿里云云盾如何實(shí)現(xiàn)有效防護(hù)的呢?眾所周知,0day漏洞是沒(méi)有補(bǔ)丁的,客觀地講,在防護(hù)的時(shí)候也無(wú)法采用針對(duì)性的防護(hù)手段。然而,阿里云云盾多層面縱深化防護(hù)體系對(duì)于未知攻擊同樣可以做到有效防護(hù)。
云盾在網(wǎng)絡(luò)、系統(tǒng)以及應(yīng)用上均有相應(yīng)的防護(hù)策略,這些防護(hù)策略對(duì)于網(wǎng)站來(lái)說(shuō),就像一層層的防護(hù)網(wǎng)。更為關(guān)鍵的是,這些“防護(hù)網(wǎng)”是一體化的,是一個(gè)整體,并非彼此孤立。無(wú)論在網(wǎng)絡(luò)流量攻擊、還是系統(tǒng)入侵或是應(yīng)用破壞上,黑客只要在入侵過(guò)程中觸發(fā)任何一個(gè)防護(hù)點(diǎn)的策略,均會(huì)引發(fā)云盾整體的迅速響應(yīng)。在上面的攻擊過(guò)程中,由于黑客采取了“組合化”進(jìn)攻手段,觸發(fā)了云盾對(duì)某單項(xiàng)攻擊手段的防護(hù)策略,從而導(dǎo)致整個(gè)攻擊過(guò)程戛然而止。
既有點(diǎn),也有面,點(diǎn)面結(jié)合,這正是云盾強(qiáng)大的地方。這種點(diǎn)面結(jié)合的整體防護(hù)體系考驗(yàn)的是多個(gè)安全子系統(tǒng)能否實(shí)現(xiàn)彼此無(wú)縫配合、策略分布式部署以及面向攻擊的整體化視野。這樣的防護(hù)體系不是簡(jiǎn)單部署一個(gè)DDoS防護(hù)系統(tǒng)、入侵防御系統(tǒng)或WAF系統(tǒng)就可以實(shí)現(xiàn)。
傳統(tǒng)IDC數(shù)據(jù)中心普遍采取糖葫蘆串式的防護(hù)手段,在服務(wù)器前部署一長(zhǎng)串的防護(hù)設(shè)備,這些防護(hù)設(shè)備之間是獨(dú)立工作,沒(méi)有彼此關(guān)聯(lián)關(guān)系。這種安全防護(hù)模型無(wú)疑增加了防御一方的建設(shè)和運(yùn)營(yíng)管理成本,而面對(duì)0day或者更為復(fù)雜攻擊的時(shí)候卻往往束手無(wú)策。
事實(shí)上,強(qiáng)大的云盾也不是一朝鍛造而成,而是得益于阿里安全部十年攻防積累的數(shù)據(jù)和經(jīng)驗(yàn)。其全面的DDoS防護(hù)、主機(jī)入侵防護(hù)、Web防護(hù)墻以及貼心而全面的網(wǎng)站安全體檢服務(wù),也是幾十萬(wàn)網(wǎng)站站長(zhǎng)選擇阿里云的重要原因。
最后,再回到文章開(kāi)始時(shí)候提到的雨傘。這傘好不好,最關(guān)鍵還是要看漏不漏雨;而漏雨不漏雨,只有用過(guò)的人才知道。