隨著大資料、雲端計算、人工智慧的不斷髮展,從移動應用到基於雲的系統再到內部部署的遺留系統,大多數政府行業使用者在管理著成百上千的軟體元素。此類軟體通常是由現成的商業軟體包和定製構建的程式碼庫共同組成。隨著軟體系統複雜程度的增加,軟體開發過程及軟體供應鏈鏈條也越來越長。
軟體的快速上線,能幫助政府行業使用者提高效率、促進發展。但軟體程式碼安全問題也在法律遵從、資訊保安、IT投資等方面為政府行業使用者帶來了嚴峻的問題與風險。根據綠盟科技近年來的研究,政府行業使用者在程式碼安全方面常面臨以下幾方面的困擾:
綠盟科技根據政府行業使用者業務場景打造的綠盟程式碼安全審計系統(SDA),可在軟體釋出前,對原始碼及元件進行安全檢測,滿足合規需求;在軟體釋出後,進行二進位制檢測並生成BOM清單,幫助政府行業使用者掌握軟體資產和風險狀況。綠盟程式碼安全審計系統(SDA)是應用安全測試範疇中的子集,主要以軟體成分分析的形式,在程式設計和測試階段,發現應用程式中的安全缺陷,並將此過程整合到軟體生命週期中。在業務資料平面,主要是對原始碼進行缺陷審計,並將審計結果傳給管理平面。業務資料平面可對自有程式碼、開源元件進行審計,其中開源元件審計包含合規性。
1、原始碼審計
綠盟程式碼安全審計系統(SDA)支援常用原始碼靜態審計功能,包括C、C++、Java、PHP、Go、Python、JSP等。除了分析原始碼外,本系統還擁有對部分編譯後的程式碼進行靜態分析功能。例如java語言的.class檔案、jar包等。針對原始碼中常見的缺陷漏洞,本系統能檢查的缺陷型別包括:SQL隱碼攻擊、XSS、密碼硬編碼儲存、不安全配置、堆疊資訊洩露等40種安全分類。
2、開源元件審計
綠盟程式碼安全審計系統(SDA)還支援對專案中應用的第三方元件、程式碼庫進行依賴檢測。檢測到後,根據內建的漏洞庫進行匹配,檢視當前被引用的元件是否有已知的漏洞。本系統當前支援Java、Python、C/C++語言的元件依賴檢測。內建的漏洞庫包括OWASP TOP 10已知漏洞元件。
開源元件審計的工作流程一般分為兩個階段,資訊收集階段和開源元件漏洞分析階段:
3、開源元件識別功能
透過對原始碼進行遍歷和提取,收集各個檔案的屬性特徵,統計檔案的基本資訊;透過對比元件庫規則,找出原始碼中使用的開源元件;基於千萬級開源軟體版本庫,精確匹配識別特徵檔案中的開源軟體。
4、開源元件風險分析
開源漏洞識別功能:透過多模匹配、詞法分析等技術,主動識別原始碼中的證照資訊,給出使用開源證照資訊列表,以及證照衝突性檢測。
許可證證照識別功能:透過掃描出來的開源元件的列表,在元件漏洞庫中進行漏洞匹配,分析出存在漏洞的開源元件,發現潛在威脅,給出修復建議。
漏洞跟蹤功能:透過依賴關係分析識別技術,對漏洞元件在程式碼中傳播的途徑進行跟蹤,找到漏洞傳播的途徑。
綠盟程式碼安全審計系統(SDA)技術完全自主研發,目前已積累數千萬開源元件版本資料。支援與安全裝置聯動,形成安全閉環。同時可提供豐富的API介面,供第三方平臺呼叫。還可為政府行業使用者解決安全部門和業務部門的分歧,保障業務快速上線,並掌握開源資產情況。在開發階段發現漏洞,降低修復成本,並極大縮短開發週期等待時間。