實現高效、高精度的靜態應用安全檢測
隨著科技的飛速發展,網絡空間的主權完整和安全也成為影響國際關系的重要因素,國家之間的競爭也在由物理空間逐漸轉向網絡空間,國內的網絡安全也面臨著越來越多的風險和挑戰。根據Gartner提供的數據表示,75%的安全攻擊是由軟件自身漏洞造成的,針對軟件漏洞的攻擊已成為黑客入侵的主要方式之一,而且攻擊者通過挖掘軟件代碼中的多個安全漏洞,形成攻擊鏈條的不法行為,對關系到國計民生的軟件系統帶來了重大安全隱患。除此之外,開源文化的盛行在大幅度提升軟件開發效率的同時,也增進了潛在的風險,這些開源組件中潛在的安全漏洞很可能被攻擊者利用。
面對這些威脅時,傳統上以“滲透測試”為主的軟件安全檢測手段,發現安全漏洞的覆蓋率遠遠不足,且產品上線之前執行的滲透測試相對滯后,安全漏洞修復成本過高。因此在對開發效率和安全要求越來越高的情況下,企業組織還要面臨更嚴峻的挑戰:
- 敏捷開發快速迭代,更短的開發周期,對安全檢測響應要求更高;
- 很多企業在系統上線運行之后采用加固、防火墻、WAF等措施,這些被動防御措施,只能防范已有的安全漏洞,對于未知的安全漏洞無法進行防御,導致軟件仍然存在著巨大風險;
- 在研發階段沒有有效的安全檢測手段,缺乏有效的檢測工具,或檢測工具得不到有效利用。
傳統軟件測試工作強調左移,要求進行單元測試和接口測試,其實代碼中的安全漏洞也屬于缺陷,這種安全上的缺陷比功能缺陷為企業帶來了更大的風險,所以在研發階段,有必要引入靜態應用安全測試工具(SAST),對代碼進行迭代開發的同時,進行迭代檢測。介于上述行業背景和技術發展現狀,發布本期牛品推薦——開源網安:CodeSec代碼審核平臺。
標簽
靜態應用安全測試工具、代碼審核工具、代碼審計、源代碼掃描、開發安全
用戶痛點
目前SAST產品市場已經成熟,很多的安全廠商推出SAST類型的檢測工具,形成了百花齊放、百家爭鳴的情況,這對于很多企業決策者來說,帶來了工具選擇性的挑戰,同時也存在著一些認知上的誤區。主要體現在以下幾點:
- SAST誤報率高,對于檢測出的漏洞進行復核,工作量較大;
- 安全漏洞描述過于專業化,讓開發人員很難理解;
- 未提供直接的、代碼級的修復方案,開發人員需要額外花時間尋找可行的修復方案;
- 對于中、大型以上企業往往需要對大量軟件進行迭代檢測,需要高并發、高可調度的方案;
- SAST工具不能夠滿足企業與現有流程規范的一致性;
- SAST工具集成度不夠,需要花費人工時間去進行處理。
解決方案
開源網安的“CodeSec 代碼審核平臺“是全新一代靜態應用安全測試(SAST)解決方案,主要用于軟件代碼安全審核和質量分析,提供漏洞詳情和修復方案,能夠幫助開發和安全團隊在開發階段早期發現并修復漏洞,提升軟件代碼安全質量,實現“安全左移”,全面助力企業用戶解決上述痛點問題;

首先,由于靜態分析技術的局限性,導致靜態分析工具存在一定比例的誤報率。針對這一問題,開源網安的CodeSec通過采用自研的核心檢測引擎,在傳統工具多是采用數據流分析的基礎上,采用函數摘要、指向分析等進行上下文敏感的分析,進而發現傳統檢測工具無法檢測出的安全缺陷和漏洞,同時,通過對用戶開發軟件進行共性分析,進一步優化軟件產品的檢測規則,可以大幅度減少誤報。

圖:完整的安全弱點概覽
其次, CodesSec的安全專家對CWE、OWASP等安全漏洞進行大量研究的基礎上,對安全漏洞描述做了全新的描述,包括存在的風險、緩解措施、示例代碼、污點軌跡跟蹤、定位到代碼行等描述信息,能夠讓開發人員快速理解漏洞的引入點、觸發點,找到最佳的修復位置,排除風險。另外,開源網安能夠為開發人員提供安全編碼方面的培訓,對檢測報告提供解讀服務、遠程支持等附加服務,最大程度上幫助開發人員解決安全開發中的實際問題。
第三, CodeSec在檢測報出的安全漏洞描述中,提供代碼修復示例,能夠讓開發人員快速修復漏洞。同時,CodeSec團隊也在研究安全漏洞自動修復技術,計劃在不久的將來推出能夠安全漏洞自動修復的版本,進而為代碼級解決方案提供全面支撐。

圖:詳細的漏洞信息與修復方案
第四,在并發檢測的需求上,CodeSec采用多進程、多線程方式,每個檢測任務在一個線程中進行檢測分析,對于查詢、審計等采用獨立線程進行處理等方式,可以支持多個檢測任務并發檢測。而對于并發需求更高的用戶,可以采用分布式部署方案。
第五,對于企業自身編碼規范滿足性要求,CodeSec安全專家對工具提供的上千個檢測規則與企業自身的編碼規則進行對比分析,對于工具不滿足的檢測規則提供定制,最大程度滿足用戶要求,保證其業務和標準的延續性。
最后一點,基于用戶需要檢測工具與其它工具進行集成的要求,CodeSec能夠與Git、GitLab、GitHub、SVN、TFS、Perforce、Mercurial、Jira、禪道、Bugzilla、Eclipse、IDEA、VS-Code、Visual Studio、Android Studio等工具集成,基本上可以滿足大部分用戶要求。

圖:支持與Jira對接
用戶反饋
開源網安為金融、通信、政府、交通、評測機構等用戶部署了上百套 CodeSec 代碼審核平臺,在有多項目高并發需求的大型企業中建立代碼審核SaaS平臺,幫助企業避免因為應用程序漏洞而造成的損失。以下是兩個典型案例的用戶反饋:
“開源網安CodeSec代碼審核平臺為我市若干信息系統提供代碼審計服務,并為信息中心技術人員提供專業的安全培訓,幫助信息技術人員提升了軟件安全能力;同時,信息中心安全人員通過CodeSec代碼審核平臺對內部系統的源代碼進行安全掃描,便于日常安全運營。”
——某市信息中心
“CodeSec代碼審核平臺將安全控制線提前,大幅降低安全人員工作量,源代碼安全掃碼覆蓋我司上百個應用,保障上線前的安全,大幅度提升軟件的安全質量同時,也滿足了用戶對供應商軟件安全的要求。”
——某大型基礎軟件企業
安全牛評
“代碼安全”是軟件安全之“根”,而“浸入式”的代碼安全是最低成本的安全解決方案。提高易用性,提高漏洞檢出率,降低漏洞修改難度,修復方案的可落地性是對靜態安全工具提出的嚴峻挑戰,同時,檢測能力、核心漏洞庫的管理、安全規則的應用,這些方面如何減少開發者的使用成本是源碼安全工具的另一個挑戰。
本次牛品推薦的方案將源碼檢測與多種常用的開發項目管理的流程結合起來而不僅局限于對DevOps平臺的集成,可以使源碼級測試得到更廣泛的應用,提高代碼開發迭代的效率與質量。而打破傳統測試的方法,將多種源碼級測試能力結合起來,是開源網安的另一個優勢點。