論壇文章
【決策e話題】雲端白箱檢測夠實惠 中小企業最受用

靜態程式碼安全檢測服務需求日益增高

依據今年一項研究報告的結論,至2014 年有關靜態程式碼安全檢測服務(白箱檢測)的全球市場大約將會有39% 的成長,在亞太地區的市場估計也有36% 的成長。此市場成長的估計,一方面雖然顯示程式碼安全檢測已越來越受到重視,但另一方面也同時顯示出程式碼弱點所引起的資安問題已普遍存在於現今仍在開發階段以及已經 上線提供服務的應用軟體上。所以目前軟體服務提供商不但是要對新開發的軟體專案進行程式碼安全檢測,另外對於已上線的服務軟體也有必要進行相關的安全檢測。

去年因軟體弱點引起資安問題的個案首推Sony 的Play Station Network,Sony 的 PlayStation Network,去年4 月因為系統軟體弱點的問題導致大約7700 萬筆的客戶資料外洩,直接引起的損失高達數億美元,PlayStation Network 為處理此問題,系統停擺了大約三週後才陸續恢復開始提供服務,對使用者造成困擾也使得公司商譽受到無法估計的損失。今年我國的個資法預計將在年中上路,國內的軟體服務商如發生類似 Sony 案例時,將立即面對賠償的責任,因此及早做好程式碼安全檢測的工作將會是軟體服務商確保服務品質的最佳策略。

主要的軟體弱點及其風險

目前軟體弱點主要可以分為下列三種:第一、認證及授權機制安全強度不夠,第二、系統外界輸入的任何資料隱含執行碼以及第三、程式錯誤狀況的處理。而根據CWE/SANS Top 25 針對網路應用程式資安事件的統計,威脅最大的網路應用程式資安攻擊手法依次為隱碼攻擊(Injection) 接著是緩衝區溢位(Buffer overflow) 及跨站腳本攻擊(Cross-site Scripting) 跟關鍵函數缺乏身分鑑別機制(Missing Authentication for Critical Function)。

其中隱碼攻擊主要是網路應用程式未經檢查而直接執行來自外部的惡意指令,譬如SQL Injection 與Command Injection 等隱碼攻擊手法。緩衝區溢位是較難以預防的程式弱點,它主要是透過將包含攻擊者惡意執行程式執行位址指標的資料寫入程式執行的堆疊(stack)中,並造成程式產生溢位來取得程式的執行權,進而取得相關的組態設定與存取權限。跨站腳本攻擊是一種網路應用程式的安全漏洞攻擊,當網站應用程式沒有適當地檢驗使用者輸入值,惡意使用者便可將程式碼(HTML 以及Script 語言)注入到網頁上,其他使用者在觀看網頁時就會受到影響,造成使用者資料被破壞甚至被安裝木馬成為跳板。

而關鍵函數缺乏身分鑑別機制則是網路應用程式中,自行撰寫的身分驗證相關功能不完善。例如:登入時無加密、Session 無控管、密碼強度未限定等,這樣的錯誤容易造成使用者登入帳戶被盜用進而衍生資安威脅。這些資安威脅產生的風險將包括:

  • (1) 使用者的帳號遭盜用。
  • (2) 個人資料被收集分析。
  • (3) 伺服器端無法提供服務。

白箱檢測 讓弱點無所遁形

靜態程式碼安全檢測服務主要是針對軟體的弱點進行偵測、分類並提供相關的修改建議。而基於目前軟體開發的五個主要階段:提出需求(Requirement)、設計(Design)、實作(Implement)、驗證(Verification) 與維護(Maintenance)。比較好的做法是在設計階段就應該將軟體弱點的資訊安全因素考慮在內,而在程式碼撰寫過程就該納入靜態程式碼安全檢測的工作。

靜態程式碼安全檢測的特性在於不需要去執行程式碼就可以加以檢測,所以可以提早發現軟體漏洞加以修補,不需等到原始碼開發到可以執行或上線之後再花費更多力氣修補漏洞。根據美國 NIST 的研究報告指出,應用程式在發布後進行修補其成本比發布前進行修補高出 30 倍之多。當應用程式架構越來越複雜的今天,其事後修補所耗費的人力和時間成本也越大,因此靜態程式碼安全檢測是從源頭解決資訊安全問題的低成本及高效益的方法。

檢測服務上雲端 經濟又實惠

雲端服務技術主要是希望能發揮共享服務的方式,以減少使用資源達到保護環境的目標。隨著我國雲端技術的推廣,將靜態程式碼安全檢測技術放置在雲端環境以SaaS 方式提供服務,將是雲端服務的新興業務。

目前在國內,軟體開發商如欲進行程式碼安全檢測的工作則必須要採購軟體檢測工具,然而幾個主要的檢測工具不但所需之費用非常高,另一方面也要配合執行相當程度的檢測技術訓練,以及準備相當的資安專家對問題進行確認與修正。但我國軟體開發商大多數是屬於中小型企業,採購檢測工具所花的成本太高,人力更是有限。因此採用雲端上的靜態程式碼安全檢測服務將會是一個經濟又方便的選擇。另一方面雲端上的資料安全保障往往是客戶選擇雲端服務的重要考量因素,雖然雲端運算環境都有資料安全防護的設計,但因為原始程式碼往往是屬於敏感性較高的資料,因此提供一套高強度的保護機制將是雲端服務的關鍵因素。目前比較安全的方式可以是在使用者端就利用高強度的加密技術(如非對稱式加密技術)對原始碼進行加密保護,而在伺服器(雲端) 端則只有在做原始碼檢測時可將加密的原始檔解密進行檢測,其餘時間則以加密的型式儲存在雲端以確保原始資料的安全。

雲端服務 中小企業最受用

軟體開發流程應在軟體開發初期就導入程式碼安全檢測,及早確認軟體弱點的風險所在,同時也要建立各項軟體弱點風險評估與管理辦法以確保資訊安全以及降低未來維護成本。利用雲端上的靜態程式碼安全檢測服務如能提供經濟的價格、方便的使用界面以及高強度的資料保護機制,對我國以中小企業為主的軟體開發公司,除了可以大幅降低軟體開發成本外更可以提升軟體品質,進而增加我國 軟體產業的競爭力。