写点什么

CWE4.6 标准中加入 OWASP 2021 TOP10

  • 2021 年 11 月 25 日
  • 本文字数:3493 字

    阅读完需:约 11 分钟

​​摘要: 新发布的 CWE4.6 标准,加入了 OWASP 2021 TOP10 的视图。

 

本文分享自华为云社区《CWE 4.6 和 OWAPSTOP10(2021)》,作者:Uncle_Tom。

1. CWE 4.6


CWE 的更新,并没有因为疫情的影响,仍然保持着每年 3-4 个版本的更新速度,可见软件安全的重要性。这个月初 4.6 版本如约而至。我们来看下这次的更新,都有哪些亮点。

1.1 CWE V4.5 vs V4.6


通常可以从两个角度的对比 CWE 版本的变动,快速得到大致的差异信息。

1.1.1 CWE 节点类型和数量的变动


每个 CWE 由一个唯一的编号表示一个弱点的分类节点,每个节点由他的类型确定它的节点种类,共有 8 种不同类型的节点类型。所以每种节点类型数量的变化可以直接反映这个版本的变化大小和变动方式。 每个版本的都有一个链接反映节点数量的变化。


先来看下两个版本 CWE 节点数量上的差异:



​从这个表的差异,不难看出:

  • 弱点(Weakness)增加了两个。目前 CWE 已经经过了 15 年左右的发展,基本上处于稳定状态,不太会有过多的 CWE 弱点类的节点增加;

  • 视图(View)增加了两个。视图是以不同的研究人员角度出发,对某些弱点的一个分类汇总的视图。在视图之下,通常是分类(Category)节点对某类弱点(Weakness)的一个分类。所以视图的增加,通常会伴随着分类(Category)节点的增加, 这次就增加了 20 个分类(Category)节点。

注,关于 CWE 节点的说明,请参看《话说CWE 4.2的新视图》。

1.1.2 从 CWE XML schema 变化看 CWE 4.6 的变动


CWE 的所有信息是通过 XML 格式定义保存的,所以定义 xml 格式的 schema 文件 xsd,就成了洞察 CWE 结构变化的最好方法。


每次 CWE 的版本,都会有一个链接来查看 Schema 的变化, 你也可以直接比较两个版本的 Schema。

比较两个版本的 schema 文件,发现只有以下两个变动,如下图:



​检测方法枚举值(DetectionMethod Enumeration)的变动

  • 增加了"形式化验证(Formal Verification)"。形式化的方法已经开始逐步从学术走向了实际应用, 但形式化的方法依然会带来极高的验证成本;

  • 增加了"模拟/仿真(Simulation / Emulation)"。 通常这个方法用于硬件安全的验证。


有效性枚举值()的变动

  • 增加了"不鼓励的常见做法(Discouraged Common Practice)"。 也就是说这个安全消减措施的无效,不建议使用。避免了采取一些习惯性认为有效,实际上确无效的安全措施,防止习惯性思维导致的无效劳动。

1.1.3 新增的 CWE 节点


CWE-1341(重复释放同一个资源或句柄(Multiple Releases of Same Resource or Handle))



​如图,CWE-1341(重复释放同一个资源或句柄), 位于:CWE-710(编程规范违背) --> CWE-675(对资源的重复操作)下面。是我们熟悉的内存问题:CWE-415(双重释放)的上一级。 增加这个节点的原因,除了内存的双重释放,资源或文件句柄也存在着双重释放的问题。为了区分两种不同的场景,在细分上增加了这个新节点。


例如下面的代码,在第二次释放文件句柄的时候,会返回一个错误值。


