全面落地DevSecOps,工商银行安全管控建设实践

dbaplus社群 2022-07-02 10:02:00

本文根据魏亚东老师在2022 Gdevops全球敏捷运维峰会-广州站〗现场演讲内容整理而成。(关注【dbaplus社群】公众号,回复“220617”可获取完整PPT)

 

 

讲师介绍

魏亚东,工商银行软件开发中心三级经理,资深架构师,杭州研发部数据库专家团队牵头人和开发中心安全团队成员,负责技术管理、数据库、安全相关工作。2009年加入中国工商银行软件开发中心,致力于推动管理创新、效能提升,提供全面技术管控,推动自动化实施,实现业务价值的高质量快速交付;同时作为技术专家,为生产安全提供技术支持。

 

分享概要

一、业界安全态势

二、金融行业安全管控核心诉求与策略

三、安全管控调研与实践思路

四、未来展望

 

1、网络威胁日益严重

 

 
这里列举3例网络安全事件。
 
17年勒索病毒“WannaCry”迅速席卷150多个国家,波及超20万台机器,其前身为NSA旗下的网络武器永恒之蓝,当时随之泄露的还有永恒浪漫等近10款可以攻破全球70%用户的漏洞利用工具,网络安全岌岌可危。今年3月黑客“RED-LILI”针对NPM存储库进行攻击,发布了近800个恶意NPM包。5月俄最大银行遭到最严重的DDos攻击,峰值流量高达450GB/秒。虽然可以通过CDN预防DDos攻击,但会产生极大成本,付出与收益极不匹配。
 
之,网络威胁日益严重。从业界黑客的攻击手段来看,一般分为以下5个阶段:

 

  • 探测:包括一些资产探测,服务识别,开源情报和供应链条。

 

  • 渗透:通过社会工程学还有漏洞扫描去获取一些用户权限,探索其是否存在一些服务漏洞的端口,通过服务漏洞,进行嗅探攻击,随之获取一些相应的权限。

 

  • 驻留:包含了很多层面,比如黑客可以上传一个木马去提权至root权限;可以新增文件或修改文件满足自己的特定需求;或修改注册表,类似于勒索病毒的操作。除此之外,他们还会设置一些恶意程序,例如通过勒索软件要求大家进行比特币的购买和赎回;或者通过代理隧道实现攻击方与受害者的连通。

 

  • 传播:包括恶意邮件、摆渡攻击、释放蠕虫病毒、感染共享资源等多种方式。

 

  • 瘫痪:数据就是金钱,黑客一般采用的方式为夺取控制,进行机密窃取,持久潜伏,获取数据。

 

在防护方面,业界主要采用以下方式:

 

  • 使用防火墙以及WAF进行外围网络层面的管控。

 

  • 在内部管控方面,进行入侵检测,防病毒处理,确保访问进程和程序的安全性。

 

  • 定期进行漏洞扫描,提前完成漏洞修复。

 

  • 最关键的是提升大家的安全意识。从现有情况可以看出,人为泄露是产生网络安全问题的重要原因。

 

 

3、数据安全已上升到国家战略层面

 

 

1)国际层面

 

2016年欧盟颁布GDPR(《通用数据保护条例》),2018年5月份正式生效,构建“泛欧数据市场”。2018年美国通过CLOUD 法案(《澄清域外合法使用数据法案》),可合法访问境外数据,抢夺他国的“治外法权”。

 

由此可以看出,国家层面的数据安全战略包括以下三方面:

 

  • 抢夺他国“治外法权”

     

  • “长臂管辖”扩大跨境数据执法权

     

  • “内松外紧”主导数据战略

 

2)中国层面

 

我国自2016年起,开始发布相应的安全条例。2016年发布《网络安全法》,鼓励数据安全保护;2021年发布《数据安全法》,将数据安全纳入保障体系;2022年中国人民银行发布《金融科技发展规划(2022-2025)》,强调做好数据安全保护。

 

与国际咄咄逼人的策略不同,我们国家的策略包含以下三点:

 

  • 主管部门各司其职形成监管新模式。

     

  • 数据安全和网络安全防护谋求统一。

     

  • 多法并轨、多标准并行,对于行业的话,一个落地执行,会是一个很难的选择。

 

二、金融行业安全管控核心诉求与策略

 

