悟空云课堂丨代码安全第二十四期:数字类型的不正确转换漏洞
中科天齐倾情打造《悟空云课堂》旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。本期主题为数字类型的不正确转换导致漏洞的相关介绍。
一、什么是数字类型的不正确转换?
从一种数据类型转换为另一种数据类型(例如从long到int )时,会忽略部分数据,造成精度损失,甚至产生不可预期的数值。如果在敏感的上下文中使用结果值,则可能会发生危险行为。
二、数字类型的不正确转换构成条件有哪些?
满足以下条件,就构成了一个该类型的安全漏洞:
将一个数值从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值。
三、数字类型的不正确转换会造成哪些后果?
该程序可能会使用错误的数字结束并生成错误的结果。如果该数字用于分配资源或做出安全决策,则可能会引入漏洞。
四、数字类型的不正确转换的防范和修补方法有哪些?
1.避免在数字类型之间进行转换;
2.始终检查允许的范围。
五、数字类型的不正确转换漏洞样例:
用Wukong软件源代码静态分析工具检测上述程序代码,则可以发现代码中存在着“数字类型的不正确转换” 导致的代码缺陷,如下图:
数字类型的不正确转换在CWE中被编号为CWE-681:Incorrect Conversion between Numeric Types
参读链接:https://www.woocoom.com/b021.html?id=55725a2b106e4a5f9d6da2736af71487
评论