列表包含可致严重软件漏洞的最常见关键缺陷。
9 月 17 日,MITRE 公布《通用缺陷列表 (CWE) Top 25 最危险软件错误》草稿,并在新闻发布中解释称,这是一份关于可致严重软件漏洞的最普遍、最关键缺陷的列表。
在一份关于该列表的咨询报告中, 网络安全与基础设施安全局 (CISA) 称,攻击者常能利用这些漏洞夺取受影响系统的控制权,盗取敏感数据,或者引发拒绝服务。用户和管理员最好能查阅该列表,并了解 MITRE 建议实施的缓解措施。
该 Top 25 列表是可供软件开发人员、测试员、客户、项目经理、安全研究员和教育者探索软件通用威胁的社区资源。今年,MITRE 团队采用了新方法生成该列表:从美国国家漏洞数据库 (NVD) 中抽取 CVE 相关数据,并将发生率和通用漏洞评分系统 (CVSS) 平均得分纳入定级考虑。每个缺陷的发生率水平和危险程度都采用评分公式确定。
此前该列表都是通过汇聚多家企业的调查问卷回复,以及收集来自安全分析师、研究人员和开发者的反馈生成。调查中会让行业专家提名自己认为最普遍或最重要的缺陷,并会使用 CVSS 的定制部分来确定每个缺陷的排名。
MITRE 表示,这种方法有很多优势,但太费时费力,而且过于主观。
2019 列表则动用了更细致、更具统计意义的过程,利用已报告漏洞的数据来衡量每个缺陷的危险程度。
MITRE 软件保障主管 Drew Buttner 表示,他们想采用一种更客观且基于现实世界的方法。2019 Top 25 列表包含从 2017 到 2018 的缺陷,反映 CWE 团队修正数千个错误映射的 CVE 条目的努力。MITRE 计划在 2020 列表中评估未来一年的映射。Buttner 指出,今年的 Top 25 列表是自 2011 年以来首度推出,但 MITRE 未来的目标是每年都推出一个新列表。
2019 顶级缺陷
今年的 Top 25 并不出人意外。很多顶级缺陷继续出现在列表中,即便过了十年也依旧霸榜。虽然处在列表末端的缺陷让位于新缺陷,榜首的几个缺陷通常稳坐不动。
得分最高的缺陷是 CWE-119——缓冲区溢出,或称 “内存缓冲区边界内操作的不当限制”,分数 75.76。有些编程语言允许直接内存寻址,不自动确保内存地址对被引用的内存缓冲区有效,可导致读/写操作在链向数据结构或内部程序数据的内存地址上执行。攻击者可由此执行恶意代码、修改控制流、读取敏感数据,或者直接搞崩系统。
Buttner 和 MITRE CWE 项目主管 Chris Levendis 预测,缓冲区溢出可能处于列表顶部,就像 2011 年那样,而且这也是整个行业颇为熟知的缺陷了。
得分次高的是 CWE-79——跨站脚本,或称 “网页生成期间输入不当中和”,分数 45.69。在置入后续以网页形式提供给其他用户的输出前,软件不中和,或者不当中和用户可控的输入。非受信数据可能进入 Web 应用并最终执行恶意脚本。
排第三的是 CWE-20——输入不当验证,软件不验证,或不当验证可影响程序控制流或数据流的输入。攻击者可写入应用未预期的输入。可造成系统组件接收非预期输入,引发任意代码执行或控制流篡改。
软件用户可利用该 Top 25 列表,在购买软件前衡量出品公司的安全操作。使用开源的用户可以更好地了解开发者是否注意到这些缺陷,开发人员也能将此列表当作涵盖应关注缺陷的 “优先级备忘录”。
最起码,作为软件消费者是可以将此列表作为软件安全性参考的。
CISA 咨询报告:
MITRE 2019 CEW TOP 25:
https://cwe.mitre.org/top25/archive/2019/2019_cwe_top25.html
CWE-79: