写点什么

使 VM 迁移更安全的提示和技巧

  • 2017-03-15
  • 本文字数:2554 字

    阅读完需:约 8 分钟

John Shackleton 是 Adventium 实验室的首席研究科学家,他是在商业和政府计算环境中专注于虚拟化和系统安全性的研究和开发项目的技术主管。

不久前,John Shackleton 写了一篇文章,作者在文章中提出了一些技巧和提示,能够使得VM 的迁移更安全。

由于作者的文章中,声明了 Creative Commons Zero(CC0),InfoQ 翻译并分享。

虚拟机实时迁移对现代云环境的日常管理至关重要,但也可能是您安全中的薄弱环节。了解如何识别和避免这些常见的攻击很有必要。

搭建任何一种云的挑战是可用性与安全性之间的不断博弈。一般来说,云系统越流畅(即,使虚拟化资源更快捷、更容易地按需提供),您的系统对某些网络攻击就越开放。在活动虚拟机(VM)迁移期间,这种挑战可能最为严峻:当虚拟机从一个物理主机向另一个物理主机透明地移动时,而不会中断 VM 的操作。虚拟机实时迁移是现代云环境日常管理中的关键操作。

在大多数情况下,现代虚拟机管理程序(包括商业私有和开源)执行的 VM 迁移满足典型私有云的安全要求。然而,某些云系统可能需要额外的安全性。例如,考虑必须提供更大保证以使得在单个平台上的虚拟资源和虚拟机操作在不同(以及可能的竞争)组织之间隔离的系统。对于这些更具限制性的搭建任何一种云,VM 迁移成为公司安全配置文件中的潜在薄弱环节。这些高级安全威胁是什么样的?

针对 VM 迁移的高级网络攻击

  • 欺骗:模仿服务器以获取未经授权的访问。这实质上是传统的中间人(man-in-the-middle,MITM)攻击的变种。
  • 系统抖动:一种复杂的拒绝服务(denial-of-service,DOS)。在这种情况下,攻击者在适当的间隔故意扰乱迁移过程,因此,迁移会不断重启,从而消耗额外的计算和网络资源。另一种攻击,对于具有自动迁移作为编排级别负载平衡策略的一部分的系统,DOS 攻击会尝试强制重复的 VM 迁移以使系统资源不堪重负。
  • 强取豪夺:强制虚拟机映像(在源或目标服务器主机上)出现错误状态,目的是终端操作或泄露数据。
  • 偷天换日:在迁移过程中的精确时刻蓄意破坏,以便在源和目标主机服务器上同时产生虚拟机的有效副本。这种攻击目的在于没被发现的情况下偷走信息。

在解决每个这些攻击的可能补救措施之前,了解有关 VM 迁移更多详细资讯是有必要的。首先,在这种背景下,我们只关心活动 VM 迁移,或者不会中断 VM 迁移操作的迁移。此处不考虑停机或者掉电的 VM 迁移。此外,我们在本文描述的方法仅限于管理程序及其相关的工具包。任何安全性配置文件还必须包括硬件平台和网络基础设施,当然,有关这方面不在本文讨论范畴之内。

最后,云采用的存储类型对 VM 迁移有很大影响。通过像 iSCSI、NFS 或 FibreChannel 之类的协议的网络存储器比本地服务器存储器的配置和维护更复杂,但是也简化并加速了迁移的过程,因为 VM 映像本身通常不需要通过网络复制到单独的物理存储设备。

但是请注意,上面所列的攻击,对使用网络存储的 VM 迁移影响不大,但风险依然存在。VM 使用共享存储能大幅减少迁移时间,降低 VM 迁移时被攻击的可能,但风险依然存在。状态数据和 VM 元数据仍然必须通过网络在服务器主机之间传递,由于迁移程序本身的脆弱性 / 缺点,上述攻击仍然能捕获到迁移过程中的 VM 状态数据和元数据。

在理解基本准则之后,让我们深入探讨解决每个迁移网络攻击的基本方法。

如何解决虚拟机迁移网络攻击

欺骗:中间人攻击已得到充分的研究,现代虚拟机管理程序应该已经利用在其迁移过程中集成的正确的身份验证协议来防止这类攻击。例如,针对 Xen 平台的变种,包括用于通过证书机构相互认证的公钥基础设施支持或用于防御 MITM 攻击的共享密钥。对于任何新安装,都要验证正确的身份验证是否可用并正确配置。

系统抖动:控制在网络基础设施之内、Hypervisor 之外。使用编排软件自动化 VM 迁移以实现负载平衡,系统防御目的应该配置为防止 DOS 攻击。应该限制自动迁移请求,以防止网络堵塞,并避免单个主机过载。

强取豪夺:此攻击试图在适当的时刻中断迁移过程,以便使 VM 状态数据被损坏或被迫与源或目标服务器处的 VM 映像不同步,导致 VM 暂时或永久禁用。强取豪夺攻击可能像网络上的 DOS 攻击,或者可能由管理程序中的恶意软件执行。在这两种形式中,这种攻击测试迁移过程从间歇性故障中恢复的程度,以及迁移过程可以如何良好地回滚到先前的稳定状态。

