以网络为中心的安全性和CWE

描述

  常见弱点枚举 (CWE) 列出了导致许多软件系统中出现安全漏洞的共模故障。它可用于帮助提高关键网络和基础设施的稳健性,以帮助阻止网络攻击。

  网络中心战使用网络系统在战区内共享信息。这一先进的通信网络增强了态势感知能力,目的是提高特派团的效力。

  支撑这种系统的网络有可能向敌人暴露一个重要的攻击面,引发重大的安全问题。在了解了需要采取哪些措施来确保系统安全之后,下面将检查常见的弱点和枚举 (CWE),并演示如何使用它来增强战斗通信的安全性。

  安全问题

  内部网络通常被作为获取机密信息的一种手段。2008年,美国军事中央司令部网络中的机密和非机密系统被发现遭到破坏。调查显示,一台军用笔记本电脑被便携式USB驱动器感染。然后,这种感染通过网络连接传播到安全区域,据信已用于将大量数据传输给第三方。在最初的攻击发生四年后,仍然发现了受感染的机器。

  还试图进行外部攻击。例如,利用在联合攻击战斗机上工作的一个或多个承包商中的网络漏洞来访问敏感的项目数据。这次攻击似乎始于2007年,但直到2009年才被发现。攻击包括在开发环境中安装复杂的间谍软件。间谍软件用于将数 TB 的数据传输到第三方。泄露的确切性质尚不清楚,因为数据在发送之前经过了高度加密。

  理解系统受到攻击的原因并不总是那么容易,有些攻击可能是偶然的。用于控制“捕食者”和“收割者”无人机机队的系统最近被发现感染了一种包含键盘记录器有效载荷的病毒。键盘记录器记录了无人机飞行员在现役期间的动作,但不影响系统功能。似乎没有数据丢失,尽管这可能仅仅是因为缺乏可利用的外部网络连接。事实证明,网络感染很难根除,并且已发现已传播到分类和非分类系统。据认为,该病毒是由用于将地图和其他数据传输到控制系统的便携式USB驱动器无意中引入的。

  敏感信息丢失并不是攻击的唯一可能结果。在军事空中交通管制系统中检测到的病毒有可能使第三方使雷达数据不可信,从而导致混乱或资产损失。

  安全注意事项

  其中许多安全问题是由于系统系统内的设备互连而引起的。攻击者很难利用隔离运行的系统。但是,如果它们是联网的,即使是间歇性的,网络也允许许多其他系统受到攻击。如果它们都基于相同的技术,则可以利用常见的安全漏洞来快速传播恶意软件。

  CWE检查

  利用的漏洞通常与代码实现或需求错误有关。例如,由无效网络数据触发的缓冲区溢出事件可能被用来诱骗系统运行攻击者注入的任意代码。根据美国国家安全技术研究所(NIST)的研究,64%的软件漏洞源于编程错误。

  CWE是由MITRE公司在美国联邦拨款下运营的一项战略软件保障计划,由美国国土安全部国家网络安全部门共同赞助。它列出了导致系统内安全故障的编程错误,旨在改进用于确保连接设备安全的软件保证和审查流程。以这种方式枚举漏洞允许定义编码标准以针对它们,以便在开发过程中消除它们。

  CWE数据库

  CWE数据库包含有关安全漏洞的信息,这些漏洞已被证明会导致可利用的漏洞。这些弱点可能位于基础结构级别(例如,配置不当的网络和/或安全设备)、策略和过程级别(例如,共享用户名和/或密码)或编码级别(例如,无法验证数据)。CWE数据库包含有关实际漏洞的信息,而不是理论信息,因此仅捕获在该领域被利用的编码弱点。

  CWE兼容性的优势

  应在开发环境中使用 CWE,以确保不会将已知漏洞引入软件。许多已识别的问题都可以通过静态和/或动态检查工具自动检测。为了获得最大的收益,应在开发过程中尽早使用此类工具,因为尝试在最后一刻添加安全性不太可能成功。采用其他工具强制执行的安全标准,如CERT-C安全编码标准,补充了这一目标,并进一步增强了安全特性。

  确保系统安全

  许多安全漏洞可以追溯到编码错误或架构缺陷,并且在部署系统后通常很难修复和/或成本高昂。遗憾的是,许多开发人员只对核心应用程序功能的开发和测试感兴趣。安全性很少以相同的严格性进行测试。

  系统的安全性需要被视为系统最重要的属性之一。如果最终系统要安全,则需要在系统设计中预先包含安全要求,并在正常开发期间实施。CWE 可用于帮助确定适当的高级安全要求。

  通过在软件开发生命周期的所有阶段关注这些措施,开发人员可以帮助消除已知的弱点。

  为了防止引入安全漏洞,开发团队需要对开发过程中要采取的安全目标和方法有共同的理解。这应包括评估安全风险和建立将使用的安全编码做法。再一次,CWE可以在编码过程中提供帮助,因为它突出了导致其他系统安全妥协的构造,提醒开发人员在实施过程中需要格外小心。

  风险评估确定与具体情况和识别威胁相关的各种系统组件的定量和定性安全风险。此信息用于减少安全漏洞,如果其安全性被破坏,将产生重大影响的区域。评估的结果是制定一套安全控制和缓解策略,这些策略将构成系统安全要求的核心。

  这些安全要求成为用于所有其他要求的同一开发过程的一部分。一开始就详细说明,然后通过设计、编码和测试阶段跟踪安全要求,以确保满足初始要求。这些链接形成文档,演示最终系统如何满足开始时规定的安全目标。

  CWE:不是编码标准

  CWE是一个“不要被抓住”的列表,而不是实际的编码标准。但是,编码标准可以作为补充,以确保项目中不存在CWE问题。遵守这些标准有助于确保实现项目安全目标,尤其是当许多安全问题直接由它们所针对的编码错误导致时。此外,遵守公认的标准有助于证明合同担保义务已经履行。

  遵守所选的编码标准(或标准)应该是一个正式的过程(理想情况下是工具辅助的,但也可以手动),因为编程团队几乎不可能在整个代码库中遵循所有规则和准则。

  遵守标准是确定代码质量时应用的有用指标。

  静态和动态测试应被视为基本实践。确认CWE兼容性的静态分析工具在所有代码中系统地执行该标准。动态分析可确保代码不包含运行时错误,包括可能被利用来危害安全性的错误。

  可追溯性很重要

  如果要声明系统符合CWE等安全标准,则必须提供证据来支持该声明。可追溯性[可以显示哪些测试结果证明已满足特定的安全要求],从需求到设计,验证计划和由此产生的测试工件可用于支持此类声明。

  图 2 说明了如何将可追溯性链接到需求和相关测试用例。这种图形表示使开发人员可以轻松地立即发现不必要的功能(不需要的代码)、未实现的需求以及失败或缺失的测试用例。

  图2:LDRA TBmanager使用户能够查看单个需求和测试用例的源代码可追溯性。

  

usb

  前进

  采用针对 CWE 漏洞的安全标准允许为项目指定安全质量属性。将安全属性纳入系统要求意味着可以在将系统集成到网络之前对其进行测量和验证,从而大大降低敌人在现场利用潜在安全漏洞的可能性。

  使用合格且集成良好的应用程序生命周期管理 (ALM) 工具来自动执行测试、整理过程工件和需求可追溯性,大大减少了生成认证机构所需文档所需的资源。它最大限度地减少了开发人员的工作量,并允许管理人员有效地跟踪进度。

  很明显,如果要保护网络中心战系统免受信息泄露和远程操纵,系统开发人员需要重新考虑他们的假设。利用CWE中包含的知识并选择借助CWE感知工具开发和测试软件是向前迈出的重要一步。合并CWE并开始持续改进过程的公司有助于确保只有可靠,值得信赖,可扩展和安全的系统才能交付给那些冒着生命危险来保护我们国家的人。

  审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分