[关闭]
@gaoxiaoyunwei2017 2017-12-21T10:52:59.000000Z 字数 7621 阅读 427

业务安全-DevSecOps的催化剂

毕宏飞


作者简介

image.png-65.3kB

赵锐
上海首席安全官联盟成员、银联认证讲师,曾在国有金融机构担任安全主管、移动产品经理、信息安全专家等职务。
互联网金融业务风险管理、信息安全管理、账户安全管理、开发安全管理10余年资深金融科技工作经验,10余年金融科技风险管理工作经验,深入了解国内外金融行业信息安全标准与要求。工作期间多次代表单位参加信息安全技能竞赛并获二、三等奖;负责的信息安全等级保护工作多次获得上海市优秀奖;工作期间多次被评为优秀员工。
拥有PMP、CISM、CISP、CISAW(二级)、中级经济师、ISO27001审核员、ISO20000审核员、ISO9001审核员等多项资质认证。
曾在银监会《金融科技治理与研究》杂志发表论文《“互联网+”环境下银行信息安全风险之应对》。

前言

DevSecOps的困境

产品鄙视研发,研发又鄙视运维,运维呢又鄙视安全。
image.png-273.8kB
本来网络设备上面配进来就可以了,莫名其妙的要求加一些东西进来,回头出现安全问题又来怪我们。最后业务说本来我订好我们的对标B公司,他们肯定是下个月上线的,因为你们开发、测试还有安全、运维的种种原因,导致我们比他们延后了,我们市场份额抢不到了。回头还要到老板那儿告状,这个很可能就是在一般的互联网公司里面会遇到的问题。那么针对这些问题我们的IT人员应该怎么去解决它?我们安全人员怎么从对方的角度,从业务的角度来给大家解决这个困境?后续我就把这个环节给大家做一个讲解和介绍。

一般来说安全在提要求的时候肯定会说这是相应的监管要求,最早的1994年174号人保条例,国有企业的话是在2006、2007年初的时候做的人保测评,后续对民营企业,2010年对外资企业都提出来相应的要求,大家也要去做人保的定级,定级以后再做相应的测评和认证。最近网络安全法颁布以后,对互联网的小贷公司,或者是P2P公司这块卡的是非常严,后续你可以做测评,但是你的报告,你的备案证明不一定发给你。同时今年网络安全法推出以后,想必大家为了更好的推进自己的工作,应该也会找外部的专家或者自己内部。如果这块没有相应的预算,没有相应的工作,对于个人信息这块,如果你是运营者有超过25条数据泄露了,安全负责人和领导都要进去。

我了解的互联网和银行,今年因为网络安全这块的要求,年初他们是加薪50%,估计大家听了我后面相应的内容以后,回去对你收入的提升和对其他业务部门的沟通会有相应的好处。除了监管要求以外还有合同的约束,原来我在银行对外包的服务商,我们把我们要接受的监管要求都写到合同里,虽然你是工作外包,但是责任不能外包,所以做这块的人,责任是逃不掉的。同时那会儿对外包的服务人员和厂商定期还要进行考试,如果不及格是不能到我外包服务的名单里面去的。

安全除了前面所说的监管的一些要求以外,很多时候比如说安全上你出了一些事情,出了事以后大家就会重视了。今年比较火的应该是 Equifax 的数据泄露,他们当时泄露了1.43亿的客户信息,最近还在发酵。像某东、某城,某易之前都一直出现了泄露的事件,还有云服务商光缆被挖断,出了这些事以后老板肯定紧张,因为老板紧张的是对自己业务的影响,并不是对安全的关注。出了这些事对业务的影响,企业的生存,他后面是不是能持续赚到钱,这是都会遇到的问题。在企业一般的初创阶段,很多安全问题都放在开发或者网络运维团队里面,最多有一个到两个安全工程师。最早从防火墙,IBS入手,企业发展到一定阶段的时候,慢慢的知道了安全的 SDLC , 会考虑是不是前面要前置一些基线,是不是要做一些安全的测试,这个可以由自己人测也可以由外部人测,等到合适的时候会有专门安全产品的开发,然后企业资源产品和服务对内对外都有作用的时候就会变成一个利润中心。

说了前面的这些,大家要有一个概念,安全工作其实是一个风险管理工作,这个怎么解释呢?一般来说如果你是计算机专业毕业的,觉得安全做的好那就是黑客,去SIC上面拿排名,一般可能从这个角度去认识安全问题。但是从企业来说,并不是说你发现我问题越多越好,企业要的是你帮我发现问题解决问题,后续还会有安全问题持续产生吗?同时可以让我在比较低的成本下面把这些安全问题解决,我们可以从几个角度来帮公司,帮管理层做好这些呢?
image.png-373.6kB

