应用安全设计与DevOps项目考量
1. DevOps项目中的测试与部署
1.1 代码测试
开发者可以编写能自动运行的测试场景,确保代码在未来修改后,每次运行时基本功能都能按预期执行。对于代码的任何未来更改,可重新运行测试,以确保在修改软件时没有意外破坏任何功能。此过程可自动化,若测试失败,会通知开发者进行修复。
部分语言和框架支持在开发过程中直接创建测试用例。例如,Django(一个Python的开源Web框架)强烈建议为该平台编写的模块创建测试用例。部署时运行这些测试用例,可确保新更改不会对现有代码库产生意外的功能副作用。
对于与安全相关的功能,安全团队可参与此过程。例如,他们可要求引入特定测试条件,测试加密、认证等安全措施。
1.2 部署(集成)
代码完成单元测试后,下一步是将其以最终在生产环境中运行的格式部署到平台上。此阶段需在生产环境预期条件下验证软件,通常以自动化方式执行。以Django为例,可重新运行现有模块中的测试用例,验证新更改是否破坏现有功能。
从安全角度看,根据环境不同,可采取一些措施。由于代码已打包成生产环境使用的格式和上下文,可引入漏洞评估扫描、配置验证等工具,确保整个软件包具备预期的加固和弹性水平。若不满足要求,会向开发者反馈,告知其意外破坏了对应用安全至关重要的内容。在应用容器化场景中,可确保底层容器具备所需属性,如不使用已知易受攻击的中间件和软件库版本。
1.3 质量保证
此阶段类似于单元测试,可对软件进行测试,就像它已处于生产环境一样。不同之处在于,软件此时已为生产做好准备,即已按生产环境的方式进行打包和部署。可再次
超级会员免费看
订阅专栏 解锁全文
69

被折叠的 条评论
为什么被折叠?



