代码安全:持续交付模式会是理想答案吗?

简介:

鉴于公司的持续交付(CD)模式,我们公司的开发人员将代码投入到日常生产当中去。尽管开发周期短,但我仍然意识到了安全网关的需求。在这种环境下,该使用何种网关或是其他安全措施?我们是否要继续采用CD模式?

代码安全:持续交付模式会是理想答案吗?

对于软件应用程序开发和交付来讲,持续交付模式意味着开发周期短,同时会第一时间公布新代码,而非推迟或与其他变更中捆绑进行。

从安全角度看,主要问题在于很多实际CD部署只关注测试和尽可能快地发布新特性和功能,缺乏对安全的重视。用户反馈会反映到下一个版本中,但也只是就可用性和功能方面,而非安全。不过,这并不意味着就非要弃用CD不可,因为安全是内置于整个过程中的。

CD模式的核心理念在于创建一个自动化单元测试和集成测试的基线,这也使其本身天然地适用于安全开发实践,只要开发和安全并行即可。带有恰当的安全处理的CD模式可以改善软件的安全性和弹性,因为这样可以在软件开发和部署过程中的关键阶段持续集成安全检查。传统的软件开发在每一个应用代码中引入太多变更,这导致如果测试失败的时候,难以发现问题究竟出在了哪段代码上。

CD模式中的持续代码评估让寻找问题更为简易,加之代码在开发者脑海里总是常新的。当然,建立安全编码规则禁止危险代码结构和功能的使用也是非常重要的,只支持第三方库和组件,且对所有核心功能应执行全面错误和异常处理规定。

一旦新代码进入检测,它应该被自动地进行代码安全评估以查看是否引入了已知漏洞,并对人工检查做好标记。检测已知漏洞非常适合自动化,但更重要的是添加测试场景识别和禁止未知非正常行为。这些测试绝大多数可通过使用内带安全的浏览器自动化工具自动进行。

测试的本质在于和自动化验收测试一样,不过更为针对验证安全特性,如登录和退出,包揽所有可预见的和不可预见的行为。关键在于创建基于应用程序攻击面的测试,详细的威胁模型。且安全团队应该具备块交付能力,如果测试结果表明存在不可接受的风险时。


作者:Michael Cobb 翻译:张程程

来源:51CTO

相关文章
|
1月前
|
测试技术 UED
测试方案有点难?ChatGPT助你轻松编写测试方案!
使用ChatGPT辅助编写测试方案,以高级搜索功能为例,涉及关键词搜索、过滤条件、界面兼容性、错误处理等测试点。首先明确测试需求,如按作者、时间范围和分类搜索,产品形态为App和Web应用。然后,通过提示词逐步细化方案,包括App的移动设备适配、耗电量和内存占用测试。通过不断优化提示词,确保测试方案全面覆盖功能性能、用户体验及专项测试内容。
33 1
|
9月前
|
敏捷开发 数据可视化 测试技术
如何做好敏捷迭代管理?过程及工具分享
Leangoo领歌是ScrumCN(scrum.cn)旗下的一款永久免费的敏捷研发管理工具。 Leangoo领歌覆盖了敏捷研发全流程,包括小型团队敏捷开发,Scrum of Scrums大规模敏捷以及SAFe大规模敏捷框架等,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、缺陷管理、测试管理、进展跟踪、统计度量等。领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新,在数字时代赢得竞争。
如何做好敏捷迭代管理?过程及工具分享
|
10月前
|
数据库
重构——前提工作
重构——前提工作
|
存储 缓存 NoSQL
测试思想-测试设计 关于测试用例设计的一点感想(优先级与拆分合并设计)
测试思想-测试设计 关于测试用例设计的一点感想(优先级与拆分合并设计)
82 0
|
Cloud Native 架构师 测试技术
基于持续测试的质量守护:分层测试、测试自动化、单元测试(一)|学习笔记
快速学习基于持续测试的质量守护:分层测试、测试自动化、单元测试(一)
204 0
基于持续测试的质量守护:分层测试、测试自动化、单元测试(一)|学习笔记
|
算法 Cloud Native 架构师
基于持续测试的质量守护:分层测试、测试自动化、单元测试(二)|学习笔记
快速学习基于持续测试的质量守护:分层测试、测试自动化、单元测试(二)
129 0
基于持续测试的质量守护:分层测试、测试自动化、单元测试(二)|学习笔记
|
敏捷开发 测试技术
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
重构改善既有代码的设计---笔记
重构改善既有代码的设计---笔记
187 0
|
设计模式 Java 程序员
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
172 0
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
|
程序员
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
526 0
《重构:改善既有代码的设计》-学习笔记二(+实战解析)