GSS資安電子報0216期 【10 大考量因素:挑選全方位 AppSec 平台中 SAST 白箱測試工具的關鍵要素】

訂閱電子報
2023年十一月10日(五) AM 09:00
翻譯及整理:叡揚資訊 資訊安全事業處

  

一目了然的 10 大考量因素

  

  白箱測試工具,其實就是我們所熟知的原始碼安全檢測工具 (Static Application Security Testing, SAST),又稱為靜態應用系統安全測試。而市面上有各種白箱測試工具(原始碼安全檢測工具),您可能很難決定何種方案才是組織最需要的正確選擇。提供您一張快速檢查表,以得知各個考量因素背後的更多細節。

  •  是否讓您進行具有深度且廣泛的掃描?

  • 是否提供預設規則集合支援合規性需求?

  • 白箱測試工具(原始碼安全檢測工具)是否能在多個檔案與編譯版本中找出漏洞?是否充分運用資料流分析與符號執行?

  • 結果的準確性有多高?是否輸出大量誤報與誤判?

  • 是否能夠掃描未編譯的原始碼,以及直接自 Repository 獲取的程式碼?

  • 平均修復時間有多長?是否能識別最佳修復位置並同時修復多個漏洞?

  • 該白箱測試工具(原始碼安全檢測工具)是否合適開發者?是否提供修復指南?

  • 是否支援多種程式語言與架構?

  • 是否能夠輕鬆將該工具自動化整合到開發過程中?

  • 是否為更大型的 AppSec 平台一部分?是否與您的其他引擎整合?

   

01 堅持具備深度與廣泛掃描的能力

   

  不同的公司,與甚至相同公司內的不同團隊,都會有不同的需求。舉例來說,負責關鍵任務應用程式的 AppSec 團隊將需要深入的掃瞄。此類型的掃瞄是最徹底的調查方式,能找出所有低、中、高嚴重性的漏洞,並對應用程式安全性風險進行最全面的檢視。然而,為了專注於優先修復最重要的漏洞,而進一步分析與分級處理已識別的漏洞,會消耗額外的開支。因此,僅進行深度掃描未必適用於所有應用程式。

  在其他情況下,應用程式安全性團隊可能會希望執行較廣的掃描。這種類型的掃描提供了高標準偵測方式,旨在僅找出最關鍵的高嚴重性漏洞。進行範圍較廣的掃描不僅使開發者能夠專注於急需修復的關鍵問題,也使公司能夠衡量。

  所以無論如何,公司都需要包含兩種選項的SAST 白箱測試工具(原始碼安全檢測工具),來滿足不同的團隊、情境所產生的多樣需求。

  建議:SAST 白箱測試工具(原始碼安全檢測工具)應具備深度與廣度。  

  

02 是否有特定合規性需求? 預設的規則集合能提供絕佳幫助

   

  規則預設集合是開箱即用且 AppSec 團隊可以應用於各種掃描的安全規則群組。例如,團隊可能需要一個滿足合規性需求的規則集合,或者僅掃描特定程式碼類型的預設規則集合。

  公司因此需要可預先設定好各種規則集合的 SAST 白箱測試工具(原始碼安全檢測工具),以支援多樣化的需求,例如:合規性需求 HIPAA、PCI DSS、FISMA、OWASP TOP 10、OWASP TOP 10 API,CWE TOP 25 等等;團隊也可能需要其他特定的規則集合來滿足手機、網站應用程式開發需求;或者,他們可能需要更加針對某種程式語言的規則集合來深入掃描對應的應用程式,或更全面的掃描規則集合來掌握應用程式的完整足跡。

  因此選擇一個具備預設規則集合,允許自訂規則,並能夠建立自有規則集合的 白箱測試工具(原始碼安全檢測工具)才會是考量的環節之一。

  建議:選擇提供多個預設規則集合並富有彈性的 白箱測試工具(原始碼安全檢測工具)

  