个人而言,金融行业安全管控的核心诉求及策略可以分为四个方面。

 

 

1、提升人员安全意识(网络安全的关键和核心)

 

1)提升人员安全意识,避免被钓鱼、社会工程学等因素无意识地泄露一些关键数据。

 

2)做好最小权限管控,可以通过文档加密或通过隐写术加水印,一方面可以避免人员有意识地泄露数据,另一方面可以事后精准定位和追责。

 

 

2、实现安全左移,柔和嵌入现有开发体系

 

1)将安全工具嵌入DevOps流水线,建成高效安全门禁,自动化管控安全出口质量,避免粗暴安全管控对研发过程造成巨大影响。

 

2)快速完成漏洞修补工作,降低安全漏洞。

 

 

3、强化运行时动态入侵检测

 

1)快速识别异常攻击行为:识别行为数据的的常见攻击路线,本质上要依赖于专家库进行处理,因为安全专家可以识别数据的常见攻击路线,可以探究哪些行为数据是异常数据。

 

2)持续风险评估能力,快速识别行为偏离。以前我带的团队试点过邬院士的拟态防御,通过部署多个动态异构体去提前发现安全风险并进行防御。

 

 

4、快速响应

 

1)舆情影响范围快速聚焦。

 

2)自动实现舆情分发和跟踪处置,提升应急响应时效,以便最小化损失。

 

三、安全管控调研与实践思路

 

 

1、DevOps研发模式下的软件安全转变

 

 

1)瀑布模式

 

2004年微软提出SDL理念,在当时具有划时代的意义,对华为和富国银行等众多企业起到积极作用。随着DevOps的兴起,它存在以下两大问题:

 

  • 过度依赖于专家的能力,不适应现在的网络安全生态;

     

  • 忽略项目组的安全意识培训,沦为“救火队”。

 

2)DevOps

 

近几年DevOps在国内处于持续上升和成熟期,在17年时Gartner提出了DevSecOps的全流程工具链,如上图所示,针对DevOps的每个阶段,均给出相关安全工具链(后面会具体展开,此处暂且不表),从而安全管控策略应符合以下两个原则:

 

  • 安全活动对于开发过程的影响降到最低;

     

  • 容器、云原生、微服务等新技术要求高度自动化。

 

 

中国信通院并未对DevOps做出明确定义,但在《研发运营一体化(DevOps)能力成熟度模型第6部分:安全及风险管理》提出了以下4种全新安全理念与实践模式。

 

  • 控制通用风险 

  • 控制开发过程风险 

  • 控制交付过程风险 

  • 控制运营过程风险

 

其原则与DevSecOps理念相似,强调安全是每个人的责任,指将安全内嵌到应用的全生命周期,在安全风险可控的前提下,帮助企业提升IT效能,更好地实现研发运营一体化,做到全流程地安全内建,形成安全闭环。

 

 

2、工行安全管控探索历程

 

 

工行开发中心分列于7地,现有8000多名研发人员,维护400多个应用,需要满足不断变化和日益增长的市场需求,如果完全实施SDL,人员投入成本和产出会严重失衡。

 

我行开发中心的安全管控探索包含两个阶段,第一个阶段是2018年9月前,主要由业务研发中心安全实验室负责安全验收,类似于SDL的安全测试阶段。因为测试阶段临近上线投产,发现问题后完成漏洞修复成本极高,可能存在安全设计层面的调整,存在影响业务上线的风险。于是在2019年9月后,开发中心开始提前安排安全管控和测试,并构筑安全攻击链,效果很明显,降低了约90%的安全测试问题,有效减少了问题成本。

 

才提到我们业务研发中心安全测试一般在交付后进行,即在投产前两周内才会提问题,在这个时间点提复杂的安全问题,可能存在两周内无法完成安全设计,需求无法闭环的风险,所以说我们将安全测试提前,在初步的测试阶段即可发现安全设计的一些问题,将修改代价降到最低。

 

回顾当时的历程,2016年Gartner发布报告《DevSecOps》 对模型及配套方案进行分析,2017年RSAC首次引入DevSecOps,这一概念开始流行起来。2018年,工行开启DevOps建设,在稳定成熟以后,2019年工行开始进行安全工具链建设与安全团队测试,与此同时,业界轻量级安全工具链日益丰富,与DevOps持续成熟相得益彰。

 

 

