加固型开发运维:将安全融入软件开发流程
2016-10-18 10:57:00 来源:来源:51CTO 评论:0 点击:
【51CTO.com快译】开发运维正在彻底改变开发人员和运营团队的协同工作方式,以便更快速地交付更优秀的软件。究其核心,开发运维的本质是自动化。开发、测试和部署方面的几项任务自动化后,开发人员就可以经常修改代码,并部署到生产环境。亚马逊这家领先的开发运维倡导者曾经一度声称每天要部署1000多次。
但是这种加快的工作流程有可能绕过安全编程实践,开发人员常常发现很难在第一时间融入这种实践。如果开发运维要继续保持发展势头,开发人员就需要在软件交付生命周期的早期阶段整合安全测试。
这就是“加固型开发运维”背后的想法,这场运动让开发人员负责安全测试。加固型开发运维插入了多个点,以便安全测试能够及早发现潜在的软件问题,以免这类问题进入生产环境,但同时又不影响持续集成和应用程序交付。
分析公司Securosis的首席技术官阿德里安·莱恩(Adrian Lane)说:“加固型开发运维就是在进入到生产环境之前整顿代码,确保一旦代码部署到生产环境,能够抵御外部威胁。要像攻击者那样对待你的代码。”
以开发运维之道确保代码安全
开发运维的核心目标是,提供实现敏捷开发必不可少的自动化和实践,并且让软件开发由庞大的瀑布项目转为持续交付管道。
加固型开发运维需要一种类似的转变:丢弃非常复杂的、为期多年的安全路线图,改为逐步改进。太多企业组织往全面的计划投入了大量的资金和时间,结果发现投入打了水漂。
总体愿景比路线图更灵活,让每个人都可以专注于逐步改进。比如说,致力于确保头一个季度部署的所有新代码没有SQL注入问题,然后在下一个季度清理旧应用程序中的SQL注入问题,而不是说到年底所有应用程序都得到修复,清除开放式Web应用程序安全项目(OWASP)列出的十大安全漏洞排行榜上的所有软件漏洞。
这种逐步改进方法的一个影响是,缩短了发现安全漏洞后修补漏洞所花的时间。通过把项目分成多个小部分,更容易优先确定代码更改,并在更短的部署窗口内准备好发布。安全问题被有序地分成较小的具体任务后,开发人员就可以优先考虑并处理安全漏洞及其他代码更改。
测试软件有助于确保安全成为迭代方法的一部分。比如说,Gauntlt这种安全测试框架为众多安全工具提供了钩子(hook),它让开发人员、运维团队和安全团队在质量保证过程中相互合作,从而将测试融入到持续集成中。测试工作及早提供了应用程序安全方面的反馈。
让开发人员负责安全测试并不是那么牵强附会
上一篇:运维工程师的前景和职业发展
下一篇:面向物联网的六大开源中间件工具