03 以應用程式為中心看見全貌

   

  SAST 白箱測試工具(原始碼安全檢測工具)必須能找出多個檔案和編譯單元中的漏洞。如此有助於使程式碼更加安全,發現可能被忽視的漏洞,並確保漏洞不會隱藏在應用程式流中。因此 白箱測試工具(原始碼安全檢測工具)若能滿足下述兩個要點將會提供更為準確的結果:

  1. 資料流分析需追蹤辨識輸入資料被使用與操作的程式碼流程,這對於識別複雜的安全性漏洞相當有幫助。
  2. 符號執行(Symbolic Execution)係指採用符號輸入取代真實數值來執行程式碼,如此會允許工具探索程式碼中所有可能的入侵路徑,以找到可濫用的路徑。

  了解應用程式流間如何互動,以及它們如何在檔案和元件之間建立連接,是發現攻擊媒介的關鍵階段。這有助於開發者快速修正程式碼錯誤,而系統提供的最佳修復位置時更會事半功倍。

  選擇一個深入程度符合需求的 SAST 白箱測試工具(原始碼安全檢測工具),且最好能夠發現連那些「還算不錯」的白箱測試工具都無法找到的漏洞。

  建議:使用可以完整分析您應用程式漏洞的 SAST 白箱測試工具(原始碼安全檢測工具)

  

04 誤報與漏報是無可避免的,但應以最少發生次數為目標

   

  SAST 白箱測試工具(原始碼安全檢測工具)過去經常留下不好的第一印象。它們會草率產出一大批誤報。然而,有些誤報是不可避免的,完全消除它們可能反而增加漏報的風險。

  若 AppSec 團隊能夠透過使用正確的程式碼設定檔、為正確的程式碼語言選擇規則,以及建立自訂所需的查詢,則有機會讓誤報的情況降到最少。擁有客製化規則,是在不導致漏報下減少誤報的關鍵。每一家公司編寫程式碼的方式不盡相同。選擇可輕鬆客製化規則的 SAST 白箱測試工具(原始碼安全檢測工具),將確保公司特定的編寫風格不會被誤認為惡意程式。

  無論採用何種方法,解決誤報 / 漏報困境的關鍵,就是選擇一個能輕鬆且有效客製化查詢的 SAST 白箱測試工具(原始碼安全檢測工具)。

  但值得一提的是,客製化規則仍需要能告嚴謹的管理。

  建議:使用能夠最少化誤報以及漏報的 SAST 白箱測試工具(原始碼安全檢測工具)

     

05 不僅只是需要掃描速度

   

  速度絕非僅僅是以掃描完程式碼的最短時間來衡量。相反的,精準掃描程式碼以並修復安全性問題的整體耗時,才是真正的重點。安全的軟體才是目標。將編寫程式碼與部署程式碼兩階段的時間都納入考量,是相當關鍵的。

  選擇支援差異掃描,且無需完整程式碼版本即可開始掃描的 SAST 白箱測試工具(原始碼安全檢測工具)。等待程式碼編譯完畢才開始掃描,效率非常低落。如果開發者每次修改程式碼都需要編譯,這將會消耗掉非常多時間。不過,只要將任務分解成適當大小,並在重大變更後進行漸進掃描,即可節省時間,避免冗長的修正與編譯過程。SAST 白箱測試工具(原始碼安全檢測工具)亦可透過在版控(例如 GitHub、GitLab、Azure、Bitbucket)進行掃描以減少掃描時間,僅掃描程式碼的更新部分,而避免程式碼每次更新都必須被重新編譯。

  具備掃描未編譯程式碼的能力,是很重要的價值,如此可以避免程式碼編譯、進行掃描、修復風險,然後再次編譯以進行另一次掃描的冗長過程。不注意的話,這將會浪費大量時間和資源。

  建議:使用能夠掃描未編譯程式碼,且能直接自版控獲取程式碼的 SAST 白箱測試工具(原始碼安全檢測工具)。

     

06 您需要快速修復問題的能力

   

  儘管應用程式安全性測試活動,是旨在發現可能導致潛在漏洞的程式碼錯誤,但最終目的仍是打造出更安全的應用程式。SAST 白箱測試工具(原始碼安全檢測工具)必須引導開發者找到錯誤程式碼存在的地方,並指導他們採取最佳方法來修復錯誤,如此將減少平均修復時間。

  對於希望顯著減少修復時間的公司來說,能夠在更深層次理解程式碼的 SAST 白箱測試工具(原始碼安全檢測工具)是尤其理想的,因為這樣的白箱測試工具會引導開發者找到修復錯誤的完美位置。通常,當在較前面的程式碼中修復一個錯誤時,後面程式碼發現的多個其他錯誤也會一併被修復。如此大幅減少了問題的數量,並以簡單、使用者友善的方式提供分級處理的優先順序,加速修復過程。

  建議:使用能夠辨識最佳修復位置,以同時修復多個漏洞達到修一改百的 SAST 白箱測試工具(原始碼安全檢測工具)。

   

