第六個(gè),SQL的權(quán)限。我也是程序員出身,比如說(shuō)我在開(kāi)發(fā)程序的時(shí)候,我肯定愿意數(shù)據(jù)庫(kù)的權(quán)限用的連接詞的權(quán)限越大越好,這樣我只需要調(diào)整源代碼,不需要調(diào)用權(quán)限,你要把你讓他干什么活兒給他這個(gè)權(quán)限,不能給他更高的權(quán)限。
最后定期檢查網(wǎng)站的安全漏洞,對(duì)你的網(wǎng)站進(jìn)行一個(gè)修復(fù)。
第二類——跨站腳本。也是一種注入,只不過(guò)注入的語(yǔ)句從客戶端發(fā)出到服務(wù)器,然后服務(wù)器沒(méi)進(jìn)行過(guò)濾,又把它的提交過(guò)來(lái)的參數(shù)又返回給客戶端,客戶端本身注入這些是什么呢?是JAVA的標(biāo)準(zhǔn)語(yǔ)言或者是標(biāo)記,這樣就產(chǎn)生是標(biāo)記語(yǔ)言,而不是數(shù)據(jù)語(yǔ)言,這就是跨站。跨站曾經(jīng)在OWASP2010是排在第一位的。
跨站我們應(yīng)該怎么防護(hù)呢?首先跟注入是一樣的,不要相信用戶的輸入,然后把用戶的輸入全部過(guò)濾掉。盡量在HTML代碼中不要插入不可信的一些內(nèi)容。對(duì)于需要插入的內(nèi)容首先在進(jìn)來(lái)的時(shí)候要檢查,在輸出的時(shí)候從服務(wù)器返回客戶端的時(shí)候,要對(duì)它進(jìn)行一個(gè)HTML編碼,然后給他以后,他到客戶端以后,就成了一個(gè)數(shù)據(jù),就不會(huì)是標(biāo)記。
表單繞過(guò),說(shuō)白了實(shí)際上是一種特殊形式的SQL注入。就是說(shuō)原本這個(gè)地方是登陸的一個(gè)表單,輸入用戶名和密碼,而且要輸入正確的用戶名和密碼才能登陸進(jìn)去。但是由于這個(gè)地方存在著漏洞,作為攻擊者他就可以繞過(guò)這個(gè)限制,比如說(shuō)我們看這邊有一個(gè)模型。這種方式在過(guò)去一兩年很多黑客愿意用這個(gè)。
針對(duì)表單繞過(guò)的防護(hù)措施,實(shí)際上跟前面所說(shuō)的SQL注入的防護(hù)措施是類似的。這樣用防護(hù)措施基本防護(hù)住了表單繞過(guò)。接下來(lái)是后臺(tái)管理。后臺(tái)管理本身這個(gè)后臺(tái)很多情況下是對(duì)CMS的系統(tǒng)來(lái)講,作為管理員登陸這個(gè)后臺(tái),發(fā)布一些新聞,這個(gè)時(shí)候這個(gè)后臺(tái)管理如果說(shuō)被攻擊分子找到的話,他可能通過(guò)外來(lái)密碼,或者說(shuō)通過(guò)社會(huì)工程學(xué)登陸這個(gè)管理后臺(tái)。這個(gè)管理后臺(tái)還有一種就是危險(xiǎn)比較大的,比如說(shuō)我們這個(gè)地方是一個(gè)TOMCAT的一個(gè)管理后臺(tái),這個(gè)時(shí)候會(huì)讓你輸入用戶名和密碼,很多以前的只有時(shí)候TOMCAT就默認(rèn)了,進(jìn)了這個(gè)TOMCAT也有這個(gè)管理后臺(tái),這個(gè)時(shí)候可以把整個(gè)原本發(fā)布的程序可以自己發(fā)布新的應(yīng)用。這個(gè)相當(dāng)于是中間件的管理后臺(tái)。
對(duì)于應(yīng)用程序的管理后臺(tái),比如說(shuō)我這個(gè)地方有一個(gè)JEECMS,一般一個(gè)管理后臺(tái)如果說(shuō)他可以直接進(jìn)去,這些他里面會(huì)有一些資源,或者是模板,特就可以直接上傳Wed SCL,就可以控制這個(gè)服務(wù)器。
對(duì)于后臺(tái)的管理,你肯定要做印證,就是權(quán)限的策略的一個(gè)印證,再有就是把你管理后臺(tái)不要放在公網(wǎng)上,就不要放在公網(wǎng)上,因?yàn)樾侣劦陌l(fā)布都是在內(nèi)網(wǎng)里面做到的。這些管理后臺(tái)不要總是用一些讓人一下子能猜到的,你可以起一個(gè)比較復(fù)雜的名字,也不要上面有連接,讓他不容易找到,雖然他也可能用一些字典,或者通過(guò)谷歌(微博)去查,但是總歸這樣你能加大他攻擊的難度。
敏感信息泄露的防范
敏感信息泄露,大大小小的網(wǎng)站這種情況都有。因?yàn)槊舾行畔⑿孤侗旧砭褪呛軓V泛的范疇,這里面嚴(yán)重一點(diǎn)的比如說(shuō)你把他參數(shù)沒(méi)有按照他預(yù)先的定義輸出了,他程序報(bào)錯(cuò)了,前臺(tái)上面會(huì)顯出程序報(bào)錯(cuò)了,有的時(shí)候數(shù)據(jù)庫(kù)報(bào)錯(cuò)了ORA多少等等,這些都屬于信息泄露。對(duì)于這種信息泄露,我們首先就是說(shuō)一個(gè)要把這些錯(cuò)誤信息統(tǒng)一定位到錯(cuò)誤頁(yè)面里去,直接告訴他你出錯(cuò)了,不要告訴他詳細(xì)的信息,比如說(shuō)你原來(lái)第八個(gè)調(diào)試信息,在你的產(chǎn)品上線了以后,你第八個(gè)信息就要關(guān)掉,不要再打開(kāi),不要讓所有天下人都做你的TESTER。
再就是編輯器上傳,這種編輯器本身就集成了好多功能,而且有的時(shí)候開(kāi)發(fā)起來(lái)時(shí)間比較快,也比較容易上手。對(duì)于編輯器上傳一個(gè)就是說(shuō)盡量你要用最新的一些版本,然后對(duì)于一些不能給上傳首先要驗(yàn)證他的后綴,實(shí)際上現(xiàn)在驗(yàn)證后綴也容易被繞過(guò)。這一塊最好驗(yàn)證他整個(gè)的流程。
然后就是弱口令,就是弱密碼,這一塊我就不說(shuō)了,剛才前面一位嘉賓已經(jīng)說(shuō)了,實(shí)際上弱密碼大家已經(jīng)看到了,都很傻,想象不出來(lái),干嗎用六個(gè)1,六個(gè)8,123,123,這一塊沒(méi)什么好說(shuō)的,因?yàn)閷?duì)于你程序員來(lái)講,你怎么弄,你只能對(duì)他的密碼進(jìn)行強(qiáng)制性驗(yàn)證,你判斷他這個(gè)密碼里面沒(méi)有符合你的密碼策略,就不允許他使用。
接下來(lái)講一下安全的一個(gè)防護(hù)。這一塊本身今天并不是一個(gè)針對(duì)于所有程序員Web安全的一個(gè)培訓(xùn),所以我講的比較粗一點(diǎn),比較反的Web應(yīng)用安全防護(hù)。
Web應(yīng)用安全防護(hù)有三個(gè)方面,就是事前、事中、事后。對(duì)于Web應(yīng)用防護(hù)來(lái)講,事前你的程序還沒(méi)有發(fā)布的,在準(zhǔn)備之前,在測(cè)試階段就進(jìn)行安全測(cè)試,無(wú)論你是通過(guò)專業(yè)的源代碼檢查工具也好,還是通過(guò)人工的也好,這樣發(fā)現(xiàn)它一些安全上面的一些弱點(diǎn)、漏洞,這樣就使你的程序本身就是按照性比較高的一個(gè)程序在發(fā)布出去。這個(gè)時(shí)候?qū)τ谑褂脝挝粊?lái)講,肯定他的后面維護(hù)所造成的一些成本就要低了很多,但目前據(jù)我所知,就是整個(gè)外面真正做到這一點(diǎn)的,少之又少。包括現(xiàn)在有一些銀行在努力想做到這一點(diǎn),但是也并不是所有的銀行都做到了這一點(diǎn)。更多的都是,因?yàn)橹袊?guó)有的時(shí)候領(lǐng)導(dǎo)一開(kāi)始沒(méi)有安全漏洞,沒(méi)有什么,他都不重視,非要等到黑客攻擊他一下,他感覺(jué)到威脅了,說(shuō)要趕緊做安全,但是實(shí)際上應(yīng)用已經(jīng)在線上使用了,這個(gè)時(shí)候有會(huì)去修補(bǔ)。今天修了那個(gè)洞,明天就有那個(gè)洞,那個(gè)洞修完了還有無(wú)窮的洞,這就是事前。事前還包括我們程序員自己把這個(gè)代碼編寫(xiě)的更安全,我也做過(guò)開(kāi)發(fā),我也知道上過(guò)很多單位一進(jìn)門(mén)就是小黑板,小黑板就是3月1號(hào)什么項(xiàng)目必須上線,3月15號(hào)什么東西,程序員壓力都很大,我怎么樣想把這個(gè)老板交給我的時(shí)間之內(nèi)功能能滿足就不錯(cuò)了,我什么時(shí)候考慮安全啊?但是為了對(duì)自己的產(chǎn)品負(fù)責(zé)的話,還是在可能的情況下,更多的去考慮安全。實(shí)際上有的時(shí)候往往就是一個(gè)舉手之勞的東西。
比如說(shuō)像OWASP有一個(gè)ESAIP函數(shù),這個(gè)就是一個(gè)JAVA的包,你在寫(xiě)每一個(gè)程序代碼的時(shí)候,只需要聲明引用上去就很簡(jiǎn)單,也不會(huì)花你很多時(shí)間,這是事前。
事中就是這個(gè)應(yīng)用已經(jīng)上線了,上線了以后已經(jīng)在線上正常運(yùn)營(yíng)了,在整個(gè)正常運(yùn)營(yíng)過(guò)程中,首先你要有安全的一個(gè)運(yùn)維的一些制度,你的整個(gè)流程,然后你的訪問(wèn)控制,然后你的整個(gè)應(yīng)用程序這一塊你要經(jīng)常性去自己做一些檢測(cè),日常的常規(guī)檢測(cè),甚至可以請(qǐng)專業(yè)的安全公司給你做安全測(cè)試、滲透測(cè)試,這一塊你要努力把安全的風(fēng)險(xiǎn)每一天都在減少。因?yàn)榘踩肋h(yuǎn)是一個(gè)動(dòng)態(tài)的,并不是一個(gè)靜態(tài)的。就像去年曾經(jīng)有一個(gè)SQL 2的安全出現(xiàn)了問(wèn)題,作為一個(gè)正常的單位必須要經(jīng)常做一個(gè)正常的檢查,就像給自己做一個(gè)體檢一樣,這樣只有自己的毛病在什么地方,針對(duì)性吃一些藥。
推薦閱讀
與你親密接觸 ThL深圳西鄉(xiāng)體驗(yàn)店盛大開(kāi)張
以后西鄉(xiāng)人體驗(yàn)或者購(gòu)買(mǎi)ThL手機(jī)再也不用跑去華強(qiáng)北那么遠(yuǎn)了!2月中,ThL西鄉(xiāng)體驗(yàn)店正式落戶在西鄉(xiāng)街道富成路,屆時(shí)深圳市民又多了一個(gè)購(gòu)機(jī)地點(diǎn)選擇。據(jù)了解,西鄉(xiāng)擁有非常好的手機(jī)消費(fèi)氛圍,ThL希望借助西鄉(xiāng)布局深圳>>>詳細(xì)閱讀
本文標(biāo)題:安恒劉志樂(lè):“泄密門(mén)”帶給我們的警示
地址:http://m.sdlzkt.com/a/kandian/20120305/36966.html