开源解决方案为透明度和持续改进设定了标准,使其成为稳健安全策略的重要组成部分。
译自 Open Source Propels the Fall of Security by Obscurity,作者 Manas Chowdhury。
网络安全支出持续上升,但泄密事件的数量也在上升。问题是:如果组织正在实施更多的网络安全实践,为什么攻击的数量还在上升?
主要原因是组织仍在使用过时的安全实践,例如通过默默无闻(Obscurity)来实现安全。随着网络威胁日益复杂,仅使用“祸从口出”的方法已经行不通了。
另一方面,开源软件提供了一种积极主动且透明的安全方法。
随着网络威胁以惊人的速度发展,了解开源解决方案的优势以及它们如何增强您的安全态势非常重要。
为什么过去都要靠默默无闻来保证安全性?
假设您有 5000 万美元现金,并且希望将其妥善保管。一种选择是将其藏在一个没人能找到的秘密地点……一个被称为“通过默默无闻来实现安全”的简单概念。
如果您试图保护的是软件而不是金钱,您会隐藏源代码以维护安全,并希望攻击者永远无法找出任何漏洞。
问题是,如果攻击者想弄清楚,他们会找到可以利用的漏洞。
美国国防部声明“通过默默无闻来实现安全”是不够的:
“隐藏源代码确实会抑制第三方响应漏洞的能力(因为如果没有源代码,更改软件会更加困难),但这显然不是安全优势。”
这种模式的缺点包括:
- 内部人员可能会无意中泄露敏感数据,从而带来重大的安全风险。
- 外部备忘单可能会无意中泄露隐藏的资源和漏洞。
- 黑客可以对软件进行逆向工程以找出机密信息。
- 轻微的漏洞可能会暴露内部系统架构的关键细节。
- 社会工程策略可以绕过安全措施来访问受保护的资源。
仅仅依靠默默无闻会给人一种虚假的安全感,因为没有绝对的默默无闻。另外,当您竭尽全力隐藏每一个细节时,您并没有真正解决潜在的漏洞;您只是在掩盖它们。而且您正在给您的 IT 安全团队施加额外的压力。这种对默默无闻的持续关注通常会导致倦怠,从而越来越难以保持稳健且响应迅速的安全态势。
为什么开源代码是更好的选择?
开源软件 (OSS) 将其源代码公开,供所有人使用、修改和改进。它在当今的软件中非常普遍;GitHub 估计“开源是全球 99% 的软件的基础”。
还记得上面隐藏现金的例子吗?您的第二个选择是使用带有密码锁的高安全性保险箱。即使每个人都知道保险箱在哪里,如果没有密码,他们也无法进入。即使他们获得了密码,您也可以简单地更改它。
更改密码比将 5000 万美元现金从一个地方转移到另一个地方要容易得多。
这就是 OSS 中的安全工作原理。即使代码是公开的,其安全性也基于可以轻松更新和加强的多层保护。
为什么开源软件是新的安全保障?
以下是开源比普通闭源软件更安全的三个原因:
更好的补丁开发
由于人们会定期检查源代码,因此更有可能发现代码中的问题并对其进行故障排除。正如 Linux 基金会首席技术官 Chris Aniszczyk 解释的那样:“开源社区能够以极快的速度解决安全漏洞,这要归功于其协作性。” 简而言之,开源可以更快地修复错误、漏洞和缺陷。
始终保持最新状态
开源软件最出色的方面之一是它更新的频率非常高。这些持续不断的更新让软件保持最新状态,安全无虞,并配备最新的修复和改进。正如 Linux 的创建者 Linus Torvalds 所言:“开源是一个持续改进的过程。它总在不断发展,这意味着安全性会随着时间的推移而变得更好。”与隐藏源码的软件相比,开源软件始终与时俱进,更有效。
社区支持
开源软件的另一个主要优势是其背后的强大社区。一大批开发人员和用户共同努力,通过共享知识和及时解决安全问题来确保软件安全。
Rust 基金会执行董事 Rebecca Rumbul 对此做了很好的阐述:“开源的力量来自社区。他们带来了专业知识和对维护软件安全的共同兴趣。” 他们可以快速解决安全问题,因此您可以相信软件得到了很好的保护。
可扩展性和灵活性
开源软件具有高度适应性,可以根据您的需求轻松扩展或缩减。无论您是想扩展运营规模还是从小规模开始,开源软件都提供集群和负载平衡等选项来满足您的需求。这种灵活性有助于组织有效地增长,同时有效地管理其资源。
降低软件成本
开源软件的另一个显著优势是节省成本。通过选择开源软件,您可以减少与许可和维护费用相关的支出。这种财务上的好处使组织能够更有效地分配资源并投资于其业务的其他方面。
如何有效地使用开源安全?
行业领导者使用开源安全的途径有很多。以下是其中两种:
开放源代码
组织可以共享他们的代码,以便其他人可以查看并提供反馈。通过这样做,他们可以利用开源社区的集体智慧。
如果组织有资源来管理贡献、处理反馈和维护开源项目,那么这种方法会很有效。这包括拥有一支能够处理社区互动并确保持续更新的团队。
使用现有的开源软件
另一种明智的方法是使用现有的开源软件。这些工具具有内置的安全功能,并且由其社区定期更新,因此它们配备了最新的安全补丁和改进。例如,像 KubeArmor 这样的工具可以帮助多家企业保护其 Kubernetes 环境。类似地,OWASP ZAP 是另一个用于查找漏洞的开源应用程序。
包括 Uber 和 Privado 在内的公司已经在利用开源来提高安全性。
案例研究 1:Uber
Uber 通过其创新的基于应用程序的模式提供按需交通选择,将交通运输行业提升到了一个新的水平。任何人都可以通过点击几个按钮来获得乘车服务。
Uber 前开源主管 Brian Hsieh 解释说,Uber 成功的原因之一是其开源社区:
“从一开始,Uber 就是一个开源软件。建立开源项目办公室对我们来说是自然而然的一步,因为它帮助我们开发了平台并快速扩展了我们的技术。开源是 Uber 成功的核心部分。“
Hsieh 还表示,参与开源社区对 Uber 的工程师来说是一个巨大的学习机会。他们可以深入研究新想法,并从社区专家那里获得宝贵的知识。总而言之,开源推动了 Uber 的发展,并使其工程文化更加强大,在其持续成功中发挥了关键作用。
案例研究 2:Privado
Privado 通过为跟踪和控制个人数据提供新的解决方案,正在改变隐私管理方式。它使用实时代码扫描来监控网站、应用程序和后端系统如何处理个人数据。
该公司已经集成了一个开源工具来增强其应用程序的安全性。Privado 首席科学家 Suchakra Sharma 表示,KubeArmor 为 Kubernetes 环境和云环境中的 合规性 增加了重要保护。
开源安全方面的挑战
开源软件提供了许多好处,但也带来了一些特殊的挑战。与开发人员一样,黑客也可以访问和修改代码,从而更容易利用漏洞。
此外,重用遗留代码可能会由于过时的依赖项和已知缺陷而带来风险,如果管理不当,这些风险可能会增加漏洞。
此外,OSS 许可证差异很大,对开源倡议 (OSI) 标准的不一致遵守行为会导致法律和安全问题,尤其是在集成不同的 OSS 组件时。
尽管存在这些挑战,但 OSS 由于其灵活性以及成本效益,仍然是一个有价值的选择,但务必要意识到并且解决这些潜在的陷阱。
解决开源挑战
为了提高安全性,将主动和自动化的措施纳入您的网络安全策略至关重要。
使用自动化进行漏洞检测
自动化漏洞检测使您能够更快地识别和修复风险,从而减少您的风险敞口。借助自动化工具,您可以持续扫描代码、应用程序和基础设施,以便在潜在的弱点被利用之前发现它们。
及时更新安全补丁
发现新的漏洞时,请快速应用来自开源项目的补丁程序,以确保您的系统安全。这可确保您的防御始终是最新的。
实施零信任安全模型
采用零信任方法意味着不断验证和身份验证每个访问请求,从而提供针对漏洞的强大防御。
像 AccuKnox CNAPP 这样的工具通过提供自动漏洞检测、持续补丁管理和可靠的零信任安全框架,使这变得容易。
选择安全的开源工具
是的,开源代码比“通过默默无闻来保证安全”的方法更安全。但并非所有 OSS 都是安全的;有些不太可靠,并且可能存在漏洞,如果管理不当,很容易被利用。
以下是一些您可以始终依赖的安全开源工具:
- TCP/IP: 这种基本的网络协议有助于管理数据在互联网上的传输方式,确保数据安全地到达目的地。
- Linux: 一种以安全性和灵活性著称的流行操作系统;它是运行服务器和安全管理系统的绝佳选择。
- KubeArmor: 此安全引擎与 Kubernetes 协同工作,实时监控和保护您的应用程序,使威胁远离。
- MySQL: 一个值得信赖的数据库系统,可以安全地存储和管理您的数据,帮助保护数据免遭未经授权的访问。
- Kafka: 该平台以可靠性和安全性处理实时数据流,确保数据平稳安全地流动。
评估重复使用的代码和第三方组件
在集成重复使用的代码或第三方组件之前,请使用静态分析工具执行详细的安全检查,并确保它们符合质量标准。
对开发人员和安全团队进行交叉培训
为开发人员提供网络安全培训,并尽早让安全专家参与进来,以有效地识别和解决潜在威胁。
结论
某些系统过于关键,不能仅仅依靠一种安全措施。有时,您需要实施书中的每一个技巧。这就是为什么通过默默无闻来保证安全不再足以保护您的组织。
真正的保护来自分层的、主动的策略,如强大的加密、严格的访问控制、一致的补丁和警惕的监控。开源解决方案提供透明度和持续改进,使其成为强大安全策略的重要组成部分。
想要保护您的组织免受新兴威胁的侵害吗?是时候采用强大的安全策略了。