应用安全工程第一阶段:安全意识
作者:Joe Basirico
发布日期:2020年11月30日
阅读时间:4分钟
本文是系列文章的一部分:
- 引言
- 意识阶段(当前位置)
- 赋能阶段(即将发布)
- 执行阶段(即将发布)
上周我发布了介绍应用安全工程三个重要阶段的文章:意识、赋能和执行。在接下来的三篇文章中,我将深入探讨每个主题,分享可优化安全工程实践的最佳实践和指南。
根据我的经验,最好的应用安全计划从应用安全意识培训开始。目标是为产品团队提供足够的信息,让他们知道何时需要安全团队的介入。这是一个宽泛的陈述,让我们来分解一下。
应用安全意识不同于一般的安全意识。一般的安全意识通过培训员工识别网络钓鱼攻击、选择强密码以及理解TLS的重要性等主题来保护组织或企业。安全意识对任何组织都至关重要,因为大多数成功的数据泄露都涉及人为因素。然而,应用安全意识更具针对性,它武装工程团队成员,教他们如何识别风险、理解漏洞,并认识到何时需要安全团队介入以支持良好决策(更多内容将在第二阶段讨论)。
需要明确的是,该计划的目标不是将组织中的每个人变成安全专家,而是为他们提供工具,让他们知道何时可能采取影响业务风险的行动,并“举手”寻求支持和指导。
该计划的目标不是将组织中的每个人变成安全专家
意识阶段的目标包括:
- 了解需要保护的内容
- 识别敏感组件
- 理解风险
- 发现安全可以有趣且吸引人
- 认识到安全不一定耗时
- 明白安全团队不仅仅是为了说“不”
让我们逐一分解这些目标。
需要保护的内容
我培训产品团队的第一件事是理解哪些资产最重要需要保护。这可能是知识产权、受监管数据(如PII、PCI、HIPAA等),或最可能被攻击者瞄准的内容。识别资产的能力是理解安全、风险和修复的第一步。
敏感组件是什么
处理敏感数据的组件本身具有风险,但其他组件也可能难以安全构建。某些组件可能为攻击者提供系统优势、以特权账户运行,或提供对其他特权数据或组件的访问;这些组件也应被识别为风险组件。
风险是什么
能够进行有意义的关于风险的对话是应用安全工程意识阶段的另一个关键目标。衡量风险的方法有很多,其中许多是复杂的安全术语嵌套。然而,我发现大多数人在这个意识阶段天生就足够理解风险。应用安全专业人士和领导者必须深入理解风险。
将风险定义为可能性乘以影响是清晰且可理解的。
安全可以有趣且吸引人
我工作中最棒的部分是看到安全的“灯泡”在人们脑海中点亮。有时是他们理解黑客思维的时候,有时是他们理解特定威胁或攻击向量的时候。无论触发事件是什么,发现安全有趣且吸引人是意识的关键组成部分。让安全变得有趣将帮助产品安全团队反复回归安全,并有机地学习更多内容。
安全不一定耗时
大约20年前,当我刚开始从事安全工作时,重点是“安全门”或检查点,应用程序必须像经历痛苦考验一样通过这些检查点才能部署产品:你是否创建了威胁模型?是否进行了架构审查?是否执行了必要的代码审查或代码扫描?安全团队是否测试了你的系统?是否有基础设施影响审查等等。回顾过去,难怪开发人员对安全团队持谨慎态度。
当前的安全时代完全专注于赋能。产品安全团队应构建库和工具,使团队更快、更轻松地构建和部署安全软件。我们将在下一篇文章中深入探讨安全赋能的具体内容,但此时的关键要点是产品团队应理解与安全团队合作不会减慢他们的速度。
安全团队不仅仅是为了说“不”
开发人员通常认为安全团队是不必要的阻碍者。在安全门心态下,这绝对可能是真的。事实上,安全团队经常被称为“拒绝办公室”,有时是有充分理由的。
许多优秀的安全团队已经进化了他们的思维,以支持开发安全且能抵御当前和未来威胁的伟大新功能。以这种方式构建软件不仅使开发团队能够快速、安全地构建软件,还发展了团队之间的关系,并使安全成为整个产品的市场差异化因素。
这的安全影响是什么?
如果你的产品团队大部分在会议、Scrum或功能讨论中问“这的安全影响是什么?”,并且这个问题引发了引人入胜的活跃讨论,那么意识的目标就已经实现。此阶段的目标是为你的团队提供问题、激情和好奇心以开始这些对话,而不一定是完成它们。
本文是系列文章的一部分:
- 引言
- 意识阶段(当前位置)
- 赋能阶段(即将发布)
- 执行阶段(即将发布)