javascript
此模块的调试信息中缺少源信息_SpringBoot中的潜在漏洞分析
Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新的開(kāi)源框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。通過(guò)這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開(kāi)發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
現(xiàn)在很多研發(fā)團(tuán)隊(duì)開(kāi)始轉(zhuǎn)向采用該框架,但是這個(gè)框架經(jīng)過(guò)使用北大軟件的CoBOT進(jìn)行分析,發(fā)現(xiàn)里面還是隱藏著很多缺陷和安全漏洞。我選擇了幾個(gè)比較典型的,容易理解的缺陷進(jìn)行簡(jiǎn)單分析。
1、創(chuàng)建問(wèn)題權(quán)限問(wèn)題
上述存在的問(wèn)題所屬的缺陷屬于沒(méi)有使用合適的訪問(wèn)權(quán)限創(chuàng)建文件。缺陷發(fā)生位置:
在RepackagerTests.java中jarThatUsesCustomCompressionConfigurationCanBeRepackaged函數(shù)的第646行。在(RepackagerTests.java)文件第(646)行調(diào)用方法[new FileOutputStream(source)]創(chuàng)建文件,沒(méi)有指定訪問(wèn)權(quán)限,攻擊者可能會(huì)在程序修改權(quán)限之前讀取或修改文件。必須使用訪問(wèn)權(quán)限創(chuàng)建文件,以防止未經(jīng)授權(quán)的文件訪問(wèn)。 ( CWE中的類似缺陷是cwe-279 cwe-276 cwe-732 )
2、文件路徑可能被利用
上述缺陷是 java/io/File.<init>(Ljava/io/File;Ljava/lang/String;)V讀取文件內(nèi)容時(shí),將文件存放的路徑傳給文件API,則可以讀寫(xiě)來(lái)自任意文件系統(tǒng)位置的文件。此規(guī)則標(biāo)識(shí)潛在的路徑遍歷漏洞。 CWE中的類似缺陷是(CWE-22 )
3、異常處理不全面可能泄露調(diào)試信息
上述問(wèn)題的缺陷主要是servlet錯(cuò)誤處理機(jī)制導(dǎo)致的信息泄露。缺陷發(fā)生位置:在TestServlet.java中第31行。在(TestServlet.java)文件第(31)行方法[doGet]中沒(méi)有捕獲所有的異常,如果發(fā)生請(qǐng)求失敗或者DNS解析異常等情況可能會(huì)導(dǎo)致泄漏調(diào)試信息,從而有利于攻擊者進(jìn)行攻擊。建議該方法捕獲 Throwable,從而盡可能降低調(diào)用 Servlet 錯(cuò)誤響應(yīng)機(jī)制的可能性。 ( CWE-209 )
4、關(guān)閉文件沒(méi)有進(jìn)行異常檢查可導(dǎo)致非正常終止
上述問(wèn)題的缺陷主要是在finally程序段中遺漏可沒(méi)有進(jìn)行異常檢查。缺陷發(fā)生位置在SampleIntegrationParentApplicationTests.java中testVanillaExchange函數(shù)的第60行。(SampleIntegrationParentApplicationTests.java)文件第(60)行finally程序段調(diào)用[producer.close()],該調(diào)用可能拋出異常而未被捕獲,可能導(dǎo)致整個(gè)try程序段非正常終止,try程序段中拋出的異常丟失且finally異常后的語(yǔ)句不被執(zhí)行。 ( cwe-248 cwe-460 cwe-584 cwe-705 cwe-754 )
5、浮點(diǎn)數(shù)和整型數(shù)比較條件不成立
上述問(wèn)題的缺陷是浮點(diǎn)數(shù)和長(zhǎng)整型進(jìn)行相等判斷,這可能導(dǎo)致永遠(yuǎn)不相等。在org.springframework.boot.configurationprocessor.json.JSONObject.numberToString(Number)中,為浮點(diǎn)數(shù)進(jìn)行相等性的測(cè)試。該操作對(duì)比兩個(gè)浮點(diǎn)數(shù)的值是否相等。因?yàn)楦↑c(diǎn)計(jì)算可能涉及舍入,計(jì)算浮點(diǎn)值和double值可能并不準(zhǔn)確。
各位可能以為這些缺陷不是我們常說(shuō)的SQL注入,XSS攻擊、CSRF攻擊等等,但是現(xiàn)在惡意攻擊者攻擊時(shí),往往是多種攻擊手段綜合運(yùn)用。系統(tǒng)中的任何缺陷或安全漏洞,都存在著被利用的可能,所以采用該開(kāi)源框架的研發(fā)人員可能針對(duì)上述缺陷和漏洞進(jìn)行一些修復(fù),以增強(qiáng)安全性。
關(guān)注安全 關(guān)注作者
(完)
總結(jié)
以上是生活随笔為你收集整理的此模块的调试信息中缺少源信息_SpringBoot中的潜在漏洞分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 产线数字化软件源码_数字化工厂规划的十大
- 下一篇: 记事本保存的内容被覆盖_记事本的妙用——