悟空云課堂丨代碼安全第二十四期:數(shù)字類型的不正確轉(zhuǎn)換漏洞

中科天齊傾情打造《悟空云課堂》旨在科普軟件安全相關知識,助力企業(yè)有效防范軟件安全漏洞,提升網(wǎng)絡安全防護能力。本期主題為數(shù)字類型的不正確轉(zhuǎn)換導致漏洞的相關介紹。
一、什么是數(shù)字類型的不正確轉(zhuǎn)換?
從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型(例如從long到int )時,會忽略部分數(shù)據(jù),造成精度損失,甚至產(chǎn)生不可預期的數(shù)值。如果在敏感的上下文中使用結(jié)果值,則可能會發(fā)生危險行為。
二、數(shù)字類型的不正確轉(zhuǎn)換構(gòu)成條件有哪些?
滿足以下條件,就構(gòu)成了一個該類型的安全漏洞:
將一個數(shù)值從一種類型強制轉(zhuǎn)換為另一種類型,而又超出了目標類型的表示范圍,結(jié)果就會截斷成一個完全不同的值。
三、數(shù)字類型的不正確轉(zhuǎn)換會造成哪些后果?
該程序可能會使用錯誤的數(shù)字結(jié)束并生成錯誤的結(jié)果。如果該數(shù)字用于分配資源或做出安全決策,則可能會引入漏洞。
四、數(shù)字類型的不正確轉(zhuǎn)換的防范和修補方法有哪些?
1.避免在數(shù)字類型之間進行轉(zhuǎn)換;
2.始終檢查允許的范圍。
五、數(shù)字類型的不正確轉(zhuǎn)換漏洞樣例:

用Wukong軟件源代碼靜態(tài)分析工具檢測上述程序代碼,則可以發(fā)現(xiàn)代碼中存在著“數(shù)字類型的不正確轉(zhuǎn)換” 導致的代碼缺陷,如下圖:

數(shù)字類型的不正確轉(zhuǎn)換在CWE中被編號為CWE-681:Incorrect Conversion between Numeric Types
參讀鏈接:https://www.woocoom.com/b021.html?id=55725a2b106e4a5f9d6da2736af71487
評論
圖片
表情
