私はフレーズ/用語の精度が不足していることを事前に謝罪しています...私はシステムプログラマーではありません... これはセキュリティに関するプログラミングに関する質問です。ホストオペレーティングシステム(具体的には、Windows Server 2012 x64、Redhat Enterprise 6/7 x86-64)の完全性に応じて、PCIeアドインカードの「リスク」を評価するように求められました。Windows/Linux:悪意のあるプログラムがPCIeペリフェラルのメモリマップ領域を読み書きできますか?
問題は次のとおりです。 重要なデータを処理する複数のエンベデッドプロセッサを搭載したPCIe周辺機器(アドインボード)があります。好ましいソリューションは、PCIeバスに入る前にデータを暗号化し、PCIeバスを離れた後にデータを暗号化することです...しかし、さまざまな理由(パフォーマンス、コストなど)でこれを行うことはできません。代わりに、私たちはPCIeバスを介してクリアテキスト形式でデータを渡します。
攻撃者がマシンにネットワークアクセスできるとしますが、の物理的アドレスはではないとします。ベンダーのPCIeエンドポイントデバイスがサーバにインストールされていて、ベンダの(署名済みの)ドライバが関連するハードウェアで稼働している場合、悪意のあるプロセス/スレッドがPCIメモリマップド(読み取り/書き込み) PCIeエンドポイントのスペース?
私は、pcie階層内のすべてのエンドポイントのpci設定スペースをダンプ(読み取り)できるユーティリティがあると知っています...しかし、私はそれがメモリマップウィンドウインストールされているエンドポイント(特に、エンドポイントが既にデバイスドライバに関連付けられている場合)
また、これが可能であれば、どの程度難しいですか? 私たちはこれを行うことができるユーザスペースプログラムについて話しているのですか、攻撃者がマシンのルート/管理者アクセス権を持っている必要がありますか(設計プログラムを実行するか、偽の/プロキシドライバをインストールしますか?
また、仮想化では違いがありますか?
ありがとうございます!したがって、ベンダーのデバイスドライバがPCIeペリフェラル用にすでにインストールされて列挙されている場合、他の(悪意のある)デバイスドライバは、ペリフェラルのメモリマップスペースをハイジャックしてアクセスすることはできません。他のプログラムは、周辺機器のメモリマップデバイスレジスタにアクセスできません。私はPCIeデバッグツールについて心配しています(これは、同じPC上で動作し、ペリフェラルのメモリ空間を覗き見ることができます) – user8017335
次のドキュメントを参照してください。https://msdn.microsoft.com/ en-us/library/windows/hardware/ff554389(v = vs.85).aspx – arboreal84