了解和跟踪不断变化的k8s部署的影响

彼得博世
杰出的工程师
作为开发人员,我们并不总是完全意识到代码更改所规定的安全含义,无论这些更改是在CI、CD还是工件数据库中完成的。
预测第三方库的变化、安全上下文或RBAC权限的变化、访问相同资源的不同网络甚至以不同的方式使用API的影响总是具有挑战性的。
因此,立即了解影响并能够在不中断管道的情况下进行更改是一个重要的要求。本次会议将介绍应对这些日常变化的最佳做法,并将提出一套工具来集中解决这些变化。

视频记录

大家好,我是Peter Bosch。我是思科ET&A的杰出工程师,孵化中的新兴技术。在接下来的半个小时左右,我将分享一些关于应用安全的内容,思科在这个领域做了什么,为什么它很重要,确保这一点,并与大家分享为什么应用安全对我们所有人来说都是一个重要的领域。

首先介绍一下我们是谁,我们是新兴技术和孵化团队。我们在团队内部做的事情是思科传统上不做的事情,是我们应该做的事情,也是我们认为未来技术会给我们带来的事情。我们正在与企业战略团队和战略联盟团队一起做这件事。因此,在这三个集团之间,我们实际上覆盖了相当大的领域,涉及到未来的空间,像我们这样的组织需要参与其中,但也涉及到更大的生态系统。

我们看到的东西都在这个图表上。所以安全、云、人工智能、机器学习、未来的工作都是我们积极关注的领域。

未来的工作,我们有WebEx团队的WebEx解决方案,我们还能做什么?AI, ml,很明显,它将被用于理解那些不明显的云之间的关系。这是一种给定和安全,这就是我在这里所说的,我们在ET&I中建立它的方式是我们有一个设计伙伴项目。所以在ET&I内部,我们不做产品,我们做的是所谓的最小可行产品hth华体会最新官方网站,你可以从思科那里买到的东西,识别新的市场趋势的东西,建立新的解决方案来满足我们客户的业务需求确保你真正建立了客户想要的东西,而不是说这将被建造。你有兴趣吗?具体来说,在这个领域,我们来看两个处于早期阶段的企业。

应用程序网络,我需要什么样的网络堆栈来将一个广泛分布的应用程序粘合在本地和非本地解决方案之间?还有应用程序安全性,这就是我要讲的。作为一个设计合作伙伴的好处是,作为一个设计合作伙伴,你和我们一起工作,真正了解过程,用户旅程,你想要做什么,什么样的功能需要添加到产品中,在我们的路线图上共同合作,也共同创新。

我们怀念的东西。如果我们和你们一起做这件事,你们能让我们更好地了解我们应该为我们的合作伙伴做些什么吗?

说到这里,让我们切换到应用程序安全性。首先,让我们定义一下它是什么,为什么应用程序安全性很重要。我们思考这个问题的方式是它实际上可以分为两大类。

应用程序网络本质上是保护人员,保护应用程序和数据,保护那些在云中运行的东西。在左边,假设我们有一个虚构的公司叫Acme Inc。

Acme公司的宗旨是确保……Acme已经建立了他们的网络,所以所有属于Acme的应用程序都在本地,周围有一个尖桩栅栏,防火墙,id和IPS。

我们有VPN解决方案,时髦的解决方案,不管是什么。它给你一种错觉,一旦你连接到这个网络,你就是安全区域的一部分,一旦你进入了这个安全区域,你可以做任何你想做的事。

这基本上是一种模式,在这种模式下,你可以真正使用高端解决方案。构建应用程序的新方法是让应用程序在云中运行。

我有一个应用,我把它分解成它的组成部分。Acme.com是一个由几十个,如果不是几百个相互通信的微服务运行的应用程序,运行在公共云上。没有尖桩栅栏,没有id,没有IPS。它确实确保了以前那个更大的栅栏不在那里,这意味着应用程序需要自己照顾自己。所以我们在右边研究的保护,保护应用程序和数据是关于你需要部署的技术,以确保应用程序保持安全,即使你不控制底层网络,你不控制底层云系统,你不控制防火墙id, IPS,因为他们已经不在了。具体来说,我们关注的是我们的Kubernetes环境,云原生应用程序的安全性,我们认为这是我们应该关注的地方。

我们和很多客户谈过,你确实看到了Kubernetes的概念不仅仅是一场技术革命。

