2019可信云大会以“智能云网边,可信创未来”为主题,由中国信息通信研究院主办。在下午举行的云安全及风险管理论坛上,Pivotal大中华区云计算资深架构师杨海涛出席并发表了“云原生安全,让创新的能量尽情释放”为主题的演讲。

企业面临的云安全困境:安全与速度是伪命题吗?

今天我演讲的题目是《云原生安全,让创新的能量尽情释放》,为什么起这个题目?因为云原生安全和现代企业面临的困境是息息相关。现在云平台已经成为网络攻击最主要的目标,网络环境越来越复杂,攻击的危害性也越来越大。在这种场景下,新的科技对于企业来讲更像一个油门,一踩下去企业就可以尽情的向前发展;而安全更像刹车,出现安全问题的时候往往就需要减速,这就导致创新没有办法那么快的往前推进。这给企业留下一个印象,那就是速度和安全就像是鱼与熊掌,往往不可兼得。

尤其当云计算发展到云原生这个阶段,这个问题就更凸显出来。云原生是什么?是微服务、容器技术、持续交付、DevOps,通过这样的技术、平台、方法论,能够让企业享受到云平台带来的各种好处,例如高可用性,弹性伸缩的能力和速度。而企业最重视的就是速度,也就是云原生带来的快速迭代创新的能力。

传统的企业安全工具在云原生时代往往面临以下困境:

  • 应用数据量级成指数倍增加:在应用微服务用容器进行分装后,在云平台运营几万容器已经屡见不鲜。

  • 运用部署频率缩短:企业应用迭代速度由原来的一年几次缩短为几周一次甚至是几天一次

  • 平台的架构整体复杂性大大增加

  • 平台状态由稳态环境变为敏态环境

而与此同时,现代安全的目标也在提高,除了减少业务风险之外,快速变化的外部环境要求企业能够将安全快速落地,对于恶意的攻击行为能够快速检测、快速反应。另外,随着行业内外部的安全规范越来越多,以及各种各样合规性的需求,都这些对现代安全水平要求越来越高。

现代云安全的目标

那么现在企业就面临一种困境:在云原生时代到来之后,云平台的安全如何去保证,有什么样的方案可以解决这个问题。不知道大家有没有听过“第一性原理”,这是由我们大家都知道的希腊哲学家亚里士多德提出的一个理论,那就是我们解决一个问题的时候,我们要回归到这个事情最原始、最本质的特点当中去思考他的解决方案。所以当我们解决一个问题,如果说现有的一些工具、思维框架、方法论已经解决不了,那么就应该跳出这些局限,回归到最本源的需求,从需求上看有没有一些新的解决方案。

安全与速度可以兼得:利用云原生的思路解决安全问题

回到刚才所说的企业所面临的困境,就是速度和安全必须二选一,那么究竟没有办法两者兼得?下面我们讲的就是一个新的思路,通过采用云原生的理念来解决安全的问题。

首先我们从平台的特点来看一下,真正的云原生的平台,能够对安全有什么样的帮助呢?

云原生的平台上面除了包装操作系统外,上面还有操作系统的镜像,包含了应用的运行环境以及第三方的中间件,只剩下应用自己本身需要开发人员开发,其他的东西都包含在平台上。我们仔细思考一下就可以知道,我们以前所采用的很多安全手段和安全工具,几乎都是在这个平台里面去实施的。

云原生的架构优势

因此,很多安全手段,像加密、对于身份认证的服务、日志、操作系统的隔离等等服务都可以内置在PaaS平台上,不需要安全人员或者开发人员、运维人员手工解决这些问题。

这些安全工具内置之后,我们可以采用软件的方法,用自动化的方法进行管理。自动化除了加快效率,更重要的是减少人工操作带来的风险。运维里面70%的错误来自人工的错误,自动化可以大大减少人工错误带来的风险。

内置安全加上自动化的手段,可以实现原来传统IT环境所难以想象的功能,例如定期自动化的更换密码,定期更换运行环境等。

