细数三次软件危机 安全与速度何以两全?

[复制链接]
作者: Andrew Timmons | 时间: 2024-5-3 03:56:14 | 其他|
0 263

1968

主题

1968

帖子

5904

积分

研究生

Rank: 9Rank: 9Rank: 9

积分
5904
发表于 2024-5-3 03:56:14| 显示全部楼层 |阅读模式
软件危机是指在计算机软件开发和维护过程中遇到的严重问题,这些问题一直困扰着计算机系统的发展。随着互联网的发展,越来越多的设备连接到网络中,这些设备上运行的软件面临着越来越多的攻击者和更容易实施的攻击方式,而软件所面临的安全风险也不断增加。

据著名著作《人月神话》所述,IBM公司开发的OS/360系统涉及4000多个模块,约100万条指令,每年投入5000人和数亿美元的资金,但最终交付仍然延期,并在系统使用后发现2000个以上的错误。
为了提高软件的开发和维护效率,软件工作者早从20世纪60年代末开始专注于解决软件危机问题,本文将带领大家从三次软件危机看软件安全的重要性。
第一次软件危机开始爆发
随着20世纪60年代中期推出容量大、速度快的计算机,计算机的应用范围迅速扩展。软件系统的规模和复杂度不断增加,程序设计的复杂度也随之提升。软件开发量激增,软件可靠性问题也逐渐凸显。过去个人设计、个人开发的方式无法满足需求,急需改变软件的生产方式,提高软件的生产效率。
软件开发的成本和进度失控的问题频繁出现。经常出现费用超支和进度延误的情况。为了赶进度或降低成本,不得不采取一些权宜之计,但往往会严重影响软件产品的质量。
软件的可靠性十分低下。尽管投入了大量人力和物力,但系统的正确性越来越难以确保,导致错误率大幅增加,由于软件错误而带来的损失非常惊人。
生产出来的软件很难进行维护。许多程序缺乏必要的文件资料,很难定位程序中的错误并进行修正,有时即使修正了已存在的错误,也可能带来新的错误。随着软件在社会中的普及增加,维护工作所需的人力、物力和财力也越来越多。
1968年,北约组织的计算机科学家在联邦德国召开的国际会议上首次提出了"软件危机"的概念,并讨论了解决此问题的方案。在此次会议上正式提出了"软件工程"的概念,并开创了一门新兴的工程学科——"软件工程学",旨在研究和解决软件危机。
软件危机的第二次爆发
随着软件应用的发展与复杂性的不断增加,大规模软件通常包括数百万行代码,并且有数百名程序员参与开发。如何有效而可靠地构建和维护这种规模的软件成为一个全新的挑战。
随着时间推移,软件成本在总成本中所占的比例越来越高。这是因为微电子技术不断进步,硬件生产自动化程度不断提高,导致硬件成本逐年下降,性能和产量迅速提高。然而,软件开发需要大量人力投入,因此软件成本随着软件规模和数量的激增而不断上升。
软件开发生产率提高的速度远远赶不上硬件发展的速度,这导致人类无法充分发挥现代计算机硬件潜力。
软件的规模庞大导致了第二次软件危机,因为开发和维护的成本与用户对软件的"可组合性"、"可延展性"、"可维护性"之间存在矛盾。
为了解决危机,面向对象的编程语言(如C++、C#、Java等)应运而生,更高级的软件工程方法(包括设计模式、重构、测试、需求分析等)也随之诞生。然而,这导致了程序员对于硬件工作原理的认知日益缺失。软件和硬件之间的界限变得越来越明显,例如,使用Java编写的代码可以在任何支持JVM的平台上运行,这也为程序员带来了方便和乐趣。
软件危机的第三次来临
随着互联网的发展,软件的功能和范围得到了拓展,但是这也为攻击者提供了更多的机会。由于软件被应用于不同的环境和用户层次,软件开发者需要考虑更多的安全问题。同时,恶意攻击者也可以比以往更容易地访问软件系统并尝试发现其中的安全漏洞。软件漏洞和缺陷是不可避免的,这使得应用系统面临着极大的安全风险,从而导致了第三次软件危机。
随着损失越来越多,软件安全问题不容忽视,已成为必须严肃对待的事项。
在软件开发需求中,我们需要添加与安全相关的需求,以确保软件的安全性能。而为了验证软件的安全性,安全性测试是其中之一的验收标准。
为了更有效地应对第三次软件危机,我们开始在软件开发的不同阶段引入安全相关工作,从而产生了软件安全开发生命周期。近年来,DevSecOps概念被认为是快速、安全地构建软件的最有效方法之一。DevSecOps 将安全性集成到 DevOps 软件开发生命周期的每个阶段。该方法不仅节省了资金和繁琐的手动任务时间,而且显著降低了在软件最终构建后发现关键安全漏洞的风险。
以飞算SoFlu软件机器人为例,它能够实现全自动化软件开发,是一款让企业快速实践 DevSecOps 的绝佳工具,在开发人员和安全专业人员之间创建一个协作环境,使企业能够更快、更轻松地构建安全代码。以自动开发为例,专业开发人员,或者没有编程基础和开发技能的普通人,只需通过 SoFlu 软件机器人的协助,在可视化界面拖拽组件,就可以创建复杂程度不同的软件。而且,由于平台套用封装代码,基本消除了测试修复 bug 的环节。也就是说,通过自动化的方式来实现软件开发,能够很好地保证软件的安全性。
在代码质量上,飞算SoFlu软件机器人中所有封装组件均需经含超3000条检验规则的代码质量检测工具检查。同时,JAR包均为经漏洞扫描的保证稳定安全。开发项目导出的源代码,亦能通过代码规范和漏洞扫描。此外,内置一系列基于AI的开发、测试、产品质量分析和安全审核的功能,可在整个应用程序开发生命周期提供“专家级”帮助。
此外,飞算SoFlu软件机器人通过标准化流程将企业研发经验沉淀在平台内部,形成良性循环复用,建立企业知识库,充分保障了企业知识与技术这一核心资产的安全。
飞算SoFlu软件机器人现已开放免费试用,点击链接可以直接申请。
申请链接:http://feisuanyz.mikecrm.com/9dW4GeZ

来源:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部