正文会分三块跟大家作相应的介绍:

一、公司的关注点,会从董事会、老板来说;

二、DevSecOps ,给大家介绍一下 DevSecOps 的一些定义,目前国际上面调查下来的一些情况;

三、业务安全以及催化作用,主要是针对我们万达科技网络集团自己内部实现的一些情况。

一、公司的关注点

在上世纪初的时候有一个纪录片,公司当时的发展,它的目的。从高到低会有三块:

对于这部分怎么来实现呢?主要是通过业务,业务安全方面一般会遇到什么问题?做我们这个业务它的风险有哪些?它所需要的资金成本、人力成本的投入是不是能带来相应的产出?最后我们做了这些事情以后会对我们业务有哪些影响,会对我们整个市场有哪些影响?我们要了解我们的业务最直接的就是和业务部门进行一个沟通,因为业务部门是业务的需求方,目前我们在万达是负责支付业务的,对我们业务进行梳理。年初我们对帐户这块会有哪些业务帐户的入口,C端、B端的帐户体系是怎样的。比如业务帐户登陆注册的时候,分别会遇到哪些问题,目前的管控风险规则是怎么样的?因为在C端之前梳理差不多了,对B端像是万达商场那些商户,还有一些POS商户,还有我们自己内部专门给一些小超市或者便利店。

除了支付这部分以外,还有仓储的盘点,你的净销存。在不同的业务场景下,进行相应的业务梳理以后,你会发现除了前面提到的帐户安全,还可以和风控部门、业务部门一起看一下历史资金损失的情况,风控我的业务手段。一般像刷卡交易,卡的来源比如我们定义过广西的某地、福建某地、东北某地,会是一些盗卡盗刷的高发区,或者你带着你的银行卡在国外,某些银行后台会打电话给你确认一下你是不是有这个业务交易。在业务风控之外,大家现在越来越多的使用APP,在APP里面能做的风控有什么?其实是很少的,比如设备指纹,这个也只是验证这个设备是不是真实的。分析过影响和历史的资金损失以后,你可以跟业务说我们可以对你有什么帮助。比如前面提到的帐户,之前我们的短信费差不多成本两三分,在我们做这些安全之前每天的数据都是可以知道的,做了安全措施以后“诈你妹”至少不会进来了。还有黑客攻击,短信接口节省的费用差不多是20%-40%,这部分节约下来的钱就可以跟老板说,这就是我们赚取的利润了。同时因为你的短信,比如说拥塞了,客户体验弱了,那我们客户体验这块也跟着提升了,你要有双赢的思维。
image.png-282.7kB
同时业务在得到你的帮助以后也会说,我在原来的时候到这边都是跟业务沟通的,如果业务没有来找我,你也没有找我,中间出现的损失肯定都是业务自己承担了。科技人员的产品要做好,最终对的是业务部门,对的是老板。对于我们开发测试和运维这块,安全人员怎么给他们提供服务呢?一般来说我会增加相应的一些安全培训,对运维来说,你遇到一些安全事件你应该怎么处理,从操作系统、数据库,目前比较好的情况是怎么样的?对开发来说你基础的,开发的一些标准,开发的一些规范,你变量的声明是怎么样的?而且对于一些好的开发人员在学习了安全以后,也可以吸收到我们的安全团队里面,因为只要你做开发肯定会遇到Bug,你解决原生的浏览器的Bug和容器的Bug以后,肯定会有信心的满足。我们做开发的都是小男孩,总是会喜欢像机械类的,之前有遇到一个朋友,说看到小时候没有买的变形金刚,一定要买过来,买好以后把它拼起来。其实对于资深的开发人员也是一样的,有很多开发的问题我把它解决掉了,解决掉了以后就会非常开心。所以我们只要帮助他们,并且给他们相应的帮助以后他们得到了提升,只要他们提升了,收入会提升、工作能力会提升、代码质量会提高,提高以后就可以降低安全事件的发生率。运维人员说接到的电话少了,老婆不会骂他了,孩子不会哭了。减少了修改Bug的次数,同时减少问题了,你又可以跟老板邀功了。

二、DevSecOps

接下来我要给大家介绍 DevSecOps ,最早是使用的 DevOpsSec ,2017年RSA年度会议上 DevSecOps 成为了热门的词汇。

2.1 DevSecOps 的特点

