ToB企服应用市场:ToB评测及商务社交产业平台

标题: 如何用CWE API 来减轻软件产物中的安全风险 [打印本页]

作者: 宝塔山    时间: 2024-10-10 01:03
标题: 如何用CWE API 来减轻软件产物中的安全风险
 本文分享自华为云开辟者社区《用CWE API 减轻软件产物中的安全风险》作者: Uncle_Tom

1. CWE REST API 推出的目的

8 月 8 号,CWE™ 计划推出了“CWE REST API”。
CWE™计划由美国网络安全与基础办法安全局(Cybersecurity & Infrastructure Security Agency(CISA))资助的国土安全系统工程与发展研究所(Homeland Security Systems Engineering and Development Institute(HSSEDI))运营。
“CWE REST API” 是一项由CWE REST API工作组推动的社区驱动的工作。API 的目的是简化安全软件和硬件架构师、EDA 工具开辟职员、验证工程师之间的接口,用于减轻其产物,以及数据库本身中的安全风险。
从项目负责的两个紧张负责人,一个来自Synopsys,另一个来自MITRE。
CWE REST API 为以下职员提供了一种简单有效的方式来保持 CWE 最新的内容信息:

API 推出为下游下游应用程序,始终保持最新状态,这将成为利用 CWE 内容更改的重大改进。


2. 访问 CWE REST API

用于访问 CWE REST API 的根 URL,无需注册或利用任何凭据即可利用。
发起利用 API 在本地添补 CWE 内容的缓存,每当有新版本可用时,都可以革新该缓存。
CWE REST API 的根 URL: https://cwe-api.mitre.org/api/v1/
可以直接在浏览器中直接输入这个地址加上相应的哀求。

  1.     {
  2.         "ContentVersion": "4.15",
  3.         "ContentDate": "2024-07-16",
  4.         "TotalWeaknesses": 964,
  5.         "TotalCategories": 409,
  6.         "TotalViews": 54
  7.     }
复制代码
可以看到当前版本为最新的 CWE 4.15,统共有 964 个缺点节点,409 个分类节点,54 个缺点视图。
有关 CWE 4.15 的先容详见:《CWE 4.15 - AI/ML 引入的应用缺陷》


3. CWE REST API 简介

CWE REST API 的相关先容放在了: https://github.com/CWE-CAPEC/REST-API-wg

3.1. 查找CWE 版本(/cwe/version)


  1.     {
  2.         "ContentVersion": "4.15",
  3.         "ContentDate": "2024-07-16",
  4.         "TotalWeaknesses": 964,
  5.         "TotalCategories": 409,
  6.         "TotalViews": 54
  7.     }
复制代码
3.2. 查找CWE ID 类型(/cwe/{id(s)})


  1. [
  2.     {
  3.         "Type": "view",
  4.         "ID": "1400"
  5.     },
  6.     {
  7.         "Type": "pillar_weakness",
  8.         "ID": "284"
  9.     },
  10.     {
  11.         "Type": "category",
  12.         "ID": "1396"
  13.     },
  14.     {
  15.         "Type": "class_weakness",
  16.         "ID": "269"
  17.     },
  18.     {
  19.         "Type": "base_weakness",
  20.         "ID": "260"
  21.     },
  22.     {
  23.         "Type": "variant_weakness",
  24.         "ID": "259"
  25.     },
  26.     {
  27.         "Type": "compound_weakness",
  28.         "ID": "384"
  29.     }
  30. ]
复制代码

图标类型节点数量说明

视图(View)50视图表现一种视角,人们大概会用它来查察目录中的缺点。

支柱(Weakness-Pillar)10最抽象的缺点类型,代表与之相关的所有类(class)/根本(base)/变体(Variant)的主题。 支柱不同于类别,因为从技能上讲,支柱仍旧是一种描述错误的缺点,而类别则代表用于对相关事物进行分组的常见特征。

分类(Category)374分类是基于某些共同特征或属性的缺点的聚集。类别紧张用作CWE的构造机制,不应由外部源映射到。

类别(Weakness-Class)110一种以非常抽象的方式描述的缺点,通常与任何特定的语言或技能无关。 比支柱缺点更详细,但比根本缺点更笼统。 类级别的缺点通常用以:举动、属性和资源维度中的1-2来描述问题。

基础(Weakness-Base)520一种更详细的缺点类型,大部分与资源或技能无关,但具有足够的详细信息以提供检测和防备的特定方法。根本级别的缺点通常用以:举动、属性、技能、语言和资源维度中2-3个维度来描述问题。

变体(Weakness-Variant)292是与特定类型的产物相关的缺点,通常与特定的语言或技能相关。比根本缺点更详细。变体级别的缺点通常用以:举动、属性、技能、语言和资源维度中3-5个维度来描述问题。