当然,Kubernetes的核心是管理一堆进程,Unix进程,运行在Linux上的命名空间等等,但Kubernetes不止于此。

Kubernetes也是一场商业革命,因为它允许像Acme这样的企业快速建立所需的基础设施,以托管这些诞生于云类型的公司。我们注意到的是,即使我们转向我们现有的客户,其中一些客户已经建立了相当多的预置解决方案,他们也在切换到Kubernetes类型的部署,他们自己成为云公司的新生儿,他们只是保持原有的预置解决方案。他们不打算改变,而是在云计算中重新实施,就像在云计算公司中诞生一样。这些公司的关键人物是云架构师,云运维,应用程序工程师,当然还有开发人员,开发人员是这一切的核心。这些不是传统的利益相关者,正如我们之前看到的那样。

传统的涉众,特别是应用程序安全的涉众当然是IT。

在这里,它是不同的,特别是随着运动的左移,我们看到的是更多的决定现在已经直接进入开发社区,由开发人员自己,他们已经决定了事情的操作方面,他们现在还需要在安全方面做出决定。那么我们想要解决的潜在问题是什么呢?

我们想要解决的潜在问题已经列在这里了。随着这些应用程序迁移到云端,它们有不同的计算机安全要求。

就像我之前说的,你的单片应用现在被分割成很多微服务,这些微服务与外部服务,内部服务相互沟通,我们有无服务器功能,我们把基础设施作为代码解决方案,这是一种完全不同的方式来构建你的应用程序,相对于以前。

但是,随着这种向左转移的趋势,开发人员不仅要负责操作方面的事情,还要负责安全方面的事情,你开始意识到开发人员处于一个艰难的境地,一个开发人员,随着ci CD链的引入,已经有了一些工具来完成操作方面的工作。

但从安全方面来看,这些工具并不存在。是的,DevOps、prod、CI CD、持续集成和持续开发……持续部署,抱歉。但是第二部分不存在。

不存在诸如ci CD加上持续安全性之类的东西,也不存在直接进入IDE的集成安全性工具集。

实际上,我们在这里所追求的是,我们应该构建一个将IDE、ci CD和持续安全性结合到一个包中的工具集,否则的话对于开发人员来说,Devsecops是一项艰巨的任务。然后开发人员缺乏安全工具,就像我之前说的,我称之为知识鸿沟。通常情况下,开发人员被要求尽可能快地交付尽可能多的功能。安全总是事后才想到的。此外,确保构建安全的应用程序是一项具有挑战性的任务。所以一定要帮助开发者指出常见的错误,经常犯的错误,对于这样的工具集来说,有风险的解决方案和指出漏洞的位置是一项重要的任务。因此,第一代云应用安全真正关注的是部署前的漏洞分析,简单的攻击,真的。

实际上,我们在这里追求的是更复杂的解决方案,将整体视图ID、ci CD和持续安全性集成到一个包中,以便开发人员真正从操作端、开发端和安全端掌握了整个应用程序。让我用一个生动的例子来介绍。这个图的左边和右边分别表示了a的前后。让我们来看看这三个角色。

有开发人员,有应用程序安全角色或secops角色在中间,在底部,有CISO。

开发人员的任务是为他们的企业快速拼凑出一个解决方案,他们的任务是为Acme公司实现功能X、Y和Z,开发人员将使用任何可用的功能来完成此任务。在这张图中描述的当然是API服务,有无服务器功能,有库,sdk,当然还有其他可以用来构建应用程序的资产。有了那些给开发者的复杂工具集,基本上,开发者会坐下来,构建整个应用,然后把它扔过去栅栏到app sec或SecOps,他们提交应用,然后sec和app sec对那个部署没有太多说。我在公司内部和外部都有过这样的对话,sec和app sec真的不太了解应用的功能。

应用程序可能已经破坏了图像库、图像层、库、配置、API服务、无服务器功能等等,实际上,app sec并不知道这些漏洞在哪里。我听说app sec每3个月就会把所有开发者拉到会议室,开发者需要展示他们的外部依赖是什么。你可以确定两件事。

  1. 开发人员不想这样做,因此,演示文稿要尽快完成这样开发人员才会回到他们的工作中,这意味着演示文稿中会有不准确的地方一旦开发人员回去工作,他们就会改变解决方案这意味着审查是不准确的。只有在与app sec共享的那一刻,如果我是首席信息安全官,在图表底部的人,我会揪着我的头发,我不知道该对我的客户说什么。