平台还可以内置很多合规性的要求,比如说等保2.0的要求,比如说容器层面相关的安全规都可以内置到平台里面实现,不需要手工在上面做任何修补的工作,或者叠加的工作。

基于以上几点,实际上在云原生安全这个领域我们可以把它的能力抽象成四要素:

  • 修补:只要有新的版本,不管有软件或者平台也好,马上升级有漏洞的软件系统,立即修补。

  • 重新部署:可以经常性的重新部署服务器和应用,这个是最主要用于抵御最具的威胁,APP长期驻留的威胁。

  • 轮换:经常自动轮换用户的密钥,通过平台自动实现,让密码只是短期有效。(以上这三点是之前由Pivotal总结的云原生安全三要素,叫做“3R”:Repair,Repave,Rotate)

  • 内置合规性:内嵌操作系统,对应用的控制来自于平台,简化审计

客户成功:云原生平台的DevOps对安全带来的好处

除了平台之外,另一个云原生很重要的特点是DevOps,DevOps和安全其实并不冲突,相反完全可以对安全提供支持:

  • DevOps既然可以帮助软件快速发布,自然也可以实现快速打补丁。

  • 不可变基础设施给攻击者留下更小的攻击窗口,可以有效防止长期驻留的威胁。

  • Configuration as Code便于后期的安全审计。

  • 平台产品化:平台产品化的结构里面,平台团队对安全负起更大的责任,对安全更加重视。

那么云原生安全是不是只停留在理论上呢?并不是的,Pivotal拥有三分之二来自世界五百强的客户,我们就是用这样的理念构建他们的云原生平台,以下是详细数据:

我们有某财富500强财富的企业,在平台内置了合规性,而且实现了不停机的安全,修复漏洞,每月交付软件可以超过2100次,成功率达到99.995%。像某银行通过经常的重新部署,对平台有更多的信心,目前为止已经布置了25套云原生的平台。

云原生安全的好处显而易见

在部署云原生安全后,企业整个打补丁的速度变得很快,一家著名的大型保险公司开发运维比可以达到1000比6,是以前9倍的速度,开发人员的生产率提升45%。我们可以看到,这是实现云原生以后的整体速度,在保障安全性的同时,整体速度还在提升。

超越平台:持续改进的结果和指标衡量

在云原生里,除了平台之外,很重要的概念就是敏捷和精益。对安全也是一样,如果让平台一直保证安全的状态,让它一直可信,平台从安全角度来讲也需要持续的改进,满足外部快速变化的需求。

如果要做到这一点能就需要考虑几个原则:

  • 平台和应用部署实现自动化,让开发者更快,打补丁才能更快,这是一个基础。

  • 需要及时可用的安全组件,很多安全组件不是后期整合进去,而是平台预先集成好,落地即可用,这样可以把安全变得更加简单。

  • 需要不断的测试,不断的迭代提高安全能力,在被攻击之前找到问题并修复,这是核心的理论。

  • 协作性的思维,安全是所有人的事情,不是开发和运维团队的事情,需要大家一起努力。

这个时候特别要注意的是避免几种有可能会出现的问题,导致思路可能回到传统安全方法论的思维上去:

  1. 避免在平台为了省事叠加各种各样的安全软件工具,这样效果可能会适得其反。

  2. 避免尝试使用一个方案解决所有的问题,解决之后就放在那里不动。这是不可能安全的,因为外部的安全环境一直在变化,没有一个工具可以一次解决所有的问题。

  3. 避免用手工的方法去做。我们可以想象手工的方法在目前这种规模的云原生平台很难做,比如说,对几千个容器进行手工修补,要做到什么时候?

  4. 避免忽视主动监测的力量。安全的目的主要是为了预防问题,因为如果出现问题,安全问题不出则以,一出都是大事。

全流程管理机制,全面管控应用风险

