- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
**摘要:**CWE做为软件缺陷分类的重要标准, 对安全研究、安全标准、缺陷管理起了重要的纽带作用。CWE通过编号的类型(类缺陷、基础缺陷和变种缺陷等)形成了多层次的缺陷类型划分体系。本文进一步剖析了CWE视图的层次之间的定义和解析方式。
本文分享自华为云社区《CWE视图层级关系的解析 之 CWE节点的存储和定义》,作者:Uncle_Tom。
CWE做为软件缺陷分类的重要标准, 对安全研究、安全标准、缺陷管理起了重要的纽带作用。CWE使代码缺陷不同领域的研究人员在交流安全问题时,能够采用相同的定义,减少了歧义性。
CWE通过编号的类型(类缺陷、基础缺陷和变种缺陷等)形成了多层次的缺陷类型划分体系。
CWE按照使用者视角, 给出了不同的CWE视图. CWE提供了三大类的视图.
CWE提供了:
基于一些外部组织生成的视图. 这里有我们熟悉的CWE TOP 25,OWASP TOP 10,以及 SEC CERT的编程规范和CISQ 质量测量标准等。
这里基于特定的标准提供了特定领域的试图.
因为新的视图发布,而不再使用的视图, 例如以往的CWE TOP 25, OWASP TOP 10等.
CWE 每个版本的所有信息是存放在一个xml文件中。xml中各个字段的格式和定义是由一个xsd文件来定义xml的schema。这些两个文件可以从CWE的下载页面得到。
我们来看下视图和具体的CWE的存储关系是怎么定义在schema中的。
这个节点下定义了组成xml文件的四个主要节点:
接下来我们重点说下四个节点中的:Weaknesses和Views。
Weaknesses的定义是由WeaknessType类型定义的。
这个节点下定义每个CWE弱点的主要地方,这里有我们了解的必须的节点,例如CWE的ID,名字(Name), 描述(Description)等,以及组成每个CWE的其他节点的定义。
这里我们重点关注CWE间的关系:Related_WeaknessesType。
这个节点定义个当前CWE在不同视图下与其他节点的关联关系。主要字段包括:
通常这里只定义父节点,也就是当前节点在视图(VIEW_ID)中的父节点(Nature为ChildOf)的CWE节点是CWE_ID。
Views的定义是由ViewType类型定义的。
这里定义了视图的主要组成:
该类型具体的定义了视图的成员,以及和视图成员之间的关系。
每个视图成员由成员的CWE_ID,和所属的视图编号View_ID组成。
从这个图示可以看到编号:CWE-1000的研究者视图由以下节点组成:
视图的成员:
CWE-284:访问控制不恰当(Improper Access Control);
CWE-435: 交互错误(Improper Interaction Between Multiple Correctly-Behaving Entities);
CWE-664:在生命周期中对资源的控制不恰当(Improper Control of a Resource Through its Lifetime);
视图的子节点:
这里以CWE-120为例,从图中可以看到:
CWE-120:未进行输入大小检查的缓冲区拷贝(传统缓冲区溢出),它的父节点是:CWE-119;
CWE-119:内存缓冲区边界内操作的限制不恰当,它的父节点是: CWE-118;
CWE-118: 对可索引资源的访问不恰当(越界错误), 它的父节点是: CWE-664;
CWE-664:在生命周期中对资源的控制不恰当,它的父节点是: CWE-1000;
CWE-1000:研究者视图。
我正在研究 Juliet Test Suite为了我的研究,我正在对这些代码应用一些静态分析器来生成警告。运行cppcheck 后,我发现它无法检测到manifest.xml 文件(元数据)中提到的许
我正在努力修复我的应用程序中的 Veracode 问题。 Veracode 在下面的代码中突出显示了缺陷“文件名或路径的外部控制 (CWE ID 73)”。 Thread.currentThread(
CWE(Common Weakness Enumeration)和 CVE(Common Vulnerabilities and Exposures)有什么区别?它们的用法有什么区别? 最佳答案 软件
我们收到以下代码的 IBM APPSCAN 异常。 { br = new BufferedReader(new InputStreamReader((conn.getInputStream()
作为 veracode 扫描的一部分,我收到了 CWE 829 - 抛出来自不受信任的控制领域的功能错误。 下面我粘贴了我的 Java 代码,在第 3 行中我遇到了这个漏洞。 我没有找到太多关于这个问
在 veracode 扫描期间,我的结果中出现了 CWE 73 问题。有人可以建议我如何针对以下编码场景修复此解决方案吗? 提供的现有解决方案不起作用,我还想知道是否可以使用任何 ESAPI 属性来解
我的产品中报告了 CWE 117 问题。 CWE 117 问题是软件无法正确清理或错误地清理写入日志的输出,我得到的一种可能的解决方案是在记录时添加以下内容。 String clean = args[
我的产品中报告了 CWE 117 问题。 CWE 117 问题是软件没有正确清理或错误地清理写入日志的输出,我得到的一种可能的解决方案是在日志记录时添加以下内容。 String clean = arg
我有这段代码,我认为这是重定向到另一个 servlet 的相当标准的方法 RequestDispatcher dispatch = request.getRequestDispatcher("
我在 session.setAttribute(var1,var2) 等线路上遇到了 veracode 缺陷 cwe id 501。我已经尝试过不同的方法来解决它,但无法解决这个问题。我尝试过的方法如
我有这个代码: try { BufferedWriter bw = null; FileWriter fw = null; try {
我正在修复 veracode 静态扫描发现的缺陷,并且我发现了几个 session 修复缺陷,如下所示: request.getSession().get/set Attribute( ); OWAS
我一直在使用 rand() 函数来生成随机数。当我通过 CWE 检查工具检查我的代码时,它认为 rand() 是一个潜在的危险函数,并建议使用加密库。任何人都可以详细说明吗?生成随机数的最佳和安全替代
有一个 Spring 全局 @ExceptionHandler(Exception.class) 方法可以像这样记录异常: @ExceptionHandler(Exception.class) voi
我有像上面这样的代码,并且我已经使用模板文字来替换值,但 veracode 扫描仍然显示它存在 xss 漏洞。在这种情况下我该如何解决? 最佳答案 使用OWASP Java Encoder使用"
代码如下 public void sendEmail(String toEmailAddr, String subject, String body) throws AppException {
我安装的是MySQL Workbench 6.3,可以在ISS上安装TestLink(php),工具安装成功了,但是访问网站的时候首页有如下提示,我已经研究了好几个地方,找到了解决方案。 Window
根据 Veracode,与技术特定输入验证问题相关的 CWE-ID 100“缺陷”使我们的应用程序出现了数百次。 根据他们的文档,补救措施是在使用模型之前检查模型的 ModelState.IsVali
我在我的 ASP.NET 核心 Web API 中有一个 POST 方法,它将模型作为参数(将 POST 内容直接绑定(bind)到模型)。该模型包含所有参数作为可选参数。在使用 Veracode 扫
我正在使用 Logback,并且在记录用户参数时需要避免 CRLF(回车换行)。 我尝试在静态 map PatternLayout.defaultConverterMap 上添加扩展 ClassicC
我是一名优秀的程序员,十分优秀!