应用

技术

物联网世界 >> 物联网新闻 >> 物联网热点新闻
企业注册个人注册登录

如何兼顾产品开发的敏捷度与安全性? 浅谈DevSecOps与自动化的相辅相成

2020-07-14 13:43 媒体投稿
关键词:DevSecOps自动化

导读:对于很多企业而言,Cloud和DevOps是推动企业业务发展的关键技术引擎。企业的IT、安全和开发人员都知道Cloud和DevOps环境中,有大量的敏感信息(如secret key)需要保护,尽管大部分的人都有安全意识,但我们仍能看到诸多的重要数据泄漏事件。

过往惨痛的案例告诉我们,DevSecOps的重要性。2019年,Facebook再次被爆出个人数据泄漏事件,位于暗网的线上数据库,有超过2.67亿个Facebook使用者个人数据被泄漏,包含使用者的姓名,Facebook的ID,以及电话号码,这些使用者中可能受到垃圾邮件或钓鱼邮件的信息攻击,这使得Facebook遭受到信用的损失和股价的重挫[1]。

对于很多企业而言,Cloud和DevOps是推动企业业务发展的关键技术引擎。企业的IT、安全和开发人员都知道Cloud和DevOps环境中,有大量的敏感信息(如secret key)需要保护,尽管大部分的人都有安全意识,但我们仍能看到诸多的重要数据泄漏事件。

在网络急速发展的大数据时代,很多企业都贯彻「敏捷」的思维和行动,这是一个同时需要面对不同风险的信号,并且正在不断被验证。越来越多的消费者、监管机构和市场发现,由此所造成的数据泄漏的代价是高的、无法接受的。事实上,很多数据泄露事件都是可以提前预防的。透过DevSecOps的概念的推动,与自动化系统的辅助,这些问题与风险都将被有效的降低,并可确保产出的安全与质量。而要做好DevSecOps的导入并不是这么容易,本文将说明建置DevSecOps时的关键事项,以及如何更有效率且有效益的达成此目标。

DevSecOps的精神在于文化

DevSecOps是Development、Security和Operations的缩写。DevSecOps的基本理念是让每一个解决方案、开发测试、IT与维运及多个跨部门协作人员,都能融入开发的安全理念,并正确的理解DevOps的敏捷做法与含义,也就是说DevSecOps是一个群体做法,核心理念为「安全是整个团队所有成员的责任,需要贯穿整个软件生命周期的每一个环节。」,简单来说,DevSecOps就是一种安全即文化的实现,因此,最重要的是,将DevSecOps中的安全环节,与每个团队的利益相互结合,最终须融入整个企业文化中[2]。

image.png

团队合作实践信息安全

DevSecOps的一大重点是让开发团队、维运团队及信息安全团队彼此相互合作,能站在对方的角度客观看待问题,解决过去互相对立或牵制的问题。维运人员通常不大了解开发或信息安全,而开发人员也不擅长维运或信息安全;DevSecOps就是希望打破这条隔阂,将「做信息安全」的权限与责任进行分工,并让信息安全团队参与其中,居中沟通协调,一起主动实践信息安全、一起面对和处理漏洞、一起让产品更安全[2]。

软件开发时导入DevSecOps 自动化系统可降低门槛

根据IBM的研究统计资料显示,产品在释出之后修复安全问题,比在设计阶段时解决,其成本多出4到5倍,而在维运阶段才修复安全问题,其成本将达到、甚至超出100倍[3]。因此,DevSecOps需要在软件开发前期介入,内容包括对开发、维运人员的安全意识及安全开发规范的教育训练、安全需求(非功能需求)的汇入、以及前期的程式码稽核工作等。虽然在DevSecOps模式中,看似安全环节增加了工作内容,但从整个软件生命周期的开发与维护成本来看,提前发现问题可让成本大幅降低。

此外,DevSecOps的安全工作经常被误以为会造成开发上的瓶颈,例如安全要求太多、测试与评估时间太长,或安全监控实施困难等[3],事实上,这是由于大多数的公司不愿投入人力又不知如何进行自动化,导致无法将DevSecOps与现有流程及文化进行整合而失败。DevSecOps采用的是快速叠代的开发方式,让应用系统在最短周期内,实现应有的价值与安全属性[4],相较于其他信息安全方法论,更为快速、弹性,因此,自动化的介入,可以协助团队更轻易的达成DevSecOps的实现,且使其更具有实务价值与效益。

须精准掌握信息安全问题即时移除严重漏洞

许多情况下,团队为了加速产品的开发与上市时程,产品上的软件并不完全是自主研发,而是采用公开的原始码(Open Source)或函式库中搜集、整合大量的预编译组件及函式库,例如GitHub、SourceForge 或Docker Hub等,自行撰写的程式码,在现成软件中所占的比率也大幅降低[5],相对应的,安全风险的问题焦点也有所转移。大多数信息安全风险都可以通过识别这些公开的函式库、第三方组件的已知漏洞和错误配置来完成,待问题解决后才投入生产。从安全的角度来看,识别Open Source中的已知漏洞,比发掘自行撰写的程式码中的未知漏洞要容易的多,最简单快速的一种方式,便是将Open Source或第三方组件与漏洞数据库做比对。

除上述在设计与开发阶段所提到的自动化安全漏洞分析比对外,第三方安全测试工具的支援也扮演重要的角色,如何有效的进行安全确认与漏洞验证,确保在产品最终释出之前,将大多数风险移除,便是开发团队实现安全开发的重要关卡。

安全文化需贯穿整个DevSecOps流程

