開發過程實時揪出安全漏洞、避開程式碼膨脹帶來的危機
過去幾十年的高速編碼中,軟件編程已經神速地實現自動化,快得傳統方法已不能保護被創造出來的東西。普遍估計中等規模的金融機構擁有超過1000個應用程式,這些應用程式都有數十萬行自訂代碼,還包含幾十個到幾百個資料庫、框架和元件。超過20%的應用程式每年都會有新增和更新的代碼,這不斷增加的複雜性令應用漏洞越來越多。
複雜軟件最易攻破
在資料洩露事故的細節披露後,一名摩根大通前僱員向《紐約時報》形容攻擊者仿佛竊取了大廈的圖則,公司沒辦法監控每個門和玻璃窗。摩根大通花了幾十年時間來創建其軟體及基礎設施,難道沒有簡單的辦法可以作出改善?
根據安全專家表示,典型的企業web應用程式一般包含22.4個嚴重漏洞,這些漏洞通常很容易找到,但其嚴重程度不相同。通過結合這些漏洞以及日益複雜的威脅,我們看到越來越多的資安事故。
高速開發安全的局限性
一般安全檢查是透過手動滲透測試和代碼審查來發現漏洞,而開發人員也有時間在應用正式推出之前來修復問題。但最近軟件發展的進步,database和component的廣泛使用、高速開發方法、複雜的框架以及高深莫測的協議,都減慢了手動分析的效率。
很多行業已經將生產速度最大化,令品質無法跟上。DevOps社區已經成功地使用更快的反覆運算來保持軟體專案不會偏離軌道太遠。但安全沒有同步發展,我們必須找到新的技術來確保快速發展和擴展中的安全性。
重構應用安全
首先,我們需要摒棄安全例外的觀念,並從其他行業借鑒經驗。開發人員必須將安全測試、入侵偵測和回應以及運行時的保護/安全作為每個應用程式開發工作的一部分,確保應用程式不斷測試自己並提供即時安全資訊。Etsy、Netflix、Twitter和Yelp等公司已經意識到這個問題,並開始部署新的安全工具。這些工具不像傳統工具只慬慬於開發過程的最後期使用,而是在發展過程中實時採用,並能從中做到即時收集安全資訊;同時這些工具亦不會干擾正常軟體交付過程,最終達致避免延誤目標。
能實現這情況並不困難,你可以從創建新的專案、測試範例或執行簡單測試的工具開始,使用免費的Contrast for Eclipse外掛程式,這大部分基礎設施可能已經由DevOps團隊預製好了。我們需要重新想想所有的安全測試技術,讓它們可以共同發揮作用,安全專家角色變成教練和工具達人,而不只是人眼追逐漏洞,因為這樣永遠已跟不上開發趨勢。