Did the SAST scan and got the report. What now?

October 15, 2014

對大部分企業組織而言,資安不但非常重要,同時也是個多面向且複雜的議題。然而現今駭客的頭號攻擊對象常常為應用程式漏洞,這不僅是因為人們在商業和日常生活中越來越依賴相關的網站和應用程式,更多時候是因為程式的弱點往往沒有被確實的修補。對於駭客來說,這些就是俗稱的軟柿子,當然他們就豪不客氣地享用了。

混合式資安防護

企業通常不會只使用單一種類的資安相關應用工具來確保其產品及相關網站的安全性完善。 一般來說,大多數企業會同時採用「黑箱測試」和「白箱測試」的混合式解決方案。

  1. 黑箱測試: 又稱動態分析或動態程式碼安全性檢測,是以駭客的思考模式與可能利用的途徑 〈從網址到網站本身〉對目標進行檢測,並找出運作中的應用程式弱點。
  2. 白箱測試:也稱為靜態分析或靜態程式碼檢測,是在應用程式開發同時或正式上線之前就原始碼本身進行掃描,並找出所有可能被攻擊的弱點。 大部分的公司會使用黑箱測試於已經上線的產品、而白箱測試工具則於內部開發流程時期由原始碼端進行資安防護。

傳統白箱測試工具

目前市面上有數種所謂「白箱測試」工具可以幫助企業組織掃描其自行開發的網站或是應用程式,並協助找出其中的弱點。白箱測試的優勢在於其核心技術是掃描程式原始碼,所以可以準確地找出弱點的位置並提供最佳的修正建議。有些白箱測試工具也提供弱點優先順序的報表,目的是讓這些人力資源短缺的公司可以先從高度危險的漏洞開始修補。近年來已經有很多中大型企業在網站開發流程中採用白箱測試工具做為開發流程的一個部分。 但這樣子的SDLC 〈軟體開發流程〉 是有嚴重的瑕疵的:因為在完成白箱測試之後、上線或部屬之前,即使從檢測報表得知弱點,還是需要大量的工程師人力及時間去修補這些弱點。

白箱測試,然後呢?

傳統原始碼檢測通常會掃描出成千上百個弱點,而且當中絕大多數的弱點種類都是在應用程式中重複出現的。雖然這些弱點種類重複,但仍需工程師逐一修改。許多企業在現實中不得不因以下兩種原因讓有弱點的程式上線:其一,內部逐一手動修改弱點非常耗時、極可能會延遲新功能上線;其二,外包或請顧問協助修改弱點所費不貲。在這種漏洞沒有完全修補的情形下,做了白箱測試跟沒有做不是一樣的結果嗎? 對於想要將内部流程和能力變得更有效率的企業,不論是内部調派人力或額外花費外包來修復弱點都無法達成公司的目標。傳統白箱檢測工具就算經常使用也無法提升開發者團隊的效率,開發者還要再使用其它專門爲效率而生的開發工具。

綜觀目前市面上的靜態分析工具,大部分僅僅著重於開發弱點修正的功能。資安廠商還是停留在提供顧問服務的形式,以計時或專案爲單位向客戶額外收費,但這樣的修正形式反而是對客戶端產生另外一個費用上的負擔。目前在市面上有個新技術,在傳統的靜態分析工具基礎之上開發了類似機器人的功能,如同多了一個不用休息睡覺的資安工程師,可以在開發流程中扮演開發和QA測試之間弱點偵測及修復的吃重工作。這個新技術能夠幫助程式開發者找出並自動修復程式碼中的弱點──就如同文件編輯時使用的拼字檢查功能,如此一來,自動修正弱點在彈指間即可完成,遠勝於傳統靜態掃描後得到厚重的報表還得自行修復弱點的窘境。

台灣企業要面對的資安問題

在臺灣,應用程式的安全一直都是矚目的焦點。各企業因應新法令的要求,原始碼檢測工具在大部分企業開發流程中都將占有一席,但這些程序常常比產品功能本身更耗時。因此企業在採購產品前最好先考量清楚自己企業的需求,例如防護完整性、人力耗費、產品效能等等,才能找到最適合企業的解決方案。

This story originally appeared on Info Security.