淡化攻擊實(shí)現(xiàn)過程 系統(tǒng)化解決應(yīng)用安全問題才是王道
安全事件發(fā)生的最初階段,是“黑客”促使我們思考安全漏洞的危害–往往考慮的是直接危害,同樣我們最初的解決辦法當(dāng)然是“頭痛醫(yī)頭腳痛醫(yī)腳”。同時,許多人對于黑客的行為感到相當(dāng)好奇,偷窺欲望油然而生,許多人鉆研黑客技術(shù)往往就是因?yàn)楹闷妫F(xiàn)實(shí)當(dāng)中有攻擊能力往往成為衡量一個人技術(shù)水平的“不成文共識”。本人對這些現(xiàn)象不否認(rèn)但不支持也不贊成,這種觀念上的分歧的根源往往在于每個人站的角度不同使然。
如果你的職責(zé)是守護(hù)一個產(chǎn)品,確保它可以提供安全的服務(wù)給我們的客戶,我需要思考什么?先看一下,你同意以下觀點(diǎn)嗎?
1. 你學(xué)著黑客一樣在測試環(huán)境去攻擊我的產(chǎn)品,發(fā)現(xiàn)問題立即封住,這是我的主要職責(zé)
2. 你監(jiān)聽用戶行為,發(fā)現(xiàn)惡意行為,立即堵住,同時找到惡意用戶的攻擊點(diǎn),找找問題,如果有問題,封住,這是我工作的重要組成部分
3. 你的老板可能會認(rèn)為我發(fā)現(xiàn)的問題越多,說明技術(shù)越好越用功,對產(chǎn)品的安全性越有信心
4. 你擔(dān)心當(dāng)某一天,我再也無法發(fā)現(xiàn)產(chǎn)品的安全問題了,是不是我也就沒事兒了,輪到我下崗了
如果你同意或基本同意以上觀點(diǎn),我覺得你所維護(hù)的產(chǎn)品發(fā)安全性相當(dāng)危險,至少你沒有足夠的理由對你的產(chǎn)品的安全性足夠的放心。
再看一下以下觀點(diǎn),你同意嗎?
1. 你研究黑客行為,目的是掌握潛在的安全漏洞的存在形式,以檢查本公司產(chǎn)品是否有類似問題
2. 你研究各種常見漏洞,目的是掌握漏洞的產(chǎn)生的根源,以便我系統(tǒng)的總結(jié)它的原因,系統(tǒng)化的統(tǒng)一在產(chǎn)品當(dāng)中解決它
3. 你努力著試圖把各種漏洞的產(chǎn)生的根本原因總結(jié)到一起,抽象出共性,以使其變?yōu)橐?guī)范,在產(chǎn)品開發(fā)過程當(dāng)中以便程序設(shè)計(jì)與實(shí)現(xiàn)人員只要遵守規(guī)范,便可避免諸多潛在安全問題的出現(xiàn)
4. 你研究滲透測試目的不是用測試來發(fā)現(xiàn)所有的安全問題,而是用來檢查我以上三條是否需要完善
如果你同意或者基本同意以上觀點(diǎn),至少你所維護(hù)的產(chǎn)品的安全性是可控的,可度量的,內(nèi)心是有底的,如果你敢大膽的說你的產(chǎn)品足夠安全,那可性度是相當(dāng)高的。
最后,用一個例子來表明為什么要淡化攻擊過程實(shí)現(xiàn):
如何發(fā)現(xiàn)XSS漏洞?我一句話就能說清楚:用一串帶有Javascript敏感的字符串來篡改替換HTTP請求頭當(dāng)中的參數(shù)值,觀察HTTP響應(yīng)里是否被返回,如果返回是否被正確編碼(叫轉(zhuǎn)義也行)的過程。
如此說來,發(fā)現(xiàn)一個有XSS漏洞的API的XSS問題對于一個普通的軟件測試人員也并非難事兒。一個簡單的反射式XSS問題,可能5分鐘就可以確定,但是,我要強(qiáng)調(diào)一下這個“但是”,這個XSS漏洞如何反變成可利用的可以實(shí)現(xiàn)攻擊的漏洞,這個過程將可能是1小時也可能是一個月,還有可能是1-2年!
對于我,一個企業(yè)的產(chǎn)品安全維護(hù)者,解決這樣的一個XSS問題可能也只需要5-10分鐘,如果讓我花1小時到2年時間來證明它的利用價值有多高,請問同行們,你覺得有意義嗎?
有一個群體的人會回答:有意義! 他們往往是非產(chǎn)品安全維護(hù)人員,可能是黑客產(chǎn)業(yè)鏈中的人,也可能是強(qiáng)烈的黑客技術(shù)的好奇者……,如果不幸的有我們同行在里面,我會覺得很不是滋味,
我理想中的同行們應(yīng)該是這樣的:
我有能力成為黑客,但是我不會把時間浪費(fèi)在“當(dāng)黑客”這一行當(dāng)上。