网上有统计指出:在目前所发现很多网络攻击当中80%是由于应用实现的漏洞引起的,所以应用的安全,对企业来讲应该给予足够的重视,应采取全流程的管理体制去管控。这里面的全流程包括:

全流程管控

有一点要提醒大家注意,持续改进有一个很重要的前提,就是需要跟开源社区保持同步,保持开放和标准。为什么这么说呢?大家可以看到,这是CNCF里面的主要的软件和厂商。目前CNCF是云原生领域非常重要的社区,如果回顾五年之前该社区还不存在,但到今天大家可以看到这个规模,而且还在快速扩张。

再说安全。一般媒体市场调查公司都会总结出当年的十大安全威胁,我们看五年之前,2014年的十大安全威胁和今天的已经完全不一样。因此整个社区在快速变化,因此一个明智的策略应该是跟着社区往前走,一定要保持开源、开放,这样才能充分享受到整个社区所带来各种各样新的创新红利。

云安全效果衡量工具:主动测试

大家听到这里可能已经理解了,所谓的云原生安全其实就是用敏捷,精益和DevOps来做安全。但是了解敏捷的朋友可能会有疑问:敏捷和精益有一个很重要的部分就是反馈,那么对于安全,企业如何衡量效果如何呢?如何反馈?

其实对于安全来讲,它的反馈是什么?很简单,其实就是漏洞有多少,这个就是最直接的反馈。那么有两种方法可以提供反馈,一种是自己人主动去查找;另外一种是被别人发现,但是如果这个别人是别有用心的人,那么他发现漏洞之后这个反馈可能就会变成灾难性的后果。

所以,对于企业来讲,想得到快速反馈,最好的办法就是主动进行测试。当测试完成后,发现问题以后我们有足够的时间去修复,而不用担心会被破解。我们有足够的时间分析是设计开发、测试、部署、还是运维当中引入的问题,这样可以采取相应的手段和措施解决。比如设计开发的时候,刚才提到了除了编码培训之外可以考虑安全的框架,现在比较流行的安全情报交换,用这样的方式加强开发的安全性。

在被攻击之前找到漏洞: 主动测试

在运维阶段也可以采用加强行为分析,比如自适应的身份认证,还有现在比较流行的安全响应编排,通过这样一些新的技术逐渐提升各个领域的安全薄弱环节。

对于云原生平台来讲,如果想测试稳定性,包括测试安全性,最常见的,是原来一直都在使用的猴子军团,主动对平台注入恶意代码然后检测安全性,这个已经被广泛采用,是一种方式。

信任但是要验证: 平台之外的最佳实践

另外一个测试安全性的方法,就是攻击性的测试,这个在安全领域来讲也是创新性的思路,比较新颖的手段。这个攻击性测试讲的是什么呢?比如说可以采用漏洞举报奖励机制,内部人员发现漏洞的时候直接举报,可以获得一些奖励,通过这种方式激励内部人员查找漏洞。另外可以做一些穿透性测试,更好的是找更加专业性的测试团队,对平台进行模拟攻击,当然最终的效果不是窃取平台信息,而是告诉我什么地方存在漏洞。这样的方式效果更好,现在有很多专门做这样服务的安全团队。

讲到这里大家有一种感觉,虽然安全的技术和业务的创新,技术上完全不一样,但是从它的特点来讲实际上非常接近:业务需要快速更新,安全也是一样,外部环境不断的发展,技术上也要不断的创新。因此,对于有同样需求的安全问题,我们同样可以用云原生的方式,用敏捷的方式,用DevOps的方式不断的创新。这是为什么现在当我们听到DevOps的时候,经常在中间又加了一个SEC,变成DevSecOps,这也是目前非常主流的趋势。

结合之前所分享的内容,我们可以总结成三个成语:博采众长,指的是平台,能够不断集成社区各种创新成果;内外兼修,指的是企业除了依赖外部的安全工具,内部更要提升安全能力;日益精进,指的是企业应采取精益的思想和精益的手段,不断提升平台的整体能力。

声明:本文来自Pivotal,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。