Windows / Linux:恶意程序可以读/写PCIe外设的内存映射空间吗?

时间:2017-05-16 05:07:08

标签: security device-driver

我提前道歉,因为我的措词/术语缺乏精确性......我不是任何系统程序员...... 这是一个与安全相关的编程问题......在工作中,我被要求评估"风险"到PCIe附加卡,具体取决于主机操作系统的完整性(特别是Windows Server 2012 x64和Redhat Enterprise 6/7 x86-64。)

所以我的问题是: 我们有一个PCIe外设(附加板),它包含几个可处理敏感数据的嵌入式处理器。首选的解决方案是在数据进入PCIe总线之前对其进行加密,并在数据离开PCIe总线后对其进行解密......但出于各种原因(性能,成本等)我们无法做到这一点。 。)相反,我们将通过PCIe总线以明文形式传递数据。

让我们假设攻击者可以通过网络访问本机,但不能访问物理。如果供应商的PCIe端点设备安装在服务器中,并且供应商的(已签名)驱动程序已启动并与相关硬件一起运行,则恶意进程/线程是否可以访问(读取) / write)PCIe端点的PCI内存映射空间?

我知道有些实用程序允许我转储(读取)pcie层次结构中所有端点的pci配置空间...但我不知道是否扩展到读取和写入内存映射窗口内已安装的端点(特别是如果端点已与设备驱动程序关联。)

另外,如果可以的话,有多难? 我们是在讨论能够执行此操作的用户空间程序,还是要求攻击者拥有对计算机的root / admin访问权限(运行他的设计程序,或安装假/代理驱动程序。)? / p>

此外,虚拟化是否有所作为?

1 个答案:

答案 0 :(得分:0)

访问设备内存需要在比用户空间软件更低的保护环中运行,也称为内核模式。访问它的唯一方法是通过驱动程序或内核。