找回密码
 立即注册
注册 登录
×
热搜: 活动 交友 discuz
查看: 70|回复: 1

软件漏洞的生命周期

[复制链接]

1

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-11-27 14:17:24 | 显示全部楼层 |阅读模式
软件漏洞在整个开发生态系统中传播和积累,从小代码片段到大型程序。一般来说,最大的软件产品必须应对大量漏洞才能维持运营。例如,微软通常每月会修补  50-100 个 Windows  安全漏洞。作为用户,不断更新应用程序的需求可能会让人感到疲劳。了解软件漏洞的来源有助于安全专业人员和开发人员有效地管理、沟通和避免它们。
环境脆弱性

最低级别是影响编程语言、编译器以及开发和运行时环境的漏洞。这意味着应用程序可能在开始编写之前就已经存在漏洞。即使是“Hello  World”程序也可能容易受到漏洞的影响,具体取决于它的运行方式。尽管此级别的严重漏洞并不常见,但由于受影响的软件产品数量众多,它们可能会产生深远的影响。
更进一步的是影响编程堆栈其他部分的漏洞。前端和后端框架、内容管理系统  (CMS)、数据库等都可能引入自身的漏洞。因此,在编写第一行代码之前做出的决定可能会影响创建和维护安全应用程序的能力。
开源库

接下来是开源库。开发开源库的个人或小团队通过创建免费可重用的程序为软件开发生态系统提供了无价的服务。实际上,我们每天依赖的软件工具都使用开源库,而最广泛使用的库集成到所有商业软件的很大一部分中。通过导入开源库,开发人员不需要自己编写代码,就可以立即为他们的软件添加新功能。通过整合现有库并编写少量集成代码,可以在几个小时内完成简单的应用程序。
使用开源库有一些安全优势。选择知名库而不是编写自定义代码,通常可以生成更成熟、经过更好审查且漏洞更少的代码。然而,这也意味着单个开源库中存在的任何漏洞都可能影响许多软件产品。在过去十年中,一些最广泛扩散的漏洞与许多商业产品使用的开源库相关。
自定义代码

当开始编写代码时,会出现各种引入漏洞的方式。在OWASP Top  10中介绍了很多相关的缺陷。即便依赖开源库,也会涉及部分自定义代码。所有这些都可能导致安全问题,并且对每个代码提交进行充分的审查和静态安全测试,以防止出现新的漏洞。此外,集成代码(包括库)也可能结合漏洞以产生新的或放大的安全问题。例如,一段代码中不正确的日志记录实践与另一段代码中的目录遍历漏洞相结合,可以将两个相对低严重性的问题变成一个关键的身份验证绕过漏洞。
商业软件产品

当软件已成规模再进行安全溯源会相当耗时,很有可能之前的遗留问题已无法溯源。随着软件规模的增长,增加对防御上的投资是必要的。
遗留代码,或者开发团队经常不能很好地理解的代码,可能会带来重大的安全风险。遗留代码可能被绑定到很少需要更新的特定特性上。这也可能是开发人员或团队在没有适当交接的情况下离开的结果。
当在维护良好且广泛使用的软件产品的遗留代码中发现漏洞时,它可能会产生毁灭性的影响。由于代码没有更新到当前的安全标准,因此存在的漏洞类型可能包括以前常见的严重问题,但现在已经很好地理解了这些问题,并且在更新的代码中大部分都得到了缓解。这些类型的漏洞往往最容易利用现成的工具加以利用。
当在遗留代码中发现关键漏洞时,通常很快就会发现相关漏洞,因为相关的特性或功能很容易成为攻击者的目标。最近的打印假脱机程序漏洞就是一个例子,它突出了未维护代码的危险。
还有许多其他潜在的漏洞没有谈及,但应该清楚的是,漏洞可能在开发的最初阶段出现,并且传播和持续的时间比人们预期的要长得多。因此,在开发早期进行代码安全检测及相关第三方库的检测非常必要,并且此时进行缺陷修复所耗费的时间精力大大小于后期发现问题时所用的。
为了减少可避免漏洞的数量和影响,及早实施安全开发实践,定期重新评估,并应用于整个代码库。
文章来源:
https://www.cybersecurity-insiders.com/the-lifecycle-of-a-software-vulnerability/
回复

使用道具 举报

0

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2025-3-5 09:14:31 | 显示全部楼层
珍爱生命,果断回帖。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋| 黑客通

GMT+8, 2025-4-7 14:39 , Processed in 0.098930 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

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