您应该了解的开源安全方法






4.67/5 (2投票s)
开源安全方法
引言
开源技术在各行各业的众多组织中得到广泛应用和采纳,并取得了显著成效。IT 领导者带领他们的组织拥抱开源,打破了这项技术刚出现时围绕开源的种种迷思和担忧。
然而,另一方面,开源的敏捷性也带来了一系列安全挑战,这为许多组织和IT从业者提供了另一个机会。
在深入探讨安全方法之前,我想先描述一下组织采用开源的原因。
以下是一些原因:
- 社区驱动的开源软件更有可能拥有更快的开发周期。
- 使用开源软件比创建和维护专有软件更便宜。
- 流行的开源软件可以为您提供出色的技术支持。
- 它们消除了供应商锁定的烦恼。
开源安全是一个不同的游戏
如果您的组织正处于实验阶段或刚刚开始采用开源技术,您可能已经想过:“我们如何才能确保它的安全呢?”
好问题!然而,在回答这个问题之前,最好先充分认识开源的益处。
请记住,有挑战的地方就有解决方案。但是,要管理开源应用程序,我们需要了解其潜在风险。
一旦我们有了充分的认识,我们就可以帮助我们的组织明智地选择所需的工具和策略,以帮助缓解开源安全问题。
以下是一些您需要理解的思维方式:
-
在安全漏洞方面,专有软件使用SAST或DAST工具来检测可能的漏洞。在开源社区中,已知漏洞是公开的。因此,您可以使用拥有这些漏洞数据库的工具来随时保持更新。
-
在信息公开方面,专有软件所有者将其组织内的所有信息保密。反之,开源信息是公开可用的。因此,如果存在安全问题,这些问题可以很容易地得到缓解。
-
在修复方面,处理专有软件时,您需要研究并找到解决方案。然而,大多数开源项目的文档都是可用的,包括其问题历史。基于知识的网站提供了可操作的修复方案。
-
在扫描阶段,专有软件通常只在开发期间进行扫描,而开源软件即使在发布后也会持续监控。
这里的重点是,开源是一个不同的游戏。管理开源软件时,您需要一种不同的思维方式,尤其是在处理安全问题时。您在旅程中将面临的许多困难都有可用的解决方案和最佳实践,因为许多社区和组织根据他们自己处理开源软件的经验在线提供了这些。
甚至大型企业也采纳了开源的许多方面,这使得开源的使用在这些年里不断创新。正因为它是开源的,开发人员也回馈了社区。
现在,让我们讨论一些开源安全方法,以了解工具的使用和重要性。
开源安全方法
为了管理组织软件项目中的安全风险,我们为您提供五条有用的建议。
1. 记录正在使用的开源组件
拥有特定项目中正在使用的开源组件列表至关重要。
一个很好的例子是您package.json文件中的NPM包。如果您不熟悉package.json文件,可以想象成我们项目中以结构化方式安装的包列表,包括其依赖项。
您无需手动完成此操作。许多构建工具可以为您创建清单,包括这些软件组件的依赖关系图。
现在,下一步是验证这些组件不包含任何安全漏洞。至于漏洞,这取决于您的组织承受能力。此外,许多工具提供了缓解安全漏洞的步骤,并可以帮助修复这些问题。
注意:这种开源安全构建和分析工具与静态分析工具不同。
2. 应对安全漏洞
一个检查开源依赖项是否存在安全漏洞的构建和分析工具,包括深入分析和缓解措施,是非常棒的。
以下是一些关于如何应对安全漏洞的提示:
- 对于开源组件中的小问题或日常暴露,请更新软件包。您甚至可以根据您的构建工具自动执行此操作。
- 您的工具将为中等问题提供建议,因为它们拥有此类漏洞的数据库集合,包括它们的历史记录和修复方法。
- 对于重大或高风险漏洞,您的工具将提供深入的信息和缓解步骤。
3. 检查项目是否真实
首先选择一个开源项目就很困难。选择一个刚刚起步并因其为团队带来的价值而引起您注意的项目并非没有风险。因此,您的组织必须研究您所选择的任何小型开源项目,并拥有其中的一部分,至少是为了了解情况。
此外,您可以检查所选择的开源项目是否值得信赖,维护者是否足够称职?如果需要,他们会回应吗?他们是真实的,还是攻击者?
为了您和您的团队的利益,这些问题需要答案。但话又说回来,这些只是建议。最终的决定仍然需要由您的团队做出。
此外,一种常见的做法是,每当有人更新或修复开源项目中的特定错误时,都会负责任地披露。此修复记录可供所有人查看。
因此,开源社区将了解修复方法和根本原因。
这样做的好处是它允许项目持续改进并成为开源项目的良好候选者。
4. 避免安全蔓延
将数据库密码等凭据复制粘贴到源代码中并非最佳实践。然而,尽管这样做不好,大多数开发人员在他们生命中的某个时刻都曾这样做过。
凭据几乎总是攻击的目标,特别是如果您是一位将证书、密钥、配置和秘密密钥放入源代码的开发人员。
受损的凭据会导致安全风险。这就是所谓的安全蔓延。
安全蔓延是指源代码、配置文件和其他地方的纯文本中包含敏感信息。
那么,解决方案是什么?
首先,将所有凭证集中存储在一个地方,并使用访问控制和审计日志进行加密。
然后,您可以轻松地在项目中使用这些密钥,并确信它们是安全的。
这种做法被称为秘密管理。
5. 养成更新开源组件的习惯
保持开源组件的最新状态有助于避免旧版本中存在的漏洞。
使用更新的版本以接收错误修复和未披露的安全修复至关重要。
一个能帮助您跟踪新的和即将出现的漏洞的优秀工具是 WhiteSource 漏洞数据库,它涵盖了各种编程语言和超过一百万个开源组件。
此外,您可以报告漏洞,以帮助数据库及时更新每日出现的新漏洞。
结论
开源太棒了!但它不是免费的,也不是没有风险的。这就是为什么我们需要理解和欣赏开源的本质。
一个很好的开始方式是理解闭源和开源之间的区别,这也是我们本文的起点:开源安全是一个不同的游戏。
之后,我们向您展示了一些开源安全方法,以帮助您的组织了解全局并以此为起点。
但请记住,这些只是指导方针,一切仍将取决于您的组织在开源安全风险方面的风险承受能力。
再次感谢大家阅读本文,希望大家喜欢,我也很享受撰写过程。
敬请期待更多精彩内容。下次再见,编程愉快!
请不要忘记收藏、点赞和评论。谢谢!
历史
- 2021年9月14日:初版