DevSecOps 的特点是有哪些呢?
image.png-172.9kB
每个人都要对安全负责,你开发一个产品或者开发一串代码上线出现了问题,如果当时没有采取合适的手段进行相应的阻断,这个事件肯定就升级了。运维肯定想这个产品又不是我开发的,问题肯定还是让测试和研发来背锅。测试在事件回叙的过程会说当时因为时间紧、任务重,一般来说我不可能做完整测试。研发中丢了一个坑,那研发肯定会想业务给我要求这么紧,安全之前又没有给我提供合适的资料,我想只要满足基本安全要求就可以了。在这种情况下基于前面跟大家说的,我们把安全纳入进来,在开发的时候,我这边也给你提供相应的平台,比如代码检测。或者说你中间遇到的一些安全的逻辑问题,你放到知识库里面,相应的业务场景进行一个选择,之前历史上遇到的那些问题都可以看到,你都可以进行一个避免。大家把这些都合作起来了,对业务会有哪些帮助,只要这些都做好了,高层肯定会很乐意的,高层就是希望大家都好好干活,帮他赚钱,那高层的决策就更好做了,科技团队之间就会有非常好的协作。而且大家都专注于风险,因为从业务角度推安全更好推,因为老板关注的是业务。

2.2 DevSecOps 的现状

接下来我们介绍一下 sonatype 社区调查,有超过2200名IT专业人员参与调查显示,成熟的开发组织确保自动化安全性在早期,到处,大规模中融入 DevOps 实践中。
image.png-200kB

image.png-157.5kB
这块是逆向调查,安全性是抑制灵活性的一个因素,对于互联网企业来说是希望最快的。这块的整体调查的情况是这样的:38%的受访者觉得安全是最关心的内容,他们也会花大量时间放在这个上面,同时有部分开发团队安全实践,在他们的工作中采用率提高到了60%;还有62%的人认为没有足够的时间用到安全上面。

安全措施对大家来说还是非常重要的,因为从调查来说84%的开发和运维人员是认可的,只有16%觉得这块对自己没有很好的帮助。
image.png-141.8kB
如何把 DevSecOps 结合起来做好呢?其实安全人员你要知道你自己是有底线的,一般把安全基线设好以后,我们知道哪些安全业务是基础的,在哪些情况下你的安全是要设防的。比如我们网络里面会分核心区、应用区,如果你对外联再分的细一点,还有第三方外联区。在这个时候比如有个系统要上了,业务说直接放到DMZ吧,这样我们连业务更快,客户连进来会更多,同时你后台业务都不要放在数据库了。但是对于运维和安全人员来说,你把这个放在DMZ,如果有个漏洞,或者发现新的Bug,这时候有个攻击进来,那数据肯定全部丢失了。对于业务来说你可以给他相应的解释,中间如果你有哪些要求,我们可以多加一些流量等等。通过这些辅助的措施,如果有比较好的合作,业务上都可以来协助你的。

2.3 基线管理

同时还要有一个比较好的基线的管理,我们这边对业务是进行了一个梳理,你的帐户处理方面基线有哪些?
image.png-275.6kB
比如有APP的、H5的。APP像注册、登录、银行卡健全、身份认证,还有我们的一些支付,支付包括对内对外的支付都可以的。H5方面来说你的支付和登录是可以的,但是你如果支付只能买万达自己的理财产品,如果对外支付在微信里面是不可以的,同时微信也不让我们这样干。基于这些你要对业务有比较好的分析,同时老板和很多业务部门的领导对于你的安全工作做的怎么样,对于你的技术怎么样他并不一定了解,这块我们怎么做到让老板觉得你的工作做的很好,而且对外宣传的时候也很牛呢?那就是可视化。

近几年大家不管到什么地方参观,一般都会听到这就是我们的安全监控,我们的业务全球有多大,我们受到的攻击情况怎么样,对于这些攻击我们是怎么处置的。对于不了解我们开发的人来说你把可视化东西展现给他看了以后,管理层觉得你的工作做到位了,同时业务团队也觉得你确实帮他们,科技团队也觉得你们这些工作做的是有效果的。你要把你的这些工作做到位,你就要现在的安全人员比外面的采购要更贵,你要让大家共同成长,要让下面的人员有一个比较好的职业发展,让大家相互认可,相互有更好的协作。

三、业务安全以及它的催化作用

接下来就是最重要的一部分,业务安全以及它的催化作用,其实前面说的这些都是相应的铺垫。

3.1 业务安全

