【RSA2018】实现DevSecOps“黄金管道”的五大关键安全环节

今年的RSA大会上出现了一个热词“Golden Pipeline(黄金管道)”,特指一套通过稳定的、可预期的、安全的方式自动化地进行应用持续集成/部署的软件流水线(toolchain),其为DevSecOps提供了一种便于理解和落地的实现方式。其中包括了五大关键安全活动:运行时应用自我保护、“金门”、应用安全测试、第三方代码库扫描,以及Bug悬赏。

相关阅读:

【RSA2018】Future Ops——网络运维与安全运维趋向融合

伴随着RSA2018的开幕,热炒了接近一年的DevSecOps似乎并没有受到Alcatraz岛四周凄冷海风的影响而有有丝毫降温的迹象。“The road to faster,better and stronger software(通往更快、更好、更强大的软件之路)”,这句话似乎寄托了业界精英们对于IT运营“工业革命”道路的强烈希冀。

事实证明,经过一年的积累与实践,硅谷IT公司们似乎已经离这个乌托邦更近了一步。从本届RSA大会上参展商对于CI/CD实现方式的趋同、机器学习等新技术的大量引入以及厂商之间接口标准的融合,我们几乎可以预见到DevSecOps完美落地的那一刻。

今年的RSA大会上出现的一个热词“Golden Pipeline(黄金管道)”,竟然以令人惊异的频率反复出现在各类相关的主题讲演中。尤其在DevSecOps Day当天,无论是关于“凤凰项目”还是房利美的运营实践中都使用了Golden Pipeline作为主要线索进行讲解。那么Golden Pipeline到底指的是什么呢?

什么是Golden Pipeline?

Golden Pipeline字面译为“金色管道”,特指一套通过稳定的、可预期的、安全的方式自动化地进行应用持续集成/部署的软件流水线(toolchain)。相比复杂的双环模型,Golden Pipeline无疑是一种便于理解和落地的实现方式:

通过反复调研,我们尝试构建硅谷绝大部分中小型IT企业所常用的Golden Pipeline(如上图)。在整体方案中,绿色部分为安全相关的工作内容。与传统SDL不同的是,除了CD后期的安全检测,其它阶段的安全工作通常为开发团队负责或干脆实现了完全自动化。Golden Pipeline整体流程的控制,可以通过类似Jenkins的CI集成平台完成非常精细的调度管理,如组合逻辑、时序等,从而达到高效稳定的持续运行。上图中关键Sec活动介绍如下:

RASP:Runtime Application Self-Protection 运行时应用自我保护

RASP(Runtime Application self-protection)是一种在运行时检测攻击并且进行自我保护的一种技术。其实从从代码设计开始,企业就应当引入运行时应用自我保护(RASP)或者类似的安全设计。与传统WAF不同的是,由于了解应用程序上下文,RASP可以完全掌握应用程序的输入输出,因此它可以根据具体的数据流定制合适的保护机制,从而可以达到非常精确的实时攻击识别和拦截。从国际角度而言,绝大多数AST(Application Security Testing:应用安全测试)厂商都能提供类似的产品,而国内通常将RASP+WAF的方式称为自适应安全,目前只有少数几家厂商提供。

Golden-Gate 金门

将代码PR到云端(github),由2位经验丰富的工程师进行代码评判,反馈讨论之后,如果结果为通过,代码将通过“Golden-Gate”进入真正的Golden Pipeline,这道工序形象地称为Golden-Gate——即美国人民引以为豪的工程奇迹金门大桥。

AST(Application Security Testing:应用安全测试)

AST包括SAST(静态应用安全测试)、DAST(动态应用安全测试)以及IAST(交互式应用安全测试)。通常在完成安全代码复查后,开发人员可以通过git形成版本树。而对于预发布的版本,将会通过CI集成平台自动进行静态代码安全扫描流程(SAST)。目前国际上通用的做法是将SAST与SCA的OSS扫描集成在一起进行,代表厂商为Checkmarx和Blackducks。

Checkmarx简介

Checkmarx是一家位于以色列的AST供应商,其SAST解​​决方案享有盛誉,Checkmarx可提供名为AppSec Accelerator的托管服务,提供SAST和DAST服务(利用第三方DAST工具)以及程序支持,以帮助开发组织将AST集成到其软件开发生命周期(SDLC)中。SAST已被证明是消除软件漏洞的最有效方法之一,Checkmarx通过重新定义安全在SDLC中的角色,同时以DevOps的速度运行,无缝集成到开发过程中,为DevOps和CI环境提供了强大的平台。

