論壇文章
台灣中油導入Fortify SCA 鞏固資安無漏洞
台灣中油股份有限公司 - 台灣中油油品行銷事業部資訊室主任 楊政君
前往目錄

一分鐘看問題

受訪者

台灣中油油品行銷事業部資訊室主任 楊政君

導入產品

Fortify SCA(Source Code Analyzer) 程式碼安全檢測工具


導入效益

  • 在組織管理層面上更能確實掌握軟體開發品質。
  • 透過Fortify SCA找到問題點及問題程式碼確切行數與位置、問題追蹤資料流程、Call Graph循序圖、以及詳細的問題說明與修復建議,間接達到開發人員自我學習提升「安全」程式編碼的效益。
  • 除了集中式的檢測外,掃描亦可透過自動化排程、或直接與整合開發環境(IDE)如Visual Studio做整合,在撰寫程式時可達到立即發現並及時修改。
  • Fortify SCA所偵測到的問題都依據最嚴謹的標準篩選並會將問題做嚴重等級分類,因此工程人員可依照嚴重等級來做為修復的優先順序參考。
  • Fortify SCA與軟體開發已能相互整合,進而提供完善的系統防禦功能,檢測出應用程式在上線前的程式安全漏洞,精準提昇對軟體品質的要求。

專案挑戰

  • 油品行銷事業部資訊室有六位工程開發人員,不但需要進行程式開發,同時還須確保所開發的軟體安全與品質,因此人力成為最大課題。
  • 由於系統的變動性相當大,特別在業務變動大的單位,很容易修改甚至推翻先前所開發的程式,但程式碼檢測卻常要到某一個段落時才執行,如此很難掌握系統上線後可能會發生問題的情況。
  • 軟體安全檢測的步驟在尚未使用Fortify SCA前,主要是透過人工檢測的方式,確實相當困難且未能全面完善。
  • 主管的開發能力不一定高於程式設計師,有時很難真正察覺系統中的問題。
為此油品行銷事業部資訊室經過評估測試後選擇導入Fortify SCA程式碼安全檢測工具,做為軟體開發階段提升系統資訊安全與品質的主要輔助工具

民國88年中油公司因應油品市場自由化的挑戰,為兼顧油品通路與業務的架構規劃,同時建立顧客與流程導向的組織模式,台灣中油油品行銷事業部就此應時而生。油品行銷事業部在油品銷售流向分為零售與批售:零售即是常見的加油站,全台包括662個自營加油站以及1,359個加盟加油站據點;批售對象多為政府機構與大型廠商。因此客群不論是一般駕駛、政府機關或民間企業,其顧客資料與交易明細都得靠資訊室同仁所開發的系統進行資料處理。

內部所開發的應用系統雖透過SSL加密通道提供近8,000個客戶端連線使用,但面對駭客日新月異的攻擊手法,資訊安全議題更顯重要,為此油品行銷事業部資訊室經過評估測試後選擇導入Fortify SCA(Source Code Analyzer)程式碼安全檢測工具,做為軟體開發階段提升系統資訊安全與品質的主要輔助工具,以加強應用系統安全強度。

縱深防禦應考量軟、硬體 事先防範系統設計問題

中油油品行銷事業部資訊室主任楊政君表示,在行政院國家資通安全發展方案中特別強調,單位在落實資通安全時,應考量到資安的「縱深防禦」。資訊室過去在環境與系統方面,透過IPS、防火牆與防毒軟體進行防範,在硬體上確實很容易就能解決,不過在軟體上得考量到工程師在設計上的邏輯思維與程式開發習慣的差異,因此系統的資訊安全與品質管控更具難度。

目前,油品行銷事業部資訊室共有六位工程開發人員,不但需要進行程式開發,同時還須確保所開發的軟體安全與品質,除軟體須符合安全認證的基本要求外,並希望能事先防堵一些常見的問題漏洞,因此人力成了最寶貴的資源。楊政君表示,由於系統的變動性相當大,軟體開發生命周期也隨之減短,特別在業務變動大的單位,很容易修改甚至推翻先前所開發的程式。在系統需求不斷修正的情況下,程式碼檢測卻常要到某一個段落時才執行,如此很難掌握系統上線後可能會發生問題的情況。

