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

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

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

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

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

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

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

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

作者:Michael Cobb 翻译:张程程

来源:51CTO

时间: 2024-11-03 02:31:50

代码安全:持续交付模式会是理想答案吗?的相关文章

olaris 转向“连续交付模式”

在最近从 Solaris road map 中删除 Solaris 12 后,人们对 Solaris 12 的未来发展进行了许多猜测,Oracle 最终发布了一篇博客文章,详细介绍了其删除原因及 Solaris 的发展前景. Oracle Solaris 正在转向持续交付模式,更新频繁化,并及时提供最新功能,同时完全保留 Oracle Solaris 11 上大量可用的 ISV 应用程序中的客户和 ISV 资格投资. 新特性和功能将通过点阵发布,主要版本在 Oracle Solaris 中提供,

从代码到上线, 云端Docker化持续交付实践

关于分享者: 罗晶,花名瑶靖.在加入阿里云之前,先后在支付宝平台数据技术事业群.百度基础架构部任职.现主要负责阿里云容器服务产品的集群管理系统的研发,从事容器的持续交付.持续集成的方案设计与实现. 演讲内容架构 大话持续交付 持续交付的前世 容器化DevOps 持续交付的今生 演讲主要内容 持续集成指的是,频繁地(一天多次)将代码集成到主干.持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量.它的核心措施是,代码集成到主干之前,必须通过自动化测试.只要有一个测试用例失败,就不能集成. 持

阿里技术专家:持续交付与微服务背后的实践逻辑

讲师介绍 崔力强 阿里巴巴技术专家   <微服务设计>中文译者之一:曾在ThoughtWorks任职软件交付和敏捷顾问: 对持续集成.自动化测试有丰富经验:目前专注于持续交付SaaS产品的开发,提供精益需求管理.软件设计.敏捷转型相关咨询服务.    前言 大家好,我是崔力强.目前在阿里巴巴任职.负责一款持续交付领域的SaaS产品的开发.非常高兴能够和大家分享持续交付和微服务的话题. 本次分享的重点是持续交付.也会提到一些微服务的概念,以及持续交付和微服务之间的关系.今天会涉及的一些实践可能大

快速指南:在DevOps中实现持续交付

本文讲的是快速指南:在DevOps中实现持续交付[编者的话]时至今日,以几乎相同的步调实现开发与交付已经成为一种必需.本份快速指南将帮助大家弄了解持续交付概念中的那些"良方"与"毒药". [烧脑式Kubernetes实战训练营]本次培训理论结合实践,主要包括:Kubernetes架构和资源调度原理.Kubernetes DNS与服务发现.基于Kubernetes和Jenkins的持续部署方案 .Kubernetes网络部署实践.监控.日志.Kubernetes与云原

针对不同需求,蓝海讯通提供两种产品和服务交付模式

实际上,针对企业用户在应用性能管理解决方案部署和交付模式上的不同需求,蓝海讯通提供了两种产品和服务交付模式:传统的软件许可证模式(blueware)和基于云计算的SaaS模式(OneAPM).blueware主要针对传统大型企业,而OneAPM主要针对互联网企业开发者 . 借助OneAPM,开发者可以提升开发速度.让应用更快发布,并且能精准定位使用体验中的瓶颈.据蓝海讯通介绍,OneAPM的功能很适合支持敏捷开发模式.他们希望提供一种服务,让应用性能管理不再是问题,对开发者来说,你只需要把业务做

让IT跟上业务思考的速度--从持续集成到持续交付

通过 7 个持续交付最佳实践,给读者一个思路,无论是建设持续交付能力,还是在进行持续交付平台的选型,都能够在业界经验的基础上走向更为正确的道路.同时,本文还引入了持续交付成熟度模型,目的是想帮助企业,把一个想象中全面而复杂的交付流程进行切分,按照环节和成熟度等级展现,将实现持续交付能力之路变得更为清晰.更可操作.有助于企业建立良好的期望和愿景,并开展切实可行的行动. 市场和业务瞬息万变,企业的 IT 部门必须面对产品上线周期不断变短的事实,也就是说,需要建立产品交付反馈圈,并让这个闭环圈的反馈速

阿里云持续交付-快速可靠地交付高质量软件

文/戴蒙 拥有3万多人的阿里巴巴,线上有上万个应用,上亿的用户即时在线,每天有几百个应用在线上更新,就像在时速200公里的高速公路上横穿马路维修栅栏一样,时刻保持着心惊胆战,而保护这个过程的体系就是阿里巴巴持续交付工具与实践. 现代开发企业中如何做好持续交付是一件异常重要的事情,在互联网企业中更是如此.而阿里巴巴在这么多年的研发管理基础上,对如何做好持续交付提出了一套全新的模型与实践. 阿里技术保障部产品专家戴蒙在"2016云栖大会上海峰会"专场<"互联网+"

莫源:像搭积木一样玩转Docker的持续交付

云栖TechDay活动第十八期中,阿里云的高级研发工程师莫源带来了题为<像搭积木一样玩转Docker的持续交付>的分享,主要讲解了阿里云容器服务实现基于Docker的持续交付.容器持续交付的设计思路和未来发展反向. 幻灯片下载地址:https://yq.aliyun.com/attachment/download/?filename=dbf464e5883344e9dd010214576889bf.pdf 以下为现场分享观点整理. 最近Docker越来越火,持续交付的概念也随着被大家越炒越火.

针对持续交付管理构建作业

对于不断演进中的产品,持续交付(CD)使其开发到产品交付的过程更加简单.持续集成(CI)位 于持续交付过程的开始阶段,它扮演了这个过程中的重要角色,由它定义软件开发过程. 在书 上和网上可以查到很多持续集成工具的资料,但处于持续集成过程中核心的构建作业却没有太多资料. 典型的持续集成过程如下:开发人员在他们自己的机器上手工构建和测试源代码.然后他们会 把修改提交到一个源码控制管理系统.随后构建工具将运行作业编译和测试这些代码.然后把构建的工 件上传到一个中心资源库,用于接下来的开发和测试. 因此