程式碼缺陷解讀——不受控制的資源消耗及表示式永假永真
什麼是不受控制的資源消耗缺陷漏洞?它又能帶來哪些嚴重後果?讓我們一起往下看。
不受控制的資源消耗缺陷漏洞
一、什麼是不受控制的資源消耗缺陷?
軟體無法正確控制有限資源的分配和維護,從而使參與者無法影響所消耗的資源量,最終導致可用資源的耗盡。有限的資源包括記憶體,檔案系統儲存,資料庫連線池條目和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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 共享一勞永逸的資料庫編碼解決方案資料庫
- 註釋 · 佛祖保佑程式碼永無BUG
- 程式碼缺陷解讀:通用異常捕獲宣告缺陷漏洞
- CTO俱樂部讀者會—— 流程的永恆之道
- 永珍奧科嵌入式核心板解決方案!
- 開源:具有永遠奉獻精神的禮物
- 讀《蘋果狂潮:iPhone開啟永遠線上的時代》蘋果iPhone
- Lisp的永恆之道Lisp
- 只會寫程式碼的程式設計師永遠無法出色?程式設計師
- 用資料致敬永遠的傳奇
- 程式設計永遠不容易程式設計
- 《毀滅戰士:永恆》——時代雖變,但DOOM永恆OOM
- 原始碼解讀: Vuex 的一些缺陷原始碼Vue
- 《永進》評測:小而精緻的國產解謎佳作
- 影視永遠不懂遊戲遊戲
- 永遠成長的蘋果樹蘋果
- Evercookie(永遠刪不掉的cookie)Cookie
- RFID讀寫器+產線智慧管理—健永科技
- C# Lambda表示式詳解,及Lambda表示式樹的建立C#
- 使用nohup讓程式永遠後臺執行
- 永遠不要再犯的 5 個程式設計錯誤程式設計
- 電視連續劇風雲--雄霸天下主題曲-永遠永遠
- 外掛,永無止息的敵人
- 武漢永珍奧科:嵌入式開發的三種方案!
- 一勞永逸讓VB自動改變控制元件大小控制元件
- EOS基礎1:賬戶註冊及資源消耗
- Android記憶體、效能是程式永恆的話題Android記憶體
- 程式設計師永遠不應該相信"抽象“程式設計師抽象
- JS -真與假-JS
- 程式設計師永遠不要再犯的5個程式設計bug程式設計師
- PostgreSQL 原始碼解讀(164)- 查詢#84(表示式求值)SQL原始碼
- sql_util_消耗資源SQL
- 解讀程式碼檢查規則語言CodeNavi的表示式節點和屬性
- 不受控制的 position:fixed
- Oracle中的正規表示式(及函式)詳解Oracle函式
- 再見了Antirez永遠的Redis之神Redis
- 一勞永逸的搞定 flex 佈局Flex
- 探尋軟體的永恆之道 (轉)