而在产品释出后的维运阶段,最重要的则是持续性的,随时监控与即时处理来自内部或外部的安全威胁,例如对外伺服器是否遭到攻击、自家产品漏洞是否在未被通知的情况下公开揭露于网络上、是否有最新的Open Source漏洞被发现,最后则是随时关注最新的网络攻击趋势,以即早采取相对应的安全防护措施。

以过去的经验来看,在这个阶段,团队通常是最缺乏沟通与合作的,特别是针对产品的安全问题,维运团队无法与开发团队建立起一个有效与明确的分工方式,加上部门主责的重点不同,导致当产品安全问题发生时,最终还是开发团队被推出来一线直接面对,维运团队始终无法施上助力。这时最好的解决方法,便是建立一套标准程序(SOP),明确的说明各团队的责任与分工,以及当事件发生时的处理流程;当然,其中一个重点,还是须要有专责的团队与人力来居中协调,而安全团队是可以扮演此角色的最佳人选[6][7]。

若相关团队能长期累积相关信息安全事件的沟通协调与处理经验,甚至于将相关安全信息回馈至开发团队,除了能使整体流程与措施更加完善外,相信可以一定程度上达到预测或预防网络攻击事件或产品漏洞的发生,这也是DevSecOps重要的环节与精神。

采用DevSecOps的效益缩短事件处理时间

透过DevSecOps的流程建立,可有效整合开发、安全与维运团队之间的沟通管道,缩短事件的反应时间,这将会是最直接且明显的好处;依据DigiCert公司的调查报告显示,有98%的企业正在或计画采用DevSecOps[8];另根据统计资料显示,未导入DevSecOps的企业,需要174天的时间才能完成修补动态安全测试时所发现的漏洞,但若使用DevSecOps的企业,则仅需92天就可以完成,差距将近2倍的时间;此外,对于DevSecOps的企业而言,在所有被发现的漏洞中,有53%的比例能够在10天之内完成修补,而未导入的企业,则只有5%可在10天之内修补完成[9]。从这些数字上差距,正可证明导入DevSecOps是可以加快漏洞或事件的处理事效,换言之,也当然具备了降低相关成本费用的好处。

HERCULES SecFlow自动化特色满足敏捷开发且兼顾安全质量

由仲至信息自行研发的HERCULES SecFlow 便提供实现DevSecOps流程的自动化辅助功能,让使用者快速且方便的建立信息安全沟通管道与机制,能各自赋与相关团队对应的权责,经由指派任务、审核和回报功能,让所有团队更快速的适应产品安全开发观念。透过SecFlow的政策模组,信息安全团队可对相关人员(如研发团队或维运团队)等发布信息安全相关资讯、程式码的安全开发注意事项等,经由一系列的指派和签核流程,以及最新资讯的提供,可达成加强各个团队的信息安全意识。

SecFlow具备更完整的漏洞管理功能,除提供多种第三方安全测试报告的汇入与漏洞追踪外,更可协助使用者建立产品与组件及信息安全情资的对应关系,透过强大的资料搜集器,将大量的国际漏洞资料与即时的信息安全新闻事件汇整分析为信息安全情资,并采用机器学习方式,自动与产品进行关联,快速对应出与自家产品相关的漏洞、信息安全新闻、信息安全事件等资讯,让相关团队随时掌握产品的信息安全风险程度,并能立即移除或修补已知的严重漏洞。最后,更可透过主动电子邮件示警以及行动应用App,使信息安全管理人员能准确掌握漏洞信息与处理进度,确保每个事件都已被修正或改善。

image.png

SecFlow扮演了在DevSecOps的自动化上的关键角色,除了省掉需要人工介入的团队信息交换、信息安全信息整理,以及清查产品漏洞与Open Source管理等耗时又耗力的工作,加上先进的数据搜集分析演算法,自动关联过滤出准确且必须处理的信息安全漏洞或事件,并透过即时示警机制,快速协助使用者处理与追踪信息安全议题,确保信息安全情资能在每个阶段中,回馈给所有团队。谁说安全与敏捷开发不易维持平衡? 透过SecFlow可以做的到,让DevSecOps的实施,能够完全适应各个团队,而不是造成更大的负担!

关于HERCULES SecFlow

HERCULES SecFlow是「产品信息安全管理系统」,针对产品开发相关团队,以Secure by Design的原则,提供自动化系统管理机制,管理与追踪DevSecOps的每个阶段,以及所需要的信息安全流程与措施,链接开发、安全、维运团队,快速建立安全的软件开发流程;SecFlow可即时提供信息安全漏洞与信息安全事件信息,透过自动化漏洞分析与管理功能,确保产品与第三方套件的安全性,降低软件开发过程衍生的信息安全风险,提升整体安全应变与处理效率,并避免产品安全问题所产生的争议诉讼。

参考资料:

[1] https://www.bnext.com.tw/article/55989/267-million-phone-numbers-exposed-online

[2] https://www.redhat.com/en/topics/devops/what-is-devsecops

[3] https://kknews.cc/zh-tw/tech/mmmgqa9.html

[4] https://devops.com/early-automation-key-requirement-devsecops-success/

[5] https://zhuanlan.zhihu.com/p/44691252

[6] Neil MacDonald, Mark Horvath, Ayal Tirosh, 16 November 2017, Integrating Security Into the DevSecOps Toolchain

[7] https://tech.gsa.gov/guides/understanding_differences_agile_devsecops/

[8] https://www.digicert.com/news/survey-integrating-security-into-devops/

[9] https://www.csoonline.com/article/3245748/what-is-devsecops-developing-more-secure-applications.html