【编者按】作者 Aaron Volkmann 是 CERT Division 高级研究员,在本文中,他对 DevOps 自动化违反 SOX 法案进行了阐述。同时,也简单的提出了如何通过 CI 来避免这个问题,本文系OneAPM工程师翻译。

为了解决类似 Enron、Worldcom 以及 Tyco 等公司暴露出的财务欺诈丑闻,21世纪初期美国国会颁布了萨班斯-奥克斯利法案(SOX Act)。SOX 法案要求上市公司通过一系列内部控制手段,确保向投资者披露正确的财务信息。在一家 IT 公司中,遵守 SOX 方案的主要准则之一就在于:确保没有任何员工可以单方面地在生产环境中变更软件代码。DevOps 的自动化技术,如持续集成(CI)持续交付(CD)、基础设施即代码(IaC)从表面上看,似乎已经不再遵守 SOX 法案了。本文将会探讨 DevOps 自动化如何能够让公司在保持兼容性的同时,还能从实际上提高其合规程度。

当软件控制进程从传统的手动方式转换为更加自动化的过程时,很多公司都担心检查会被忽略,平衡被打破的同时也造成公司违反 SOX 法案。在图一中所展示的传统场景中,一名开发者对某个软件进行变更后,先将代码提交进入评审流程,然后通过手工或系统进行打包准备部署。新版本被提交到变更控制流程中,准备部署到生产环境中。在管理者批准将变更实施到生产环境之后,由生产服务工程师进行部署。尽管管理该过程有很多办法,但仍无法确保评审的代码版本就是部署到生产环境的那个版本。

通过使用 CI 服务器(如图二所示),software shop 可以记录与追踪每个源代码文件的哪个版本构成了软件的相应版本。在持续部署的过程中会有停顿,人们在此时对变更进行检查,准备投入生产环境;任何未经授权的变更都不能通过该环节。

CI 使得对打包软件所使用源代码文件的确切版本进行记录与审核成为可能。software shop 同样可以具备集中自动化测试的能力,这样就能一一扫描每个软件 build,寻找安全缺陷。

另一个可能抵制自动化的领域是服务器基础设施配置。在 SEI,由于需要管理员手动查看服务器build,经常会有人反对使用 IaC 作为服务器配置。在使用 IaC 工具(Chef,Docker 或者Puppet)时,可以将基础设施配置脚本作为可验证、可测试、可信赖的软件构件,相信它能够产生可靠且能够复制的结果。IaC 让开发者有机会集中精力开发和测试配置脚本,同时允许自动化抄送测试服务器镜像,减少人为错误的风险。

每家公司甚至各公司内的每个科技/商业领域都可能会有独特的需求和限制。在特定领域,达标的自动化水平可能也会不同。通过仔细将机器布置到位,让自动化进程按部就班,这样一来控制、审核和保护公司资源的能力,还有确保遵守如 SOX 法案这样联邦法规的可能性只会增加。

原文链接:A DevOps a Day Keeps the Auditors Away (and Helps Organizations Stay in Compliance with Federal Regulations such as Sarbanes-Oxley)

OneAPM 是应用性能管理领域的新兴领军企业,能帮助运维人员进行故障预警和定位,减少业务系统维护的工作量,同时还能提供可追溯的性能数据,量化运维部门的业务价值。想告别加班熬夜,欢迎免费注册使用!

谈 DevOps 自动化时,也应该考虑到 SOX 等法案的更多相关文章

  1. DevOps - 自动化工具

    章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...

  2. 技术沙龙|京东云DevOps自动化运维技术实践

    自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...

  3. 沙龙报名 | 京东云DevOps——自动化运维技术实践

    随着互联网技术的发展,越来越多企业开始认识DevOps重要性,在企业内部推进实施DevOps,期望获得更好的软件质量,缩短软件开发生命周期,提高服务稳定性.但在DevOps 的实施与落地的过程中,或多 ...

  4. 浅谈.NET编译时注入(C#-->IL)

    原文:浅谈.NET编译时注入(C#-->IL) .NET是一门多语言平台,这是我们所众所周知的,其实现原理在于因为了MSIL(微软中间语言)的一种代码指令平台.所以.NET语言的编译就分为了两部 ...

  5. GeneXus DevOps 自动化构建和部署流程

    以下视频详细介绍了GeneXus DevOps自动化构建和部署流程,包括通过MS Bulid来管理自动化流程,自动化的架构,以及在GeneXus Server上使用Jenkins做为自动化引擎. 视频 ...

  6. Python测试开发-浅谈如何自动化生成测试脚本

    Python测试开发-浅谈如何自动化生成测试脚本 原创: fin  测试开发社区  前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...

  7. UI自动化时,解决selenium中无法点击Element:ElementClickInterceptedException

    在跑自动化时,页面上有2个下拉框,两个下拉框无论屏蔽哪一段都会成功,但是同时放开跑时会报错,百度给的解释是上面的下拉框元素覆盖了下面下拉框的元素定位,才会导致报错 百度的解决办法有2种: elemen ...

  8. 浅谈PHP自动化代码审计技术

    原文出处: exploit   欢迎分享原创到伯乐头条 0×00 由于博客实在没什么可以更新的了,我就把目前做的事情总结一下,当做一篇博客,主要是谈一谈项目中所运用的一些技术.目前市面上有不少PHP的 ...

  9. 浅谈DevOps

    DevOps: Development和Operations的组合,是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控. 可以把DevOps看作系统开发 ...

随机推荐

  1. Android之进度条2

    我之前有写过一篇“Android之进度条1”,那个是条形的进度条(显示数字进度),这次实现圆形进度条. 点击查看Android之进度条1:http://www.cnblogs.com/caidupin ...

  2. JDBC之数据库操作

    JDBC重要界面有: java.sgl.DriverManager:完成驱动程序的装载和建立新的数据库连接. java.sgl.Connection:表示对某一指定数据库的连接. java.sgl.S ...

  3. 浏览器userAgent大全

    iPhone ●iOSMozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Versi ...

  4. 开发者需要知道的11条HTML5小常识

    #HTML5: The Missing Manual# 如果说HTML是一部电影,那HTML5就是一次大转折.HTML本来是不会活过21世纪的.官方Web标准组织W3C在1998年对HTML就已经撒手 ...

  5. Using OpenCV Java with Eclipse

    转自:http://docs.opencv.org/trunk/doc/tutorials/introduction/java_eclipse/java_eclipse.html Using Open ...

  6. 使用python读写windows剪切板

    import win32clipboard as w import win32con base_addr = 0x8e00000 buffer_len = 0x123 def getText(): w ...

  7. Mac下使用Web服务器性能/压力测试工具webbench、ab、siege

    Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准,下面我们来一一剖析他们的使用方式. 测试前,前面先把系统的端口限制数改大,看看Mac下面的默认限制 ulimit -a ope ...

  8. btrace 实践笔记

    btrace简介:     btrace 是一个使用在JAVA平台上面的,安全的,动态跟踪工具.它一般用于动态跟踪正在运行的jAVA程序.     使用说明在这里.下载地址在这里.     下载的时候 ...

  9. 淘宝IP地址库采集器c#代码

    这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下. 最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息.网上的Ip纯真数据库,下载下来一看 ...

  10. 用PHP生成随机数的函数

    转自:http://www.jbxue.com/article/5034.html 介绍:在早期的php中生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生 ...