Xen热修复技术| 学习笔记

简介: 快速学习Xen热修复技术。

开发者学堂课程【虚拟化技术入门Xen热修复技术】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/374/detail/4700


Xen热修复技术


内容介绍:

Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。

它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在 Xen 上运行(但是提供对用户应用的兼容性)。

这使得 Xen 无需特殊硬件支持,就能达到高性能的虚拟化。


一、Xen 安全漏洞概要

1、总共发布125个安全漏洞

http://xenbits.xen.org/xsa

其中 xsa-108 和 xsa-123 是高危漏洞

2、XSA-108

2014年10月1日公布

可导致 Hypervisor 内存泄露给客户机

3、XSA-123

2015年3月10日公布

可导致客户机指令提权

 

二、Xen 安全漏洞的修护方式

1、冷不丁方式

(1)打补丁后重启服务器生效

(2)全部客户 VM 必须 Shutdown

(3)所有 VM 会被中断10-30分钟

(4)多半 Xen 的运营商在使用

2、热补丁方式

(1)动态应用补丁修复漏洞

(2)客户 VM 不用重启或关闭

(3)客户 VM 对修复过程无感知

(4)阿里云掌握热补丁技术

 

三、Linux 内核 Hotfix

1业内较成熟的 Hotfix方案

Ksplice by Oracle

Ksplice by Suse

Ksplice by Redhat

Ksplice by Alibaba

2内核技术的实现方式

(1)预留 Pre-Defined 接口

(2)允许插入内核 Module

(3)有权访问内核内存

(4)函数级别的替换

与内核 Hotfix 相比,Xen hyperviso Hotfix 技术挑战极大

 

四、Xen Hypervisor底层架构

image.png

 

五、Xen 热修复的挑战

1、Xen 是 Type-1 Hypervisor 内存被严格隔离;

2、Xen Hypervisor 被装载的的地址是动态的;

3、Xen Hypervisor 不支持楼莫块插入


六、如何访问 Hpypervisor 内存

image.png

1、通过 DMA 访问 Xen 内存

(1)构造 DMA 请求的能力

利用内核 Hotfix 替换 Dom0 内核的这两个函数

在新的 map_sg/unmap_sg 中加入过滤逻辑

筛选出特定的 DMA 请求,修改 DMA 目的地址

2、正常的文件读操作流程

image.png

3、热修复时文件读流程

image.png

4、计算修复代码的地址

(1)设备 DMA 只能使用物理地址

(2)Hypervisor 加载过程

(3)Hypervisor Hotfix 物理地址计算公式加载

(4)XSA-123

2月28日,安全团队发布给 Pre-disclosure List 成员

(5)修复前后汇编代码对比

修复后机器码被编译器优化严重

(6)分析、解决过程

通过分析汇编修复相关逻辑

18000多条指令,复杂性较高

(7)修复前后对比

(8)机器码补丁注入流程

确定要注入代码的物理地址

从 Hypervisor 读出相关代码的机器码(4K)

和期待的 Pattern 比较是否一致

如一致,把机器码 Patch 和读出代码 N Merge, 生成新的 Patch

暂停所有 VM 运行

把新的 Patch 通过 DMA 写回到 Hypervisor

回复所有VM 运行

VM 被暂停的时间越短越好

(9)漏洞修复应急过程

2月28日收到 Xen 安全团队通知

3月2日上午漏洞评估完成:高危

3月2日下午确定重启和热修复的方案

3月5日晚第一版热修复方案 Ready3月6日晚第二版热修复方案 Ready

3月6日晚发布到部分机器中

3月9日发布挂出公告开始发全集群3月10日漏洞公开前发布完成

 

六、小结

1、云计算业务中安全是头等大事

2、 完善的安全问题处理预案

3、热修复技术对安全运营至关重要

4、多团队协作尤为重要

 

七、课程总结

1、弹性计算是虚拟化技术的典型引用

2、虚拟化技术包括以下三点

CPU 虚拟化  内存虚拟化  IO 虚拟化

3、Xen 和 KVM 是当今最流行的开源虚拟化系统

支撑全球70%以上的云计算业务

4、Xen 安全漏洞热修复技术决定一个公司的运营能力

阿里云有全球首创的 Hypervisor 热修复技术

安全修复 xsa-108,xsa-123,毒液等恶性安全漏洞

 

八、参考资料

Intel SDM:Intel 64 and IA-32 Architectures Software Developer

Manuals

弹性计算:https://ecs-buy.aliyun.com

Xen:http://www.xen.org

Xen安全漏洞:http://xenbits.xen.org/xsa/

KVM:www.linux-kvm.org

相关文章
|
3月前
|
监控 程序员 芯片
DOS操作系统的发展历程
【10月更文挑战第15天】DOS操作系统的发展历程
90 2
|
存储 测试技术 Linux
|
8月前
|
存储 虚拟化 Anolis
Anolis OS 23.1 Alpha2 预览版:内核配置升级与软件选型新进展
Anolis OS 23.1 Alpha2 预览版本 全面集成了软件包的收敛成果和内核配置参数整理成果。
|
8月前
|
算法 Linux 调度
根基已筑!Anolis OS 23.1 预览版本搭载 Linux 6.6 内核和工具链升级完成
Anolis OS 23.1 对软件包的选择和组合进行了重新规划与决策,满足更为广泛的应用场景需求。
|
NoSQL Ubuntu Linux
掌握QEMU虚拟化技术:搭建ARM64+Linux调试环境实战指南
掌握QEMU虚拟化技术:搭建ARM64+Linux调试环境实战指南
|
存储 Linux
华为工程师发布最新补丁,实现对 AArch64 硬件的 Linux 镜像内存支持
早在 2015 年,Linux 内核就已支持 x86/x86_64 的 UEFI 镜像内存功能,而对于华为来说,为 AArch64 添加该功能也是他们一直在努力的事情。4 月 14 日,华为工程师 Wupeng Ma 发布了最新补丁集,实现了对 AArch64 硬件的这种 Linux 镜像内存支持。
256 0
华为工程师发布最新补丁,实现对 AArch64 硬件的 Linux 镜像内存支持
|
算法 测试技术 Linux
龙蜥白皮书精选:Ancert——硬件兼容性验证与守护
Ancert 支持服务器整机和 NIC、HBA、FC、GPU、NVMe 等多种外设。
|
Linux
《从 Linux 系统内核层面来解决实际问题的实战经验》电子版地址
从 Linux 系统内核层面来解决实际问题的实战经验
96 0
《从 Linux 系统内核层面来解决实际问题的实战经验》电子版地址
|
Linux 数据安全/隐私保护 芯片
国产统一操作系统UOS安装与初体验
国产统一操作系统UOS安装与初体验
1172 0
国产统一操作系统UOS安装与初体验