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