SCA(第三方代码库扫描)

当CI阶段结束,QA将进行常规的冒烟测试和单元测试。由于开源代码库已关联完成,平台可以在这个阶段通过任务调度自动引入第三方代码库扫描(SCA),并自动与权威漏洞库进行关联(绝大多数SCA平台都使用美国国家漏洞库NVD)。多数情况下,企业会选择在修复完成确认之后自动进行上线前的动态应用安全测试及交互式应用安全检测(DAST/IAST)以便充分发现应用及业务交互中存在的威胁。关于此类产品,国际上则以blackduck最负盛名:

Blackduck 简介

2017年12月11日Synopsys收购了Blackduck,Synopsys总部位于加州, Blackduck 成立于2003年,以创始人的童年宠物命名,其开源安全产品Black Duck Hub赢得了2015年马萨诸塞州技术领导委员会(MassTLC)奖,获得最具创新性的安全新产品。搜索器仍然是最广泛采用的IAST解决方案之一,提供广泛的语言覆盖和良好的SDLC集成。Synopsys为Seeker引入了仅限代理商的IAST,不需要导入器。这支持了一些IAST竞争对手提供的被动测试模式。

Bug Bounty(Bug悬赏)

在最终发布之后,还需要采用Pentest(舌头测试)以及Bug Bounty(Bug悬赏)的方式检测遗漏的危险问题。Bug Bounty作为CD阶段的最后一道防线,类似于国内近些年比较火爆的众测以及SRC模式,白帽子可以通过注册Bug Bounty并进行实名认证的方式加入白帽子计划,单个漏洞奖金则以数百到数万美元不等。Facebook在最近推出的漏洞悬赏计划即属于Bug Bounty的内容。

综上,要实现真正的Golden Pipeline以及DevSecOps的完美落地,关键点在于如何缩短调度成本提高自动化的效率,而这又取决于流水线中过程的衔接——即Toolchain的协作情况。对于本次RSA大会,各个厂商更是使出了浑身解数展示他们的产品在Golden Pipeline中的定位及优势。 

绿盟软件全生命周期安全管理服务

随着敏捷开发的流行,DevSecOps成为了一个时髦的IT话题。无数安全事件让我们意识到出事后再考虑安全问题导致付出的代价过于昂贵。虽然开发、运维、安全团队往往是彼此独立的,但是只有在业务全流程中彼此融入与协同,才能在系统应用快速迭代的当下始终保持业务的健壮性。

绿盟科技在多年前就推出了软件全生命周期安全管理服务,并在国内多个大型企业中进行了实践。这项服务包能够将安全设计、安全编码、安全测试以及安全事件响应的传统安全技术和活动融入到用户业务系统的需求分析、架构设计、开发实现、内部测试、第三方测试和人员知识传递等系统开发完整生命周期的各个典型阶段,系统地识别和消除可能出现的来自于人员知识和技能、开发环境、业务逻辑所带来的信息安全风险。

DevSecOps离不开团结协作

过去安全团队往往把自己放在审核者的角色上,指出业务系统存在这样那样的问题,应该做这样那样的修改,整改完毕之前不能够部署上线等等……不论是对于Dev还是Ops而言,Sec都不算是一个友善的角色。这样的定位和心态显然是无法在应用快速迭代的当下保持持续安全的。笔者日常工作中也会协助客户做远程安全运营,对于发现的安全隐患除了及时调整防护策略之外也会给客户提供具体的业务整改建议。在这一过程中能够明显感觉到客户侧安全团队和业务团队之间的沟通是不够顺畅的,而且这一现象是普遍存在的。

这次大会中很多厂商提的理念对于DevSecOps的团队是非常适用的,比如CYBERARK提出的“Because Security is a Team Game(因为安全是团队游戏)”和Mcafee提出的“Together is Power(团结就是力量)”。安全团队应该摒弃监控、检测、审核者的心态,而以“请给我讲讲这个系统的业务架构是怎样的”、“当前的运维流程中我们可以怎样合作”“让我来帮助你一起实现这个目标吧”这样的方式来与开发团队和运维团队相处并合作,大家树立共同的目标并为之而努

Spread the word. Share this post!

Meet The Author

Leave Comment