果核數位軟體開發安全部資安顧問林秉正與果核數位軟體開發安全部資安顧問吳怡儒

因應數位轉型、強化IT關鍵新能力,許多企業除了增設DevOps團隊,積極推動CI/CD任務之外,也會更進一步地往DevSecOps靠攏,以實踐安全開發,並落實「安全左移」的概念;但在導入相關安全性檢測的過程中,尤其是針對白箱測試(SAST)的原始碼檢測,部分企業因缺乏足夠時間與資安人力對相關安全議題的進行研究,因此對於檢測結果的風險評估並無確切把握。

為協助企業實踐安全開發,果核數位於日前舉辦「Source Code Analysis Workshop」,期望能透過Workshop的體驗活動,強化開發人員、資安人員的安全開發意識,透過了解原始碼檢測的核心概念與目的,紓解當前原碼檢測流程推動與執行上的痛點,真正做到降低風險。

果核數位軟體開發安全部資深經理蔡昆達表示,據iThome報導指出,國外漏洞懸賞平台HackerOne統計去年(2022)6月到今年9月的白帽駭客活動,點出其間攻擊重心落在網站與線上服務,且95%駭客都擁有針對網站的攻擊技能;多數企業皆有對外提供的網站服務,因而面臨嚴峻的威脅與挑戰。

企業避免面臨上述風險的最優解法,除了在測試階段,進行弱點掃描、滲透測試等黑箱檢測的方法外,更該在開發階段,就導入原始碼、第三方套件的白箱檢測程序,嚴格驗證程式碼品質與安全性。果核數位希望透過這場Workshop,引領大家理解如何善用檢測工具、建立自動化程序,針對所有進入版控的程式碼,進行白箱檢測並產出報告,以及如何有效的修補報告中的程式碼弱點,以利企業及早偵測與修補漏洞,降低資安風險的隱患。

結合專業顧問助力,打造DevSecOps

果核數位軟體開發安全部資安顧問吳怡儒指出,現今基於合規、甲方要求、專案品質提升等緣故,系統上線前必須做好原始碼檢測的安全管控,逐漸成為各企業的內規標準;故越來越多企業採購原碼檢測工具(或稱白箱檢測工具),藉此產出檢測報告、修復系統程式弱點,滿足合規要求。但從實務面來看,此事並非如大家所想得簡單,例如:當程式碼被檢測工具掃出弱點,但原始碼檢測工具將該弱點歸類為程式碼品質問題,究竟是否必須修補?而資安、資管部門如何判斷此弱點不會被惡意利用?若又遇到上線時程的壓力時,流程又該怎麼處理?其餘還有許多讓人兩難的棘手問題,久而久之,難免迫使人們傾向選擇掩蓋缺陷、而非真正解決難題。

果核數位軟體開發安全部資安顧問吳怡儒

吳怡儒說,以往常見的原碼檢測流程,會在開發人員完成程式開發後啟動,將程式碼簽入測試區版控系統,再以手動方式簽出程式、拉到檢測機(如OpenText的Fortify SCA)執行掃描,在取得檢測報告後,向資管組提交上版申請,經資管組確認無誤,且取得資安單位核可後,才能執行佈版。綜觀這個流程,通常存在幾個盲點,譬如:開發人員可能在程式送檢、提交報告等手動過程中,存在竄改程式、隱藏報告風險等規避及取巧作為的風險。另在上單申請時,針對開發人員宣稱暫不修改或無法修改的系統程式,資管組也可能因疏於訂定補償性措施與追蹤機制,以致因此埋下隱藏的資安破口。

於是越來越多人主張改採CI/CD自動化流程,心想只要把檢測工具串接到流程中即可,但箇中整合工作相當複雜,很難冀望開發同仁可自力完成這些任務;此時企業不妨引進外部專業顧問,協助打造安全、有序、合規、自動化的DevSecOps流程,力求破除人為操作的盲點,而具備多家企業實作經驗的果核數位,可快速協助企業建立客製化的CI/CD自動化流程。

體驗CI/CD自動化流程,藉由檢測報告,綜覽程式漏洞與修補建議

接著進入Workshop實作,由吳怡儒引導學員,透過網頁登入系統帳號後,建立專案並循序完成程式簽入,並在調整YAML腳本後,即刻開始自動化檢測,直至報告出爐;與會者可藉由依循這套明確且精簡化的步驟,輕鬆完成一次的CI/CD流程。

值得一提,本次Workshop採用Fortify SCA檢測工具,為此吳怡儒示範如何閱讀Fortify報告,重點包括掃瞄的檔案數、程式行數、檢測工具版本、規則集版本,以及掃出的弱點數,標明Critical、High或Low的分佈數量;接著依弱點類別查看其簡要描述、座落在哪些程式的哪幾行位置,以及報告中原廠OpenText提示的修補建議等資訊。

此後主辦單位悉心鋪排幾個精彩橋段。首先開放學員踴躍提問,由果核數位軟體開發安全部副理蔡龍佑協助解惑;他強調自動化是最單純的解法,但如何在自動化的過程,規劃與限制各角色的職責及範圍,則是一個極為複雜且客製化的問題。而在此過程中,果核可提供最佳實務作法的參考案例與建議,協助企業做好迎向自動化的準備,簡要如:在檢測報告中產出增列檔案清單明細,並引導資安人員根據檔案清單、程式變更範圍,比對與確認掃描結果是否一致,驗證報告的正確性。

其次,由果核數位軟體開發安全部資安顧問林秉正,分享弱點的成因與修補方式,他鎖定Path Manipulation(路徑操弄)、Insecure Randomness(不安全的隨機數)兩項弱點進行說明,結合情境案例進行演繹。第一例為一個資源查詢系統,讓使用者登入系統、查看資源列表並下載所需資源;而當駭客發現下載資源網址中存在「fileName=Logo1.jpg」字串時,定會隨即嘗試以路徑操弄的方式,嘗試取得其他檔案並且得逞。

果核數位軟體開發安全部資安顧問林秉正

第二例為一個樂透遊戲,規則為每10秒開一次獎,隨機開出5個1~48不重複數字,使用者猜中3個以上就算得獎;而當有心人士經過研究,發現可利用相同時間種子所建立的Random物件,即可產出一模一樣的亂數表,因此得以每猜必中。林秉正將兩項案例的程式碼都進行Fortify SCA掃描,報告結果中明確標定有問題的程式行數,並跟與會者具體闡釋問題根因,爾後說明Fortify修補建議的實作方式,並進一步分享實務上的相關利用情境與修補作法。

進入活動尾聲,由果核數位資安服務產品經理金芸安說明果核數位可提供的解決方案。果核數位可提供一次性原始碼檢測,服務內容內容包含初測、初測報告說明及複測;若企業在一年內需要多次檢測服務,建議採用果核數位的年度檢測服務方案,或者在經評估後協助導入原始碼檢測工具。特別適用那些需要交付給終端客戶軟體程式或專案的企業,因為在交付開發專案驗收前常需要出具第三方檢測報告,所以果核數位的年度檢測方案非常合適。

在果核數位收到客戶提供之原始碼並確認可進行檢測後,果核預計三個工作日內提供檢測報告。此外,若企業客戶有建構CI/CD自動化版控需求,果核將針對其環境需求,結合公司內部現有原碼檢測工具或版控系統,協助客戶量身訂製適合之DevSecOps方案。

加入粉絲團獲取更多資安/活動資訊

 

熱門新聞

Advertisement