Reptar
(lock.cmpxchg8b.com)CPU gizeminin keşfi
- Modern CPU'ların içinde ortaya çıkabilen hatalarla ilgileniyorsanız okumaya devam etmeniz önerilir.
- x86 assembly yazma deneyiminiz varsa, belleği taşımak için kullanılan
rep movsbkomutuna aşina olabilirsiniz. - Kaynak, hedef, yön ve sayıyı ayarladıktan sonra işlemcinin tüm ayrıntıları ele almasına izin verilir.
Komut öneki yorumlama
- x86'in özelliklerinden biri, komut çözümlemesinin genel olarak çok esnek olmasıdır.
- Anlamsız olan veya başka öneklerle çakışan önekler kullanılsa bile çoğu zaman yok sayılır.
- Derleyiciler, istenen hizalama sınırına uymak için gereksiz önekler kullanabilir.
REX öneki
- i386'da 8 genel amaçlı yazmaç vardı ve yazmaç belirtmek için 3 bit yeterliydi.
- x86-64, 8 ek genel amaçlı yazmaç sunduğu için daha fazla bite ihtiyaç duyuldu.
- rex öneki, sonraki komutun ek bitler ödünç alabilmesini sağlayarak 16 genel amaçlı yazmaç kodlamasını mümkün kılar.
Kodlama kuralları
- rex öneki, işlenenleri kodlamak için kullanılabilir alanı artırır.
- Gereksiz veya yinelenen önekler x86'da çoğunlukla yok sayılır.
rex.rxb rep movsbkomutunda işlenen olmadığından rex bitlerinin bir anlamı yoktur ve işlemci rex önekini yok sayar.
Hızlı kısa tekrar taşıma (Fast Short Repeat Move, FSRM)
- FSRM, Ice Lake'te tanıtılan ve ERMS'nin eksiklerini gidermeyi amaçlayan yeni bir özelliktir.
- ERMS'de verimli string taşımanın zor kısmı, tamponu hizalayıp mümkün olan en geniş depolamayı kullanmaktır.
- FSRM, 128 bayt ve altındaki kısa string'leri daha hızlı taşımayı hedefler.
Keşif
- İşlemci doğrulama tekniği olan Oracle Serialization kullanılarak, rastgele üretilen programların iki biçiminin aynı son duruma sahip olup olmadığı kontrol edildi.
- Ağustos ayında doğrulama hattı, FSRM için optimize edilmiş
rep movsişlemine yinelenen birrex.röneki eklendiğinde öngörülemeyen sonuçlara yol açan bir örnek keşfetti. - Çok çekirdeğin aynı hatayı tetiklediği durumda işlemcinin machine check exception bildirip durduğu doğrulandı.
Yeniden üretim
- Araştırma sonuçları güvenlik araştırma deposunda yayımlandı.
- Açığı yeniden üretmek için
icebreakaracı kullanılabilir. - Etkilenmeyen sistemlerde hiçbir çıktı olmamalıdır; etkilenen sistemlerde ise her başarılı yeniden üretimde
.yazdırılır.
Analiz
- Modern sistemlerde mikrokodun nasıl çalıştığı gizli tutulduğundan, yalnızca gözleme dayalı teoriler üretmek mümkündür.
- Hatanın, frontend'in
movsbkomutunun boyutunu yanlış hesaplamasına neden olarak ROB (reorder buffer) içindeki sonraki girdilerin yanlış adreslerle ilişkilendirilmesine yol açtığı tahmin ediliyor.
Sorular
- Bu beklenmedik "glitch" durumunda nelerin mümkün olduğuna dair sorular ortaya çıkabilir.
- Sistem durumunun machine check hatası tetikleyecek kadar bozulabildiği ve bir thread'in SMT kardeş işlemcinin yürütmesini etkileyebildiği biliniyor.
- μop yürütümünü hata ayıklamanın bir yolu olmadığından, yetki yükseltmenin mümkün olup olmadığı bilinmiyor.
Çözüm
- Intel, etkilenen tüm işlemciler için güncellenmiş mikrokod yayımladı.
- İşletim sistemi veya BIOS sağlayıcınız bu güncellemeyi zaten sunuyor olabilir.
Alternatif
- Güncelleme mümkün değilse, IA32_MISC_ENABLE model-specific register üzerinden fast strings devre dışı bırakılabilir.
- Bu ciddi performans düşüşüne yol açtığı için yalnızca kesinlikle gerekli olduğunda kullanılmalıdır.
GN⁺ görüşü
Bu yazının en önemli noktası, modern CPU'larda ortaya çıkabilen beklenmedik "glitch" durumlarının keşfedilmesi ve bunların güvenlik açıklarına yol açabileceğinin gösterilmesidir. Yazı, yazılım mühendisleri için ilgi çekici olabilir ve CPU'ların karmaşıklığı ile sistemlerin kırılganlığına dair farkındalığı artırmaya katkı sağlar. Ayrıca bu tür keşiflerin gerçek güvenlik tehditlerine nasıl dönüşebileceğini anlamaya yardımcı olur ve güncellenmiş mikrokodun önemini vurgular.
1 yorum
Hacker News görüşleri
Konrad Magnusson ekibi
mimallocile ilgili bir sorun keşfetti.mimallocile ilgili bir issue buldu; bunun Google araştırmacılarının keşfettiği yeni CPU zafiyetiyle bağlantılı olabileceği düşünülüyor.Google içinde birden fazla araştırma ekibi hatayı birbirinden bağımsız olarak keşfetti.
silifuzzekibi ve Google Information Security Engineering ekibi dahil olmak üzere birden fazla araştırma ekibi aynı hatayı bağımsız şekilde buldu.İşlemci machine check exception bildirip duruyor.
Donanım hakkındaki anlayış eksikliği fark ediliyor.
qemu'nunrepz retsorunuyla karşılaştığında yaptığı teşhisi hatırlatıyor.qemu'nunrepz retsorununu teşhis ettiği durum hatırlanıyor.Sorunu Intel'in kendi çalışanları ve Google çalışanları bildirdi.
Google'ın makalesinden çok daha ilginç.
Sıra dışı ve spekülatif çalışan bir CPU'yu güvenlik sorunları olmadan tasarlamanın mümkün olup olmadığı sorgulanıyor.
Intel'in güvenlik duyurusu açıklanıyor.