0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常见CWE定义了任务关键型应用程序的网络安全漏洞环境

星星科技指导员 来源:嵌入式计算设计 作者:S. TUCKER TAFT 2022-11-09 15:02 次阅读

Common Weak Enumeration (CWE) 是软件弱点和漏洞的类别系统,现在用于为开发关键任务嵌入式系统的人员提供源代码分析工具的通用词汇表。CWE项目的一些不同分组(例如与一般编码实践相关的分组)侧重于软件系统中特定于安全的部分,包括身份验证和加密,以及可以通过适当选择编程语言或工具来缓解的部分。最近决定在CWE的框架内包括“通用质量枚举”,该枚举将推广其适用于各种软件弱点,而不是严格意义上与网络安全相关的弱点。

制定 CWE

Common Weak Enumeration(CWE,http://cwe.mitre.org)已经成为每个具有安全意识的任务关键型嵌入式系统开发人员的事实上的参考资源。CWE将所有已知的网络安全漏洞分类为一个系统编号的列表,最新版本(3.2版,从2019年1月开始)包含800多个弱点和近1,200个项目。CWE源于MITRE公司(马萨诸塞州贝德福德和弗吉尼亚州麦克莱恩)的一个项目,该项目旨在描述和总结不断增长的常见漏洞和暴露(CVE)列表;MITRE还与美国国家标准与技术研究院(NIST)维护的国家漏洞数据库(NVD)一起维护CVE列表。

CVE和NVD一起记录了每个公开的网络安全漏洞和暴露事件,可以追溯到1999年。CWE试图将网络安全漏洞和暴露事件分为不同的类别,以便为工具,网络安全专家和整个关键任务软件开发社区提供通用词汇。在 3.2 版中,已努力包含更普遍的质量弱点,这些弱点源自 CQE(通用质量枚举)项目。这些类型的弱点与安全问题没有直接关系,但仍然可能导致生命周期中的重大问题,并且通常可以通过检测以安全为中心的弱点的相同类型的工具检测到。

CWE被用于各种上下文,但也许最重要的是与源代码分析工具有关。从历史上看,每个这样的工具都有自己特定的词汇表,所有这些词汇表都有可能令人困惑或模棱两可的描述,确切地说它旨在检测什么样的软件问题。然而,随着CWE的出现,许多源代码分析工具已经开始使用相关的唯一CWE标识符来识别它们检测到的问题。使用CWE,这种共享词汇能够以有意义的方式组合和比较来自多个工具的结果。即使使用通用术语,使用多个工具也有优势,因为在检测潜在的源代码缺陷时,不同的工具往往具有不同的优势。

CWE 示例

CWE最好通过示例来说明。在第一次查看 CWE 时,区分不同类型的弱点通常是有帮助的。有些我们可以称之为通用,因为它们在任何和每个应用程序中都是值得关注的,例如缓冲区溢出(CWE-120)。基本上,所有程序都使用表、数组或字符串,对于所有此类程序,尝试向表、数组或字符串中放入比它可以容纳的更多内容肯定会产生问题,如果语言通过运行时检查捕获此类尝试,或者最终如果由此类缓冲区溢出损坏的数据用作计算后期阶段的输入。CWE-120的 http://cwe.mitre.org 条目如下(表1)。

表 1:CWE-120。

poYBAGNrUI2AFvXMAAIBllBdlXo036.jpg

除了 CWE-120 之外,还有一组相关的弱点,这些弱点涉及将索引到数组边界之外的类似数组的结构中。在CWE网站上搜索“数组越界”会生成相关CWE条目的列表,其中不仅包括对弱点的描述:它们还包括一些示例来说明那些编程语言中的弱点,其中编译时或运行时检查不会自动检测到弱点。此外,在一些更基本的 CWE(如 CWE-120)的条目中,还提供了其他部分,例如介绍模式、适用平台(通常是弱点更普遍的编程语言)、常见后果、利用的可能性和潜在的缓解措施。缓解措施部分将确定不太可能出现漏洞的语言或平台,以及软件开发或部署实践,这些实践将减少在所使用的语言或平台无法自动阻止漏洞的环境中被利用的可能性。

除了缓冲区溢出及其相关危险等普遍弱点之外,还有一些弱点更特定于应用程序,具体取决于应用程序的性质。例如,正确使用身份验证和授权可能与在物理安全位置之外无法访问的应用程序无关。CWE-284,访问控制不当,解决了这一特定于应用程序的弱点(下一页的表2)。

表 2:CWE-284。

pYYBAGNrUJSAAHwvAAM_PJIBCxs220.jpg

与缓冲区溢出一样,还有一组其他 CWE 条目专注于此一般弱点领域的特定元素。在CWE网站上搜索“身份验证和授权”会生成示例列表。

尽管此类特定于应用程序的 CWE 可能并不适用于所有系统,但具有外部连接的系统的比例每天都在增长。例如,过去只有飞行员才能使用的军事系统现在正在联网,以改善协调和态势感知。尽管网络中的其他系统本身可能是安全的,但干扰通信的可能性始终存在。即使是这些纯粹的计算机到计算机连接也可能需要身份验证和授权,以避免不友好方的欺骗或损坏。最重要的是,越来越多的以前特定于应用程序的CWE在其相关性方面变得更加普遍。

如上所述,刚刚在CWE版本3.2中添加的一组新的CWE条目与安全性没有直接关系,但仍然与强大的关键任务嵌入式系统的构建和发展相关。该组源自几年前构建的实验性通用质量枚举 (CQE),包括 CWE 条目,例如 CWE-1041,冗余代码的使用(表 3)。

表 3:CWE-1041。

poYBAGNrUJqAHbKlAAFRP0LfvpY927.jpg

如表的扩展描述所示,相同代码的重复副本会严重影响系统的维护和演进。这也是一个普遍的质量和可维护性问题,事实上,几乎每个系统都会发生,与编程语言或开发过程无关。甚至还有一个三个字母的首字母缩略词专门用于这个问题:DRY – 不要重复自己!代码的重复在某种程度上是“不要重新发明轮子”的另一面。无论是重复自己还是重新发明轮子,都不是程序员构建长期关键任务系统的正确答案。关键是抽象、模块化和编程平台底层的良好库系统,因此可重用的组件可以抽象为可以多次调用或实例化的组件,而无需依赖复制和粘贴。

CWE 兼容工具

正如上述少量CWE条目所证明的那样,CWE与软件密集型系统开发过程中每天面临的挑战直接相关。有了这个通用词汇,软件项目现在可以根据工具是否可以检测甚至建议更正正在开发或部署的系统源代码中的此类弱点来识别和评估工具。事实上,MITRE 已经建立了一个遵循 CWE 命名法的工具注册表,无论是在控制其操作方面,还是在生成报告方面。此工具列表作为MITRE的CWE兼容性和有效性计划的一部分进行维护。

目前,大约有35家公司在CWE兼容工具注册表中列出了50多种工具。要在注册表中列出,该工具必须至少满足以下六个条件中的前四个:可使用 CWE 标识符进行 CWE 搜索;必须包含或允许用户获取相关的 CWE 标识符;必须准确链接到适当的 CWE 标识符;必须描述 CWE、CWE 兼容性和 CWE 相关功能;必须明确列出功能声称覆盖范围和有效性的 CWE-ID,以防止在软件中定位;并且必须在网站上显示 CWE 评估软件的测试结果。

作为某些类型的工具如何将 CWE 标识符集成到其用户界面中的示例,下面是静态分析工具的屏幕截图,展示了它在示例程序 [dining_philosophers.adb – 基于经典的餐饮哲学家算法] 中检测各种 CWE 问题的能力(图 1)。

图1:屏幕截图演示了该工具在示例程序中检测 CWE 问题的能力。

pYYBAGNrUKOAcKwiAAGpgZ62oQw700.jpg

如上所示,显示的每条消息都包含与每个已识别问题关联的 CWE 标识符(在本例中,我们看到缓冲区溢出和数字范围溢出)。图形界面还使用户能够通过CWE标识符识别当前感兴趣的特定弱点,从而过滤掉与这些问题无关的消息。虽然此处未显示,但将鼠标悬停在 CWE 标识符上会显示弱点的简短描述,因此用户无需尝试记住每个 CWE ID 的含义。

作为另一个示例,下面是一个工具的屏幕截图,该工具支持在 Ada 的 SPARK 子集中编写的程序的程序属性的形式证明。

图2:屏幕截图显示了相应的 CWE 标识符。

poYBAGNrUKWAJa0fAAFxsENdTcw787.jpg

在这里,我们再次看到指示工具无法完全自动化证明运行时错误缺失 (AoRTE) 属性的位置的消息包括适当的 CWE 标识符。上面还显示了一个搜索功能,可以过滤掉非 CWE 邮件(在本例中,通过在搜索框中写入“CWE”),或者可以识别引用特定 CWE ID 的邮件。

MITRE对常见弱点枚举的定义为开发更安全,更健壮的软件密集型系统的整个过程做出了重要贡献。它提供了一个通用词汇表,有助于软件开发组织内部的沟通,并允许用户理解和比较用于扫描和分析任务关键型软件源代码的工具的功能。设计人员会发现,将CWE兼容功能纳入静态分析和形式化方法工具集,使用户能够轻松了解可以消除的安全性和鲁棒性问题。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5017

    文章

    18496

    浏览量

    293189
  • 应用程序
    +关注

    关注

    37

    文章

    3170

    浏览量

    57087
收藏 人收藏

    评论

    相关推荐

    专家解读 | NIST网络安全框架(2):核心功能

    别。本文将深入探讨CSF核心的主要内容,及其使用方法。关键字:网络安全框架;CSF核心;威胁检测   一 内容简介 NIST将CSF核心定义为一系列网络安全活动、期望的结果,以及适用于
    的头像 发表于 05-27 11:40 942次阅读
    专家解读 | NIST<b class='flag-5'>网络安全</b>框架(2):核心功能

    iOS 17.4.1修复两安全漏洞,涉及多款iPhone和iPad

     据报道,iOS/iPadOS17.4.1主要解决了Google Project Zero团队成员Nick Galloway发现并报告的两大安全漏洞(CVE-2024-1580)。
    的头像 发表于 03-26 10:47 450次阅读

    车载信息娱乐系统的网络安全考虑因素

    静态应用程序安全测试 ( SAST ) 软件测试方法检查和分析应用程序源代码、字节码和二进制文件的编码和设计条件,以发现 IVI 系统软件中的安全漏洞。SAST背后的工作机制是一个静态
    的头像 发表于 03-06 17:14 999次阅读
    车载信息娱乐系统的<b class='flag-5'>网络安全</b>考虑因素

    苹果承认GPU存在安全漏洞

    苹果公司近日确认,部分设备中的图形处理器存在名为“LeftoverLocals”的安全漏洞。这一漏洞可能影响由苹果、高通、AMD和Imagination制造的多种图形处理器。根据报告,iPhone 12和M2 MacBook Air等设备也受到了这一
    的头像 发表于 01-18 14:26 402次阅读

    网络安全测试工具有哪些类型

    网络安全测试工具是指用于评估和检测系统、网络应用程序安全性的一类软件工具。这些工具可以帮助组织和企业发现潜在的安全漏洞和威胁,以便及时采
    的头像 发表于 12-25 15:00 787次阅读

    汽车网络安全:防止汽车软件中的漏洞

    汽车网络安全在汽车开发中至关重要,尤其是在 汽车软件 日益互联的情况下。在这篇博客中,我们将分享如何防止汽车网络安全漏洞。 静态分析工具有助于执行关键的汽车编码指南(如MISRA和AUTOSAR C++14),并协助遵守功能
    的头像 发表于 12-21 16:12 865次阅读
    汽车<b class='flag-5'>网络安全</b>:防止汽车软件中的<b class='flag-5'>漏洞</b>

    再获认可,聚铭网络入选国家信息安全漏洞库(CNNVD)技术支撑单位

    近日,国家信息安全漏洞库(CNNVD)公示2023年度新增技术支撑单位名单。经考核评定,聚铭网络正式入选并被授予《国家信息安全漏洞库(CNNVD)三级技术支撑单位证书》。     国家信息安全
    的头像 发表于 12-21 10:14 365次阅读
    再获认可,聚铭<b class='flag-5'>网络</b>入选国家信息<b class='flag-5'>安全漏洞</b>库(CNNVD)技术支撑单位

    如何消除内存安全漏洞

    “MSL 可以消除内存安全漏洞。因此,过渡到 MSL 可能会大大降低投资于旨在减少这些漏洞或将其影响降至最低的活动的必要性。
    发表于 12-12 10:29 264次阅读
    如何消除内存<b class='flag-5'>安全漏洞</b>

    夯实网络安全基石,多网口国产网络安全主板助力强固防线

    在当今信息化时代,网络安全对企业来说是至关重要且不可忽视的。随着网络攻击手段的不断演进和网络威胁的不断增加,构建强大的网络安全防线已成为企业发展中的
    的头像 发表于 11-06 14:45 228次阅读

    统一系统脆弱性管理平台:让“网络安全漏洞”无处遁形

    网络安全漏洞网络节点的系统软件或应用软件在逻辑设计上的缺陷,漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使网络
    的头像 发表于 09-25 10:30 399次阅读
    统一系统脆弱性管理平台:让“<b class='flag-5'>网络安全漏洞</b>”无处遁形

    如何降低网络安全漏洞被利用的风险

    的领军企业——国联易安的产品市场专家给出了答案: 一是明白什么是网络安全漏洞网络安全漏洞也称为脆弱性,是信息系统在需求、设计、实现、配置、运行等过程中,有意或无意产生的可被威胁利用的缺陷,这些缺陷存在于件
    的头像 发表于 09-13 15:37 774次阅读

    什么是Web应用程序防火墙,WAF与其他网络安全工具差异在哪?

    类型的攻击。这些软件解决方案提供自动防御,并允许对规则集进行自定义管理控制,因为某些应用程序可能具有独特的流量趋势、零日威胁或 Web 应用程序漏洞,WAF一般还提供日志记录功能来记录
    的头像 发表于 08-14 14:20 1210次阅读

    网络安全系统的主要要求有哪些 常见网络安全问题有哪些

    网络安全设备是用于保护计算机网络系统免受网络攻击和恶意行为的硬件或软件设备。以下列举了一些常见网络安全设备。
    的头像 发表于 08-11 15:15 1838次阅读

    AMD Zen2全家都有严重安全漏洞

    Google信息安全研究员Tavis Ormandy披露了他独立发现的存在于AMD Zen2架构产品中的一个严重安全漏洞“Zenbleed”(Zen在流血)。
    的头像 发表于 07-26 11:51 1569次阅读
    AMD Zen2全家都有严重<b class='flag-5'>安全漏洞</b>!

    网络安全常见漏洞有哪些 网络漏洞的成因有哪些

    网络安全的威胁和攻击手法也在不断演变。为了维护网络安全,建议及时更新和修复系统漏洞,实施安全措施和防护机制,并加强用户教育和意识,以有效应对各类网络
    发表于 07-19 15:34 2879次阅读