SMRAM not locked (D_LCK / SMRAMC)¶
Firmware
SMRAMCregister'ındakiD_LCKbit'ini hiç set etmezse, compatibility SMRAM (CSEG) decode'u ring 0'dan yeniden açılabilir; bu da CPU SMM'de değilken OS'un SMM belleğini okuyup yazmasına imkân verir.
Mechanism¶
Kilitsiz bir decode kontrolü SMM belleğini açığa çıkarır
Compatibility SMRAM (CSEG) decode ve erişimi SMRAMC register'ı üzerinden
yapılandırılır. İlgili iki bit:
D_OPEN: set edildiğinde, SMRAM SMM dışında bile decode edilir/erişilebilir.D_LCK: set edildiğinde, SMRAMC yapılandırmasını kilitler —D_OPENartık değiştirilemez ve SMRAM korumalı kalır.
BIOS'un, decode dondurulmuş şekilde kapalı kalsın diye D_LCK'yi erken set
etmesi beklenir. Etmezse, ring-0 software D_OPEN'ı kendisi set edip ardından
CPU normal mode'dayken SMRAM bölgesini okuyup yazabilir — SMM secret'larını
doğrudan okuyarak ya da bir SMM rootkit yerleştirerek. Bozulan invariant:
"SMRAM yalnızca SMM'de yürütülürken erişilebilirdir." Bu yapılandırma sorunu
2006 tarihli Security Issues Related to Pentium System Management Mode
makalesine dayanır. CHIPSEC'in common.smm modülü SMRAMC'yi okur ve D_LCK'nin
set edildiğini kontrol eder.
Walkthrough¶
Yorumlama:
[+] D_LCK is set, SMRAM is locked -> PASS
[-] D_LCK is not set; SMRAM can be accessed
even when the CPU is not in SMM -> FAIL
FAIL veren bir platformda kavramsal istismar (savunma amaçlı):
1. From ring 0, set SMRAMC[D_OPEN] (D_LCK was never set, so this is allowed).
2. SMRAM (CSEG) now decodes in normal mode -> read SMM code/data or write it.
Kilitsiz bir platformda beklenen sonuç: OS'tan keyfi SMRAM okuma/yazma; kilitli
bir platformda D_OPEN değiştirilemezdir ve erişim reddedilir.
Detection¶
D_LCK'nin set edilmediğini raporlayan CHIPSECcommon.smm.- SMRAMC lock durumunu kapsayan firmware attestation'ı.
Mitigation¶
- Firmware, boot'un erken aşamasında
SMRAMC[D_LCK]'yi set etmelidir; satıcı güncellemelerini uygulayın. - Bu yalnızca legacy CSEG'i kilitler; modern TSEG SMRAM ek olarak SMRR ve DMA protection ile korunur — tamamlayıcı kontroller için bkz. SMRR misconfiguration ve SMRAM cache-poisoning.