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