Control Register, SMEP ve SMAP

xzh

Üye
8 Nis 2020
216
70
CR4, Control Register 4'ün kısaltmasıdır ve x86 işlemci mimarisinde kullanılan özel bir kayıttır. Bu kayıt, işlemcinin çalışma şeklini etkileyen çeşitli kontrol bitlerini içerir.
CR4 kaydının bazı önemli bitleri şunlardır:
  • Bit 20 (SMEP): Supervisor Mode Execution Prevention (SMEP) mekanizmasını etkinleştirir.
  • Bit 21 (SMAP): Supervisor Mode Access Prevention (SMAP) mekanizmasını etkinleştirir.
  • Bit 4 (PCE): Page Cache Extension (PCE) mekanizmasını etkinleştirir.
  • Bit 5 (PSE): Page Size Extension (PSE) mekanizmasını etkinleştirir.
    bypass-smep - CTF Wiki EN
  • Bit 10 (VME): Virtual Machine Extensions (VME) mekanizmasını etkinleştirir.
CR4 ve Windows Kernel:
Windows kernel, CR4 kaydını çeşitli amaçlarla kullanır. Örneğin, SMEP ve SMAP mekanizmalarını etkinleştirmek için CR4 kaydını kullanır. Ayrıca, PCE ve PSE mekanizmalarını etkinleştirmek için de CR4 kaydını kullanır.
Ek Bilgiler:
  • CR4 kaydı 32 bitlik bir kayıttır.
  • CR4 kaydına erişim, işletim sisteminin izin vermesi gerekir.
  • CR4 kaydını yanlış şekilde değiştirmek sistemin kilitlenmesine veya çökmesine neden olabilir.
Windows'ta kernel modu kodunun kullanıcı modu verilerine erişmesine veya onları çalıştırmasına engel olmak güvenlik açısından kritiktir. Bu amaçla iki önemli mekanizma kullanılır:
1. Supervisor Mode Execution Prevention (SMEP):
  • Windows 8 ile birlikte tamamen uygulanmıştır.
  • Kernel modu kodunun kullanıcı modu kodunu yürütmesini engeller.
  • CPU, kullanıcı modu adresindeki bir kodu çalıştırmaya çalışırsa istisna fırlatır.
  • CR4 kaydınının 20. biti durumunu gösterir.
  • Ret2usr saldırılarını hafifletir.
2. Supervisor Mode Access Prevention (SMAP):
  • Windows 10 1903 sürümünde kısmen uygulanmıştır.
  • Kernel modu kodunun kullanıcı modu verilerine erişmesini kısıtlar.
  • EFLAGS kaydının AC biti setlenmemişse erişim/yazma engellenir.
  • stac ve clac talimatları AC bitini ayarlar ve sıfırlar.
  • Sayfa tablosu girişlerindeki "Owner" bayrağı, sayfanın kullanıcı modu mu yoksa kernel modu mu olduğunu belirtir.
  • Bu bayrağın değiştirilmesi saldırganların kullanıcı modu verilerine erişmesine veya onları yürütmesine izin verebilir.
  • SMAP 1903 sürümünde kısmi olduğundan AC biti açık olsa da bazı dolaylı bellek erişimleri hala korunur.
  • CR4 kaydının 21. biti durumunu gösterir.
AC bayrakları, Windows'ta Supervisor Mode Execution Prevention (SMEP) ve Supervisor Mode Access Prevention (SMAP) mekanizmalarını kontrol etmek için kullanılan özel bayraklardır. Bu bayraklar, EFLAGS kaydında bulunur ve aşağıdaki gibi işlev görürler:

1. AC (Access Control) Bayrağı:
  • Bu bayrak, SMAP'ın veri erişimi kısıtlamalarını kontrol eder.
  • AC bayrağı setlendiğinde (1), kernel modu kodu kullanıcı modu verilerine erişemez.
  • AC bayrağı sıfırlandığında (0), kernel modu kodu kullanıcı modu verilerine erişebilir.
2. SMAP (Supervisor Mode Access Prevention) Bayrağı:
  • Bu bayrak, SMAP'ın etkin olup olmadığını kontrol eder.
  • SMAP bayrağı setlendiğinde (1), SMAP etkindir ve kernel modu kodu kullanıcı modu verilerine erişemez.
  • SMAP bayrağı sıfırlandığında (0), SMAP devre dışıdır ve kernel modu kodu kullanıcı modu verilerine erişebilir.
3. SMEP (Supervisor Mode Execution Prevention) Bayrağı:
  • Bu bayrak, SMEP'in etkin olup olmadığını kontrol eder.
  • SMEP bayrağı setlendiğinde (1), SMEP etkindir ve kernel modu kodu kullanıcı modu kodunu çalıştıramaz.
  • SMEP bayrağı sıfırlandığında (0), SMEP devre dışıdır ve kernel modu kodu kullanıcı modu kodunu çalıştırabilir.
Bu yazdıklarım daha çok merak uyandırdıysa aşağıdakı ek bilgileri gözden geçirmenizi tavsiye ederim.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.