3、工行DevSecOps能力建设目标:一个提升,两个降低

 

 

基于业界最新理念,我们制定了与业界同轨,形成DevSecOps能力建设的目标,即实现一个提升,两个降低。

 

1)提升应用安全开发技术水平及人员能力

 

  • 搭建统一应用安全平台;

     

  • 打通研发过程各节点安全活动;

     

  • 构建面向软件开发生命周期的闭环安全管理能力;

     

  • 沉淀安全专家能力为安全资产。

 

2)降低应用风险漏洞数

 

  • 通过过程控制及安全技术降低应用漏洞数;

     

  • 通过一些工具链提前规避以及事先发现一些漏洞;

     

  • 实现安全左移,降低发布 前应用安全漏洞数。

 

3)降低应用监管合规风险

 

  • 将合规性要求事先纳入应用系统开发需求;

     

  • 提升应用持续性合规符合能力;

     

  • 降低合规风险。

 

我们想要通过以上三个目标构建开发运营一体化的安全管理及技术体系。

 

 

4、DevSecOps能力体系:工行建设路径

 

 

我们的建设路径实际上包含三个方面。

 

1)安全能力原生化

 

  • 将应用安全技术及能力固化到企业共用的开发框架、制品库及微服务中,比如我们将owasp的ESAPI抽取形成细粒度标准化的安全组件,通过切面进行统一处理。

     

  • 将应用安全从一种后期构建能力变成原生能力。

 

2)安全能力技术化与服务化

 

  • 构建DevSecOps安全流水线,即业界所说的DevSecOps黄金管道。

     

  • 通过流水线控制降低团队工作量,提升安全工作效率。

     

  • 通过黄金管道降低对人员安全能力依赖,同时对人员安全能力的提升进行潜移默化的影响。当我们发现安全问题时,开发人员可以快速知道如何修改和验证,不知道如何修改的情况下可以咨询专家库。

 

3)安全管理过程化、可视化

 

  • 将安全控制及安全管理从事后延伸到整个软件开发及运维过程;

     

  • 建立面向软件生命周期的安全能力;

     

  • 实现安全左移及过程管理,将安全风险及软件缺陷消灭在上线前;

     

  • 通过量化数字指标,指导软件安全体系的演化及优化。

 

 

5、DevSecOps能力体系

 

 

们能力体系分为4个建设目标,并依托目标形成层级和相关体系。

 

1)顶层架构

 

顶层架构有管理、有流程、有规范,有考核,即必须要有方法论基石,出问题后有法可依,我们针对这一目标建立了安全管理及标准体系,包括两个方面:一是建立安全开发规范(应用需求规范、安全设计规范、开发规范,还有测试规范以及安全合规性的技术规范)和安全管理规范;二是开展人员管理建设,涉及组织架构与岗位角色的调整以及安全人员培养等等。

 

2)平台支持

 

台支持,即要求平台化技术规范的策略化可以做到全流程的覆盖,为此,我们搭建了一个安全管理及技术平台,实际上涵盖了研发的所有环节,简单来说就是要求:

 

  • 管理要求平台化

  • 技术规范策略化

  • 全流程覆盖

  • 全应用覆盖

 

3)安全知识库

 

们需要把一些东西进行沉淀,因为专家的能力始终是专家自身的一部分,而我们要做到人人都要为安全负责,一方面我们可以学习专家的相关经验进行成长,也就是传承;另一方面我们要对团队安全意识进行提升,为此我们尝试逐步完善相关知识库:

 

  • 安全基线库,对底层操作系统、中间件等进行安全层面的总体要求。

     

  • 安全开发知识库

     

  • 安全测试知识库,即如何进行模糊测试、渗透测试等等。

     

  • 软件制品库,本质上npm、pypi和maven等各种制品库,都会存在漏洞组件或恶意组件,必须要提前进行发现和规避。

     

  • 安全培训库,目标是提升人员的安全意识,包含2个层次,一是员工如何应对社工的套路,避免无意泄露重要信息;二是发现钓鱼或莫名其妙的邮件,不允许直接点击而应该主动上报。

 

4)工具及DevOps整合

 

