8.2. PCI Passthrough

PCI 透传允许实例直接访问节点上的某一硬件。例如,这可用于允许实例访问提供用于高性能计算的计算统一设备架构(CUDA)的视频卡或 GPU。此功能涉及到两种类型的安全风险:直接内存访问和硬件 infection。

直接内存访问(DMA)是一种功能,允许某些硬件设备访问主机计算机中的任意物理内存地址。通常,视频卡具有此功能。但是,不应为实例授予任意物理内存访问,因为这会为主机系统和其他运行在同一节点上的实例的完整视图。硬件供应商使用输入/输出内存管理单元(IOMMU)来管理 DMA 访问。您应该确认 hypervisor 已配置为使用此硬件功能。

当实例对固件或设备的其它部分进行恶意修改时,会出现硬件 infection。由于此设备被其他实例或主机操作系统使用,恶意代码可以分散到这些系统中。最终结果是一个实例可以在其安全区外运行代码。这很严重,因为重置物理硬件的状态比虚拟硬件更困难,并可能导致额外的暴露,如对管理网络的访问。

由于与 PCI 透传关联的风险和复杂性,应默认禁用它。如果为特定需求启用,则需要有适当的进程,以帮助确保在重复使用前清除硬件。