首页 > IT基础架构 > 网络安全 > 敏捷开发过程中易产生安全问题的6个习惯
敏捷开发旨在帮助团队比其他软件开发方法更快、问题更少地向客户进行交付。敏捷使团队能够灵活地响应市场中的变化或响应客户向开发团队提供的反馈。但在没有考虑充分的情况下采用这种速度和灵活性时,可能带来潜在的安全问题。由于常规开发操作(DevOps)的安全性不足,DevSeOps作为一种确保将安全性集成到软件开发生命周期中的方法越来越受欢迎,DevSeOps在软件开发的每个阶段集成安全测试。
典型的敏捷开发主要有五个步骤:
会议和计划:在这个阶段,团队一起了解他们准备开发的软件需求,想要创建的功能,并为他们将要做的工作进行整体规划。
设计:团队对他们将要构建的软件进行实际设计。他们采用在第一阶段讨论过的最终想法,并找出技术实现。通常涉及到创建架构图、数据库设计和创建软件所需的其他技术文档。
代码和测试:在这个阶段,团队构建软件并对其进行测试来确保其正常工作。在这个阶段,软件不仅要测试功能,还要测试安全问题。
发布:在此阶段,软件将发布给其客户以供使用。这可以是全新软件产品的发布,也可以只是现有产品的新版本。
反馈:在此阶段,开发团队从使用应用程序的群体那里接收反馈,并使用该信息来计划未来的软件开发活动。
首先,缺乏彻底的安全审查。快速的迭代通常会导致开发团队忽视或匆忙地对代码进行安全审查。如果没有高质量的安全审查,安全问题进入生产的可能性就会增加。
其次,更关注于新功能。敏捷过程是一个连续的循环,但这些循环通常侧重于添加新功能,而不是维护旧功能。开发团队更多关注于新功能是否满足客户需求,而旧功能中存在的安全漏洞可能在很长一段时间内都没有被发现或解决。
第三,没有专门的安全测试点。开发人员被要求在评审和测试后发布代码,但也需要专业安全人员进行测试。敏捷可以为开发团队提供一个快速、灵活的过程,从而加快开发迭代步伐,但也需要确保能够正确地将安全性集成到开发生命周期中。
快速释放周期
敏捷开发的主要特征之一是其快速发布周期。虽然这有利于满足客户需求,但这种快速的过程可能会导致忽略潜在的安全问题。
安全意识和培训不足
实现良好安全流程的挑战之一是人的因素。当涉及到安全性时,代码的质量将受到开发人员知识的影响,可能在无意中将安全漏洞引入代码中。
对源代码存储库的访问控制不足
有些开发环境对其代码库没有适当的访问控制,这可能导致代码中出现未经授权的更改。这些变更不会像经过适当变更管理流程的代码变更那样受到相同级别的审查或测试,可能导致引入安全漏洞。
缺乏安全集成
在某些情况下,软件开发环境没有适当的安全集成来帮助控制对开发环境的访问。这包括MFA和SSO等。这对于确保只有经过授权的人员才能访问公司代码存储库并参与其中非常重要。
缺乏敏感数据管理系统
敏感数据管理系统是对设备上的敏感数据进行保护的系统。一个在软件开发中很重要的例子是SAST或DAST解决方案。这些工具可以自动测试软件代码的漏洞和可导致数据泄露的安全问题,对于确保敏感数据不会意外泄露到生产代码中非常重要。
缺乏第三方和开源管理
无论何时使用外部代码,重要的是要有一个安全评估过程,来确保没有潜在的安全漏洞。通过使用依赖项审计工具可以评估应用程序中使用的代码。另一层保护可以是使用子资源完整性验证,在将开源组件引入代码存储库之前检查正在使用的开源组件是否未被篡改。
安全代码培训
安全代码培训可以在一定程度上减少开发人员无意中引入的安全漏洞。通过教授开发人员安全编码实践,提高自我评估代码安全能力,避免犯可能引入新漏洞的错误。
专用安全代码审查
作为敏捷测试阶段的一部分,设置专门的安全代码审查。此过程对应用程序源代码的检查,目的是寻找潜在的安全问题。理想情况下,这应该由安全人员而不是编写代码的开发人员来完成。
频繁的渗透测试
另一个识别安全问题的良好实践是定期执行渗透测试。通过安全人员对应用程序执行网络攻击,来查看实际运行中可被利用的漏洞,可以定期获得安全报告并了解到需要采取哪些步骤来解决这些问题。
第三方风险管理
当前开发中离不开第三方组件的使用,如开源代码库,第三方托管服务等,通过对第三方进行风险评估,来避免将新的安全漏洞或其他形式的风险引入软件当中。
参读链接:
https://www.softwaresecured.com/7-agile-software-development-habits-that-produce-security-concerns/
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000012/viewspace-2987634/ ,如需转载,请注明出处,否则将追究法律责任。