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