軟體安全檢測的步驟在尚未使用Fortify SCA前,主要是透過人工檢測的方式,確實相當困難且未能全面完善。利用人工抽樣方式,由軟體工程師開發完成後隨機檢測,再由主管進行過版與覆核,這樣大多只能顧及到系統畫面與功能是否符合使用者需求,未能真正發現存在於系統中有問題的程式碼,且又礙於主管的開發能力不一定高於程式設計師,有時很難真正察覺系統中的問題。因此資訊室在人力及技術的考量下,主動提出建置相關自動化檢測的機制,並希望能在程式開發階段時,能符合基本資安要求,提昇軟體品質。

管理軟體品質漸入佳境 自我學習改善編碼技巧

油品行銷事業部資訊室除了內部自行開發軟體系統外,另一部份由委外廠商開發,過去也都是以人工檢測的方式,無法全面了解並預防上線後可能帶來的安全性問題。資訊室也希望利用相關檢測工具,在上線前可以檢測所有軟體系統,以減低上線後可能產生之風險。

楊政君表示,在系統測試當中,測試人員對於功能面雖可透過畫面與系統回應兩部分進行檢測,但在安全性與品質面則需依靠檢測工具以提供分析報告,從中了解應用程式之風險等級,進而循序漸進解決所偵測到的問題。

導入Fortify SCA近二年的時間,楊政君強調,在組織管理層面上更能確實掌握軟體開發品質。另一方面,相較於以往系統驗收,現在的工作流程中增加了「資訊安全與品質問題修正」的步驟,短期對於開發人員可能會增加額外的負擔,但中、長期來看,對開發能力與軟體品質提昇上將有極大幫助。開發人員可以透過Fortify SCA找到問題點及問題程式碼確切行數與位置、問題追蹤資料流程、Call Graph循序圖(函數呼叫關係圖)、以及詳細的問題說明與修復建議,間接達到開發人員自我學習提升「安全」程式編碼(Secure Coding)的效益。

主要負責的工程師劉大成在導入Fortify SCA後,認為此檢測機制確實能增加程式碼安全性與開發品質,並提升檢測效率。除了集中式的檢測外,掃描亦可透過自動化排程、或直接與整合開發環境(IDE)如Visual Studio (2005, 2008, 2010) 做整合,在撰寫程式時可達到立即發現並及時修改。不過,由於Fortify SCA所偵測到的問題都依據最嚴謹的標準篩選並會將問題做嚴重等級分類,因此工程人員可依照嚴重等級來做為修復的優先順序參考。劉大成強調,Fortify SCA在開發軟體中所扮演提升軟體品質的角色,確實防範了許多漏洞發生,也提供工程師另一種學習管道。

廠商以教練角色協助 讓系統有效發揮功效

Fortify SCA的導入過程中,從需求訪談、輔導上線、教育訓練等階段,楊政君都給予叡揚資訊高度肯定,並認為導入原始碼檢測很重要的成敗因素在於廠商協助。建置初期使用單位對軟體的了解有限,若廠商能提供顧問服務與教育訓練,以「教練(Coach)」的角色提供專業與經驗傳承,勢必能讓檢測機制更有效被使用。

同時,楊政君及劉大成都認為,Fortify SCA與軟體開發已能相互整合,進而提供完善的系統防禦功能,檢測出應用程式在上線前的程式安全漏洞,雖然只是基本的檢測動作,但已能在有效的時間內分析大量的程式碼,預防人工抽樣所疏忽的程式編碼問題,精準提昇對軟體品質的要求,也讓開發人員花費更少的時間與精力來解決問題,使修復問題變得更容易。

最後,楊政君表示,這次導入的結果符合預期,無論自行開發或委外專案,在佈署上線前透過Fortify SCA的檢測驗收都相當成功!基於持續強化資訊安全,未來也將進一步評估已上線應用程式做即時防禦的Fortify RTA(Real-Time Analyzer ; 應用系統即時防禦追蹤分析),更加落實資訊安全縱深防禦之全方位保護。