影響應用程序安全的四大關鍵因素
我們最常聽到源于跨站腳本和SQL注入攻擊的安全泄露事故,這些事故通常發生在相關漏洞被成功利用后。那么我們應該怎樣做來防止這種攻擊呢?
一個全面的安全團隊不僅能夠對事件和漏洞利用提供響應措施,還能夠積極配合內部信息系統團隊來打造一個積極主動的軟件安全態勢。用于為信息系統和軟件構建安全代碼的有效的應用安全程序通常依賴于兩種類型的自動安全測試:靜態安全掃描測試和動態安全掃描測試。
靜態掃描通常發生在代碼開發周期中,其中,靜態代碼通過威脅建模和分析進行掃描,從中發現漏洞。而動態掃描是對生產環境的實際代碼進行掃描,在代碼處于工作狀態時查找漏洞。還有第三種類型的測試—手動滲透測試,其中涉及白帽分析,需要人類參與。通常,有效的應用安全程序會利用這三種安全掃描測試,靜態安全和動態安全掃描是作為應用開發生命周期的一部分,而滲透測試則在需要時使用。
有效的自動代碼掃描策略必須盡可能地無縫連接IT開發團隊。有效的自動安全程序的關鍵成功因素是,需要IT開發團隊最少量的工作。在周期內工作和主動安全程序之間有著反比關系。所需的周期外工作越多,安全代碼掃描程序部署和成功率就越低。在IT應用開發周期外的代碼掃描通常需要開發進度以外的時間,并被視為額外的不受歡迎的任務。另外,調度和追蹤過程以及保持狀態還需要額外的努力。
成功部署安全代碼掃描程序的主要障礙是:
手動掃描工作:代碼掃描需要手動工作來上傳代碼(通過API或者通過門戶網站),而這需要額外的開發時間和精力。在某些情況下,還需要特殊的編譯指令,以及特殊的構建來支持這種掃描工作。
手動過程:開發過程周期外的代碼掃描需要為掃描時間表和重新掃描之前的持續時間建立一個程序。這將需要專門的資源來管理這個程序,以確保提醒設置和掃描在規定日期完成。
代碼覆蓋:測試領域有一句老話,你不能測試你不知道的東西。需要開發人員上傳代碼的周期外測試同樣依賴于開發人員上傳正確的代碼,以用于靜態代碼掃描。對于維護該程序的安全團隊來說,確保所有庫和相關代碼被上傳幾乎是不可能的任務。有效的應用程序靜態和動態代碼掃描程序有四個關鍵要素。
·內部部署
·連續掃描
·與開發構建周期緊密整合
·與缺陷追蹤系統緊密集成
1.內部部署
內部部署并鏈接到源代碼控制系統的掃描程序不再需要開發人員花時間來尋找代碼、進行特殊的編譯和上傳代碼。相反地,開發人員可以在源代碼控制樹選擇代碼的正確位置,所有子文件都將進行定期掃描。內部部署的動態掃描解決方案可以簡化動態掃描,因為不需要更改防火墻規則來允許掃描測試供應商使用外部工具來訪問測試網站。
2.連續掃描
內部部署系統可以設置為連續掃描,這不需要手動來上傳代碼,內部部署系統還可以配置為連續掃描或定期掃描,因為這種內部部署設置,現在企業可以更為頻繁地進行掃描。
3. 與開發構建周期緊密整合
與源代碼控制和構建系統緊密集成的掃描程序允許代碼掃描利用很多源代碼控制和構建系統的功能。例如,使用連續構建集成的高級開發團隊可將構建系統配置為:在開發人員的構建被整合或簽入到主代碼庫之前通過某些測試。代碼安全掃描測試還可以設置為這些性能測試或單元測試之一。
4.與缺陷追蹤系統緊密集成
大多數現代源代碼控制和構建系統還與缺陷跟蹤系統緊密集成,這樣一來,軟件缺陷就可以連接到特定版本的代碼,這反過來又可以聯系到特定系統構建。有些代碼掃描程序會在現有缺陷管理系統自動創建缺陷,這能幫助減少周期外時間,并將無縫整合安全缺陷到團隊缺陷積壓中。
有效的主動應用安全需要代碼掃描無縫地整合到應用開發周期,安全掃描越能夠像現有開發流程一樣工作,開發團隊成功部署和持續使用的機會就越大。