我不知道CISO会对acme.com的客户说这些应用程序中的漏洞在哪里。真正的CISO现在的任务是只有当一个应用程序被入侵时才回溯到这些客户告诉这些客户acme.com是非常抱歉,他们的数据泄露了。看起来不太好。解决方法很简单,就是我在右边展示的。

右手边,我们有同样的三个角色,而不是简单地说,你知道吗,我们把这个扔过栅栏,由开发人员,应用程序部门和首席信息安全官事先设置了护栏。这些护栏包括:作为一名开发人员,您只能使用以下图像层、以下经过测试的图像层、以下配置、以下工具集来确保您放入应用程序中的这些资产是安全的、以下无服务器功能以及以下内部和外部API服务。此外,我们接下来要做的是,一旦我们知道了开发者可以使用的所有资产,我们就会事先对它们进行测试。

我们已经事先知道在遥测测试等方面会有哪些漏洞,这意味着如果开发者准备好了他们的应用,并把它呈现给app sec, app sec不需要做太多事情因为应用在护栏之内,你可以简单地推出它。

App sec很高兴,因为他们确切地知道哪些工件进入了哪些应用程序,使用了哪些服务,使用了哪些图像,哪些图像层,使用了哪些配置,并且他们可以快速签署该应用程序。

作为一名首席信息安全官,这也很棒,因为我现在对我的应用程序中的所有依赖项都有了一个概观,我确切地知道我在哪里容易受到攻击,以及我是如何受到攻击的,但作为一名潜行的首席执行官,当时已经说过,一个漏洞只有在成为已知漏洞时才会成为一个漏洞。

不断地跟踪应用程序中的所有这些资产是很重要的,通过这样做,我们可以事先知道,或者当发现漏洞时,哪些应用程序将受到影响。我们用这些知识回到app sec,或者说是开发者。

我们会通知app sec,在其中一个应用程序中发现了一个新的漏洞,他们需要修复它,或者通过修复它的方式,或者通过在JIRA中创建工作项,工作票,或者类似的东西,让开发人员修复这些问题。这就是为什么在右手边,这个图是双向的,它显示了应用程序来回移动,你真的想要有连续的安全性,CS部分,现在在控制之下。作为一名首席信息安全官,即使现在有些东西被侵入了,我也能确保我能主动地向我的客户阐明这一点。

这是一个完全不同的故事,当作为CISO,我与acme.com的客户接触时,告诉他们我们发现了一个漏洞,还没有任何泄露,这就是我们要报告的方式。

相比之下,左边可怜的首席信息安全官将不得不这样做你的数据就是这样泄露出去的。

在右边,这是我们在泄漏之前修复它的方法。因此,它实际上是将图像元数据功能和API评分结合到开发和运行周期中。这就像是开发者的保险政策。

我接下来要做的,是一个快速的演示。我将在这个快速演示中展示的在这个图表上。

我们拿起谷歌的潮人商店,它显示在左边,一个糟糕的程序员,在这个特殊的例子中,我自己编程扩展了潮人商店的功能,在潮人商店买东西的时候发送短信。正如你在这里看到的黄色部分,那个可怜的程序员包括了服务功能的所有部分,以及代码中直接使用的令牌。现在我们知道这些账户是AC31C8,等等,等等。是的,它与一些程序员的…

我这么说吧,它曾经被绑定到某个程序员的信用卡上,它有一个身份验证令牌。然后你与外部服务合作,在这个特殊的例子中是Twilio,发送短信。这里还有一个错误。因为开发商包括了整个交易。

整个交易包括,我们在网上精品店买东西,这是使用的信用卡号码,这是CCV,这是截止日期。而不是你想怎么做,因为这意味着你现在正在与外部服务共享PLL数据,而你不知道后果是什么?我们的解决方案,安全的CN和安全的云原生,就是我们要做到这一点通过那个控制台可以看到。

安全CN可以帮助您开始管理整个应用程序,无论是从容器的角度、映像的角度、映像层的角度、API的角度,还是从无服务器功能的角度、从令牌管理的角度来管理这些外部服务、内部服务等等。

这就是我们要做的。因此,这个安全CN成为管理应用程序的一站式服务。

现在,让我停在这里,这段录音。我转到示范节目,马上回来。

谢谢你!

要么释放,要么死亡