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