2017-05-16 27 views
1

对于我的短语/术语缺乏精确性,我提前表示歉意......我不是系统程序员,无论如何...... 这是一个安全相关的编程问题......在工作中,我已经被要求根据主机操作系统(特别是Windows Server 2012 x64和Redhat Enterprise 6/7 x86-64)的完整性评估PCIe附加卡的“风险”。Windows/Linux:恶意程序可以读取/写入PCIe外设的内存映射空间吗?

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

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

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

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

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

回答

0

访问设备内存需要在比userland软件(也称为内核模式)更低的保护环中进行操作。访问它的唯一方法是通过驱动程序或内核。

+0

谢谢!因此,听起来好像您在说供应商的设备驱动程序是否已经安装并枚举了PCIe外设,那么没有其他恶意设备驱动程序可以劫持和访问外设的内存映射空间。其他程序无法访问外设的存储器映射设备寄存器?我很担心PCIe调试工具(它可能在同一台PC上运行,可以窥探外设的内存空间。) – user8017335

+0

请参考以下文档:https://msdn.microsoft.com/ EN-US /库/窗/硬件/ ff554389(v = vs.85)的.aspx – arboreal84

相关问题