拒絕“馬后炮”:積極的應(yīng)用程序安全需要四大要素
攻擊者在成功利用了漏洞后,因跨站腳本攻擊和SQL注入攻擊而造成的安全事件已經(jīng)不再是什么新鮮事兒了。為了防止此類攻擊的發(fā)生,安全團(tuán)隊(duì)是否還抱著準(zhǔn)備“亡羊補(bǔ)牢”的心態(tài)?
高效的安全項(xiàng)目和團(tuán)隊(duì)不僅應(yīng)當(dāng)提供反應(yīng)性的措施,而且還要積極地與內(nèi)部的信息團(tuán)隊(duì)協(xié)作,構(gòu)建“先發(fā)制人”的軟件安全。信息系統(tǒng)和軟件代碼的有效安全項(xiàng)目往往依靠兩種自動(dòng)的安全測試:靜態(tài)安全掃描測試和動(dòng)態(tài)安全掃描測試。
靜態(tài)掃描一般在代碼的開發(fā)期間進(jìn)行。此過程借助威脅建模和分析,對靜態(tài)代碼進(jìn)行掃描,從而發(fā)現(xiàn)安全漏洞。動(dòng)態(tài)掃描是對工作環(huán)境中的實(shí)際代碼進(jìn)行的掃描,它在代碼運(yùn)行期間查找漏洞。還有第三類測試,即人工滲透測試,它主要通過白帽分析進(jìn)行人為干預(yù)。真正有效的應(yīng)用程序安全項(xiàng)目利用所有的安全掃描測試,其中靜態(tài)安全和動(dòng)態(tài)安全掃描要深入到應(yīng)用程序的開發(fā)過程中,并在必要時(shí)使用人工滲透測試。
有效的自動(dòng)代碼掃描策略必須與IT的開發(fā)團(tuán)隊(duì)無縫對接。真正有效的自動(dòng)安全項(xiàng)目的關(guān)鍵成功因素是,要求IT開發(fā)團(tuán)隊(duì)付出的額外工作達(dá)到最少。在應(yīng)用程序的開發(fā)周期之外的代碼掃描會占用開發(fā)時(shí)間,會被認(rèn)為是額外的不受歡迎的任務(wù)。
企業(yè)在成功利用安全代碼掃描項(xiàng)目時(shí),面臨的主要障礙是:
人工掃描
要求通過API或通過Web入口人工上傳代碼的代碼掃描,都要求額外的開發(fā)時(shí)間和工作。有時(shí),還要求專門的編譯指令,而且為使掃描運(yùn)行,還需要特定的軟件版本。
人工過程
開發(fā)周期之外的代碼掃描需要建立一個(gè)掃描的時(shí)間表和再次掃描的持續(xù)時(shí)間。企業(yè)需要專用資源來管理項(xiàng)目,設(shè)置提醒,并按照規(guī)定日期完成掃描。
代碼范圍
誰都無法測試不知道的東西。開發(fā)周期之外的測試要求開發(fā)者上傳代碼,而且它依賴開發(fā)者上傳正確的代碼進(jìn)行靜態(tài)的代碼掃描。要驗(yàn)證所有的庫和代碼都能夠正確上傳對于維持程序安全性的團(tuán)隊(duì)來說是幾乎不可能的任務(wù)。
真正有效的應(yīng)用程序靜態(tài)代碼掃描和動(dòng)態(tài)代碼掃描項(xiàng)目有四大要素:
1、本地掃描
鏈接到源控制系統(tǒng)的本地掃描項(xiàng)目現(xiàn)在已經(jīng)不需要開發(fā)者花費(fèi)時(shí)間找到代碼、進(jìn)行專門編譯、上傳代碼了。正相反,代碼的正確位置是在源控制樹中選擇的,而且可以為所有的子文件執(zhí)行常規(guī)掃描。本地的動(dòng)態(tài)掃描解決方案還可以使動(dòng)態(tài)掃描更容易,因?yàn)榘踩珜<也恍枰獮閽呙铚y試供應(yīng)商的外部工具變更防火墻規(guī)則就可以訪問測試網(wǎng)站。
2、連續(xù)掃描
可以設(shè)置本地系統(tǒng)進(jìn)行連續(xù)掃描,這種掃描不要求人工干預(yù)和上傳代碼。還可以配置本地系統(tǒng)進(jìn)行更頻繁的掃描。
3、與開發(fā)周期緊密集成
與源控制和建設(shè)系統(tǒng)高度集成的掃描項(xiàng)目可以使代碼掃描充分利用許多源控制和建設(shè)系統(tǒng)的特性。例如,在開發(fā)者的程序版本與主代碼庫進(jìn)行集成之前,高級開發(fā)團(tuán)隊(duì)可以配置建設(shè)系統(tǒng),用以傳遞某些測試入口。我們可以設(shè)置代碼的安全掃描測試,使其成為類似于性能測試或單元測試的測試入口。
4、與缺陷跟蹤系統(tǒng)緊密集成
現(xiàn)代的源控制和建設(shè)系統(tǒng)還應(yīng)與缺陷跟蹤系統(tǒng)緊密集成,只有這樣,軟件缺陷就可以與特定的代碼版本聯(lián)系起來。如果一個(gè)代碼掃描項(xiàng)目能夠自動(dòng)創(chuàng)建當(dāng)前缺陷管理系統(tǒng)的缺陷,就可以節(jié)約并無縫地集成到團(tuán)隊(duì)的缺陷庫中。
有效的主動(dòng)安全要求代碼掃描盡可能平穩(wěn)地影響應(yīng)用程序的開發(fā)過程。安全掃描在運(yùn)行時(shí)越類似目前的開發(fā)過程,開發(fā)團(tuán)隊(duì)就越容易成功地連續(xù)地采用安全掃描。