共计 3172 个字符,预计需要花费 8 分钟才能阅读完成。
文章首发于:前线 Zone 云平安社区
作者:马景贺
如何用听起来很长、实际起来很难的 DevSecOps,帮大家很 happy 地把安全软件构建进去。
我叫小马哥,目前是在极狐 GitLab 做 DevOps 技术布道师,把我的教训分享给大家。
明天分享的内容分为三局部:
平安的一些比拟奇怪的景象。
DevSecOps 怎么就这么火爆了。
基于教训给大家构建了一个 DevSecOps 体系,基于 Kubernetes 做一个纵深进攻。
平安之怪现状
平安十分重要,为啥重要?
第一个肯定是钱,平安其实和钱挂钩的。
比如说如果发现安全漏洞了,如果你的企业被攻打了,你的信息泄露了,那最初肯定是有经济损失。一些平安的调查报告,外面有些数据,大略是说一些公司,他们因为安全漏洞带来的经济损失,根本都在百万人民币以上。所以说波及到钱,这个事件就很大了,毕竟企业是以盈利为目标。
第二个就是平安问题会影响公司名誉。
02 年底,一家公司有平安供应链的破绽,被攻击者在产品外面加了个破绽,然而他们没有发现,影响了很多用户,起初用户对他们就有 concern,大家对这个甲方就有纳闷,靠不靠谱。所以平安十分重要,波及到钱和名誉,公司不就是奔着这个目标来的,如果这两个都没有的话,那企业就没有存在的价值。
第三个平安的体系真的十分难治理,平安主体很难界定。
咱们传统意义上,大家感觉平安肯定是平安人员的事件。其实这个传统意义上讲没有问题,然而倒退到当初麻利化我的项目开发的话,其实曾经不是了。很多报告外面也会提出来,大家会探讨,感觉平安主体到底是平安人员应该还是开发人员。50% 的人都不晓得平安主体是谁,因为平安主体决定不下来,责任划分不上来,就很难治理。
第四个难掂量,ROI 不清晰,这个也和钱相干。
对于研发或者测试来讲,工作量能够去掂量,比方你是做网络安全的,你管整个 team 的平安,有些货色是做了,然而出现不进去,领导有时候感觉要你干啥,ROI 不清晰。投入产出不是很清晰,而且平安是一个很长期的事件。
这就导致平安人员升职很慢,老大总感觉你没干活。在平安畛域,能把 ROI 分明地表达出来比拟难。还有一个对立的点是,平安内容很碎片。用户明码属于平安,配置管理也属于平安,容器镜像也属于平安,还有当初开源软件的使用率其实十分高,开源应用的平安合规也属于平安,数据安全,内容很碎片化,很难把它对立起来。
平安十分难,很重要
但平安也很容易被忽视掉
第一就是急于求成
互联网时代,谋求业务疾速上线,因为越快上线,就象征能去疾速的抢占市场,抢占市场就意味着收割了一波用户,就有存在上来的很大的竞争力了。
第二个就是侥幸心理
失常上线的时候,如果发现平安问题了,在某种状况下,业务让位于平安,因为业务上不去,可能要散失用户,然而如果当初你发现这个安全漏洞,因为存在侥幸心理,很多人感觉不补救没事,那就先上线。
这个不止平安,生存中也有,其实和意识无关,这个是平安最大的拦路虎。
第三个就是短视
平安须要真金白银的投入,当初市场上要找一个好一点的平安人员,其实价格比拟高。而且市面上平安开源产品,个别不像开发框架有很多开源的,每个人的心里,总有点放心开源的是不太平安,所以个别都会买商业的,商业的就交更多的钱。
最初一个是误区很多
还是主体问题,平安是平安团队的事件,与开发没有关系。这个是最大的误区,因为开发感觉,这个问题进去肯定是平安的问题。测试也感觉是平安问题,都把这些归到平安团队下面去了。
平安是随同着软件诞生始终过去的,我集体感觉是十分怪的,是平安的怪现状。
DevSecOps
怎么就这么火爆了?
2009 年的提的就只是 DevOps,最开始为啥不提 DevSecOps,为啥当初 DevSecOps 就火了呢?我集体认为有以下这么几点:
很多企业上云
麻利式开发方式
OpenSource
一些报告中的数据显示,任何企业其实都用了 OpenSource,比方 Linux、Git、Android。从数据来看,当初企业外部应用的软件 70% 以上是开源的。
开源也导致大家当初把平安话题又提出来了。破绽的利用工夫缩短了,有个数据显示,以前从一个破绽被发现到被利用,能够利用它去攻打,可能是 45 天;但当初只有 22 天了。比方 log4j 这类核弹级破绽,去年 12 月 9 日发现,短短十天就曾经被开展攻打了。
所以,平安一下子进入人们的视线。
2009 年巨匠提出 DevOps 的时候,把 Dev 和 Ops 联合起来就是 DevOps,次要目标是突破研发和运维之间的壁垒。
至于怎么突破呢?须要 CI/CD,流程、工具等等,DevSecOps 就是加了一个 Security 团队,把这二环变成三环,然而内容变动是比拟大的。
1、平安左移
其实这个和软件开发生命周期无关,个别软件开发生命周期,蕴含打算的编码、运维、部署和上线,这是一整个 SDL。然而当初平安都是尽量往前走,不要在测试阶段染指,尽可能在 plan 阶段就染指。大家都提平安左移,这是为什么呢?其实还是钱,平安和钱挂钩。
看左下角这个图,这个图阐明越早发现平安问题,修复用的老本越低。有数据显示,如果在研发阶段发现了一个平安问题,修复它的老本是一美分;到测试阶段发现一个平安问题,修复它的老本到了十美分;到上线的时候,再去修复这个安全漏洞,同样的安全漏洞修复老本是 100 美分,相当于扩充了 100 倍。所以提出了平安左移,发现问题越早修复越好。
所以说平安左移带来的第一个益处是修复成本低。能够看右下角的图,在研发阶段发现的破绽,如果采纳了 DevSecOps,修复破绽所须要的工夫是 52 天,如果不采纳须要 113 天,如果是生产阶段,那就更高。
2、继续的自动化
这是大略的示意图,给大家解释一下。比方研发人员要提交代码,接下来会去用一些平安产品,这些都是平安的伎俩,也能够手动做,然而目前会把它们集成到 CI/CD 里边去,做到继续自动化,提交代码后流程跑一遍就能够,人力的 WorkLoad 降落了。
而且一旦扫描出破绽,还能往前反馈,终止前面的流程,避免有问题的代码被提交到骨干分支,公布到生产线上交付给用户。
3、破绽治理修复
其实平安不仅是把破绽扫描进去,重点是问题进去如何修复?
第一个要做到报告展现通明,让研发、测试和平安都能看到,能力更高效地修复。
第二个展现要对立,在同一个面板上,否则依照传统的做法破费很多工夫在登录零碎上,所以如果有对立展现的中央最好。
第三个是破绽追踪要公开,谁去追踪,谁去修复,谁是次要负责人,这个过程是怎么修复的,这些货色要公开,还能追踪。
第四个是破绽的修复要及时。
平安主体鉴定不了,DevSecOps 提倡人人为平安。任何一个人都有可能成为软件交互的瓶颈,DevSecOps 的最终目标是减速软件交付及平安交付。
这是个永恒不变的模型,无非就是三块,第一个,就是以人为外围,人肯定是最次要的外围生产力,以人为本,人是最终因素。
接下来是选工具,工具是所有概念理念的最终撑持或载体,当初工具很多,但肯定要抉择适合的工具。这就能够适宜团队倒退,能力满足本人的业务需要。
最初,有了工具,还得有个流程把它串起来,纵深进攻的体系的构建。
DevSecOps
基于 kubernetes 做一个纵深进攻
上图我称之为纵深进攻。
纵向里分 k8s、基础设施容器镜像和应用程序。基础设施做环境隔离,开发、测试和生产是最根本的三个环境,不同环境须要做隔离,因为不同环境的受权用户是不一样的。数据安全大家须要去思考,尽管当初很多公司用私有云厂商的 k8s 集群,然而用他们的基础设施的时候,还是要去理解分明数据是怎么做的,后盾数据用的哪种加密形式。
权限管控,要确保只有特定权限的人可能登录确定的环境、确定的资源。容器和镜像,云原生时代容器是外围,镜像是灵魂,肯定要做好容器和镜像的平安。
平安的确很难,还须要多方联动,包含团队外面也是,里面的组织也是多措并举,一起来保障软件平安,软件供给平安。