2021年25大软件缺陷(CWE) 内存异常问题排第一

端点安全
2年前

CWElog.png

  基于对通用漏洞与暴露(CVE)数据和每个CVE所关联严重性评分的分析,MITRE国土安全系统工程与开发研究所将内存异常问题排到其最新版25大危险软件缺陷列表榜首位置。

  过去两年来,MITRE通用缺陷列表(CWE)团队在美国国家漏洞数据库(NVD)中找出了总共3033个与“越界”(内存异常问题)相关的安全漏洞。这些漏洞的严重性平均分值为8.22(总分10分),表明其中大多数都是严重漏洞或关键漏洞。此外,越界写入错误可搞崩系统,实现代码执行,造成数据崩溃。

  跨站脚本错误(网页生成过程中输入的不恰当中和)在去年的列表中位居榜首,在7月22日发布的MITRE 2021 CWE Top 25最危险软件缺陷列表中处于第二位。攻击者可利用跨站脚本问题盗取会话和cookie信息、向网站发送恶意请求、利用浏览器漏洞,以及执行其他恶意操作。就原始数据而言,NVD中跨站脚本相关漏洞数量(3564)其实比排第一位的内存异常缺陷相关漏洞还多。但因为平均严重性评分(5.80)较低,此类漏洞综合排位低于内存异常缺陷。

  除了这两大漏洞,MITRE Top 25列表前五大最普遍、最严重的软件漏洞还包括越界读取错误(使攻击者能够从不同内存位置读取敏感数据);不恰当的输入验证错误(可致软件崩溃或消耗过多资源);操作系统命令注入(使攻击者能够在操作系统上执行恶意代码)。

  MITRE Top 25列表旨在为软件开发人员、用户和测试人员提示某些可造成漏洞利用的最危险、最普遍的软件缺陷。

  MITRE最新版CWE列表中的软件安全缺陷排名强调软件中更基础或更具体的缺陷,而不是此前主导此类列表的更高层次的所谓类级缺陷。例如,操作系统命令注入、关键函数身份验证缺失、不可信数据反序列化和默认权限不正确等软件缺陷,在新版Top 25列表中的排名就有所上升。操作系统命令注入在今年的列表中排第五位,而在去年的列表仅列第十。身份验证缺失问题在今年的列表中则上升了13位,来到第11位;反序列化错误爬升八位,来到第13位;默认权限不正确问题飙升22位,排第19位。

  总而言之,基础级别CWE的数量从占去年Top 25列表CWE总数的60%,增长到了今年列表CWE总数的71%。

  SANS技术学院研究院长Johannes Ullrich称,MITRE列表中的软件缺陷反映出了企业迈向基于应用编程接口(API)的分布式云应用过程中所出现的一些问题。

分布式应用环境大趋势

  事实上,上升最迅猛的三个漏洞,就与大型单一应用被通过不同API结合在一起的微服务所替代的环境直接相关。

  比如,与“关键函数身份验证缺失”相关的漏洞,出现在防护不佳的内部函数经由API暴露出来以支持去中心化应用的时候。与之类似,“默认权限不正确”问题主要影响开放S3存储桶、Azure Blob存储和开放No-SQL数据库,这些都是分布式应用中用到的组件。不安全反序列化漏洞则出现在分布式应用采用对象通信而对象以不安全的方式反序列化的情况下。

  Ullrich称:“软件开发的速度常常会扯安全后腿。” 

  虽然可以采用应用网关和认证服务等工具保护分布式应用环境,但开发人员往往不了解或不使用这些技术。 

  在开发人员完全了解这些新技术并亲身实验之前,应用就被开发出来了。

  著名软件安全专家Gary McGraw称,虽然MITRE通用缺陷列表这种东西很有用,但软件开发团队最好关注自身环境中的特定问题。

  “投入软件安全和应用安全25年之久,却仍然需要Top 25列表来感知漏洞在哪儿,这可真令人沮丧。”

  McGraw认为,广义列表的最大问题是,这种列表提供不了多少针对特定开发环境中各种情况的洞见。单纯依赖此类列表做出自身开发环境安全状况假设的公司最终有可能得出错误的结论。例如,尽管SQL注入错误常跻身最常见漏洞之列,此类缺陷却不会出现在压根儿没有数据库的环境中。所以,仅仅因为这些缺陷出现在OWASP Top 10列表里就死盯不放是毫无意义的。

  更好的做法是使用自动化工具识别特定于自身环境的漏洞。最重要的是,企业要有自己的缺陷和漏洞Top10或Top25列表。


参考阅读

MITRE推出工控系统ATT&CK评估结果

AI权限管控、内存指令安全与后门发现:第三代安全引擎的三个创新应用