This post is also available in: English (英语) 繁體中文 (繁体中文) 日本語 (日语) 한국어 (韩语) Português (葡萄牙语(巴西))
自从现代计算出现以来,安全防护便与软件开发产生了巨大的脱节。最近的漏洞研究证实了这一点。在过去五年间,所有已发布的漏洞中有 76% 来自应用。鉴于攻击者的重点产生了这种根本性的转变,到了将安全防护嵌入开发的时候了。为实现这一点,最好的方式是实施安全防护左移策略。
安全防护左移定义
用最简单的术语来解释,安全防护“左移”就是将安全防护尽可能地移到开发流程的早期。现代 CI/CD 流程通常包括八个步骤,如图 1 所示。安全防护左移不仅有利于降低网络风险,还可以降低成本。IBM 的系统科学研究所发现,在设计过程中解决安全问题,比在实施过程中解决的成本要低六倍。同一项研究还发现,在测试过程中解决安全问题的成本甚至要高出 15 倍。
要有意识地将安全防护嵌入到每个步骤中,首先需要清晰地定义策略。
图 1:CI/CD
步骤 1:定义安全防护左移策略
千里之行,目标为先。为您的团队勾画鲜明的图景,让成员了解怎样才算获得成功。在该文档中,需要包含的关键内容是愿景、所有权/责任、里程碑和指标。策略文档会随着时间而变得成熟,不要花费太多时间试图使其完美无缺。随时间的推移而迭代是必不可少的。
步骤 2:了解企业中创建软件的位置和方法
安全防护左移最有挑战的一个方面,可能是首先掌握企业中软件创建的方法和位置。根据企业的规模,这项工作可能非常简单,也可能非常困难。
此步骤的目标是从企业范围开始了解,并记录下企业中软件的整体流程。大中型企业都希望从宏观入手,然后细化到单独的业务单位。很可能每个业务单位都有自己的软件开发流程和工具。在此阶段要识别的关键项目,包括谁开发代码(人员),如何从计算机开发推进到生产(流程),以及使用何种系统支持流程(技术)。这也可以称为 CI/CD 工具链。毫无疑问,很多软件开发的流程在公有云中进行。
步骤 3:识别并实施安全质量护栏
质量保证一直是软件开发生命周期的一部分。但是在过去,安全防护从未包括在软件质量中。这种现状必须改变,之前的步骤中完成的工作会帮助您做到这一点。软件开发流程中的每个步骤都是提供反馈、查找安全问题的机会。最有效的安全团队从小事开始入手。他们为开发团队提供简单高效的工具,并让这些工具成为日常开发例程的一部分。Palo Alto Networks 最近公开了一个此类工具的源代码,意味着可以免费使用。
步骤 4:评估并不断训练开发团队的安全编码能力
安全防护左移的其中一步,是确保作为编码主体的人员在开发初期便创建安全的代码。如果没有对他们现在的技巧进行客观衡量,也没有持续改善技巧的计划,那么实现这一步很难。一项调查表明,19% 的开发人员表示自己不熟悉 10 大 OWASP,这一点不容忽视。DevOps 服务提供商 GitLab 最近发布的一项调查进一步强调了这一点,其中发现有 70% 的程序员应该编写安全的代码,但只有 25% 认为所在企业的安全实践“还不错”。
安全防护左移看起来如何
让我们看一下这两个场景,其中我们将开发简化为构建、部署和运行阶段。在场景 1 中,开发在没有安全防护的情况下运行。仅在运行时检查软件质量。这经常导致在找到漏洞时,安全防护与开发之间的交流非常困难。
但是,在场景 2 中,安全团队花了很多时间了解企业中的开发流程。同时,他们花费时间将安全防护流程和工具嵌入到 CI/CD 过程中,结果实现了自动化的安全防护质量护栏。
结语
利用上述四个步骤,您的组织不仅会稳步实现安全防护的左移,而且能够让安全防护与开发同步。在云旅程中,随着组织趋向左移,自动化且由 API 驱动的安全控制就会显得非常关键。Palo Alto Networks Prisma 帮助安全团队保护 DevOps 和 CI/CD 渠道的安全,从而实现这一点。