彩票走势图

软件质量差有何代价?通过软件编码标准实现安全与保障

翻译|行业资讯|编辑:李显亮|2021-04-25 13:15:43.577|阅读 202 次

概述:软件编码标准的目标是灌输成熟的编程实践,从而产生安全、可靠、可测试和可维护的代码。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

软件从桌面转移到了我们接触到的几乎所有东西。从智能恒温器到输液泵再到汽车,软件无孔不入,而且在不断增长。来自物联网(IoT)的所谓 "东西 "越来越多地携带更多的逻辑。随之而来的是更大的故障风险。这些设备中的许多被用于安全关键领域,如医疗和汽车,它们有可能造成身体伤害。

事实证明,这些同样的标准也在网络安全领域提供了好处,起到了双重作用。这篇文章一起来讨论。

  • 这些标准如何帮助我们从发现缺陷到建立更强大的软件。
  • 如何通过正确的编码在第一时间预防问题。
  • 如何通过使用普遍接受的行业标准(如MISRA)来利用他人的努力来实现这一目标。

软件开发到软件工程

软件对现实世界的影响常常被低估。我作为Parasoft的布道者,不断讨论的一个主题是,软件开发真的应该是工程。

我们经常用软件工程师这个头衔来称呼软件开发人员,但对于他们今天的工作方式来说,这并不一定是一个合适的术语。发展到一个良好的软件工程实践,会使成本下降,质量提高。这其中的一个关键部分是采用标准,特别是编码标准

软件正在悄悄地进入产品、设备和其他我们从未想过的地方。我们现在必须认真思考这些产品中的软件和它所带来的影响。

质量差的代价

事实证明,在软件方面,你不需要花更多的钱来建造高质量的软件。你花更多的钱是为了建造质量差的软件。

在软件中,大部分的缺陷来自于程序员,是他们把这些缺陷放在产品中。如果我们能在开发软件时停止引入缺陷,我们就能以较低的价格获得更好的软件。

认识到质量是如何影响软件开发成本的,这一点很重要。研究人员卡珀斯-琼斯(Capers Jones)几十年来一直关注这个问题,每年都对软件成本进行调查。这些数字每年都没有什么变化。数据显示,软件的典型成本从需求到编码再到维护,每个阶段都会上升。然而,团队对待质量的方式决定了他们的过程是健康还是 "病态"。

软件质量差有何代价?通过软件编码标准实现安全与保障

为什么需要尽早修复缺陷

有道理的是,如果我们在编写代码时就发现了一个缺陷,其成本相对较低--比如说,开发人员的几分钟时间。如果有可能在开发阶段就消除85%的缺陷,那么对成本的影响就会很大。考虑一下现在著名的来自Capers Jones的图表,它显示了在开发的每个阶段修复缺陷的平均成本。

软件质量差有何代价?通过软件编码标准实现安全与保障

一个过时的、可证明是错误的方法是通过在生命周期的最后阶段,即在发布之前进行测试来提高软件的质量。在制造业中,他们明白这是不可能的,但出于某种原因,我们认为我们可以将质量(和安全)测试 "融入 "软件。

认识到质量是如何影响软件开发成本的,这一点很重要。研究人员卡珀斯-琼斯(Capers Jones)几十年来一直关注这个问题,每年都对软件成本进行调查。这些数字每年都没有什么变化。数据显示,软件的典型成本从需求到编码再到维护,每个阶段都会上升。然而,团队对待质量的方式决定了他们的过程是健康还是 "病态"。

编码标准改善安全和保障

软件编码标准的目标是灌输经过验证的编程实践,从而使代码安全、可靠、可测试和可维护。通常情况下,这意味着要避免已知的不安全的编码实践或可能导致不可预测的行为的代码。这在像C和C++这样的编程语言中变得至关重要,因为在这些语言中编写不安全或不安全代码的可能性很高。

然而,我认为这个行业在这些编程标准方面已经迷失了方向。在过去的十年中,这些工具(如静态分析工具)已经从检测潜在的有问题的不安全的代码或已知的语言弱点转变为专注于寻找缺陷作为早期测试的一种形式。

行业标准

以下是一些已建立的安全和安保编码标准的例子:

  • MISRA C/C++:由汽车工业软件可靠性协会开发,它描述了C或C++语言的一个子集和使用指南,以提高应用程序的安全和保障。虽然最初是针对汽车应用的,但它在其他安全关键应用中的应用也越来越多。
  • SEI/SANS CERT:软件工程研究所(SEI)计算机应急响应小组(CERT)有一套准则,帮助开发者创建更安全、更可靠的软件。这些指南按 "规则 "和 "建议 "的组别分为重要性,非常彻底和广泛,包括风险元数据。
  • 联合攻击战斗机航空器C++编码标准(JSF AV):基于MISRA C的一个子集的标准,专门用于JSF项目。
  • OWASP:开放网络应用安全项目(OWASP),顾名思义,是一个致力于提高网络应用安全的组织。因此,他们的OWASP Top 10项目提供了一个最常见和影响最大的网络应用程序安全漏洞列表。最新版本的OWASP Top 10与特定的CWE ID直接相关,并包括风险元数据。
  • CWE :CWE是一个基于分析报告的漏洞(CVE)而发现的软件弱点列表。前25名列出了从CWE大名单中选出的最常见和最危险的安全弱点,这些弱点都是发生几率很高的漏洞,利用该弱点的影响也很大。CWE还包括以技术影响为形式的风险信息,这有助于了解哪些问题对你的组织最重要。

作为能够检测违反编码标准准则的技术(如静态分析),MISRA的最新版本考虑到了哪些准则是可判定的(可由工具高精度检测),哪些是不可判定的。这就把我们带到了采用和执行的话题,以及静态分析工具在编码标准中的重要性。


Parasoft满足绝大多数行业标准

Parasoft是一家专门提供软件测试解决方案的公司,帮助企业打造无缺陷的软件。

从开发到质量检查,Parasoft的技术通过集成静态和运行时分析,单元、功能和API测试,以及服务虚拟化,在不牺牲质量和安全性的情况下加快软件交付,节约交付成本。

强大的报告和分析功能可帮助用户快速查明有风险的代码区域,并了解新代码更改如何影响其软件质量,而突破性的技术将人工智能和机器学习添加到软件测试中,使组织更容易采用和扩展跨开发和测试团队的有效的软件测试实践。

Parasoft针对C/C++、Java、.NET和嵌入式的开发测试都有着30多年的深入研究,很多全国500强企业使用Parasoft的产品实现了软件快速、高质量的交付。



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP