如何在交付周期中保Web應用程序安全性(2)
Web應用程序之整合性合成測試的好處
軟件測試的整合性的合成分析方法可以更大地提升效率。集成開發環境的特定插件在發現用戶的編碼錯誤時會向編碼人員發出警告。靜態分析,也稱為“白盒”測試,在將不同的模塊組裝成最終的產品之前,開發人員和審計人員就對其使用此技術。
靜態分析在代碼水平上提供了一種內部人員對應用程序的檢查分析。靜態分析對于發現語法錯誤和代碼水平的缺陷是很有效的,但并不適于決定一個缺陷是否會導致可利用的漏洞。
動態分析和人工滲透測試對于驗證應用程序是否容易受到攻擊是有效的。它也被稱為“黑盒測試”,主要展示的是外部人員對應用程序的檢查分析,可以對投入生產的應用程序進行深入檢查,查看攻擊者是否容易利用其漏洞。然而,動態測試技術僅能用于軟件開發的后期,只能在生成后階段。動態測試的另一個局限性是它很難找出代碼中導致漏洞的代碼源。
這就是將靜態測試和動態測試結合起來以“灰盒”或組合的方法進行混合測試的原因。通過將代碼水平的內部檢查和動態的外部檢查結果結合起來,就可以充分利用兩種技術的長處。使用靜態和動態評估工具可以使管理人員和開發人員區分應用程序、模塊、漏洞的優先次序,并首先處理影響最大的問題。
組合分析方法的另外一個好處是動態測試確認的漏洞可以用靜態工具追溯到特定的代碼行或代碼塊。這便有利于測試和開發團隊進行合作性交流,并使得安全和測試專家更容易向開發人員提供具體的可操作的糾錯指導。
將安全性構建到軟件的生命周期中:實用方法
構建安全性需要人員、過程以及技術、方法。雖然有大量的工具可有助于自動化地強化Web應用程序的安全,但是,如果沒有恰當的過程和訓練有素的人員來創建、測試Web應用程序,那么,任何工具都不會真正有效。
這個過程應當包括一個正式的軟件開發周期及所公布的策略。此外,為所有的開發人員建立角色,并且指派檢查和監管責任也是很重要的。安全和業務在軟件開發周期的每一個階段都應當得到表現,從而可以在每一個步驟處理風險管理。
在軟件的整個開發周期,一個有益的永恒主題就是教育。教育對于開發人員是很重要的,它對于Web應用程序開發所涉及到的全體人員都很有益。因為安全意識既需要從上而下,也需要從下而上。不要低估教育管理人員認識到Web應用程序的漏洞如何影響企業的重要性。
告訴一位管理人員Web應用程序易于遭受跨站請求偽造(CSRF)可能會令他感到茫然,但是如果向他展示軟件錯誤如何會導致客戶數據的泄露,就能夠有助于使其意識到不安全的Web應用程序所造成的切實后果。應該準備特定的案例和度量標準用以闡明潛在的各種成本節約。例如,在開發人員檢查其代碼之前,就演示對開發人員的培訓和IDE的靜態分析插件投資可以阻止軟件應用中的數據泄露根源。
審計人員和評估人員可以從學習常見的編碼錯誤、后果評估以及與Web應用程序“生態系統”(包括后端的支撐系統、現有的安全控制以及屬于Web應用程序環境的任何服務或應用程序)有關的依賴關系中獲益。測試者及質量評價專家應當熟知誤用情形,并且知道誤用情形是如何區別于標準的應用的,還要知道如何解釋安全測試結果,并能夠按照需要對結果區分優先次序。
關注軟件開發周期中的具體步驟,在這些步驟中存在著增加效率同時又可以貫徹安全性和風險管理的機會。
Web應用程序的設計需求
Web應用程序的設計者對于定義功能和業務需求非常熟悉,但是未必理解如何定義安全需求。此時,整個團隊需要協同工作,決定哪些安全控制對最終的Web應用程序至關重要。
將安全性集成到需求階段的步驟
1、根據公司策略、合規和規章要求,討論并定義安全需求。
2、安全和審計團隊應當評估業務需求和Web應用程序的功能,并且在測試和接受期間開始制定誤用案例(誤用情形)。
其好處有兩方面,一是提前清除或減少安全或違規問題,二是減少部署時間。
【編輯推薦】