管理工具不同,迁移恢复方案的健壮性的差异也很巨大。如论如何,有几个步骤可以将这类攻击的威胁最小化:

  • 首先,在开始迁移之前,应该定期创建重要 VM 映像的快照,以便始终有一个稳定的映像,以备灾难发生时使用。这是常见的、要重复的做法,因为它经常被遗忘。
  • 其次,许多管理程序工具包支持通过脚本定制迁移过程。XAPI 工具包具有用于迁移前和迁移后脚本的钩子,一位勤勉的系统设计者或管理员可以在源和目标主机上插入自己的恢复支持。可以添加支持来验证迁移是否成功,例如,如果发生故障,则支持恢复过程。这些脚本还提供了在成功迁移后为特定 VM 添加特殊配置支持的方法,例如调整权限或更新运行时参数。
  • 再次,也许最重要的是,当 VM 迁移完成(成功或失败)时,迁移的映像的旧脚本可能仍然挂起。对于成功迁移,脚本将保留在源服务器上,而失败的迁移尝试通常会导致目标服务器上剩余残留脚本。虽然虚拟机管理程序工具包可能在完成后删除旧的 VM 映像文件,但很少有工具包实际从磁盘存储器中擦除映像。表示 VM 映像的信息仍在磁盘上,并且容易受到恶意软件的过滤。对于具有高安全性要求的系统,因此有必要扩展工具堆以对先前表示旧 VM 映像的磁盘上的块进行归零(即填充零)或用随机值填充块。根据存储设备,也可能存在硬件支持。

偷天换日:我们可以将偷天换日攻击作为强取豪夺攻击的变种,并减轻这种威胁的方法是一样的。要使偷天换日攻击成功,所中止的 VM 迁移尝试的残留副本必须保留在目标服务器上。如果 VM 占用量立即从磁盘擦除,则此攻击的风险也大大降低。

总之,重要的是要了解主动迁移的安全隐患。在设计和配置现代云环境时,必须充分考虑迁移过程中特定攻击情形和故障情况下的系统行为。幸运的是,如果你按照上面的步骤,你能够避免与 VM 迁移相关的安全风险。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-15 17:371591
用户头像

发布了 375 篇内容, 共 191.1 次阅读, 收获喜欢 947 次。

关注

评论

发布
暂无评论
发现更多内容

智能化软件开发微访谈·第十六期:低代码/无代码开发

吴盛

低代码 快速开发 sql 无代码开发

数字化进入深水区

鲸品堂

方法论 数字化 企业数字化转型

智能安防监控系统的发展与应用

anyRTC开发者

android 监控 音视频 WebRTC RTC

基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇5:手机应用开发)

不脱发的程序猿

物联网 28天写作 3月日更 NB-IoT智慧路灯 手机应用开发

另类数据:投资中的怪咖

博文视点Broadview

金三银四了!必知必会,HTTP面试题!漫画图解超硬核!

小白debug

面试 网络编程 网络 HTTP 网络层

要求输出事故报告,线上日志文件却不见了!!

陈皮的JavaLib

Java 运维 日志框架

风暴眼中的“以太坊”堪比堵车的北京东三环,NA公链(Nirvana)NAC公链对垒胜算几何?

区块链第一资讯

区块链

智慧公安一键扫描二维码报警定位系统

13828808769

智慧交通

关于企业容器安全问题的思考

阿里巴巴中间件

基于深度学习的端到端通信系统模型

华为云开发者联盟

深度学习 端到端 编码器 通信系统 信道模型

MindSpore实践:对篮球运动员目标的检测

华为云开发者联盟

深度学习 mindspore 图像检测 yolo 篮球运动

Python基础之:Python中的IO

程序那些事

Python 人工智能 数据分析 程序那些事

初识Golang之函数及方法的多返回值

Kylin

3月日更

区块链产品宗谱链,一款记录族谱的APP

13828808769

区块链+ #区块链#

关于热力图数据上报清洗,我们做了一个有意思的尝试

阿里巴巴中间件

降维打击:数据可视化降本增效,传统制造业价值即将扭转!

一只数据鲸鱼

物联网 数据可视化 工业物联网 数字化运维 3D

金三银四,冰河为你整理了这份20万字134页的面试圣经!!

冰河

面试 面经 offer 金三银四 我要进大厂

为什么很多工程师不了解Serverless

云原生

Serverless 云原生 Knative

17张图带你搞懂ZooKeeper一致性原理!

Java小咖秀

程序员 TCP udp 传输协议

区块链电子合同签署平台,助力企业数字化转型

13828808769

区块链+ #区块链#

云端数智新引擎,腾讯云原生数据湖计算重磅发布

腾讯云大数据

大数据 数据湖

6大创新技术及2亿美元投入计划,这个活动有点料

华为云开发者联盟

人工智能 数据库 华为 云原生 HDC.Cloud

Python OpenCV 图像平移,取经之旅第 10 天

梦想橡皮擦

3月日更

EGG Network阿凡提的模式是怎么样的?早点了解别错失这个机会!

币圈那点事

区块链

是谁拖(慢)了 Redis 的后腿?

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

v01.12 鸿蒙内核源码分析(双向链表) | 谁是内核最重要结构体 | 百篇博客分析 HarmonyOS 源码

鸿蒙研究站

鸿蒙 HarmonyOS 鸿蒙内核源码分析 百篇博客分析鸿蒙 百万汉字注解鸿蒙

35岁了,还不知道,TCP为什么会粘包?【硬核图解】

小白debug

TCP 网络 协议栈 TCP/IP 网络层

聊聊LiteOS中生成的Bin、HEX、ELF三种文件格式

华为云开发者联盟

编译器 LiteOS Bin HEX ELF

大“食”代来临,后厨重地可以更“聪明”点儿

IoT云工坊

人工智能 物联网 PaaS 智慧厨房 智慧餐饮

未来几年,低代码开发平台会如何发展?

优秀

低代码

使VM迁移更安全的提示和技巧_安全_John Shackleton_InfoQ精选文章