在RSAC 2017的DevSecOps专题研讨会上,Intuit公司DevSecOps总监Shannon Lietz做了“下一代安全需要你”的专题分享,如图4-1所示。她认为DevSecOps是基于初始创建并依据真实有效的反馈持续交付产品价值等所有必要方面(例如研发、运营等)的实践,进一步拓展和延伸,DevSecOps更是一套体系化的方法论。具体地,它可以被理解为一种思维方式、一种全面性方法以及一种通过学习和经验驱动的策略,同时也是一套通过开发、运营和安全团队共同努力将安全和合规作为属性嵌入整个流程并有着配套工具链支撑的方法论体系。
图4-1 Shannon Lietz对DevSecOps的定义
通过本次研讨会,业内对DevSecOps实践的主体内容有了基本共识,论证了DevSecOps的实践会对政企组织现有IT开发与运营模式产生颠覆性影响,明确了DevSecOps实践的主体内容主要包括以下两方面。
通过在软件开发早期融入安全活动来降低解决问题的成本。前期介入的安全活动主要包括对开发和测试人员的安全意识培训、编码人员的安全开发规范培训、前期安全需求的导入、开发时源代码审计、上线前安全审查等。运营阶段增加的安全活动主要集中在对新安全需求实现情况的验证以及软件整体安全评估。虽然在DevSecOps模式中,安全活动环节增加了,但是从软件整个生命周期的开发与维护成本来看,提前发现问题会使成本大幅降低。
为了避免安全工作成为应用交付的阻碍,DevSecOps采用快速迭代的开发方式,实现安全技术与现有开发平台无缝对接,并将安全工作嵌入现有开发工具,包括将安全需求导入统一需求管理工具、将安全测试结果导入缺陷管理工具等。
透过RSAC 2017的DevSecOps专题研讨会,我们不难发现此时在国际上DevSecOps仍然处于探索阶段,暂时还没有一个通用的标准或实践指南,但对于DevSecOps实践的主体内容业内已经有了相对统一的认识。
RSAC 2018出现了一个新概念——Golden Pipeline,姑且翻译为“黄金管道”,特指一套通过稳定的、可落地的、安全的方式自动化地进行CI/CD,如图4-2所示。其中,工具链自动化是缩短调度时间,实现快速迭代的关键,为DevSecOps提供了一种便于落地的实现方式。DevSecOps开发安全活动主要包括以下4个:通过Golden-Gate进入Golden Pipeline、应用安全测试(AST)、第三方组件成分分析(SCA)、运行时应用自我保护(RASP)。
图4-2 DevSecOps开发流程体系
同行代码评审,由两位以上经验丰富的工程师进行代码评审,如果讨论结果为“通过”,代码将通过Golden-Gate进入Golden Pipeline。
AST(Application Security Testing)包括传统SAST(静态应用安全测试)、DAST(动态应用安全测试)以及IAST(交互式应用安全测试)。
SAST是CI阶段就引入的代码安全评审辅助工具,可以支持多语言,但误报率高。传统商业SAST工具误报率甚至高达40%,给开发人员带来严重的错误排查负担,实际落地效果一般。
DAST主要依赖网页爬虫技术,不受具体应用平台所局限,能较好地支持手工测试,但是缺点也很明显,比如检测覆盖率较低,对微服务、数据签名校验场景支持较差,执行效率较低等,更适合对上线后的资产进行安全扫描。
IAST通过运行时插桩、流量代理和旁路流量镜像等手段,收集、监控Web应用程序的流量,并与检测分析引擎进行实时交互,高效、准确地识别安全缺陷和漏洞,可准确定位缺陷和漏洞所在的代码文件、行数及函数。
当前业内比较有争议的问题是IAST技术是否局限于运行时插桩?笔者认为我们应该站在更加广义的角度去看待这个问题,从发展的视角评估该项新技术的引入对政企开发用户在CI/CD环节业务安全测试能力提升所带来的价值。
从IAST的原始定义及这项技术引入的初衷来说,流量代理、旁路流量镜像、主机流量嗅探等技术都属于交互式测试手段,通过将它们组合引入,真正做到了IAST与CI流程的柔和对接,规避了单一应用插桩技术受限于特定开发语言平台和对业务性能影响的缺点。
SCA(Software Composition Analysis,软件成分分析)是一种通过对软件组成成分进行分析进而实现软件安全和合规的技术。具体来说,SCA主要是对软件中涉及的各种源代码、模块、框架和库进行分析,以清点其中的开源组件及其依赖关系,并识别开源组件中的已知漏洞和许可证授权问题,把这些风险排查在应用系统投产之前。
CI阶段结束后,将进行常规的冒烟测试和单元测试。由于开源代码库已完成关联,平台可以在这个阶段通过任务调度自动引入第三方组件成分分析及缺陷检测,并自动与权威漏洞库(美国国家漏洞库NVD和中国国家信息安全漏洞库CNNVD)进行关联。
RASP(Runtime Application Self-Protection,运行时应用自保护)是一种新型应用安全保护技术,它将保护程序像疫苗一样注入应用程序,与应用程序融为一体,能实时检测和阻断安全攻击,使应用程序具备自我保护能力,当应用程序遭受到攻击时,可以自动对其进行防御,不需要人工干预。
与传统WAF不同的是,由于运行时插桩可以获取应用上下文信息,RASP可以完全掌握应用程序的输入、输出,因此它可以根据具体的数据流采用合适的保护机制,从而达到非常精确的实时攻击识别和拦截。
提到RASP,不得不提与之相关联的主动式IAST技术,二者的工作原理非常相似,都是通过应用插桩获取测试流及应用上下文信息,并动态分析应用的安全性。它们主要的区别是主动式IAST重在测试环节,通过CI/CD集成,不进行阻断操作;而RASP重在线上运营环节,可以进行阻断操作,在大多数场景下可以用来替代WAF方案。
综上所述,要真正实现DevSecOps Golden Pipeline的有效落地,关键在于缩短调度时间、提高自动化工具效率。这些都取决于流水线中工具链自动化支撑程度。
RSAC 2019的主题是DevOps Connect,强调DevSecOps落地实践过程中文化融合的意义,并期望通过CI/CD管道辅以有效度量机制来提升效率。文化的冲突和融合成为本次会议聚焦的重点话题之一,比如红队和开发人员之间的冲突、技术人员和非技术人员之间的冲突、管理者和被管理者之间的冲突等。以红队与开发人员的冲突场景来举例:红队习惯找出问题但不提供解决方案、获取隐私数据,而这些都是开发人员很难接受的。
为此,安全专家Larry Maccherone在会议中提出了“DevSecOps宣言”:
·建立安全而不仅仅是依赖安全;
·依赖工程团队而不仅仅是安全专家;
·安全地实现功能而不仅仅是安全功能;
·持续学习而不是闭门造车;
·采用一些专用或常用的最佳实践,而不是“伪”全面的措施;
·以文化变革为基础而不仅仅依赖规章制度。
DevSecOps文化融合不仅要运用培训宣传、会议沟通这类手段,还需要对组织进行重新设计,比如建立拧麻花式的开放组织,将安全人员融入每一个开发团队,而不是建立封闭的部门。这种方式使得承担安全保障职责的人员能够深入业务、开发、运营等各个环节,让DevSecOps真正创造价值。
作为减少组织间不信任或冲突的一种有效方式,评估(度量)机制在本次会议上被广泛传播。它的关键就是量化实践效果,用数字说话。为此,Larry Maccherone也提出了DevSecOps的9个关键实践点和文化融合的7个阶段,如图4-3和图4-4所示。
这九个关键实践点中,安全意识、安全同行评审、安全评估以及团队合作共识等都对应着企业组织对DevSecOps的理念修正以及文化融合。
图4-3 DevSecOps的9个关键实践
图4-4 DevSecOps文化融合的7个阶段
通过对9个关键实践点在对应7个阶段进行度量,可以直观地看到DecSecOps在组织中的实践和接受程度,有助于对其安全开发能力有更加直接的认识,便于打破DevSecOps理念与传统文化的壁垒,为后续持续和深度的改进夯实基础。
RSAC 2020于2月24日至28日在旧金山召开。本届RSAC组委会通过对2400个世界网络安全专家提交的演讲主题进行汇总分析,发布了2020年网络安全行业的10大趋势。这是全球网络安全专业人员对2020年乃至今后行业发展的判断。其中,人被认为是对未来网络安全发展影响最深远的要素。下面介绍几个热点讨论议题。
1)人是安全要素:人的行为自始至终与数据、威胁、风险、隐私及管理等交织在一起。在本次大会议题中,有大量内容从以人为本角度出发,讨论如何平衡IT框架、降低新威胁带来的隐患以及建立一个以安全为中心的新文化。
2)实现产品研发与运营安全:包含开发安全框架、连接产品和设备的安全性、开源代码安全等内容。
3)安全意识与培训:包括安全开发实训、网络安全靶场、道德安全意识普及等议题被频繁提及。
RSAC 2021于5月17日至20日在旧金山召开,本次大会的主题是Resilience,大会上提出在构筑具有弹性的网络时,共同的核心目标是尽量避免攻击、减少攻击损失,以及快速恢复。在本次大会上,DevSecOps再次成为大家讨论的焦点,与之一同入选大会三大核心议题的还有与太阳风(SolarWinds)事件爆发相关的供应链安全和热门网络安全框架。
RSAC 2021的三大核心议题如下。
在过去,大部分软件项目的开发需要几个月甚至数年时间,但日益盛行的敏捷开发极大地加快了软件开发速度。当我们进入安全左移时代,DevOps确保了软件的高效发版和迭代,但如何弥合开发团队和安全团队一直存在的鸿沟是整个IT团队都要面对和解决的重要议题。DevSecOps作为软件生命周期安全问题的解决方案,在大会上成为供应链安全绕不开的话题。
相关演讲议题主要有:
The State of the Union of DevSecOps—Tuesday,May18|09:20 AM PT
Security-as-Code to Accelerate DevSecOps,a Practical Guide to Get Started—Thursday,May 20|01:55 PM PT
Attack&Defend:Protecting Modern Distributed Applications and Components—Monday,May 17|09:50 AM PT
在2020年,全球著名的网络安全管理软件供应商SolarWinds遭遇高度复杂的供应链攻击,这被认为是美国有史以来最严重的网络安全事件。这次事件告诉我们供应链和网络安全是密切交织在一起的。随着数字化和云化的不断深入,我们对第三方供应商的依赖只会越来越多。SolarWinds攻击事件再次证明,供应链上薄弱的点对于整个网络的威胁很大。当软件供应链出现问题的时候,整个软件将会被暴露在巨大的风险中。
部分相关演讲议题:
SolarWinds:What Really Happened?—Keynote—Wednesday,May 19|8:50 AM PT
Wrangling Supply Chain Risk and Response—Wednesday,May 19|11:35 AM PT
Assessing the Security of Suppliers—Tuesday,May 18|10:05 AM PT
当下,框架和自动化依然是很热门的议题。业内创新型安全厂商正持续通过安全框架来辅助建立自己的安全技术体系,并进一步完善内部风险管理流程,像MITER ATT&CK(攻击知识库框架)、FAIR(信息风险因素分析框架)、NIST CSF(NIST网络安全框架)及MITER Shield(主动防御知识库框架)等相关主题分享依旧是本次大会讨论的热点。
部分相关演讲议题:
Struggling to Manage Your Cybersecurity Workforce?The NICE Framework Can Help—August 05,2021
FAIR Controls:A New Kind of Controls Framework—May 20,2021
Hands-On:Three NIST Cybersecurity and Privacy Risk Management Frameworks—May 18,2021
总体而言,软件供应链安全威胁与治理成为本次大会最热门的主题,而DevSecOps敏捷安全俨然成为云原生时代软件供应链安全保障体系建设的最佳实践之一。
要实现DevSecOps的研发、安全、运营一体化,需要柔和地在软件生命周期引入各种配套安全措施,从而尽可能地减少漏洞和弱点并使网络安全要素更匹配数字化业务“同步规划、同步构建、同步运营”的目标。