char b[2000];FILE *f = fopen("dbl_cls.c", "r");if (f){    b[0] = 0;    fread(b, 1, sizeof(b) - 1, f);    printf("%s\n'", b);    int r1 = fclose(f);    printf("\n-----------------\n1 close done '%d'\n", r1);
int r2 = fclose(f); // Double close printf("2 close done '%d'\n", r2);}
复制代码


​CWE-1342(瞬时执行后微架构状态造成信息泄漏(InformationExposure through Microarchitectural State after Transient Execution))



​处理器在不正确的微指令辅助(microcode assists)或预测执行(speculativeexecution)后,处理器没有正确清除微架构状态,从而导致信息泄漏。这种瞬时执行的痕迹可能会保留在微体系结构缓冲区中,从而导致微体系结构状态发生变化,攻击者可以使用侧信道分析获取敏感信息。例如,加载值注入 (LVI) REF-1202 可以利用将错误值直接注入中间加载和存储缓冲区。


注:这个问题属于 CPU 架构指令集和设计的问题,这个不是我的研究领域,跳过。

1.1.4 新增的视图


  • CWE-1343(2021 最重要的硬件弱点(Weaknesses in the 2021 CWE MostImportant Hardware Weaknesses List))

这个不是我的研究领域,跳过。

  • CWE-1344(OWASP 2021 TOP10 弱点(Weaknesses in OWASP Top Ten (2021)))

这个的视图体现了 OWASP 九月分发布的 OWASPTOP10 (2021)。 这个是 OWASP 自 2017 年之后,时隔四年,再次发布 TOP10。接下来我们重点看下这个视图。

2. CWE-1344 OWASP TOP10(2021)


Web 应用程序安全性项目(Open Web Application Security Project (OWASP))是一个开放的社区, 该社区致力于使组织开发、购买和维护的应用程序和 api,可以被信任。


OWASP 已经先后在:2004,2007,2010,2013,2017,先后发布了 OWASP TOP10,指出了 Web 应用软件存在的高危安全问题,并为每种漏洞按照其发生率、检测能力、影响和可利用性设定了一个优先级排名,从而帮助组织按照漏洞的优先级,关注、理解、正确识别、减轻在应用程序中这些漏洞造成的危害。同时也为检测工具厂商对这些高危的安全问题的检测提出了要求。

2.1 OWASP TOP10(2021)



2.2 OWASP2017 和 2021 TOP10 的变化


OWASP2017 和 2021 TOP10 的变化,如下图:



2.2.1 A01:2021-中断访问控制


从第五位上升到第一位。数据表明,平均而言,3.81%的受测应用程序具有一个或多个常见 CWE,其中 CWE 在此风险类别中的出现次数超过 31.8 万次。映射到该问题的 CWE 多达 34 个,是映射 CWE 最多的一个分类。

2.2.2 A02:2021-加密故障


相较 2017 年上移一位,成为第二名,以前称为 A3:2017-敏感数据泄露,敏感数据泄露是问题的表现,而不是根本原因。更新后的名称,侧重于故障根因与加密相关的问题。此类别通常会导致敏感数据泄露或系统泄露。

2.2.3 A03:2021-注入


从 2017 年的第一位,滑落到第三位。应用程序对此类问题的测试覆盖率达到 94%,最大发生率为 19%,平均发生率为 3.37%,映射到这一类别的 33 个 CWE 在 27.4 万次的应用中发生率第二高。在此版本中,跨站脚本问题归于此类别的一个子类。

2.2.4 A04:2021-不安全的设计


这个是 2021 年的新类别,重点是与设计缺陷相关的风险。作为一个有"安全左移"追求的企业,需要更多的威胁建模、安全的设计模式和原则以及参考架构。


这里发散下,如果要从很大程度上解决软件的安全问题,安全左移的概念不仅仅是指检查的左移,而是更加向左,延伸到设计。这个也是上面提到的采用威胁建模、安全设计模式和原则,以及使用安全模块,提前的完成软件安全的纵深防御。Foritfy 的技术骨干 Brian Chess 与 Jacob West 写过一本书《用静态分析方法确保编程安全(SecureProgramming with Static Analysis)》,书中就提到“一半的安全问题都源自软件的设计,而非源码。”。我们必须意识到,在没有安全意识的设计人员开发出来的系统是非常的危险的。不安全的设计无法通过完美的实现来修复,安全起源于设计。



2.2.5 A05:2021-安全配置错误


从上一版的第六名上升到第五名。90%的应用程序都经过了某种形式的配置错误测试,平均发生率为 4.5%,并且有超过 20.8 万次 CWE 映射到此风险类别。随着越来越多的人转向高度可配置的软件,这一类问题成上升趋势并不奇怪。在此版本中,A4:2017-XML 外部实体(XXE)被归为此类别的一个子类。

2.2.6 A06:2021-易受攻击和过时的组件


2017 年为"使用具有已知漏洞的组件",这一类别从 2017 年的第九位上升到第六位,是我们难以测试和评估风险的已知问题。它是唯一一个未将任何常见漏洞和披露(CVE) 映射到所包含的 CWE 的类别,因此漏洞利用和影响权重采用了默认值 5.0。

2.2.7 A07:2021-标识和身份验证失败


2017 是"身份验证中断",从第二个位置向下滑动到第七位。现在包括与标识失败更相关的 CWE。这个类别仍然是前 10 名中不可或缺的一部分,标识和身份验证的标准化验证框架可用性的增强,似乎对这类问题的减少起到一定的帮助作用。

2.2.8 A08:2021-软件和数据完整性故障


2021 年的新类别,侧重于在不验证完整性的情况下做出与软件更新、关键数据和 CI/CD 管道相关的假设。这类问题是 CVE/CVSS 影响度值最高的一个。在此版本中,A8:2017-不安全的反序列化并入到这个类别。

2.2.9 A09:2021-安全日志记录和监控故障


2017 的 A10:2017-日志记录和监控不足,从之前的第十位上升到第九位。此类别已扩展为包含更多类型的故障,测试具有挑战性,并且在 CVE/CVSS 数据中不能很好地表示。但是,此类别中的故障可能会直接影响可见性、事件警报和取证。

2.2.10 A10:2021-服务器端请求伪造


2021 新增加的类型。数据显示,发生率相对较低,测试覆盖率高于平均水平,漏洞利用和影响潜力的评分高于平均水平。

3. 参考


点击关注,第一时间了解华为云新鲜技术~

发布于: 1 小时前阅读数: 6
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
CWE4.6标准中加入 OWASP 2021 TOP10