2 puan yazan GN⁺ 2023-11-15 | 1 yorum | WhatsApp'ta paylaş

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 movsb komutuna 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 movsb komutunda 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 movs işlemine yinelenen bir rex.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 icebreak aracı 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 movsb komutunun 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

 
GN⁺ 2023-11-15
Hacker News görüşleri
  • Konrad Magnusson ekibi mimalloc ile ilgili bir sorun keşfetti.

    • Paradox Interactive'ten Konrad Magnusson, mimalloc ile 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.

    • Google'daki silifuzz ekibi 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.

    • İşlemcinin machine check exception bildirip çalışmayı durdurduğu durumdan bahsediliyor.
  • Donanım hakkındaki anlayış eksikliği fark ediliyor.

    • Donanım bilgisinin yetersiz olduğu kabul edilirken, bir komutun davranışını değiştirmek için neden "prefix" gerektiği soruluyor.
  • qemu'nun repz ret sorunuyla karşılaştığında yaptığı teşhisi hatırlatıyor.

    • qemu'nun repz ret sorununu teşhis ettiği durum hatırlanıyor.
  • Sorunu Intel'in kendi çalışanları ve Google çalışanları bildirdi.

    • Intel, bu sorunu dahili olarak keşfedip bildiren kendi çalışanlarına ve Google çalışanlarına teşekkür etti.
  • Google'ın makalesinden çok daha ilginç.

    • İlgili tartışmanın Google'ın makalesinden çok daha ilginç olduğu ifade ediliyor.
  • Sıra dışı ve spekülatif çalışan bir CPU'yu güvenlik sorunları olmadan tasarlamanın mümkün olup olmadığı sorgulanıyor.

    • Sırayla çalışmayan, bunun yerine spekülatif çalışan bir CPU tasarlanırken ortaya çıkabilecek güvenlik sorunları sorgulanıyor; gelecekte her bir A55 çekirdeğinin bağımsız olarak tek bir uygulama çalıştırdığı bir yöne gidilip gidilmeyeceği de soruluyor.
  • Intel'in güvenlik duyurusu açıklanıyor.

    • Intel'in güvenlik duyurusunda, belirli Intel işlemcilerinde beklenmeyen davranışa yol açan komut dizilerinin bulunduğu ve bunların kimliği doğrulanmış bir kullanıcının yetki yükseltme, bilgi ifşası veya hizmet reddine neden olmasına imkan verebileceği belirtiliyor.