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