2017-05-16 78 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

相關問題