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

        ?

        Web應用代碼安全防護方案研究

        2022-01-21 01:11:34張小梅郭新海
        信息通信技術(shù) 2021年6期
        關(guān)鍵詞:源碼源代碼開發(fā)人員

        劉 安 張小梅 郭新海 丁 攀

        中國聯(lián)通研究院 北京 100048

        引言

        Web應用和人們的生活緊密相關(guān),承載著大量隱私信息,一旦被攻擊者獲取后用于違法活動,會造成巨大的損失。近年來,每天都有大量不法分子進行攻擊活動,攻擊的安全事件也越來越多。注入攻擊、XSS、文件上傳、反序列化等攻擊手段層出不窮,攻擊方式更為隱蔽,許多0day漏洞也不斷曝出,給人們造成巨大損失。如何加強對Web應用的安全防護,成為人們普遍關(guān)心的問題[1]。

        Web應用被攻擊,究其根源是因為開發(fā)人員安全意識淡薄以及編碼水平限制,在研發(fā)Web應用時無意中引入漏洞[2]。漏洞來自兩個部分:一是源代碼本身存在的編碼缺陷,二是來自編碼過程中引入的依賴庫。超過六成的安全漏洞和代碼缺陷相關(guān),這種漏洞會在后期部署后逐一顯露,代碼引入的漏洞隱蔽性比較強,靠后期的防護手段成本較大,對于一些隱藏比較深的漏洞,傳統(tǒng)的防護手段很難發(fā)現(xiàn),容易產(chǎn)生一些0day漏洞,造成安全威脅。另一方面,為了給開發(fā)者提供方便,將一些公共函數(shù)封裝成依賴包供開發(fā)者調(diào)用,提高了研發(fā)效率,但是依賴庫一旦出現(xiàn)安全漏洞,對所有引用依賴庫的應用都會產(chǎn)生影響,波及范圍更廣?,F(xiàn)許多企業(yè)都以開源組件作為自身的代碼架構(gòu)基礎(chǔ),開源組件的可更改性和便利性,都可能成為攻擊者首選的攻擊點。開發(fā)人員在研發(fā)應用時有必要確保他們所使用的開源組件的安全性,并持續(xù)監(jiān)控這些組件的安全漏洞。

        在應用研發(fā)階段,增強開發(fā)人員安全意識,及時發(fā)現(xiàn)編碼中的缺陷,識別依賴庫中的漏洞,能夠從源頭處及時阻斷漏洞發(fā)生的可能性,減少后期安全防護的成本,從根本上保證Web應用的安全性。

        1 防護方案

        根據(jù)Web應用項目代碼的特點,防護方案從三個層面對項目代碼進行整體防護,如圖1所示。一是通過靜態(tài)源碼審計技術(shù)對項目源代碼進行安全審計,分析代碼中的編碼缺陷。二是通過軟件成分分析技術(shù)對項目代碼中依賴的第三方庫進行漏洞識別,消除開源代碼中的漏洞。三是提供安全編碼規(guī)范以及安全基礎(chǔ)庫SDK,研發(fā)人員在編寫代碼時以安全編碼規(guī)范為指導,避免安全漏洞的引入,并通過調(diào)用安全基礎(chǔ)庫SDK中提供的安全函數(shù),消除編碼過程中的安全隱患。在使用靜態(tài)源碼審計技術(shù)對代碼進行審計時,可以將安全基礎(chǔ)庫SDK中的安全函數(shù)添加白名單,減少審計源代碼時的誤報率,提高效率。

        圖1 Web應用代碼整體防護方案

        1.1 靜態(tài)源碼審計

        Web應用的開發(fā)人員安全經(jīng)驗不足,以完成功能點為導向的開發(fā)模式很容易忽視編碼中的安全問題。此外,由于開發(fā)人員缺乏安全知識,很容易引入代碼缺陷,項目一旦上線,其安全問題接踵而至,增加了防護成本[3]。因此,靜態(tài)源碼審計技術(shù)應運而生,識別代碼缺陷,保證應用的安全性。

        源代碼審計技術(shù)的原理如圖2所示。上傳源代碼后,防護方案首先進行詞法分析,讀取源代碼的字符流,并將其分解成小的程序片段[4]。然后進行語義分析,根據(jù)詞法分析的結(jié)果,生成抽象語法樹,將生成的結(jié)果和漏洞安全規(guī)則庫中的規(guī)則進行匹配,識別程序中的漏洞。至此階段的分析,還不能完全理解軟件中的語義,漏報率和誤報率較高,需要進一步分析。根據(jù)詞法和語義分析的結(jié)果,生成稱為控制流圖的有向圖,分析語句之間的關(guān)系,提取代碼中的控制流信息[5]。在此基礎(chǔ)上進行數(shù)據(jù)流分析,遍歷源代碼生成的控制流圖,收集程序執(zhí)行中的數(shù)據(jù)信息,根據(jù)上下文理解指令的行為,推斷程序中存在的安全漏洞。為了提高檢測的準確度,對上述分析的結(jié)果進行深度分析,深度分析的方法包括區(qū)間分析、循環(huán)摘要、函數(shù)分析、指向分析和缺陷模式約束。最后對各階段的結(jié)果進行分析整理,生成源代碼漏洞檢測報告。在整個漏洞識別的過程中,其判斷依據(jù)主要來源于國外的GitLib、Github、NVD、CVE和國內(nèi)的CNNVD等組織,根據(jù)這些組織提供的漏洞信息,建立漏洞庫和漏洞模式庫識別代碼中相關(guān)漏洞。

        圖2 源代碼審計方案

        1.2 軟件成分分析

        第三方依賴庫的使用,大大縮短了開發(fā)周期,減少開發(fā)者的工作量。目前越來越多的Web項目都引用了第三方依賴庫,由于開發(fā)人員安全經(jīng)驗不足,對安全漏洞關(guān)注度不夠,很容易引入帶漏洞的依賴庫,所以其安全性應該引起足夠重視。軟件成分分析技術(shù)通過識別依賴庫的版本和名稱等信息,與后臺的CNNVD和CVE漏洞庫以及未公布的漏洞庫等進行匹配,發(fā)現(xiàn)所引用依賴庫的漏洞。下面詳細說明防護方案中軟件成分分析技術(shù)實施過程。

        如圖3所示,項目的jar包解壓后,會發(fā)現(xiàn)lib目錄下包含項目代碼中所有的依賴包,pom.xml文件中通過包坐標的形式也定義了項目所需的依賴包,軟件成分分析實施方案在分析依賴包時,主要依據(jù)pom.xml以及項目包中的lib文件進行鑒別。首先,將lib下的jar包進行MD5值計算,然后查詢后臺的漏洞庫進行MD5值匹配,發(fā)現(xiàn)引用包中的漏洞。其次,通過pom.xml分析引用包中的依賴關(guān)系,根據(jù)分析得到所有依賴包的版本和包名等信息,和后臺的漏洞庫進行版本和包名的匹配。最后,將兩個過程發(fā)現(xiàn)的漏洞取合集,識別出依賴庫中的漏洞。如果提供的是源碼,則只能通過對pom.xml的分析項目代碼中所有的依賴包來識別漏洞。

        圖3 Web應用代碼依賴包

        1.3 安全編碼規(guī)范和安全基礎(chǔ)庫SDK

        從目前公開的漏洞來看,大部分安全漏洞很大程度上是由于代碼編寫不規(guī)范、缺少安全編碼意識所致。編寫安全漏洞的防護代碼往往需要研發(fā)工程師具備一定的安全知識,否則很容易造成修復不當再次被繞過利用的風險。因此,將安全編碼規(guī)范與安全基礎(chǔ)庫SDK兩者進行融合,真正將安全編碼規(guī)范落地到研發(fā)鏈條中,實現(xiàn)效果最大化。下面詳細說明防護方案中安全編碼規(guī)范與安全基礎(chǔ)庫SDK實施過程。

        首先,進行漏洞統(tǒng)計分類。由于OWASP TOP10只定義了10個大類,通過對Web應用中普遍出現(xiàn)的漏洞進行分析,以及安全領(lǐng)域的經(jīng)驗,對10個大類進行了細分類,同時對OWASP TOP10沒有涉及的漏洞也進行了總結(jié),得到的結(jié)果如表1所示。然后,對這些小類漏洞進行安全編碼規(guī)范和安全基礎(chǔ)庫SDK的開發(fā),其中安全編碼規(guī)范內(nèi)容包含漏洞描述、安全編碼方法、安全編碼用例以及缺陷代碼示例,安全基礎(chǔ)庫SDK中由專業(yè)安全人員進行開發(fā),其中包含了避免這些漏洞的函數(shù)。最后,開發(fā)人員根據(jù)安全編碼規(guī)范為指導進行安全編碼,并且在編碼過程中調(diào)用安全基礎(chǔ)庫SDK的函數(shù),避免漏洞的產(chǎn)生。同時在靜態(tài)源碼審計時,將安全基礎(chǔ)庫SDK中函數(shù)設(shè)置白名單,減少誤報,提高審計效率。

        表1 不同UP演進版本定義的5G消息功能

        2 代碼安全防護檢測效果分析

        代碼安全是漏洞引入的源頭,所以要足夠重視,但是當前現(xiàn)狀是只引入了靜態(tài)源碼審計技術(shù)或者軟件成分分析技術(shù),或者引入了兩種技術(shù)但是沒有一個有效的方法指導開發(fā)人員避免或者修補代碼漏洞,所以目前已存在的方法不能有效對Web應用代碼進行整體安全防護。通過分析代碼安全防護的痛點,提出了一整套的Web應用代碼安全防護方案。在Web應用代碼安全防護方案整體建設(shè)中,既需要依賴靜態(tài)源碼審計技術(shù)對開發(fā)人員研發(fā)的代碼做漏洞檢測,及時發(fā)現(xiàn)代碼中的漏洞[6],也需要對開發(fā)人員引入的組件進行漏洞檢測,及時發(fā)現(xiàn)含有漏洞的開源組件,同時需要編碼規(guī)范和安全基礎(chǔ)庫SDK對代碼漏洞進行整改,并指導開發(fā)人員在Web項目的開發(fā)中避免引入代碼漏洞。下面對Web應用代碼安全防護方案中的主要技術(shù)進行實驗效果分析。

        1)靜態(tài)源碼審計技術(shù)實驗效果分析

        本文選用OWASP Benchmark作為測試靶場。

        OWASP Benchmark測試集包含2740個漏洞,分為真漏洞和假漏洞,能夠很好體現(xiàn)出源代碼審計實施方案的效果,檢測出其誤報率和漏報率。將代碼上傳至源碼審計系統(tǒng)進行審計,測試中會有以下幾種結(jié)果:正確識別真實漏洞(True Positive-TP),真陽性;無法識別真實漏洞(False Negative-FN),假陰性,屬于漏報;正確地識別假漏洞(True Negatvie-TN),真陰性;錯誤地報出假漏洞(False Positive-FP),假陽性,屬于誤報。表2是源代碼審計檢測結(jié)果的統(tǒng)計分析表。

        通過表2的數(shù)據(jù),進行計算可得如下結(jié)果:

        表2 Benchmark檢測結(jié)果

        2)軟件成分分析檢測效果分析

        開源依賴包的引入,給應用開發(fā)者帶來了極大的便利,大大縮短了開發(fā)周期。很多公司默認為開源即安全,不重視開源依賴包的漏洞檢測。隨著開源軟件漏洞的不斷出現(xiàn),SCA的重要性也凸顯出來。目前市面上沒有公開的漏洞靶場去檢測SCA技術(shù)的優(yōu)劣,下面采用Github和私有軟件以及jar包和源碼包相結(jié)合的方式來檢測SCA方案的優(yōu)劣,并通過查詢NVD漏洞庫,證實組件漏洞的真實性,證實過程如圖4所示:首先利用軟件成分分析技術(shù)查找含有包含漏洞的組件版本,本例中為MyBatis 3.5.3,屬于包含高危漏洞的組件,為了證實結(jié)果的準確性,登錄NVD官網(wǎng),輸入該組件的名稱進行搜索,可以看到該組件在3.5.6版本之前都存在漏洞,并且根據(jù)V3.1評分標準該組件存在高危漏洞,所以就證實了分析結(jié)果的準確性,根據(jù)該步驟驗證其他組件,便可以檢驗利用軟件成分分析技術(shù)檢測包含漏洞組件的準確性。

        圖4 NVD官網(wǎng)查找組件漏洞

        表3是測試分析結(jié)果,通過對比分析NVD漏洞庫,檢查組件漏洞的準確率可以達到100%。

        表3 SCA測試結(jié)果分析表

        從檢測結(jié)果來看,軟件成分分析技術(shù)可以檢測出項目中引入的開源軟件,識別出含有漏洞的開源軟件,幫助研發(fā)人員消除開源組件引入的安全風險。研發(fā)人員可以通過升級軟件版本的方法消除這些漏洞。

        通過靜態(tài)源碼審計和軟件成分分析檢測效果的分析可知,該方案不僅能夠及時發(fā)現(xiàn)開發(fā)人員編寫源碼中存在的漏洞,而且能夠發(fā)現(xiàn)引入含有漏洞的開源組件。此外安全編碼規(guī)范和安全基礎(chǔ)庫SDK能夠指導研發(fā)人員進行漏洞整改以及指導開發(fā)人員進行安全編碼,形成從項目代碼編寫到項目安全測試全流程的安全防護,填補了當前對Web應用代碼安全防護方案的空白。

        3 總結(jié)

        Web應用提供了Web服務(wù),為人們的衣食住行提供了便利。Web應用中包含個人大量的隱私信息,一旦被非法獲取到,會給個人乃至國家造成巨大損失[7]。Web應用項目代碼是漏洞產(chǎn)生的源頭,從源頭上消除安全隱患,才能節(jié)約成本,真正提升Web應用的安全性[8]。文中提出的Web應用代碼防護方案,不僅從源代碼和依賴庫進行了漏洞識別,而且對安全編碼規(guī)范和安全基礎(chǔ)庫SDK進行了研究,從寫代碼到識別漏洞,再到對開發(fā)人員進行安全編碼指導,全方位消除Web應用代碼可能產(chǎn)生漏洞的薄弱環(huán)節(jié),保證了Web應用代碼的安全性,從根本上對Web應用進行了安全防護。

        猜你喜歡
        源碼源代碼開發(fā)人員
        人工智能下復雜軟件源代碼缺陷精準校正
        計算機仿真(2023年8期)2023-09-20 11:23:42
        基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應爬蟲代碼生成方法
        計算機應用(2023年6期)2023-07-03 14:11:56
        基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測方法
        計算機時代(2023年6期)2023-06-15 17:49:09
        基于TXL的源代碼插樁技術(shù)研究
        企業(yè)如何保護源碼
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應用
        軟件源代碼非公知性司法鑒定方法探析
        基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實驗課程改革
        計算機教育(2016年4期)2016-05-20 02:36:05
        揭秘龍湖產(chǎn)品“源代碼”
        讓Windows 10進入開發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        人妻丰满多毛熟妇免费区| 在线亚洲妇色中文色综合| 青青草成人免费在线视频| 国产七十六+老熟妇| 无码国产激情在线观看| 最新手机国产在线小视频| 人妻人妇av一区二区三区四区| 亚洲av无码专区在线| 亚洲精品国偷自产在线99正片| 日本专区一区二区三区| 亚洲中文字幕乱码在线观看| 欧美肥妇毛多水多bbxx水蜜桃| 无码国产色欲xxxxx视频| 91青青草久久| 中文字幕av素人专区| 精品久久久bbbb人妻| 免费1级做爰片1000部视频| 亚洲美免无码中文字幕在线| 亚洲天堂av免费在线看| 白色白在线观看免费2| 亚洲中文字幕在线综合| 亚洲av日韩精品久久久久久久| 精品人妻无码视频中文字幕一区二区三区| 性色av成人精品久久| 白浆国产精品一区二区| 欧美最大胆的西西人体44| 国产高潮精品久久AV无码| 日本办公室三级在线看| 亚洲综合欧美色五月俺也去| 人妻少妇精品视频一区二区三区| 九九99久久精品午夜剧场免费| 一区二区人妻乳中文字幕| 扒开腿狂躁女人爽出白浆 | 丰满少妇人妻无码| 欧美丰满熟妇aaaaa片| 少妇熟女淫荡丰满| 国产黑丝美女办公室激情啪啪| 国产成人精品久久一区二区三区| 在线不卡av天堂| 色综合久久人妻精品日韩| 国产综合色在线精品|