1. <progress id="vs7bj"></progress>
      1. <th id="vs7bj"></th>

        <dd id="vs7bj"><center id="vs7bj"></center></dd><dd id="vs7bj"><track id="vs7bj"></track></dd>

        <rp id="vs7bj"><ruby id="vs7bj"></ruby></rp>
        國家保密局網(wǎng)站>>保密科技

        應用系統外包開(kāi)發(fā)中的源代碼安全風(fēng)險管控措施研究

        2023年11月14日    來(lái)源:國家保密科技測評中心【字體: 打印

        【摘 要】本文結合對應用系統設計、開(kāi)發(fā)、測試、測評等建設過(guò)程的分析,總結了外包應用系統開(kāi)發(fā)中存在的安全保密風(fēng)險,并根據應用系統安全建設和測評經(jīng)驗,結合安全開(kāi)發(fā)生命周期等安全開(kāi)發(fā)管理理念,研究了應用系統外包開(kāi)發(fā)中源代碼安全風(fēng)險管控技術(shù)和策略,以期從源頭減少應用系統自身安全漏洞和風(fēng)險,提升信息系統安全防御水平。

        【關(guān)鍵詞】應用系統 外包開(kāi)發(fā) 安全保密風(fēng)險

        1 引言

        應用系統是信息系統中信息分發(fā)、傳遞、共享的主要工具,同時(shí)是業(yè)務(wù)管理的數字化基本設施,在信息網(wǎng)絡(luò )中處于信息傳遞的核心。隨著(zhù)企業(yè)數字化轉型的不斷推進(jìn),各單位為滿(mǎn)足各種業(yè)務(wù)需要建設了各類(lèi)業(yè)務(wù)應用系統,如財務(wù)系統、人力管理系統、項目管理系統等。但由于應用系統開(kāi)發(fā)建設具有專(zhuān)業(yè)性、復雜性,一般需要專(zhuān)業(yè)的軟件開(kāi)發(fā)團隊進(jìn)行建設,而大部分單位不具備自行開(kāi)發(fā)應用系統的能力,應用系統外包開(kāi)發(fā)成為主流的建設方式。隨著(zhù)網(wǎng)絡(luò )攻防技術(shù)的發(fā)展,越來(lái)越多的安全漏洞在各類(lèi)應用系統中被發(fā)現,根據Forrester調研,僅Web類(lèi)安全漏洞就占2021年發(fā)現安全漏洞的39%,由此可見(jiàn)應用系統已成為網(wǎng)絡(luò )攻防雙方的主戰場(chǎng)之一。因此,如何管控外包開(kāi)發(fā)應用系統源代碼安全漏洞,從根本上有效減少安全漏洞,保障應用系統安全成為各單位信息化和網(wǎng)絡(luò )安全管理部門(mén)面臨的重要議題。

        2 外包開(kāi)發(fā)中的源代碼安全風(fēng)險分析

        在對外包應用系統進(jìn)行測評的過(guò)程中,存在以下風(fēng)險。

        (1)現行相關(guān)標準對安全要求較高,但對開(kāi)發(fā)廠(chǎng)商的安全開(kāi)發(fā)能力、開(kāi)發(fā)質(zhì)量缺少直觀(guān)的考核和選擇指標,導致部分開(kāi)發(fā)廠(chǎng)商不注重安全開(kāi)發(fā)能力的建設和開(kāi)發(fā)質(zhì)量的提升,一些應用系統的開(kāi)發(fā)過(guò)程管理混亂,缺少源代碼安全的管理與技術(shù)措施,甚至在互聯(lián)網(wǎng)中開(kāi)展代碼管理,極易引入安全風(fēng)險,部分應用系統安全質(zhì)量沒(méi)有保障。

        (2)在編程實(shí)現階段,隨著(zhù)開(kāi)發(fā)技術(shù)的迅猛發(fā)展,部分中小廠(chǎng)商或建設使用單位為追求新技術(shù)應用,開(kāi)發(fā)中大量采用未經(jīng)安全檢測的開(kāi)源框架、開(kāi)源組件等第三方代碼進(jìn)行快速迭代開(kāi)發(fā),對使用了哪些開(kāi)源組件或開(kāi)源組件的哪個(gè)版本并不了解。建設使用單位對使用開(kāi)源組件、開(kāi)源代碼的情況缺少要求和限制,給應用系統帶來(lái)不可控的安全風(fēng)險。

        (3)在驗收和上線(xiàn)運行階段,建設使用單位主要對應用系統業(yè)務(wù)功能進(jìn)行測試驗收,缺少對源代碼安全漏洞、業(yè)務(wù)邏輯漏洞等的安全性測試,缺少開(kāi)發(fā)人員參與的安全加固,往往不知道是否存在安全漏洞,對已發(fā)現的安全漏洞不知如何修復,導致應用系統“帶病上線(xiàn)”“帶病運行”。

        3 對外包開(kāi)發(fā)的安全風(fēng)險管控措施實(shí)踐

        為保障應用系統源代碼安全質(zhì)量,微軟提出從安全管理角度指導應用系統開(kāi)發(fā)過(guò)程的安全開(kāi)發(fā)生命周期(Security Development Lifecycle,SDL)理念,經(jīng)過(guò)世界主流廠(chǎng)商多年實(shí)踐和不斷改進(jìn),發(fā)展成為安全—軟件開(kāi)發(fā)生命周期(Secure Software Development Lifecycle,S-SDLC)等方法論,其理念是將安全與軟件開(kāi)發(fā)全過(guò)程融合,通過(guò)在軟件開(kāi)發(fā)生命周期中每個(gè)階段執行必要的安全實(shí)踐,使安全風(fēng)險最小化、安全威脅最少化。SDL的實(shí)施在一定程度上降低了發(fā)布運行后安全漏洞的數量,被各大軟件廠(chǎng)商廣泛采用。

        但是,SDL、開(kāi)發(fā)安全運維一體化(DevSecOps)等安全開(kāi)發(fā)理念都主要是針對開(kāi)發(fā)廠(chǎng)商的實(shí)施或實(shí)踐方法,對應用系統建設使用的甲方單位,特別是在外包開(kāi)發(fā)的場(chǎng)景下,甲方單位也迫切需要介入整個(gè)安全開(kāi)發(fā)過(guò)程中。本文利用SDL安全開(kāi)發(fā)理念,從建設使用單位的角度,針對外包開(kāi)發(fā)全流程進(jìn)行代碼安全管控策略設計和技術(shù)保障措施研究,通過(guò)參與關(guān)鍵流程活動(dòng),協(xié)助開(kāi)發(fā)出既符合安全要求又盡可能減少網(wǎng)絡(luò )安全漏洞的應用系統。本文設計的建設使用單位針對外包開(kāi)發(fā)過(guò)程中的安全實(shí)踐措施和策略架構如圖1所示。

        圖1 外包開(kāi)發(fā)過(guò)程中的安全實(shí)踐措施和策略架構

        3.1 加強開(kāi)發(fā)廠(chǎng)商的選擇與安全培訓

        外包應用系統開(kāi)發(fā)時(shí),在廠(chǎng)商具有相應資質(zhì)的基礎上,建議應用系統開(kāi)發(fā)管理的業(yè)務(wù)部門(mén)優(yōu)先選擇軟件開(kāi)發(fā)質(zhì)量保障能力等級較高的企業(yè),利用其更為規范的過(guò)程管理、版本管控、漏洞管理等制度和技術(shù)措施提高應用系統開(kāi)發(fā)質(zhì)量。

        建設使用單位組織或參與開(kāi)發(fā)廠(chǎng)商統一舉行的安全防范意識培訓,對系統設計、開(kāi)發(fā)、部署、售后、運維和業(yè)務(wù)使用等各類(lèi)人員進(jìn)行必要的安全培訓或再培訓,宣傳法律法規和標準知識、網(wǎng)絡(luò )安全防范技能,建立常見(jiàn)安全漏洞的源代碼防范措施、范例、框架,幫助相關(guān)人員特別是設計、開(kāi)發(fā)人員提升安全開(kāi)發(fā)能力。

        3.2 開(kāi)展安全保密風(fēng)險分析

        建設使用單位的業(yè)務(wù)使用人員、安全保密人員介入業(yè)務(wù)安全需求分析,和開(kāi)發(fā)人員結合安全標準規范,從安全標準和最佳實(shí)踐2個(gè)方面分析得出業(yè)務(wù)功能所需安全防護要求。安全需求分析工作的主要目的是為應用程序設計在計劃運行環(huán)境中的運行確定最低安全要求。同時(shí),在需求分析文檔中包括安全保密協(xié)議相關(guān)內容:加強源代碼安全管理,防止因源代碼泄露、安全防范意識不足可能造成的安全風(fēng)險,預防安全漏洞、后門(mén);禁止應用系統開(kāi)發(fā)相關(guān)文檔、源代碼等傳輸到互聯(lián)網(wǎng);禁止預置和保留隱藏的管理員賬號、開(kāi)發(fā)者賬號、測試賬號;禁止預置遠程管理后門(mén)、遠程升級后門(mén)、廣告推廣、漏洞和非授權的數據收集、傳輸等惡意功能。

        3.3 強化安全防護功能設計與編碼

        建設使用單位的安全保密人員介入系統的安全設計階段,與開(kāi)發(fā)人員一起,根據業(yè)務(wù)安全需求分析,制定安全控制和防護措施,減小攻擊面,防范常見(jiàn)安全漏洞、安全攻擊方式,抵御或降低安全威脅。安全設計實(shí)踐包括特權分離、數據驗證、認證管理、會(huì )話(huà)管理、授權管理、日志審計、異常處理、配置管理、數據保護等安全功能設計,也包括對結構化查詢(xún)語(yǔ)言(SQL)注入、反序列化、權限提升、文件上傳、任意文件下載等安全漏洞的防范功能設計。編碼實(shí)現時(shí),需要考慮將要使用的開(kāi)源代碼、組件、模塊、庫和框架的安全性,禁止使用存在安全風(fēng)險的軟件成分。

        存量應用系統新增功能、系統升級也需要編制新增功能部分的安全設計方案,對新增功能的安全威脅、安全功能設計和對原應用系統安全功能的影響進(jìn)行深入分析。

        3.4 完善代碼安全測試與驗收

        建設使用單位在對應用系統業(yè)務(wù)功能進(jìn)行驗收測試時(shí),先由業(yè)務(wù)使用團隊和安全保密團隊開(kāi)展安全功能合規性測試,根據業(yè)務(wù)功能、安全要求設計安全測試用例進(jìn)行測試,測試用例需要涵蓋安全需求、安全設計中各項功能。

        在安全功能測試基礎上,建設使用單位安全團隊應開(kāi)展源代碼安全性測試,從源頭把控應用系統安全風(fēng)險。源代碼安全性測試一般采用自動(dòng)化工具來(lái)降低人工檢測的時(shí)間消耗和成本投入,提高檢測效率,常見(jiàn)工具包括靜態(tài)安全測試(SAST)、動(dòng)態(tài)安全測試(DAST)、交互式安全測試(IAST)、模糊測試(FUZZ)和軟件成分分析(SCA)幾類(lèi)技術(shù)。根據經(jīng)驗,建議配備交互式安全測試IAST工具和軟件成分分析SCA工具。IAST技術(shù)融合了SAST技術(shù)和DAST技術(shù)的特征,通過(guò)在應用系統中部署測試插樁,分析應用系統運行時(shí)的源代碼,檢查業(yè)務(wù)數據傳播路徑,分析數據傳播過(guò)程中的各功能代碼的處理措施,根據已知安全漏洞發(fā)生的數據處理模式、發(fā)生場(chǎng)景分析可能存在的安全風(fēng)險,在完成功能測試的同時(shí)自動(dòng)開(kāi)展并完成源代碼層的安全性分析測試。相較于SAST、DAST和FUZZ,IAST測試工具具有對測試人員安全技能要求低、測試結果準確性高、測試過(guò)程速度快的優(yōu)勢,特別適合建設使用單位業(yè)務(wù)使用團隊和安全團隊等非專(zhuān)業(yè)開(kāi)發(fā)人員用于開(kāi)展源代碼安全性測試。

        為應對開(kāi)源組件、開(kāi)源代碼引入的安全風(fēng)險,SCA工具掃描分析應用系統的源代碼和使用的模塊、庫、框架、程序包等代碼文件,提取代碼指令、代碼結構、控制流圖、函數調用關(guān)系等特征,再對特征進(jìn)行識別和分析,獲得各個(gè)部分的關(guān)系,然后根據已知的安全漏洞特征庫、威脅情報庫,識別可能潛藏的、存在的安全風(fēng)險,避免開(kāi)源代碼、庫、模塊的使用引入安全漏洞。

        3.5 開(kāi)展安全上線(xiàn)

        應用系統上線(xiàn)試運行時(shí),安全保密團隊應會(huì )同開(kāi)發(fā)團隊開(kāi)展安全配置加固,先梳理業(yè)務(wù)應用系統使用的運行環(huán)境、語(yǔ)言環(huán)境、開(kāi)源組件等,并建立系統成分清單,清單包括但不限于操作系統、數據庫、運行中間件、運行容器及編排管理與調度組件、大數據組件、人工智能組件、開(kāi)發(fā)框架、消息系統組件、數據庫連接和管理組件、語(yǔ)言運行庫、外部函數庫/組件、開(kāi)源組件等代碼運行組件清單,詳細記錄各項名稱(chēng)、版本號,便于開(kāi)展零日(0Day)漏洞預警排查和漏洞檢測與應急響應。

        應用系統完成部署后,建設單位定期利用漏洞掃描工具進(jìn)行安全漏洞檢測,或開(kāi)展人工滲透測試發(fā)掘潛在漏洞,對發(fā)現的源代碼缺陷導致的安全漏洞通知開(kāi)發(fā)人員核實(shí)整改漏洞。加強應用系統升級管理,在大版本、小版本升級和應用系統間集成、漏洞修復等工作后,按照以上安全需求分析、安全設計與編碼、安全測試的過(guò)程對變更部分源代碼進(jìn)行安全分析和測試,必要時(shí)對應用系統整體重新進(jìn)行安全測試。

        4 結語(yǔ)

        應用系統在供應鏈、安全設計、代碼編程實(shí)現、上線(xiàn)運行等全生命周期中面臨各種各樣的風(fēng)險,只有加強應用系統源代碼安全管控,才能從源頭解決應用系統自身面臨的安全風(fēng)險。本文從建設使用單位的角度,研究應用系統外包開(kāi)發(fā)建設中的源代碼安全防護技術(shù),針對安全需求分析、安全設計與實(shí)現、安全測試、升級管控等各階段設計源代碼管控策略和措施,有助于減少應用系統建設過(guò)程中源代碼引入的安全風(fēng)險,提升應用系統的安全防護水平。同時(shí),該實(shí)踐經(jīng)驗對應用系統自行開(kāi)發(fā)、開(kāi)源產(chǎn)品自行部署、商業(yè)產(chǎn)品購置實(shí)施等情形具有一定借鑒意義。

        (原載于《保密科學(xué)技術(shù)》雜志2023年2月刊)


        中文字幕乱码一区久久麻豆樱花,中文字幕亚洲乱码熟女一区二区,中文成人无码精品久久久不卡_电影