Physical Memory Please: Memory-Aliasing Attacks on RISC-V PMP (PMPlease)¶
PMPlease, BadRAM tarzı fiziksel memory-aliasing'i RISC-V'ye taşır; sahte bir DRAM (DIMM) konfigürasyonunun korunan fiziksel adresleri alias'layabileceğini ve Keystone gibi TEE'lerin dayandığı PMP tabanlı isolation'ı tamamen bypass edebileceğini gösterir.
Mechanism¶
Sınır neden kırılıyor
RISC-V Physical Memory Protection (PMP), firmware ve enclave belleğini çitleyen M-mode primitive'idir: küçük bir PMP entry kümesi fiziksel adres aralıklarını ve onları read/write/execute etmeye izin verilen privilege seviyelerini tarif eder. Trusted-execution framework'leri (örn. Keystone), enclave isolation'ını ve remote attestation'ı bu PMP kurallarının üstüne kurar.
PMP, mantıksal fiziksel adresler üzerinden — CPU'nun emit ettiği adresler — akıl yürütür. Bir adres ile bir DRAM hücresi arasında bire-bir bir map'i üstü kapalı olarak varsayar. Bir memory-aliasing saldırısı (x86 BadRAM'ın RISC-V karşılığı) bu varsayımı kırar: bir DIMM'in SPD konfigürasyonu ile, modülün daha büyük bir kapasite veya yeniden map'lenmiş rank/bank/row geometrisi raporlaması için oynayarak, iki farklı fiziksel adresin aynı alttaki DRAM hücresine çözülmesi sağlanabilir. Saldırgan, korunan secret'a PMP-korumalı aralığın dışına düşen bir alias address üzerinden erişir; böylece M-mode kontrolü geçerken okunan/yazılan veri korunan olandır. Security sınırı yalnızca, PMP'nin koruduğu fiziksel address space bellekle sadakatle bire-bir olduğu sürece tutar — PMP'nin kendisinin doğrulayamadığı bir özellik.
Walkthrough¶
Yüksek seviyeli, kavramsal (uASC '26 makalesinden ve onun herkese açık artifact'inden):
- DRAM adresleme'yi profille. Saldırganın hangi alias'ın korumalı bir bölgeyi hedeflediğini bilmesi için fiziksel adreslerin rank/bank/row'a nasıl map'lendiğini belirleyin.
- Sahte bir DIMM konfigürasyonu yerleştir. Firmware'in, korumasız bir adresin bir PMP-korumalı adresi alias'ladığı bir geometri görmesi için modülün SPD'sini yeniden programlayın.
- Alias üzerinden eriş. Alias address'e sıradan load/store'lar yayınlayın. PMP, alias (korumasız) aralığını değerlendirir ve ona izin verir, ama işlem korunan hücreye düşer — korumalı bölgeye read ve/veya write sağlar.
- Bir TEE'ye karşı uçtan uca. Keystone'a uygulanan aliasing primitive'i, tüm enclave belleğini ifşa eder ve saldırganın remote-attestation zincirini forge etmesine veya zayıflatmasına izin verir; çünkü measure/seal edilen materyal artık gizli değildir.
Yalnızca kavramsal şekil
Yayınlanan artifact, rank/bank profilleme ve proof-of-concept aliasing script'lerini içerir. Bu kayıt geometri sabitlerini ve platform başına offset'leri kasıtlı olarak atlar; bir savunucu için çıkarım şudur: platformun CPU'nun fiziksel-adres soyutlamasının altında izin verdiği herhangi bir address-aliasing, PMP'nin garantisini geçersiz kılar.
Warning
Bu bir fiziksel/firmware-trust saldırısıdır: bir DIMM'i yeniden yapılandırma (veya aliasing'i başka bir şekilde tetikleme) yeteneğini varsayar. Bir PMP logic bug'ı gerektirmez — PMP kuralları doğrudur, ama artık bire-bir olmayan bir address space'i korurlar.
Detection¶
- Boot-time topoloji kontrolü. Raporlanan DRAM geometrisini (SPD kapasitesi, rank/bank layout'u) beklenen, attest edilmiş bir baseline'a karşı karşılaştırın; reklam ettiği kapasitesi fiziksel olarak mevcut kapasiteyi aşan modülleri işaretleyin (BadRAM tarzı spoofing'in bir alameti).
- Aliasing self-test'i. Erken firmware bring-up sırasında ayrı fiziksel adreslerin gözlemlenebilir biçimde alias'layıp alias'lamadığını (write-here/read-there) yoklayın.
- Sahadaki sistemlerde, açıklanamayan enclave-integrity veya attestation başarısızlıkları ya da PMP bölgelerinin M-mode-untrusted context'lerden writable gibi davranması, araştırmaya değer anormalliklerdir.
Mitigation¶
- Boot'ta firmware DIMM-validation'ı (makalenin savunması): security monitor / firmware, PMP-destekli isolation'ı etkinleştirmeden önce DRAM konfigürasyonunu measure eder ve doğrular; software-driven aliasing'i mümkün kılan sahte veya aşırı büyük geometrileri reddeder.
- Remote attestation'ı doğrulanmış memory topolojisine bağlayın; böylece spoof edilmiş bir DIMM sessizce attestation'ı geçemez.
- Herhangi bir PMP tabanlı TEE için fiziksel DRAM tampering'ini threat model'inde ele alın; secure/measured boot ve memory modülleri üzerinde supply-chain kontrolleriyle birleştirin.
- Bilinen-bypass uyarısı: firmware kontrolü software kaynaklı aliasing'i yener ama yeterince yetenekli bir fiziksel saldırganı (örn. interposer hardware) durdurmaz. PMP mantıksal olarak sağlam bir primitive olarak kalır; boşluk, doğrulanmamış address-to-cell mapping'idir.
Ayrıca side channel'lar ve fault injection yoluyla RISC-V isolation-bypass araştırmasına ve Dorami'deki privilege-separated monitor tasarımına da bakın.