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