北京的白癜风哪里治疗好 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/bdf/
译者:李睿
开发人员的思维方式是理解问题,构建解决方案,然后找出如何将健壮且安全的解决方案部署到生产环境中。
不幸的是,一旦实现,将安全优秀实践嵌入到解决方案中通常会操作更加复杂和成本高昂,而快速发布创新的压力往往会导致DevOps团队发布安全债务。最佳Devsecops实践是将知识、最佳实践和安全性“左移”到开发过程中,以便敏捷开发团队更有可能将安全性直接融入微服务、应用程序或数据库中。
但是持续集成(CI)/持续交付(CD)管道呢?当构建、集成、打包和交付代码到环境的人工步骤在CI/CD工具中编写脚本时,这种自动化提高了部署的可靠性。具有强大CI/CD实施的Devops团队通常会采取下一步措施,并考虑为生产环境进行持续部署,这会带来更多风险,但可以实现更频繁的部署。
开发人员需要考虑以下这些建议和最佳实践,以确保安全和强大的CI/CD管道。
1.在CI/CD之前建立安全开发实践咨询机构凯捷公司敏捷和开发主管KulbirRaina分享了一个首要原则:“安全和质量必须嵌入到代码中,在处理CI/CD管道中的自动化时,不应该让质量关卡来控制。开发人员需要在他们的集成开发环境中集成安全工具,以便正确地检查代码。”
Linting是一个由识别编码风格偏差和不安全实践的工具执行的过程。更复杂的静态应用程序安全测试(SAST)工具可以发现缓冲区溢出、SQL注入缺陷和其他问题。Raina建议将SAST集成到持续集成中。
RedgateSoftware公司Devops倡导者SteveJones表示,工具很重要,但就像任何Devops流程一样,确保随着时间的推移不断学习和成长。他说:“定期对开发人员进行安全编码实践方面的教育,并确保他们找出简单的漏洞(例如SQL注入),这一点至关重要。”
Buildkite公司联合创始人兼联合首席执行官TimLucas分享了其他的一些最佳实践。他建议查看来自开源和第三方的依赖项,以了解常见漏洞和暴露?(CVE)。Devops团队不要将易受攻击的软件投入生产。他建议,对供应商软件使用可验证的签名,这样如果供应商受到威胁,企业的安全供应链也不会受到损害。
Sonatype公司现场首席技术官lkkaTurunen对此表示赞同。他建议说,“最佳实践之一是在搜索开源软件项目时具有选择性,这就像在传统制造业中一样,并非所有部分都是平等的。寻找由敬业且负责任的开发人员维护的项目,不仅可以提高软件供应链的可维护性,还可以减少技术债务、返工和安全风险。”
这些建议只是在软件开发生命周期中应用最佳安全实践时的冰山一角,但它们是开发安全交付管道的关键先决条件。
2.在CI/CD管道中构建持续测试重要的是要认识到CI/CD不仅仅是交付代码。这也是采用左移测试并发展持续测试策略的机会。然后,将测试作为核心原则的团队可以在触发CI/CD管道将版本部署到任何环境之前寻找验证安全性的机会。除了集成SAST安全测试之外,开发团队还应