我们通过将工具链进行整合,降低使用门槛,提升人工效率以及提供闭环安全能力。这包括引入业界安全工具链和研发DevSecOps相关安全工具两种情况。

 

 

6、DevSecOps能力体系:全流程闭环安全管控能力

 

 

1)研发过程安全

 

从需求、设计、开发、测试、发布到运营,我们每一环节都会有一个安全门禁或DOD进行控制处理,以保证每一阶段安全质量目标的达成,最终保证出口安全质量。

 

2)运维安全事件响应及溯源

 

当发现运维安全事件后,我们要对运维安全事件积极响应以及事后溯源,以便实现自治体系的持续演进和提升。如果出现安全需求缺失,则要在需求环节进一步强化,比如通过威胁建模的方式提升需求安全性;如果设计环节有问题,发现安全设计缺陷,则应强化安全设计闭环,或通过其他的一些手段进行强化处理;如果开发阶段存在安全组件漏洞或代码缺陷,比如开发人员故意构筑代码缺陷,以便于其离职后的违规操作,则进一步强化开发环节的代码复核能力;如果是测试环节,则需要进一步优化完善测试用例缺失和测试工具漏报等问题。如果发布环节发现发布标准存在缺陷,则在后续的发布过程中进行改进。

 

3)安全能力沉淀

 

我们最后将安全能力沉淀,逐步建立一个持续演进的安全体系,这部分包括三方面:

 

① 问题修复跟踪

 

  • 运营安全问题闭环追踪

  • 安全问题回溯开发者 

  • 安全问题回溯引入源头

 

② 应用横行排查

 

  • 基于缺陷组件横向排查 

  • 基于缺陷代码横行排查 

  • 基于安全配置横向排查

 

③ 安全能力沉淀

 

  • 安全设计沉淀为知识库

  • 安全开发沉淀为安全组件 

  • 安全测试沉淀为工具规则

 

 

基于上述理念,我们通过同步、异步相结合的模式,规划双链路检查模式,形成并提升DevSecOps能力。

 

1)构建并行于DevOps流程的可自由插拔装配的“黄金管道”安全流水线,将扫描准确高的轻量级安全扫描工具纳入CI/CD流水线,适应快速构建及交付要求,实现代码安全质量严控。

 

2)对于扫描效率不高的安全扫描工具,通过异步模式在全量流水线进行定期调度,开展例行扫描。如上图所示,CI流水线我们额外多了三个组件,一个是敏感信息检测,第二个是SAST扫描,第三个是SCA扫描。

 

在使用工具方面,进行敏感信息检测时,我们使用detect-secrets、 git-secrets等工具。对于SAST扫描,我们使用了三类工具,首先是Sonar(内置并持续增加诸多安全规则),我们可以看到像腾讯、阿里、华为等多家头部公司都在使用,同业中招行以及中行也在使用,然后我们使用了findsecbugs,除此之外,我们还采购了代码卫士等。

 

在SCA(软件成分分析)扫描方面,我们目前采购了开源卫士,之前我们用了两个工具,一个是license- maven-plugin ,sofa的良心组件,可以避免GPL许可证的使用。另一个是dependency check,它可以检查组件是否存在漏洞,方便我们进行提前修复。

 

在CD流水线,除了SAST扫描外,我们又多了IAST、DAST扫描以及容器安全扫描。在DAST扫描的使用工具方面,我们使用OWASP ZAP和Appscan,除此之外,我们还采购了绿盟的检查工具。在渗透测试方面,我们主要是通过工具辅助人工的方式展开。

 

 

通过整个流程,我们建立了安全质量门禁,以确保我们的出口可以达到安全质量的原则。在强化全流程管控能力的时候,我们为排查方便,构建了一个漏洞知识图谱,以便提升自动化的排查能力。我们有400个应用,如果让我们每次发邮件对全部应用进行排查,这会给大家带来很大负担。通过构筑知识图谱体系,我们可以较为容易地实现向下排查。

 

四、未来展望

 

 

我们可以看到,安全演进的速度在逐步加快,技术变革将驱动新一代软件安全革命。关键技术的演化,对于软件安全攻防双方来说,都是一个新的空白窗口期,谁能优先利用新技术,谁将在安全对抗中获得领先优势。

 

 

1、网络安全网格

 

