在敏捷产品开发中嵌入安全性

在敏捷产品开发中嵌入安全性
Author: Leron Zinatullin,信息安全专家
发表日期: 2020年10月1日

编者按: 整个十月的网络安全意识月, ISACA Now博客每周都会发布关于热点安全话题的新文章. 有关更多ISACA网络安全资源,请访问我们的 网络安全意识月网页.

在项目开始时概述安全性需求, 审查设计以检查需求是否已被纳入,并在上线之前执行安全测试. 如果这听起来很熟悉,那就对了. 许多公司使用瀑布方法管理他们的项目, 在计划向前推进之前,必须清除哪些预定义的“闸门”. 在某些检查点可以决定不再继续前进, 如果现在收益似乎不太可能实现,就接受沉没成本.

这种方法在具有明确目标和有限不确定性的结构化环境中非常有效, 我见过用这种方法交付的伟大的东西. 从安全的角度来看,有很多积极因素, 安全团队也会参与进来,因为他们通常必须在某些阶段的大门提供他们的签名, 因此,尽早与他们接触以避免延迟是项目经理的利益所在. 另外, 安全团队的输出和方法通常是定义良好的, 所以双方都不会感到意外,而且更容易扩大规模.

如果总体需求不太清楚, however, 或者您正在不断地迭代,以了解更多有关涉众的需求,以逐步详细说明需求, 来验证,甚至从最初的假设出发, 那么更敏捷的项目管理方法可能更可取.

在敏捷开发中嵌入安全性还不太成熟,而且有不止一种方法可以做到. 在讨论初创澳门赌场官方下载和其他采用敏捷方法的公司的安全性时, 我看到很多人关注自动化安全测试和培训开发人员进行安全软件开发. 尽管这些举措有其优点,但这并不是全部. 安全专家需要有更大的视野,并与产品团队合作,不仅要防止代码中的漏洞, 而是影响整体的产品策略, 从设计上追求安全和隐私. 

添加安全特性并审查和改进现有需求以使产品更加安全,这是朝着正确方向迈出的一步. 为了有效地做到这一点, 发展与开发和产品团队的关系是至关重要的. 产品负责人尤其应该是你最好的朋友, 因为您经常需要说服他或她在sprint中包含您的安全需求和用户故事. Remember, 作为一名安全专家, 你只是产品所有者必须管理的利益相关者之一,而且可能有很多相互竞争的需求. Besides, 在每个sprint中,开发团队能够交付的功能是有限的, 因此,阐明你的建议的价值和重要性成为一项基本技能.

很少有人会注意到安全,直到它丢失,这时通常已经太晚了. 我们一次又一次地看到,各种规模的组织都在努力应对数据泄露和安全事件. 作为安全专家,您的工作是阐明在项目早期确定安全改进优先级的重要性,以减轻将来潜在的返工和负面影响.

安全性建议通常以用户描述的形式进行交流. For example, “客户个人资料应妥善储存”或“作为注册用户”, 我希望通过安全的通信通道访问我的敏感信息(安全存储),以便我可以执行授权的操作.“虽然每个组织的工作方式都不一样, 尽量说得具体些, 提到具体的技术和协议, if required.

在编写安全用户故事时, 你应该尽量详细说明你要解决的问题, 它将提供什么价值, if solved, 验收标准. 验收标准通常包括详细的安全需求(例如来自 OWASP ASVS(如果你正在制作手机或网页应用)。.

如果你遵循Scrum或类似的方法, 重要的是,安全团队要参与到sprint计划中,为评估做出贡献,并帮助产品所有者确定优先级. 其他团队会议, 比如待办事项的细化和日常站立式站立, 同样值得关注的是能够澄清你的需求(包括价值, risk, 到期日期和依赖项),并帮助消除与安全相关的障碍.

团队之间的协作文化对于敏捷方法的有效性至关重要. 将安全视为一种增值的产品特性,而不是需要解决的问题,这是产品和工程团队应该采用的心态. However, 安全专家应该认识到他们所处的更广泛的环境,并接受这样一个事实,即安全性只是团队需要考虑的需求之一. 如果业务无法产生收入,因为客户需求的关键功能缺失, 安全漏洞得到了解决,这一点也不令人感到安慰. 毕竟,拥有一个安全的产品是很好的,但当没有人使用它时就不那么安全了.