確保Web安全開發(fā)意味著將漏洞看作Bug
在其最近發(fā)布的Web站點(diǎn)安全統(tǒng)計(jì)報(bào)告中(1),白帽安全網(wǎng)站發(fā)現(xiàn),在2010年期間平均每個(gè)Web站點(diǎn)有230個(gè)可能導(dǎo)致被入侵或是數(shù)據(jù)丟失的漏洞。其他最近的研究也顯示,大約70%到80%的Web應(yīng)用包含嚴(yán)重的漏洞(2)。并且在OWASP(開放Web應(yīng)用安全項(xiàng)目)的2010年10大風(fēng)險(xiǎn)報(bào)告中也報(bào)道,這10大軟件風(fēng)險(xiǎn)占據(jù)Web站點(diǎn)軟件漏洞的絕大部分(3)。
這僅僅是回顧了多年來漏洞的一系列最新報(bào)告,幾乎所有報(bào)告都顯示出同一問題:Web站點(diǎn)和應(yīng)用仍帶著安全漏洞被發(fā)布,即使這些漏洞可以很容易地被糾正。不幸的是,這些安全漏洞大多只是在應(yīng)用和Web站點(diǎn)發(fā)布后才被發(fā)現(xiàn)。一個(gè)有關(guān)安全的老生常談的是,建設(shè)安全容易(并且成本低廉),而不是事后通過補(bǔ)救措施才將螺栓擰緊。
為什么這些漏洞能逃過十分熟練的開發(fā)人員的眼睛呢?他們開發(fā)的應(yīng)用和Web站點(diǎn)越來越多地支撐著我們?nèi)虻慕?jīng)濟(jì)。作為安全從業(yè)人員,我們?cè)趺磳?shí)現(xiàn)安全Web開發(fā),并為開發(fā)人員提供需要的工具來減少這些類型漏洞的數(shù)量和發(fā)生頻率呢?對(duì)組織來說,關(guān)鍵是要把安全漏洞像軟件缺陷那樣來對(duì)待,即Bug。
這個(gè)示范式轉(zhuǎn)變中的第一步,也許也是最艱難的一步,就是讓開發(fā)部門經(jīng)理和安全官員對(duì)該看法達(dá)成一致,把安全漏洞作為可用性或是功能性上的bug來對(duì)待。大多數(shù)的開發(fā)部門經(jīng)理專注于功能上的缺陷,這些缺陷阻礙了軟件正常地運(yùn)行。挑戰(zhàn)在于,讓他們明白如果安全漏洞被利用,也可能導(dǎo)致軟件無法正常運(yùn)行,不僅需要宕機(jī)時(shí)間來修補(bǔ)缺陷,還給組織在經(jīng)濟(jì)和名譽(yù)上造成損失。
安全漏洞就是軟件缺陷,需要以同樣的方式精確地處理。就這點(diǎn)達(dá)成一致可能具有挑戰(zhàn),因?yàn)殚_發(fā)部門經(jīng)理通常不理解安全漏洞對(duì)業(yè)務(wù)潛在的影響,他們不了解如何辨別安全漏洞,甚至即使他們能找到漏洞也不知道該如何糾正。
為了支持開發(fā)人員克服這些挑戰(zhàn),安全團(tuán)隊(duì)可以通過定期的對(duì)已在生產(chǎn)環(huán)境中的應(yīng)用和Web站點(diǎn)進(jìn)行漏洞評(píng)估來改進(jìn)Web應(yīng)用安全測(cè)試。像IBM或是Vercode公司提供的Web安全掃描工具可用于這種類型的測(cè)試。測(cè)試完成后,開發(fā)人員應(yīng)負(fù)責(zé)為這些被發(fā)現(xiàn)的安全“bug”創(chuàng)建正式的補(bǔ)救計(jì)劃。這樣做,開發(fā)人員會(huì)逐步熟悉安全測(cè)試及補(bǔ)救措施的整個(gè)周期。
一旦開發(fā)人員習(xí)慣了為生產(chǎn)環(huán)境中軟件實(shí)施的安全測(cè)試和糾正周期,下一步就是將安全測(cè)試融合進(jìn)上線前的QA(質(zhì)量保證)過程中,同樣使用之前用于安全評(píng)估的工具。在這點(diǎn)上,安全bug工單應(yīng)該像其它bug工單一樣開啟,使用開發(fā)人員已上手的同樣的bug追蹤系統(tǒng)。
到了下個(gè)步驟,我們能進(jìn)一步利用軟件開發(fā)生命周期(software development life cycle,SDLC)模型,以確保開發(fā)和測(cè)試Web應(yīng)用的方式的一致性。即使是僅僅開發(fā)內(nèi)部使用軟件的小型公司,也正在建立嚴(yán)格的SDLC過程來減少bug??梢岳眠@些相同的流程,有效地找到安全漏洞。為了充分利用這些已建好的SDLC過程,很可能需要培訓(xùn)開發(fā)人員使用上述的工具來找出安全缺陷。好幾家廠商提供基于Web的平臺(tái),它能夠很容易地集成進(jìn)SDLC過程,并且允許開發(fā)人員在SDLC過程的早期,在單元級(jí)別測(cè)試他們的代碼。作為附加的好處,許多這樣的工具能在偵測(cè)到缺陷時(shí)向開發(fā)人員提供修復(fù)建議。最后,這些工具大多數(shù)能與開發(fā)人員已使用的bug追蹤工具集成,把安全漏洞當(dāng)作功能性的缺陷來進(jìn)行閉環(huán)管理。
通過重新定義安全漏洞為功能性的缺陷或bug,并為Web開發(fā)人員提供需要的工具和流程來確定bug和修復(fù)它們,這樣安全利益相關(guān)人就讓安全作為組織SDLC過程中不可或缺的一部分,即建設(shè)安全而不是事后拉緊門閂。這不僅會(huì)促進(jìn)Web站點(diǎn)和Web應(yīng)用成本降低,而且更加安全。
【編輯推薦】