07 讓開發者變身安全達人

   

  開發者通常並非安全性專家。透過會顯示如何修復漏洞,以及提供相關安全性流程培訓的 SAST 原白箱測試工具(原始碼安全檢測工具),開發者能夠在將來自己寫出更安全的程式碼,不只工作更輕鬆,還能成為安全達人。

  有些 SAST 白箱測試工具(原始碼安全檢測工具)讓開發者陷入五里霧中,伸手不見五指;優良的白箱測試工具則會清晰具體地指出應於何處及如何修復漏洞。

  而提升安全意識技能的終極培訓方式,就是在開發者使用的工具上,直接結合能力培訓、修復建議,以及編輯程式碼的功能。將培訓納入程式碼編寫過程的 SAST 白箱測試工具(原始碼安全檢測工具),最終能夠減少修復程式碼所花費的時間。

     建議:透過教導如何修復漏洞,SAST 白箱測試工具(原始碼安全檢測工具)讓開發者變身安全達人。

  

08 為整個生命週期提供全方位的程式語言與架構支援

   

  程式語言或架構的選擇,通常是被偏好、需求,以及公司標準驅使。某些程式語言可能更加合適特定類型的應用程式。例如,許多電腦遊戲和嵌入式系統是使用 C++ 編寫,而手機應用程式則較常以 Swift 或 Dart 編寫。

  選擇 SAST 白箱測試工具(原始碼安全檢測工具)時,您應尋找支援最多程式語言與架構的廠商。您也必須評估廠商添加業界流行新語言的頻率,以確保您的應用程式安全性平台永不過時。

  建議:使用支援廣泛程式語言與架構的 SAST 白箱測試工具(原始碼安全檢測工具)。

     

09 千萬別忘了整合與自動化

   

  將 SAST 白箱測試工具(原始碼安全檢測工具)自動化整合到開發生命週期中,是增加開發採用率並實現開發左移的過程中,絕對不可或缺的。以下是一些常見的整合範例:

  • 與原始碼版本控管工具(SCM)整合,如:Bitbucket、GitHub、GitLab
  • 與整合開發工具(IDE)整合,如:Eclipse、IntelliJ、Visual Studio
  • 與持續整合/持續交付(CI/CD)整合,如:Jenkins、CircleCI、Bamboo、Team City
  • 與 Bug Tracking 機制整合,如:Azure DevOps、Jira、Rally

  當比較 SAST 白箱測試工具(原始碼安全檢測工具)時,請特別留意它們是否能夠輕鬆地無縫自動化整合到您的開發環境與流程中。

  建議:使用能自動化整合到開發過程的 SAST 白箱測試工具(原始碼安全檢測工具)

     

10 擴展安全性:平台對於應用程式安全的重要性

   

  如今,人們再也不需要從各種針對性產品,把各種功能七拼八湊,以滿足現代安全性應用程式的需要。仰賴無法彼此溝通的針對性原始碼安全檢測工具,只會導致更複雜的整合,浪費更多支出。但若能採用以平台為基礎的方法,就意味著廠商已經完成了將多個 AST 功能整合到單一 AppSec 平台的工作。

  當尋找 SAST 白箱測試工具(原始碼安全檢測工具)時,如果它是統一 AppSec 平台的一部分,該白箱測試工具將會為現代應用程式安全提供最豐富的高價值。一個完整的平台亦應提供一個集中式的儀表板,用於 SAST 原始碼安全檢測工具、SCA 軟體組成分析、SCS 供應鏈安全、API 安全性、DAST 應用程式動態安全檢測、IaC 安全性,以及 Container 安全性。

  此外,平台應能伴隨著您的資安架構一同成長,適應各種規模或情境的需求。當比較以平台為基礎的方法時,請確定它們能夠將不同掃描引擎的結果進行關聯,以保證讓您可獲得整合各種專案與應用程式的整體風險評估,而無需手動彙整來自各種獨立 AST 工具的結果。

  建議:使用能與您的其他 AppSec 引擎整合的 SAST 白箱測試工具(原始碼安全檢測工具),或是安全檢測平台。

     

