亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DevSecOps的軟件供應(yīng)鏈安全治理技術(shù)簡析

        2022-11-15 08:27:50張小梅蘇俐竹中國聯(lián)通研究院北京100048
        郵電設(shè)計技術(shù) 2022年9期
        關(guān)鍵詞:污點開源漏洞

        張小梅,蘇俐竹(中國聯(lián)通研究院,北京 100048)

        0 前言

        在數(shù)字化轉(zhuǎn)型背景下,作為云原生技術(shù)不可或缺的持續(xù)交付、DevOps、微服務(wù)和容器技術(shù)正在被廣泛使用,面對軟件交付周期所帶來的壓力,DevSecOps 理念被提出,DevSecOps 是一種融合了開發(fā)、安全及運營理念的全新的安全管理模式,其核心理念是:業(yè)務(wù)應(yīng)用生命周期的每個環(huán)節(jié)都需要為安全負責(zé),安全是整個IT 團隊(包括開發(fā)、測試、運維及安全團隊)所有成員的責(zé)任,并且需要貫穿到從研發(fā)至運營的全過程。

        傳統(tǒng)研發(fā)運營安全側(cè)重于在測試及運營階段,進行安全威脅排除,漏洞修復(fù),更多的是被動式安全防御。面對云原生時代業(yè)務(wù)需要頻繁調(diào)整、上線,亟需進行安全左移,在需求、研發(fā)階段便進行安全介入,從源頭處降低安全風(fēng)險,實現(xiàn)主動式安全防御,從而構(gòu)建覆蓋軟件應(yīng)用服務(wù)全生命周期的安全體系。本文基于DevSecOps 理念,在明確業(yè)務(wù)系統(tǒng)安全需求的前提下,制定貫穿軟件系統(tǒng)全生命周期的實踐方案,通過在軟件開發(fā)的不同階段將安全工具或安全活動進行整合,將各個信息安全孤島進行串聯(lián),協(xié)同作戰(zhàn),實現(xiàn)安全設(shè)計、安全編碼、安全測試和安全運營的統(tǒng)一融合,在提升軟件系統(tǒng)研發(fā)過程標準化與自動化的同時,降低對效率的影響,也降低安全的成本。

        1 軟件供應(yīng)鏈安全治理思路

        依托DevSecOps 理念,通過構(gòu)建安全工具鏈、整合安全流程、嵌入安全自動化檢查等方式,將安全貫穿設(shè)計、開發(fā)、測試、運營生命周期的每個環(huán)節(jié),推動研發(fā)運營安全體系向敏捷化、自動化演進,應(yīng)對新的云服務(wù)開發(fā)運維模型,提高業(yè)務(wù)系統(tǒng)安全問題修復(fù)效率、降低安全運營成本。圖1 所示為軟件供應(yīng)鏈安全治理體系。

        圖1 軟件供應(yīng)鏈安全治理體系

        2 軟件供應(yīng)鏈安全治理方案

        2.1 設(shè)計安全

        應(yīng)用軟件安全設(shè)計是保證軟件安全的最根本前提,需要根據(jù)業(yè)務(wù)安全策略、合規(guī)需求、應(yīng)用系統(tǒng)的特性等進行快速的分類分級,并根據(jù)系統(tǒng)分類分級情況分別定義不同的安全策略,進而選取合適的安全活動(見圖2)。在計劃階段通常涉及的安全活動主要包含安全培訓(xùn)、威脅建模、安全開發(fā)衡量指標制定。

        圖2 安全設(shè)計活動

        a)安全培訓(xùn)。DevSecOps 流程方面需要讓項目組成員清楚了解各個階段需要承擔(dān)的責(zé)任與義務(wù),并進一步對DevSecOps 體系整體過程進行學(xué)習(xí)。DevSec-Ops 工具使用方面需要對項目組成員進行培訓(xùn),如對開發(fā)人員、安全人員進行安全工具的使用培訓(xùn),對運維管理人員進行安全基線工具、資產(chǎn)安全管理等工具的使用培訓(xùn)。

        b)威脅建模。為滿足DevOps 快速敏捷要求,可采用輕量級威脅建模方式,主要包括如下幾個步驟:首先,通過動態(tài)調(diào)查問卷快速收集有關(guān)業(yè)務(wù)系統(tǒng)、部署環(huán)境和合規(guī)性要求等方面的重要且詳細的信息,根據(jù)收集到的信息自動識別風(fēng)險、威脅和潛在弱點;其次,根據(jù)預(yù)定義的安全和合規(guī)性策略對整體風(fēng)險進行分類管理;最后,輸出安全設(shè)計方案,并對安全問題進行跟蹤。

        c)衡量指標。根據(jù)業(yè)務(wù)應(yīng)用系統(tǒng)的不同安全級別,制定對應(yīng)的安全開發(fā)衡量指標,用于評估實施效果。

        2.2 編碼安全

        應(yīng)用軟件編碼階段是業(yè)務(wù)安全問題修復(fù)成本最低的時期,依靠安全編碼規(guī)范、安全基礎(chǔ)庫SDK 的調(diào)用以及開源組件安全檢測,最大程度地保證在編碼階段消除安全風(fēng)險,保證軟件的原生安全(見圖3)。

        圖3 安全編碼方案

        首先,針對OWASP TOP10 2021 和OWASP TOP10 2017 涉及的漏洞類型制定安全編碼規(guī)范,為應(yīng)用系統(tǒng)的代碼編寫提供安全編碼方法、安全編碼用例、缺陷代碼示例和安全接口函數(shù)等,保證應(yīng)用系統(tǒng)的編碼安全。下面給出幾個SQL注入漏洞安全編碼規(guī)范示例。

        a)采用預(yù)編譯方式,使用占位符接收數(shù)據(jù)替換為SQL語句(見圖4)。

        圖4 使用占位符接收數(shù)據(jù)替換為SQL語句示意

        b)采用轉(zhuǎn)義用戶輸入方式,將可能惡意執(zhí)行的字符轉(zhuǎn)義為無法執(zhí)行的字符串(見圖5)。

        圖5 將可能惡意執(zhí)行的字符轉(zhuǎn)義為無法執(zhí)行的字符串示意

        其次,開發(fā)安全基礎(chǔ)庫接口函數(shù),打造安全基礎(chǔ)庫SDK 即安全軟件開發(fā)工具包,安全SDK 集成了為軟件工程師在開發(fā)過程中防御安全漏洞的一系列安全API,供軟件項目直接引用?;诎踩幋a的SDK 庫,方便研發(fā)人員安全編碼,提高開發(fā)效率,同時通過為代碼漏洞修復(fù)提供安全接口,避免漏洞的二次引入。下面以防范SQL 注入漏洞為例,介紹SDK 包調(diào)研過程。

        a)在項目中導(dǎo)入安全基礎(chǔ)庫SDK包(見圖6)。

        圖6 項目中導(dǎo)入安全基礎(chǔ)庫SDK包示意

        b)輸入與輸出結(jié)果對比,可以看到安全SDK的方法將用戶輸入的有害字符都做了相應(yīng)的轉(zhuǎn)義,可以防止SQL注入(見圖7)。

        圖7 輸入與輸出結(jié)果對比示意

        最后,對編譯后的二進制包和源碼包進行分析,識別出項目包中引用的開源組件,檢測軟件系統(tǒng)的開源軟件組成成分、開源組件安全漏洞、開源組件許可證風(fēng)險等,提高軟件開源組件風(fēng)險整改效率。

        2.3 測試安全

        應(yīng)用軟件測試階段利用智能動態(tài)污點跟蹤技術(shù),實現(xiàn)安全測試工作左移,將安全賦能至開發(fā)測試階段,在軟件的功能測試階段同步開展安全測試,提高安全漏洞的發(fā)現(xiàn)效率和準確性,使交付更安全的產(chǎn)品成為可能(見圖8)。

        圖8 交互式應(yīng)用安全檢測方案

        首先,智能動態(tài)污點跟蹤技術(shù)依賴于字節(jié)碼插樁技術(shù),將安全檢測Agent 融入到應(yīng)用程序中,代理程序Agent 通過ASM 框架等方式可以對Class 字節(jié)碼加載至JVM 中時進行修改,從而插入跟蹤的邏輯內(nèi)容,達到污點跟蹤的目的。圖9 為插樁后的StringBuilder.append()方法,插樁程序植入了Void.dance 的代碼作為埋點程序,后續(xù)對此方法的調(diào)用都會經(jīng)由插樁程序接管。

        圖9 插樁后的StringBuilder.append()方法示意

        其次,當(dāng)Agent完成Class插樁后,在被測應(yīng)用運行時,會由埋點代碼進行智能動態(tài)污點跟蹤。一次污點跟蹤過程是在一個HTTP 請求中進行的,污點跟蹤隨著HTTP 請求一起開始,HTTP 請求的結(jié)束也標志著一次污點跟蹤的結(jié)束(見圖10)。智能動態(tài)污點跟蹤的漏洞檢測架構(gòu)分為3 個部分:污點源(Source)、傳播過程(Propagator)和規(guī)則觸發(fā)(Sink)。污點源是獲取外部輸入數(shù)據(jù)的地方,傳播過程是污點數(shù)據(jù)進行傳播的地方,規(guī)則觸發(fā)是風(fēng)險方法所在處。在應(yīng)用程序運行過程中,Agent 將會跟蹤污點數(shù)據(jù)在應(yīng)用程序中執(zhí)行的程序上下文,并分析外部進入的數(shù)據(jù)在程序內(nèi)部的傳播過程,判斷其是否經(jīng)過了安全過濾或者安全驗證機制,由此進行漏洞分析檢測。

        圖10 污點跟蹤過程時序圖

        2.4 運營安全

        應(yīng)用發(fā)布運營階段利用JavaAgent 技術(shù),在應(yīng)用程序運行時動態(tài)編輯類字節(jié)碼,將自身防御邏輯注入到Java 底層API 和Web 應(yīng)用程序當(dāng)中,獲取代碼執(zhí)行流程,監(jiān)控敏感函數(shù)的調(diào)用,從而與應(yīng)用程序融為一體,能實時分析和檢測Web 攻擊,使應(yīng)用程序具備自我保護能力。該技術(shù)能夠利用請求的行為來判斷是否為攻擊請求,彌補WAF不能利用行為而僅用規(guī)則來判斷請求及無法獲取Web 應(yīng)用運行時環(huán)境的缺陷,并且不會受加密影響,可直接定位到漏洞代碼文件和代碼行號,補充了東西向防護能力,與邊界防護能力聯(lián)動,實現(xiàn)縱深安全防御,可實時監(jiān)測Web 攻擊行為,增強0day漏洞應(yīng)對能力。圖11為SQL注入漏洞防御示例。

        圖11 com.mysql.jdbc.ConnectionImpl 類繼承關(guān)系圖

        在Java 中,所有的數(shù)據(jù)庫讀寫操作都需要使用JDBC 驅(qū)動來實現(xiàn),JDBC 規(guī)范中定義了數(shù)據(jù)庫查詢的接口,例如Mysql 驅(qū)動包實現(xiàn)數(shù)據(jù)庫連接的實現(xiàn)類是:com.mysql.jdbc.ConnectionImpl,該類實現(xiàn)了com.mysql.jdbc.MySQLConnection 接口,而com.mysql.jdbc.MySQLConnection 類是java.sql.Connection 的子類,也就是說com.mysql.jdbc.ConnectionImpl 接口必須實現(xiàn)java.sql.Connection 定義的數(shù)據(jù)庫連接和查詢方法。當(dāng)com.mysql.jdbc.ConnectionImpl 類被JVM 加載后會因為配置了應(yīng)用自保護的Agent,該類的字節(jié)碼會傳遞到應(yīng)用自保護的Agent 處理,應(yīng)用自保護經(jīng)過分析后得出ConnectionImpl 類符合應(yīng)用自保護內(nèi)置的Connection-PrepareStatementHook 類設(shè)置的Hook 條件(父類名/方法名/方法參數(shù)完全匹配),那么應(yīng)用自保護就會使用ASM動態(tài)生成防御代碼并插入到被Hook的方法中。

        圖12給出了未修改的ConnectionImpl 類代碼片段示意,圖13 給出了經(jīng)過應(yīng)用自保護Agent 修改后的代碼片段示意。

        圖12 未修改的ConnectionImpl類代碼片段示意

        圖13 經(jīng)過應(yīng)用自保護Agent 修改后的代碼片段示意

        通過應(yīng)用自保護Agent 增強后的ConnectionImpl類執(zhí)行任何SQL 語句都會被應(yīng)用自保護Agent 捕獲,并檢測其合法性,從而實現(xiàn)了徹底的SQL 注入攻擊防御。應(yīng)用自保護Agent 除了會在開發(fā)語言底層重要的API(如文件讀寫、命令執(zhí)行、SQL 注入等API)中設(shè)置防御點(API Hook 方式)以外,還能關(guān)聯(lián)應(yīng)用上下文及請求的行為,對正常請求進行放行或不觸發(fā)Hook直接正常通過,對惡意請求(包含但不限于OWASP TOP10涉及的攻擊類型、后門攻擊、反序列化攻擊、內(nèi)存馬攻擊等)進行清洗,同時會對有風(fēng)險的請求進行記錄并輸出相關(guān)特定加密日志,以便安全監(jiān)控平臺進行分析、溯源,快速定位攻擊信息及相關(guān)漏洞點。

        3 軟件供應(yīng)鏈安全治理方案價值

        本文基于DevSecOps 理念,構(gòu)建了覆蓋軟件應(yīng)用設(shè)計、編碼、測試、運營全過程的防御方案,能夠精準定位漏洞風(fēng)險點,檢測、防御和監(jiān)控分析粒度深入代碼級,不受業(yè)務(wù)加密與鏈路加密的影響。該方案主要有以下4個方面的價值。

        a)主動防御:進行安全左移,研發(fā)階段便進行安全介入,運營階段植入原生安全能力,進行貼身防護,不受業(yè)務(wù)加密與鏈路加密的影響,與邊界防護聯(lián)動,實現(xiàn)主動式安全防御。

        b)測試高效:覆蓋加密應(yīng)用場景,在軟件的功能測試階段同步開展安全測試,提升安全測試的覆蓋率及準確性,動態(tài)發(fā)現(xiàn)應(yīng)用軟件組件漏洞,減少安全人員投入。

        c)深度識別:不依賴于對攻擊請求單一的規(guī)則判斷,防御和監(jiān)控分析粒度深入代碼執(zhí)行邏輯及觸及的周邊對象。

        d)精準攔截:可對攻擊進行精準捕獲,輸出建議處置方案,有效防護應(yīng)用程序或其底層平臺上的0Day漏洞,防止未知威脅爆發(fā)。

        4 結(jié)束語

        為夯實網(wǎng)絡(luò)與信息安全技術(shù),提高軟件應(yīng)用系統(tǒng)和網(wǎng)絡(luò)環(huán)境的安全水平,抵御開源和云原生時代所帶來的新型風(fēng)險,本文基于DevSecOps 理念,運用安全編碼、開源組件安全分析、智能動態(tài)污點跟蹤、應(yīng)用運行時自保護等新技術(shù),構(gòu)建覆蓋應(yīng)用軟件設(shè)計、編碼、測試、運營全生命周期的安全防護體系,精準定位漏洞風(fēng)險點,檢測、防御和監(jiān)控分析粒度深入代碼級,且不依賴于單一規(guī)則,不受業(yè)務(wù)加密與鏈路加密的影響,能有效降低漏洞檢測誤報率,彌補網(wǎng)絡(luò)云化后“邊界安全防護”技術(shù)體系的不足,降低業(yè)務(wù)應(yīng)用被攻陷的風(fēng)險,推進安全能力原生化、服務(wù)化。

        未來DevSecOps 應(yīng)用發(fā)展將呈現(xiàn)出自動化、智能化的趨勢,DevSecOps 的目標是在不影響效率的前提下提升軟件系統(tǒng)安全性。隨著人工智能在多個領(lǐng)域的應(yīng)用,人工替代效能逐漸突出,這與DevSecOps 在軟件供應(yīng)鏈安全治理領(lǐng)域的目標高度一致,人工智能在未來將是DevSecOps必不可缺少的基礎(chǔ)能力。

        猜你喜歡
        污點開源漏洞
        漏洞
        基于代碼重寫的動態(tài)污點分析
        五毛錢能買多少頭牛
        使用Lightroom污點去除工具清理照片中的瑕疵
        三明:“兩票制”堵住加價漏洞
        漏洞在哪兒
        兒童時代(2016年6期)2016-09-14 04:54:43
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
        開源計算機輔助翻譯工具研究
        高鐵急救應(yīng)補齊三漏洞
        精品精品久久宅男的天堂| 国产精品无码一区二区在线观一| 人人摸人人操| 精品国产人妻一区二区三区| 四虎精品成人免费观看| 免费高清视频在线观看视频| 日本高清色一区二区三区| 亚洲桃色视频在线观看一区| 激性欧美激情在线| 91老司机精品视频| 男女视频网站免费精品播放| 日韩一区在线精品视频| 人妻无码一区二区视频| 精品国产91天堂嫩模在线观看| 日本在线视频二区一区| 懂色av一区二区三区尤物| 双腿张开被9个男人调教| 国产精品23p| 国内偷拍视频一区二区| 亚洲一区二区二区视频| 天堂中文在线资源| 日韩毛片在线看| 自拍视频国产在线观看| 美利坚日韩av手机在线| 国产精品ⅴ无码大片在线看| 精品亚洲国产探花在线播放| 全程国语对白资源在线观看| 69国产成人精品午夜福中文| 亚洲国产另类久久久精品黑人| 国产精品系列亚洲第一| 性感人妻av在线播放| 狼狼色丁香久久女婷婷综合| 国产亚洲一区二区在线观看| 在线播放国产一区二区三区 | 国产一级黄色av影片| 日韩不卡的av二三四区| 欧美激情在线播放| 国产乱沈阳女人高潮乱叫老| 人妻丝袜中文字幕久久| 国产农村妇女精品一区| 先锋影音av最新资源|