虚拟与云环境中的拒绝服务攻击解析
1. 资源耗尽问题
虚拟和云环境的关键特性之一是弹性。这就如同材料科学中的弹性材料,有“弹性极限”或“屈服点”,超过这个点材料就会永久变形。例如拉伸橡皮筋,在一定范围内它能恢复原状,但过度拉伸就会断裂。虚拟环境同样如此,底层物理硬件在 CPU 周期、内存消耗、硬盘容量、IOPS 和网络带宽等方面的容量是有限的,且不同资源在资源耗尽时面临的风险和承受能力也不同。
- CPU :传统上,CPU 是过度分配最严重的资源之一。VMware 的一项案例研究表明,企业客户在虚拟化项目中通过整合,将 CPU 利用率从 5% - 10% 提高到了 65% - 80%。与其他资源相比,CPU 能较好地处理过度分配问题。即使在传统的裸机环境中,进程对 CPU 的总需求也可能超过可用资源,内核会像虚拟机管理程序为虚拟机分配 CPU 时间片一样,为不同进程分配时间片。
- 内存 :过度分配内存很危险,因为它是一种高速资源。一旦内存耗尽,只能将内存页面交换到磁盘,或者终止使用内存的进程或虚拟机。终止进程或虚拟机可能会造成灾难性的损害,而且从交换空间检索内存页面的速度比访问物理 RAM 慢很多。为了在无资源争用的情况下实现一定程度的内存过度分配,虚拟机管理程序采用了一些技术:
- 页面共享 :虚拟机管理程序可以找到相同的内存页面,让多个虚拟机使用同一块物理内存。如果其中一个共享页面发生更改,会复制该页面,以便更改只影响写入该内存段的虚拟机。不过不同的虚拟机管理程序在页面共享技术上存在差异。例如,VMware 以其页面共享技术