零信任的概念最早是在 2010 年由当时的 Forrester 分析师 John Kindervag 提出。零信任承认了在分布式网络环境下传统边界安全架构的不足,认为主机无论处于网络什么位置,都应当被视为互联网主机,它们所在的网络,无论是互联网还是内部网络,都必须被视为充满威胁的危险网络。
零信任的核心思想是:默认情况下,企业内外部的任何人、事、物均不可信,应在授权前对任何试图接入网络和访问网络资源的人、事、物进行验证。
零信任网络的核心原则包含以下五个方面:
身份是访问控制的基础
信任来自于端到端所有对象的身份,基于身份而非网络位置构建访问控制。
最小权限原则
资源可见和访问按需分配,仅授予执行任务所需的最小特权。
实时计算访问控制策略
根据主客体信任评估和访问需求进行策略计算,并持续评估以保证策略实时变更。
资源受控安全访问
所有业务场景下全部资源基于单个访问请求连接,进行强制身份识别和授权、鉴权和通道加密。
基于多源数据进行信任等级持续评估
包括身份、访问上下文等的实时多源数据的多样性和可靠性,提升信任评估策略计算能力。
零信任主张安全体系架构从网络中心化转变为身份中心化,所有的访问行为都需要以身份为中心进行细粒度的自适应访问控制。
企业不应该默认信任网络内部或外部的任何人、设备、系统和应用,而是应该基于认证和授权重构访问控制的信任基础,并且基于尽可能多的数据源对访问者进行持续的可信度评估,根据评估结果动态地调整授权和访问控制策略。
零信任架构的支撑系统称为控制平面,其他部分称为数据平面,数据平面包含所有应用程序、防火墙、代理服务器、路由器,以及它们直接处理网络上的所有流量,数据平面由控制平面指挥和配置。
访问受保护资源的请求首选经过控制平面处理,包括设备、用户的身份认证和授权,细粒度的访问控制策略也在这一层进行,控制平面可以基于组织中的角色、时间或者设备类型进行授权。
一旦控制平面完成检查,确定该请求具备合法的授权,它就会动态配置数据平面,接收来自该客户端(且仅限该客户端)的访问流量。
此外,控制平面还能够为访问请求者和被访问资源协调加密访问的具体参数,包括一次性临时凭证、密钥和临时端口号等。
传统上,IT 行业一直依赖 周边安全策略 保护其最有价值的资源,例如用户数据和知识产权。 这些安全策略涉及使用防火墙和其他基于网络的工具来检查和验证进出网络的用户。 然而,数字化转型和混合云基础结构迁移之旅正在改变各个行业开展业务的方式。 依赖网络外围已不再足够。 许多企业也在调整其业务模型。 它们提供了客户需要并想要的新型数字体验,同时也支持全球化、差异化的员工队伍。 最近的事件更进一步加速了这一数字化转型之旅。 突然之间,各个企业有成千上万的个人从家中电脑进行连接,脱离了 IT 部门的掌控。 用户、数据和资源分布在全球各地,难以快速、安全地连接起来。 而脱离了传统本地基础结构的保护,员工的家中环境更易受受到攻击,从而给业务带来风险。 雪上加霜的是,很多企业目前使用东拼西凑、未能很好集成的各种安全解决方案和工具来运营。 这样一来,安全团队就要花更多时间执行手动任务。 他们缺乏场景和洞察,难以有效减少企业的攻击面。 数据违规 情况日益增多,全球监管也趋于增加,这些都加大了保护网络的难度。 不妨看看具体数据,数据 违规的平均成本接近 400 万美元,这包括丧失的业务和罚款。 应用程序、用户和设备需要快速、安全地访问数据,为此,有整个行业的安全工具和体系结构专门用于保护数据。 零信任解决了这种数据驱动的混合云环境的安全需求。 它为各个企业提供了对用户、数据和资产的自适应持续保护,并能够主动管理威胁。 换言之,从不信任、始终验证的这种做法旨在针对每一笔交易,给每一个用户、设备和连接构筑安全性。 应用零信任框架还有助于威胁防御者在其整个安全业务中获得洞察。 他们可以始终强制实施安全策略,并以精确的方式更快检测和响应威胁。 不过,这也带来了一些附带的好处,例如:
- 由于子网上的流量减少,增强了网络性能
- 提高了解决网络错误的能力
- 由于粒度更细,进一步简化了日志记录和监视过程
- 更快的违规检测时间
自动化已经以各种形式存在了几十年,直到现在我们才开始看到它的全部潜力。自动化软件开发生命周期 (SDLC) 可以显着提高质量保证、开发人员生产力并减少花费在特定任务上的时间。公司已开始在整个 SDLC 的安全实践上进行更多投资,以保护其数据并防止恶意软件攻击。
随着行业的变化,安全实践也在不断发展。已经从传统的安全实践转变为将安全视为 SDLC 中的优先事项。采用左移的心态正在兴起,这意味着在 SDLC 的开发阶段之前从安全开始。这有助于公司采用更灵活的方法来处理网络安全。
零信任是一个 IT 安全框架,它将每个人和一切都视为敌对(以一种好的方式!)。因此,零信任安全模型授予对所有 IT 资源的最低特权访问权限,这意味着除了明确授予他们访问权限的内容外,不应信任任何人。相反,只有经过验证和授权的网络、应用程序、用户、IP 地址和设备才能按照严格的协议进入网络。
这个零信任框架的实现涉及到先进和安全的技术来验证用户的身份并实现系统的安全。用于实现这一点的一些值得注意的技术是基于角色的访问控制、多因素身份验证、身份和访问管理 (IAM)、身份保护和端点安全技术。此外,在授予任何访问权限之前强制执行严格和动态的用户身份验证方法。
此外,持续进行潜在威胁扫描和检测。
为什么 SDLC 中的安全性?
每家公司都希望更快地向客户发布新功能,而安全性需要跟上创新步伐。此外,组织正在将他们的工作负载转移到云中,利用云计算服务,并且云提供了动态扩展。必须扩展安全性以匹配云的规模。今天的公司不允许服务中断一秒钟,因此安全性在自动事件响应修复中变得至关重要。
修复生产中的错误的成本会使您的客户感到不安,并为开发团队带来大量开销,因此安全专家强烈要求在您的 SDLC 的每个阶段设置安全检查点。
按开发阶段修复缺陷的成本:IBM 系统科学研究所:修复缺陷的相对成本
为了成功和安全地利用自动化,需要在整个 SDLC 中更加强调安全性。这就是 DevSecOps 作为云原生技术将开发、运营和安全统一为 SDLC 中的一个流程的一种集成思维方式的地方。它提倡在 SDLC 的早期阶段采用左移方法来促进安全。
实施 DevSecOps 的挑战
在 DevOps 工作流程中实施安全性存在许多挑战。以下是一些主要的:
- DevOps 是一种快节奏的游戏:由于 DevOps 主要侧重于快速开发、部署和发布,因此安全性要跟上这种快速发展的步伐变得具有挑战性。
- 孤立的团队方法:安全团队通常使用不同的工具集和流程,而且他们通常缺乏完整的 SDLC 可见性。将 dev 和 sec 视为两个独立的团队变得具有挑战性。
- 可扩展性和集成性:随着容器化和创建虚拟 VM 的发明,DevOps 为攻击者提供了许多新的攻击面。Jenkins、Docker 等各种工具和技术在扩展时增加了不同的安全挑战,并且可以创建复杂的层(字面意思)。
- 技能集:DevOps 世界中安全原则、概念证明和技能集的稀缺性使得招聘真正的安全专业人员具有挑战性。此外,企业往往忽视安全团队,不让他们参与重大决策,无论是选择新平台还是工具、更新策略等,因此将安全放在首位的整体愿景很容易被淡化。
- 工具选择不当:选择不合适的工具和做出错误的决定最终会成为负债。这可以通过让安全团队成为设计考虑、工具选择、政策制定、合规性、治理等的一部分来实现。
SDLC 中的安全最佳实践
以下是在 DevOps 管道中实施零信任安全的一些技巧:
- 将 DevSecOps 实施为 SDLC 的基础,并使左移方法成为必须。
- 与第三方工具和供应商合作时,必须强制执行软件物料清单 (SBOM)。
- 定期进行安全培训,向您的开发人员和运营团队灌输安全意识和所有权。
- 在 SDLC 的每个阶段都有安全检查点,并验证只有好的代码和机密数据或机密不会暴露给外界。
- 将静态代码分析集成到构建过程中。
- 制定威胁建模计划,以识别和减轻开发过程中涉及的潜在安全风险。
- 预先考虑持续安全性。利用安全性和合规性最佳实践并采用持续改进策略。
- 使用与您的 SDLC 良好集成的安全工具,并在很少或无需人工干预的情况下轻松实现安全和治理的自动化。
- 确保您的工具套件包含强大的安全漏洞检测器和通用软件组合分析解决方案。
- 拥有强大的安全威胁响应管理策略,以应对发生的任何安全威胁。
- 制定访问控制策略,在访问权限、角色和职责上有明确的界限,以消除团队之间的冲突。
著名的安全工具
- JFrog Xray: JFrog Xray 是一种已知的 安全漏洞工具,可扫描您所有的开源软件工件及其依赖项,以查找漏洞和许可合规性问题。它扫描存储库、构建包和容器映像。它会检测您的软件组件中的受损许可证和任何违规行为,确保您的端到端软件生命周期尽可能顺畅。
- SonarQube: SonarQube 是一个用于持续代码检查的开源工具。它收集和分析源代码并提供有关项目代码质量的报告。通过经常使用,SonarQube 可以保证您组织内的通用编码标准,同时确保应用程序的可持续性。
- Vdoo: Vdoo 是一种强烈推荐的安全工具,它使安全团队能够揭示和减少应用程序、容器、嵌入式、物联网和边缘设备中涉及的软件风险。使用 Vdoo,负责安全的团队可以在几分钟内进行自动化和配置安全审计。 [注:JFrog 最近收购了 Vdoo, 以增强其在云原生领域的安全游戏。]
- 水上安全性:在 水上安全在整个应用程序生命周期平台工具的安全自动化,以确保构建,云基础架构和工作负载无论他们在哪里部署。
- WhiteSource: WhiteSource 是许可证合规管理平台,可确保团队能够有效地管理和信任其开源资产。它检测并修复整个 SDLC 中的安全性和合规性问题。它会在问题发生时发出警报并帮助开发人员找到并修复问题。
- Logz.io: Logz.io 旨在通过日志管理和日志分析服务为系统提供更可靠的可观察性。该工具为安全和运营团队提供了一个集中平台,专门用于云原生环境。
保护您的 SDLC
安全性在 SDLC 的每一点都变得至关重要,以减少人为错误的风险。大多数公司都认为“左移”,让安全成为每个人的工作,将提高整个 SDLC 的安全部分。但就是这样吗?保护 SDLC 不仅仅是确保每个人的工作安全。
以下是有关如何开始保护 SDLC 的一些要点:
- 创建可靠的安全编码最佳实践、指南和框架,供开发人员在整个 SDLC 中纳入。
- 让每位加入贵公司的开发人员都必须接受安全培训。
- 使用同类最佳的工具来解决安全漏洞、静态代码分析、端到端供应链保护。
- 使代码审查、扫描、渗透测试和架构分析成为开发工作不可或缺的一部分。
- 通过 JFrog Xray、Vdoo、SonarQube 等工具将安全性集成到您的 CI/CD 管道中。
- 确保您在 SDLC 中包含的每个工具都有一个安全检查表。例如,如果您使用 Docker 和 Kubernetes 等平台,请确保仅使用官方 Docker 映像,并为 Kubernetes 上的工作负载提供高级集群安全性。
- 如果您在 SDLC 中使用开源工具,请确保使用软件组合分析 (SCA) 工具来分析开源代码、库和依赖项等。
- 拥有自定义仪表板或工具,可帮助您在单一管理平台中查看 SDLC 中发生的情况。也许,结合 Dynatrace、Nagios 或 Datadog 等监控工具 来获取这些信息。
建议在单一管理平台中使用具有整体安全方法的工具 - 一个连接所有点并建立零信任安全系统的端到端平台,攻击者难以渗透以获取访问权限. 当涉及到 SDLC 时,您的二进制文件和所有依赖项构成了进一步步骤的重要输入数据。
首先,您需要一个流程和一个工具集来保护二进制文件一直到边缘,整合安全数据以进行高效决策,以及一个具有最高完整性的端到端交付系统。
结论
无论您在云原生之旅中处于哪个行业和阶段,零信任原则已成为必须,并被中小型企业采用,以确保其系统始终高度安全和可用。通过植入安全原则、最佳实践和工具来确保安全性的坚实基础,可以减轻安全威胁。