web-dev-qa-db-ja.com

IOMMUは、PCIネットワークカード/サウンドカードDMAを介したマルウェア挿入から保護しますか?

私はこれについて読んだところです: https://www.tripwire.com/state-of-security/security-data-protection/backdoors-hardware-attacks-rakshasa-malware/

タイトルの質問のほかに、次の質問も追加したいと思います。

  • サウンドカードのファームウェアをフラッシュして、DMA=を介して悪意のあるコードをロードするか、Windowsマシンで高い権限を持つオーディオドライバーを制御して、C2に連絡させることができますか?サーバ?

これがすべて可能であれば、感染したPCIeサウンドカードを事実上すべてのPCに接続するだけで、WindowsまたはLinuxを実行している可能性があります。BIOSで実際に有効に設定したり、intel_iommuを設定したりするなど、IOMMUの有効化および適切な構成にもかかわらず、すでに侵害されている可能性があります。 = on/AMD_iommu = Linuxでオン?これは、サウンドカード以外のすべてがクリーンであることを前提としています。

2
Resonce

IOMMUは、測定されたブートと組み合わせない限り、それに対して保護しません。 IOMMUは不正なDMAから保護しますが、それは初期化された後にのみ適用されます。特に、メジャードブートを有効にする必要があるため、TPMが必要です。 SRTMおよびDRTM と呼ばれる2種類の測定されたブートがあります。前者はシステムの起動中にファームウェアを1回測定しますが、後者は実行時にソフトウェアの一部を測定します。 early DMA attack から保護するために、測定にはSRTMだけでなく、DRTMを使用する必要があります。通常、これには手動設定が必要です。

保護されていないメモリ領域でIOMMU構成テーブル(DMAR)が初期化されるため、IOMMUは初期ブート中に脆弱です。構成のロードからIOMMUの有効化までの短い期間に、悪意のあるデバイスがそれらを変更し、提供されているはずの保護が無効になる可能性があります。これは IOMMU保護のバイパス に関する研究論文で説明されています。

これは、悪意のある、または侵害されたPCIeカードがすでにインストールされているシステムを起動した場合のリスクのみです。システムがオンになっているときにプラグインされている場合、またはシステムがオンになっているときに既存のカードが(JTAGなどを介して)侵害されている場合、デバイスが悪意のあるDMAリクエストを発行しないように、適切に構成されたIOMMUで十分です。 。これには、BIOSに含まれているACPIテーブルである、機能的な DMA Remapping テーブルまたはDMARが必要です。 DMARが壊れている場合、これは特定のラップトップでよくあることですが、intel_iommu=onまたはAMD_iommu=onを介してIOMMUを有効にすると、システムが正しく起動しない場合があります。

3
forest