业务安全是指保护业务系统免受安全威胁的措施和手段,广义的业务安全还包括像IT系统的软硬件平台、操作系统、数据库、中间件,还有业务系统本身的软件设备,还有业务系统的那些服务
image.png-295.1kB

我们知道了它的定义以后,还要知道我们业务安全的目标,结合前面老板所关注的,我们要支持公司多战略保障我们业务的发展,同时在做这些事情的时候还要减少资金的损失。当然这些我们肯定要把它分出相应的优先级,对于某些业务是近期要上的业务,对于这些业务要做到哪些?比如遇到问题的时候,哪些可以先放过去,让它先上线,哪些是必须要更改的?
image.png-118kB

3.2 业务安全的催化作用

3.2.1 安全地满足业务功能需求

最早对于安全来说只会想到软件安全,可能说软件安全仅仅限于代码扫描、漏洞补丁,使用的框架,对于敏捷开发来说功能才是第一位,安全问题等上线了再改。而且安全基线有可能只是实现了一部分,我们现在要对业务安全建立一个整体的风控专家库。因为我负责的是支付这块,支付有B端业务,酒店、商场、航空公司,然后B端针对商户的运营团队,还有C端的业务,比如非凡通APP、万达财富。还有运营人员,以及发生事件以后事件的管理团队,还有涉及经济案件的案件处理团队,同时还有我们的信息安全、开发和运维,大家组成一个联合的风险控制的专家。在业务提出需求的初期,我们就提供最基础的,每个人所关注的点,大家一起来看你这个业务要上线的时候,在设计的时候历史上类似的业务我们遇到过哪些问题,它可能有哪些安全问题,我们怎么去解决它。如果把这块做的比较好,同时我们的COO、CRO、CTO、CSO都会比较满意,一开始可能会花的人力比较多,因为要把所有的业务场景过一遍,把业务问题过一遍,把问题列出来。列出来以后就可以基于安全的情况,后面有相应的软件产品可以进行勾选,在后续如果做的更好的时候可以说基于这个业务产品我们推荐你用哪些开发工具,用哪些框架,对运维和开发来说也可以减轻他们的工作,因为最佳实践的工作方式都列出来了,这样的话安全就更好的融入我们的 DevSecOps 里面去了。
image.png-140.3kB

3.2.2 从被动到主动

只要你真的做到了这些,我们的安全就能从被动到主动了,就可以减少你背锅了。安全攻击,就像房子一样,门窗是基础的,然后是防盗门、防盗窗,在这些做好了家里不被盗,你的资金损失就会减少。同时把风险管控做到前面,我们的 SDLC 就相应的完善了。等业务部门也会主动提出一些安全要求了,他们会提出自己的需求,说这块是我的风险管控系统,在这些之外对于其他的攻击我们是不是一起降低我们的损失机率。
image.png-498.5kB

3.3.3 我们的成果

目前只要做好上面那些以后,就会有一些比较好的成果,业务、开发、安全都有绩效,开发也可以激励我们的安全、风险和业务提出更好的安全需求,完善我们的 SDLC 。只要大家从系统角度进行威胁分析,后续的安全设备、安全开发、安全测试、安全部署,这一整套流程大家都可以很好的组合在一起。

一、设计产品雏形,要求我们的业务和产品,还有风控团队,对产品描述、产品设计、业务模块、财务模块、业务安全模块、基础安全模块等八大内容的分析、整体的环境与目标市场的分析。因为老板会看市场目标这块,但是具体业务内容业务部门会看产品的设计,业务的模块,开发人员会看业务安全模块和基础安全模块是怎样的。

二、验证产品价值,产品的价值主张验证计划,业务测试以及风险的验证。

三、威胁分析综合评估与结论,整个风控专家团队和业务团队一起评出,说这个业务确实可以上了,同时对他遇到的系统风险业务做了哪些工作,对于目前的材料,或者对后续发展的业务我们做了哪些结论和建议。

业务安全的催化作用有八大模块:产品描述、产品设计、业务模块,财务模块,业务安全控制模块、基础安全控制模块、清结算模块、产品运营模块。如果这些都做好了,其实还是要结合我们的业务场景,不断梳理我们业务安全要求。因为你的业务在不断变化,公司架构肯定也是在不断变化,安全需求变化还是比较频繁的,结合业务来完善基础安全要求,结合业务调整系统构架,同时自动输出开发安全要求、业务安全要求、运维安全要求,这样就真的做好了,就可以对外提供产品销售了。同时还要提供我们自动化测试的覆盖率,比如说基础的代码扫描,安全基线的扫描,包括像中间件、数据库,还有移动安全的扫描等等。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注