悟空云课堂丨代码安全第三十二期:不受控制的资源消耗

中科天齐软件源代码安全检测中心

共 820字,需浏览 2分钟

 ·

2021-05-25 16:27

中科天齐倾情打造《悟空云课堂》旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。本期主题为不受控制的资源消耗缺陷漏洞的相关介绍。

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

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

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

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

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

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

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

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

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

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

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

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

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

5SaQ7Gevuy.jpg

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

hmeEdfgNq7.jpg

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



浏览 28
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报