程式碼缺陷解讀——不受控制的資源消耗及表示式永假永真

zktq2021發表於2021-08-30

什麼是不受控制的資源消耗缺陷漏洞?它又能帶來哪些嚴重後果?讓我們一起往下看。

不受控制的資源消耗缺陷漏洞

一、什麼是不受控制的資源消耗缺陷?

軟體無法正確控制有限資源的分配和維護,從而使參與者無法影響所消耗的資源量,最終導致可用資源的耗盡。有限的資源包括記憶體,檔案系統儲存,資料庫連線池條目和CPU。

如果攻擊者可以觸發這些有限資源的分配,但是資源的數量或大小不受控制,則攻擊者可能會導致拒絕服務,從而消耗所有可用資源。這將阻止有效使用者訪問該軟體,並且可能對周圍環境產生影響。

例如,迴圈內字串拼接是不受控制的資源消耗缺陷中的一個子類。

二、不受控制的資源消耗缺陷的構成條件有哪些?

1、缺少分配資源數量的限制;

2、在到達關閉階段之前,將丟失對資源的所有引用;

3、處理後不關閉/返回資源。

三、不受控制的資源消耗缺陷會造成哪些後果?

資源耗盡的最常見結果是拒絕服務。該軟體可能會變慢,由於未處理的錯誤而崩潰或將合法使用者鎖定。在某些情況下,有可能在資源耗盡的情況下強制軟體“無法開啟”。然後,軟體的狀態(可能還有安全功能)可能會受到威脅。

四、不受控制的資源消耗缺陷的防範和修補方法有哪些?

將節流機制設計到系統體系結構中。最好的保護措施是限制未經授權的使用者可能導致消耗的資源量。強大的身份驗證和訪問控制模型將首先幫助防止此類攻擊的發生。應儘可能保護登入應用程式免受DoS攻擊。限制資料庫訪問(可能透過快取結果集)可以幫助最大程度地減少消耗的資源。為了進一步限制發生DoS攻擊的可能性,請考慮跟蹤從使用者收到的請求的速率,並阻止超出定義的速率閾值的請求。

五、不受控制的資源消耗缺陷樣例:

 

檢測上述程式程式碼,則可以發現程式碼中存在著“不受控制的資源消耗” 導致的程式碼缺陷,如下圖:

 

不受控制的資源消耗缺陷在CWE中被編號為CWE-400:Uncontrolled Resource Consumption

表示式永假/永真缺陷缺陷漏洞

一、什麼是表示式永假/永真缺陷?

如果布林表示式不改變程式邏輯,則完全沒有必要,並且可以將其刪除。如果執行邏輯與程式設計師的意圖不匹配,這就是一個錯誤,布林表示式應該被修復。

二、表示式永假/永真缺陷的構成條件有哪些?

該軟體包含一個始終為假或為真的表示式。

三、表示式永假/永真缺陷的構成會造成哪些後果?

無效程式碼可能會在程式碼維護期間引起問題,並可能引入漏洞。

四、表示式永假/永真缺陷的防範和修補方法有哪些?

布林表示式應該有改變其值的操作。

使用靜態分析工具發現這種情況。

五、表示式永假/永真缺陷樣例:

 

用Wukong軟體檢測 上述程式程式碼,則可以發現程式碼中存在著“表示式永假/永真” 導致的程式碼缺陷,如下圖:

 

表示式永假/永真缺陷在CWE中被編號為CWE-570:Expression is Always False


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2789390/,如需轉載,請註明出處,否則將追究法律責任。

相關文章