王杰 译 分布式实验室
当应用程序只被部署在一台服务器上时,要保障应用程序的安全是很简单的。它只需要一个防火墙——就像孙悟空画的圈,圈里面的所有人都可以得到安全可靠的保护,但是圈外面的东东就没那么幸运了(妖魔鬼怪随时把你带走的节奏~)。防火墙就是孙大圣的金箍棒,它为你的网络(玉帝哥哥)和应用程序(其他人兽)画出了边界。
兮乎,一梦千年 ,山中方一日,世上已千年。这时代变化太快,新技术已经将基于边界的安全推向风口浪尖,现在是时候重新考虑现代云原生应用的安全性(谁去叫醒那石猴?)。
云如何影响安全性
另外,云供应商已经建立了共享安全模型——即他们和客户一起负责云安全。他们在最基本的层面上关注安全性,并采取强有力的默认措施来避免恶意软件攻击。此外,AWS Inspector和AWS Macie等工具会自动扫描云中的所有资源,以检查漏洞。虽然云供应商尽全力维护安全可靠,但安全问题通常会由于客户未能在云中很好的保护自己的资源而受到损害,例如存储未加密的机密文件,把S3搞成开放式终端或疏忽大意随意同步数据到云端[1]。
云服务是一种新的技术,所以它承担了一些关键的安全责任。但它也带来了一些维护安全的不同方法,而这些都需要我们慢慢习惯。
容器和微服务可能成为安全噩梦
首先是一切刚开始时,容器打的口号是“ 是物非心,是心非物,我就是我,不一样的烟火(containers do not contain)[2]”。Linux安全专业人员对容器之间脆弱的进程间隔离表示了强烈的不满,并且由于多个容器共享相同的宿主操作系统,因此不容易将漏洞传播到相邻容器。
然后是微服务架构的引入,其中单一应用程序被分解成多个相互依赖的服务。尽管“分而治之”的方法对于运营效率很有吸引力,但在将微服务彼此连接起来的网络中,人们会发现,任何安全专业人士都会打哈哈(不要逼我,再逼我……我就开始写简历了)。服务需要在多对多网络中相互通信——即服务网格(service mesh)。尽管它们之间的连接非常紧密,但需要有一种方法来确保每个服务都包含延迟,失败实例和安全威胁,以便即使一个服务被取消,其他服务也能执行其功能,直到受影响的服务恢复。显而易见,请求的数量和复杂的路由模式似乎都是为了支持乌托邦式的基础设施而付出的沉重的代价。如果现代云原生应用程序没有新型安全方法,尤其是网络安全性,情况将会更加严重。
特定的容器安全性
容器镜像是造成漏洞的主要原因,因为公共或共享的镜像经常被染指并且对于生产环境而言是不安全的。容器注册表的镜像扫描功能可以轻松扫描下载的所有容器镜像。他们运行对常见已知漏洞的检查,并遵循CIS Docker安全性基准。
重要的是,在运行容器时,它们需要作为非特权的非root容器运行。这可以防止漏洞传播到其他容器和主机。此外,还需要采取措施保持容镜像尽可能小——这也减少了攻击的潜在可能性。此外,确保容器生命周期短(并且不超过一周)可以使你的系统更具动态性,并且不易发生漏洞。
基于策略的网络安全
容器网络现在是一个复杂的服务网格,无法手动配置。相反,你需要一套能够根据需要自动启用授权服务之间通信的策略。像Weave,Linkerd和Project Calico这样的工具都采用了这种方法,并在容器编排的早期使用者中得到广泛采用。这对防火墙有影响。相较于有一个外围防火墙,如果它被攻破,虽然会使整个系统安全降低,但是你现在有微型防火墙,它可以保护每项服务。因此,即使其中一项服务遭到破坏,其他服务仍然安全。
威胁检测
时下可用的容器安全和监控解决方案的数量很多,并且每个解决方案都迎合了整个安全难题的一个部分。将它们集合在一起并提供全面的安全是可提供端到端监控的威胁检测工具。重要的是,在攻击过程中,它识别出可疑模式并迅速突出显示攻击的源头和范围。这需要使用机器学习进行高级数据分析,但隐藏了复杂性,同时允许安全团队利用先进的安全措施,而无需专门的数据科学团队。
集中日志
在容器时代,日志在SecOps中扮演了更为重要的角色。随着大量的容器,大量的网络请求和不断变化的状态,日志帮助详细监控所有事件。在故障排除过程中它们至关重要。 日志需要集中存储,并通过专用的日志分析工具轻松访问。像Elasticsearch这样强大的开源解决方案可以让您轻松开始对容器进行日志分析。
结论
容器镜像的特定容器安全性、基于策略的网络安全性、运行时的威胁检测以及集中的日志分析是保护微服务应用程序的新方法。莫回头(simple security固然美好),免得湿了前方要走的路。尽管微服务世界的安全边界已经变得模糊,但新的微边界可以提供以前不可能的安全级别。这个承诺值得因此而带来的所有复杂性(一沙一世界,一花一天堂)。
相关链接:
https://cloud.netapp.com/blog/synchronizing-data-to-s3-cloud-sync
https://opensource.com/business/14/7/docker-security-selinux
原文链接:https://thenewstack.io/defining-perimeter-microservices-world/