通过分布式架构方法,实现在分布式策略执行架构中实行集中策略编排和决策,用于实现可扩展、灵活和可靠的网络安全控制。个人认为网络安全网格是一个必然的趋势。

 

 

2、隐私增强计算

 

随着全球数据保护法规的成熟,各地区的CTO必然面临数据隐私,不同于常见的静态数据安全控制,隐私增强计算可在确保保密性或隐私的同时,保护正在使用的数据。数据价值其实在黑灰产中发挥了极致的作用,我们正处于大数据时代,通过隐私增强计算,既规避了数据隐私,又对我们建立千人前面的客户画像起到积极作用。落实反欺诈、评估个人数据转型等高度敏感数据的处理活动,一般可通过联邦学习,或通过同态加密的方式实现,在不侵犯数据隐私的情况下达成数据加工的目的。

 

 

3、决策智能

 

决策智能可被视作用于挖洞的一种手段,业界看来利用大数据分析技术挖掘程序潜在缺陷在技术原理上已经被证明是可行的,也在领先机构的研发中取得了实际效果。但是,我们应清醒的看到新漏洞挖掘技术是一把双刃剑,在提升企业安全测试水平的同时,也可被攻击者利用优先发掘0-day,即达到攻防的博弈平衡很难。大家如果关注腾讯的玄武实验室或阿里云实验室的话,可以发现一个高级漏洞的奖励极其丰厚。

 

目前,开源组件漏洞呈现出愈演愈烈的趋势,大家可以去NVD或CNNVD官网查看漏洞趋势变化情况,从16年开始每年的漏洞均呈指数级增长。虽然开源软件是一个好东西,它可以提升你的构建效率,避免重复造轮子,但它同时也是一把双刃剑,它会把一些安全漏洞隐藏在其中。如何在用好开源软件的同时保护好自己,个人以为该点在软件开发过程中十分关键。

 

Q&A

 

Q1:如何实现安全意识在开发人员中的软着陆?如何让用户感知到安全带来的实际收益?

A1:首先我们通过流水线做到安全门禁控制,开发人员通过门禁控制会意识到安全风险,明确解决方法。除此之外,安全库也会开发人员被迫提升安全意识。让开发人员主动提升安全意识是一个很难的过程。相对于安全,用户更在意业务价值,可以通过同业因为存在类似安全问题导致巨额罚款等可以量化的危害让用户或业务有感,比如谷歌被罚款5000万,万豪被罚款7000万等。

 

Q2:是否有对漏洞的数量进行过统计呢?

A2:因为时间原因,具体数据未做统计,但是可以利用NVD或CNNVD官网提供的漏洞分析功能或者通过下载相关数据进行进一步分析,从历史统计数据来看,可以看出漏洞数量在指数级上升,比如2017年的漏洞记录数超过了2016年全年漏洞记录数的2倍,数量十分巨大。

 

Q3:如何对软件产品以及系统的安全等级进行判定?是否有相关规范或模型?

A3:首先,国家发布了相关的网络安全等级保护条例,我们可以据此对系统安全进行评级。我觉得我应该是属于等保4级的水平,那就要拿等保4级会对相应的能力做出要求,这属于强制的原生要求。其次,可以通过安全漏洞的处理,结合DevSecOps的评估流程进行评估,使用工具进行全覆盖扫描也可以发现应用的安全防护水平;如果可以的话,进行同行业对比以及公司内部运营情况评估也可以反映出安全防护水平,但是在安全层面,大家实际上都会避而不谈,所以只要不被高中风险漏洞所影响,其他都可以不care。

 

>>>>

活动推荐:DAMS中国数据智能管理峰会

 

演讲嘉宾所在单位:中国信通院、京东、美团、字节跳动、蚂蚁集团、网易、新浪、携程、快手、唯品会、哔哩哔哩、vivo、工商银行、平安银行、光大银行、汇丰科技等产研界技术领跑单位。
 
演讲议题聚焦:  
  • 大数据&数据资产管理:数据治理丨存算分离丨云原生OLAP丨湖仓一体丨智能分析
  • 数据库:云原生分布式丨时间序列丨服务自治
  • 运维:AIOps丨故障根因分析丨性能优化丨在离线混部技术丨高可用建设
  • 金融科技:规模化监控丨实时数仓丨分布式改造丨国产化替代丨数字化转型

 

活动预告