總結

   

  資訊技術的進步和日益增加的網路需求已經提升人們對軟體的依賴,這使應用程式安全性變得非常重要。為了滿足消費者的需求並在軟體領域保持競爭力,企業正在透過數位轉型和現代開發策略,如更廣泛使用 OpenSource、API、微服務,以及 Container,並把開發速度視為第一優先。但是,新的應用程式開發架構也帶來新的風險和威脅。將安全性在開發過程上 Shift Left(左移)已遠遠不足。為了在不犧牲開發速度的情況下,實現應用程式的安全,企業需要可以將安全性嵌入到開發過程每個階段的應用程式安全性原始碼安全檢測工具。

  這就是 Checkmarx 大顯身手的時刻。

  Checkmarx 是應用程式安全性的巔峰。其賦予企業在所有應用程式每個開發階段都實現安全性的能力,同時平衡 CISO、資安團隊,以及開發團隊的各種需求。

  而其中之一的解決方案,就是全方位雲端安全檢測平台 —  Checkmarx One™。
  透過豐富的檢測模組,能提供無與倫比的掃描準確性、涵蓋範圍、可見性,以及輔助建議,確保企業能優先處理最具影響力的漏洞、降低現代軟體各個元件的風險,也能持續適應不斷進化的技術環境。

  Checkmarx 受到超過 1,800 家企業客戶的信任,其中包含名列 Fortune 雜誌前 100 強的企業。它的前瞻性科技、服務,以及進行中的研究持續受到頂尖分析機構的認可,例如 Frost & Sullivan、Gartner、Forrester,以及 IDC。

  而除了產品的技術、功能與前瞻性外,能夠輔助企業快速導入 Checkmarx 的絕佳方案,經驗豐富且陣容堅強的在地服務團隊同樣必不可少。而身為 Checkmarx 的緊密合作夥伴 — 叡揚資訊 —就是企業最好的選擇。

  叡揚資訊成立於 1987 年,是台灣資訊軟體業的領導廠商,於應用系統開發逾 30 多年經驗,以改善資訊安全、提高企業效能為使命,全方位引進國際前瞻領導性知名品牌,致力為各大企業及組織提供 DevOps 應用程式安全解決方案、顧問及整合服務,目標打造提供台灣企業良好的資安平台,優質服務累積廣大的客戶群,包含醫療業、政府國營事業、金融業、壽險業、電信業、交通運輸業、製造業、高科技業等等。

  

相關文章

資安通報: Python 惡意套件-請儘速檢查與移除

近期專注於資訊安全的 Checkmarx 的供應鏈安全團隊追蹤到惡意攻擊的活動,其作業的手法比典型的資訊竊取操作更進一步,利用開發生態系與開發社群的供應鏈關係,將隱藏惡意行為的 PayLoad 藏身於合法的儲存庫(repository),近幾個月來,這種威脅不斷出現、不斷成長並不斷改變其樣貌,其攻擊的目標從特定應用系統、瀏覽器至使用者的資料,而這些藏有惡意之 Package 至今已累積 75,000 下載次數。
2023/12/08

新聞中心 - 叡揚資訊與 Checkmarx 助攻 關貿網路打通 SSDLC 安...

叡揚資安團隊鼎力支持,為關貿打造最佳檢測環境。受惠於叡揚團隊的專業服務能力,使 Checkmarx 導人過程極為平順。叡揚不僅依據關貿網路當下與未來檢測量能,針對主機容量進行最適規劃,也悉心安排教育訓練、系統安裝及使用諮詢等工作,讓使用者無痛接軌新環境。隨著系統上線至今,只要 OWASP 等規範出現更新,叡揚都會立即提供 Patch 檔,確使品保中心恆常套用最新安全程式碼撰寫規則。
2023/03/01

資安通報: Apache Commons Text 1.5~1.9版 發布新的高...

本次受 CVE 影響的軟體是 Apache Commons Text,這是一個由 Apache 提供的開源軟體,此套件是一個針對字串的相關運用的演算法(例如:字串替換、查找、匹配等等演算法)。目前所發現的漏洞 CVE-2022-42889 存在於 1.5 至 1.9 版本中,當不受信任的資料被處理或是在使用 Variable Interpolation 功能時,可能導致攻擊者能進行任意代碼執行(RCE, Remote Code Execution)。
2022/11/02

軟體供應鏈必學資安課題,如何拉近開發與資安的距離?

今年 IT 圈最熱門的話題之一,便是資本額達百億元以上的上市櫃公司須在年底前完成設立資安長及資安專責單位。以往資深資安人才本就難尋,如今更是炙手可熱。日前台灣資安主管聯盟的成立大會上,會長金慶柏曾指出,目前全台資安人才缺口超過 4 萬人!既然對外招募不容易,那麼從企業內部培養資安人才、提升人員資安意識便是另一途徑。
2022/06/17