IBM Research创造了新的软件安全性测量方法——水平攻击概要,通过这个方法发现一个恰当配置的容器的安全性几乎与虚拟机相当。
2018年7月15日, by Steven J.Vanghan-Nichols
视频链接: https://www.zdnet.com/video/8- ... ress/
大多数人可能都会认为虚拟机(VM)要比容器更安全。但是IBM Research发现容器的安全水平其实可以等同,甚至超越虚拟机。
IBM Research的杰出工程师,顶级的 Linux 内核程序员James Bottomley表示:
“当前关于容器与hypervisor安全性的争论,最大的一个问题是没有人开发出一个明确的安全测量方法。争论都是基于定性的(hypervisor“觉得”从接口广度上比较,比容器更安全),却没人进行过明确的量化比较。“
对应这个问题,Bottomley 设计了个叫水平攻击概要(HAP)的方法,它通过客观测量的方式来描述系统的安全。通过这个方法,Bottomley发现,在加载合适的seccomp配置文件的情况下,Docker容器提供的安全性基本等同于hypervisor。在这个环境内,seccomp配置文件提供了拦截非法系统调用的作用。
Bottomley一开始定义了垂直攻击概要,这个文件包含了全部的代码,通过遍历代码可以提供完整的服务包括从数据输入,更新到输出等。像所有代码一样,这段代码也存在漏洞,而且漏洞的密度差异性随机,但遍历的代码越多,发现安全漏洞的概率就越大。堆积起来的安全漏洞的集合-应用可能从容器内跳出到物理主机或虚拟化主机层面---就是HAP集。
HAP集是最严重等级的安全漏洞。Bottomley称之为“潜在的业务毁灭事件”。那么,如何量化一个系统的HAP数呢? Bottomle解释如下:
定量方法测量HAP=Linux内核代码的缺陷密度*代码遍历产生的代码数量。
备注:这个遍历数是唯一,不重复的;是系统运行达到稳定状态后,遍历不会出现任何新的内核路径时的数据。
为了阐述这个方法,我们假定bug的密度是统一的,这样HAP差不多就等于系统稳态下,遍历过的代码数。而实际测量一个运行中的系统是另外一回事。值得庆幸的是,内核有一个称为ftrace的机制,它可以用于在给定的用户空间内,跟踪所有的函数调用,从而可得到所遍历的代码行数的合理近似数。需要强调一下,这个数不是精确数,主要是因为ftrace无法提供更细的信息,这个方法只是测量了所获取函数的代码行数,而未考虑内部代码流。除此之外,这个方法论特别适合测量容器环境,因为容器内所有的控制流,都是由已知的进程通过系统调用信息发出的。而在hypervisor环境里,测量除了直接的hypercall接口外,还必须添加后端守护进程的跟踪(如kvm vhost内核线程或Xen的dom0),所以这个方法在hypervisor内的应用效果要稍微差一些。
简而言之,先测出一个VM或容器裸系统的代码有多少行数,然后用这系统去运行一个指定的应用。系统的代码行数越多,就越有可能存在HAP级别安全漏洞。
如何去量化一个定义好的HAP集呢?Bottomley分别在如下的环境内做了测试:Docker,谷歌的gVisor,沙盒容器,gVisor-KVM,KVM的沙盒容器,Linux内置的VM hypervisor,Kata容器,开源的轻量级VM以及IBM最新发布的专应用于强应用隔离的Nabla容器。
测试内容是标准的基线测试,包括redis-bench-set,redis-bench-get,python-tornado和node-express。其中最后的2个测试需要运行Web服务器和简单外部事务客户端。
通过测试,Bottomley发现Nabla运行时的HAP要优于带有Kata技术的hypervisor。这也就意味着,我们可以构建一个容器系统,它的HAP比hypervisor更好,也意味着更安全。
除了Nabla之外,Bottomley还表示:“在精心调优过的seccomp文件的搭配下,容器提供的安全性也与hypervisor大致相当。”
比较特别的是gVisor,最好的结果与 Docker 相当,但在某一个用例测试中,结果明显很差。Bottomley推测:“这主要是因为gVisor尝试将Linux接口重写成 GO 来优化容器。但却没有人会关心系统运行时调用GO的接口数量。这可以对应上测试的结果表现。”若真是如此,Bottomley认为gVisor的后续版本必须重写才可能更加安全。
然而,真正的关键并不是那种技术本身更安全。对于最严重的安全问题,容器和VM所具备的安全等级是相当的。实际上,Bottomley认为:“比hypervisor更安全的容器,这个可能性完全存在。最终,关于哪个是更安全的技术的争论也将停止。”
他表示,“接下来,需要建立对恶意应用程序的完全暴露模型,要做到这一点,需要使用一些模糊测试。”
Bottomley的这个工作仅仅是一个开始。他证明了客观地度量应用程序的安全性是可能的。正如他所言,“我不认为这是辩论中的结束,通过描述我们所做的事情,希望其他人也能开发出好的量化测量方法。”
原文链接: https://www.zdnet.com/article/ ... -you/ (翻译:易理林)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- PC人脸识别登录,出乎意料的简单
- 我跑了ERNIE和BERT两个模型,结果出乎意料......
- 2018 Python 开发者调查报告发布,数据出乎你意料吗?
- 2018 Python 开发者调查报告发布,数据出乎你意料吗?
- Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料!
- 出人意料的性能测试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Operating System Algorithms
Nathan Adams、Elisha Chirchir / CreateSpace Independent Publishing Platform / 2017-4-21 / USD 39.15
Operating System Algorithms will walk you through in depth examples of algorithms that you would find in an operating system. Selected algorithms include process and disk scheduling.一起来看看 《Operating System Algorithms》 这本书的介绍吧!