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