代码缺陷解读——不受控制的资源消耗及表达式永假永真

Posted 中科天齐软件原生安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码缺陷解读——不受控制的资源消耗及表达式永假永真相关的知识,希望对你有一定的参考价值。

什么是不受控制的资源消耗缺陷漏洞?它又能带来哪些严重后果?让我们一起往下看。

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

一、什么是不受控制的资源消耗缺陷?

软件无法正确控制有限资源的分配和维护,从而使参与者无法影响所消耗的资源量,最终导致可用资源的耗尽。有限的资源包括内存,文件系统存储,数据库连接池条目和CPU。

如果攻击者可以触发这些有限资源的分配,但是资源的数量或大小不受控制,则攻击者可能会导致拒绝服务,从而消耗所有可用资源。这将阻止有效用户访问该软件,并且可能对周围环境产生影响。

例如,循环内字符串拼接是不受控制的资源消耗缺陷中的一个子类。

二、不受控制的资源消耗缺陷的构成条件有哪些?

1、缺少分配资源数量的限制;

2、在到达关闭阶段之前,将丢失对资源的所有引用;

3、处理后不关闭/返回资源。

三、不受控制的资源消耗缺陷会造成哪些后果?

资源耗尽的最常见结果是拒绝服务。该软件可能会变慢,由于未处理的错误而崩溃或将合法用户锁定。在某些情况下,有可能在资源耗尽的情况下强制软件“无法打开”。然后,软件的状态(可能还有安全功能)可能会受到威胁。

四、不受控制的资源消耗缺陷的防范和修补方法有哪些?

将节流机制设计到系统体系结构中。最好的保护措施是限制未经授权的用户可能导致消耗的资源量。强大的身份验证和访问控制模型将首先帮助防止此类攻击的发生。应尽可能保护登录应用程序免受DoS攻击。限制数据库访问(可能通过缓存结果集)可以帮助最大程度地减少消耗的资源。为了进一步限制发生DoS攻击的可能性,请考虑跟踪从用户收到的请求的速率,并阻止超出定义的速率阈值的请求。

五、不受控制的资源消耗缺陷样例:

 

Wukong软件检测上述程序代码,则可以发现代码中存在着“不受控制的资源消耗” 导致的代码缺陷,如下图:

 

不受控制的资源消耗缺陷在CWE中被编号为CWE-400:Uncontrolled Resource Consumption

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

一、什么是表达式永假/永真缺陷?

如果布尔表达式不改变程序逻辑,则完全没有必要,并且可以将其删除。如果执行逻辑与程序员的意图不匹配,这就是一个错误,布尔表达式应该被修复。

二、表达式永假/永真缺陷的构成条件有哪些?

该软件包含一个始终为假或为真的表达式。

三、表达式永假/永真缺陷的构成会造成哪些后果?

无效代码可能会在代码维护期间引起问题,并可能引入漏洞。

四、表达式永假/永真缺陷的防范和修补方法有哪些?

布尔表达式应该有改变其值的操作。

使用静态分析工具发现这种情况。

五、表达式永假/永真缺陷样例:

 

用Wukong软件检测上述程序代码,则可以发现代码中存在着“表达式永假/永真” 导致的代码缺陷,如下图:

 

表达式永假/永真缺陷在CWE中被编号为CWE-570:Expression is Always False

以上是关于代码缺陷解读——不受控制的资源消耗及表达式永假永真的主要内容,如果未能解决你的问题,请参考以下文章

命题逻辑

代码缺陷解读:加密强度不足缺陷漏洞及使用过时方法缺陷

性能缺陷分析及定位方法

5.19心得

MyBatis 源码分析——动态SQL语句

一阶逻辑基本概念