复合缺陷(Weakness-Compound)的组合(Composite)方式7由两个或多个不同的缺点组成的复合元素,其中所有缺点都必须同时存在才能出现潜伏的缺点。消除任何缺点可以消除或显着降低风险。一个缺点 X 可以被“分解”为组件缺点 Y 和 Z。在某些环境下,一个缺点对于组合大概不是必不可少的,但改变其性质时,该缺点有大概会变成缺陷。
3.3. 查找缺点节点信息(/cwe/weakness/{id(s)}


3.4. 查找分类节点信息(/cwe/category/{id(s)})




3.5. 查找视图节点信息(/cwe/view/{id(s)})




3.6. 查找缺点节点在视图中的父节点(/cwe/{id}/parents?view={viewId})


  1. [
  2.     {
  3.         "Type": "class_weakness",
  4.         "ID": "271",
  5.         "ViewID": "1000",
  6.         "Primary_Parent": true
  7.     },
  8.     {
  9.         "Type": "category",
  10.         "ID": "1011",
  11.         "ViewID": "1008"
  12.     },
  13.     {
  14.         "Type": "category",
  15.         "ID": "1149",
  16.         "ViewID": "1133"
  17.     },
  18.     {
  19.         "Type": "category",
  20.         "ID": "1396",
  21.         "ViewID": "1400"
  22.     },
  23.     {
  24.         "Type": "category",
  25.         "ID": "265",
  26.         "ViewID": "699"
  27.     },
  28.     {
  29.         "Type": "category",
  30.         "ID": "254",
  31.         "ViewID": "700"
  32.     },
  33.     {
  34.         "Type": "category",
  35.         "ID": "748",
  36.         "ViewID": "734"
  37.     },
  38.     {
  39.         "Type": "category",
  40.         "ID": "859",
  41.         "ViewID": "844"
  42.     },
  43.     {
  44.         "Type": "category",
  45.         "ID": "901",
  46.         "ViewID": "888"
  47.     }
  48. ]
复制代码

  1. [
  2.     {
  3.         "Type": "class_weakness",
  4.         "ID": "271",
  5.         "ViewID": "1000",
  6.         "Primary_Parent": true
  7.     }
  8. ]
复制代码



3.7. 查找缺点节点在视图中的后代节点(/cwe/{id}/descendants?view={viewId})


在视图:CWE-1000:研究者视图, CWE-1003:简化缺点映射到发布漏洞视图, CWE-1305:2020 CISQ 质量度量视图中都有缺点CWE-119:内存缓冲区边界内操作的限制不适当 ,可以查找这个节点的后代节点。

只查找CWE-1000:研究者视图中,CWE-119:内存缓冲区边界内操作的限制不适当 的后代节点。



3.8. 查找缺点节点的子节点(/cwe/{id}/children?view={viewId})


  1. [
  2.     {
  3.         "Type": "base_weakness",
  4.         "ID": "120",
  5.         "ViewID": "1000"
  6.     },
  7.     {
  8.         "Type": "base_weakness",
  9.         "ID": "125",
  10.         "ViewID": "1000"
  11.     },
  12.     {
  13.         "Type": "base_weakness",
  14.         "ID": "466",
  15.         "ViewID": "1000"
  16.     },
  17.     {
  18.         "Type": "base_weakness",
  19.         "ID": "786",
  20.         "ViewID": "1000"
  21.     },
  22.     {
  23.         "Type": "base_weakness",
  24.         "ID": "787",
  25.         "ViewID": "1000"
  26.     },
  27.     {
  28.         "Type": "base_weakness",
  29.         "ID": "788",
  30.         "ViewID": "1000"
  31.     },
  32.     {
  33.         "Type": "base_weakness",
  34.         "ID": "805",
  35.         "ViewID": "1000"
  36.     },
  37.     {
  38.         "Type": "base_weakness",
  39.         "ID": "822",
  40.         "ViewID": "1000"
  41.     },
  42.     {
  43.         "Type": "base_weakness",
  44.         "ID": "823",
  45.         "ViewID": "1000"
  46.     },
  47.     {
  48.         "Type": "base_weakness",
  49.         "ID": "824",
  50.         "ViewID": "1000"
  51.     },
  52.     {
  53.         "Type": "base_weakness",
  54.         "ID": "825",
  55.         "ViewID": "1000"
  56.     }
  57. ]
复制代码

3.9. 查找缺点节点的先人(/cwe/{id}/ancestors?view={viewId})


许多视图中都包罗 CWE-119:内存缓冲区边界内操作的限制不适当。

  1. [
  2.     {
  3.         "Data": {
  4.             "Type": "class_weakness",
  5.             "ID": "119",
  6.             "ViewID": "1000"
  7.         },
  8.         "Parents": [
  9.             {
  10.                 "Data": {
  11.                     "Type": "class_weakness",
  12.                     "ID": "118",
  13.                     "ViewID": "1000"
  14.                 },
  15.                 "Parents": [
  16.                     {
  17.                         "Data": {
  18.                             "Type": "pillar_weakness",
  19.                             "ID": "664",
  20.                             "ViewID": "1000"
  21.                         },
  22.                         "Parents": [
  23.                             {
  24.                                 "Data": {
  25.                                     "Type": "view",
  26.                                     "ID": "1000",
  27.                                     "ViewID": "1000"
  28.                                 },
  29.                                 "Parents": null
  30.                             }
  31.                         ]
  32.                     }
  33.                 ]
  34.             }
  35.         ]
  36.     }
  37. ]
复制代码



4. CWE REST API 提供的 CWE JSON 格式

在 https://github.com/CWE-CAPEC/REST-API-wg/ 还提供了 CWE 的 JSON 格式。



4.1. Json Schema

Json schema 是用来定义Json 文件的格式。这里利用的是 2020-12 的版本: “https://json-schema.org/draft/2020-12/output/schema”
Json schema 存放在目录: specifications 目录下。
这些 Schema 为每个 Json 文件给出了 Json 文件格式的定义,包括 Json 布局,字段类型,罗列值等。可以用这些 Json schema 来校验里面的 Json文件。
4.2. CWE Json 文件




5. 总结


6. 参考



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4