APIC/EPIC! Intel çipleri, çekirdeğin bile görmemesi gereken sırları sızdırıyor… PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

APIC/EPİK! Intel çipleri, çekirdeğin bile görmemesi gereken sırları sızdırıyor…

İşte bu haftanın BWAIN'i, bizim şakacı terimimiz Etkileyici Adı Olan Hata.

BWAIN, yeni bir siber güvenlik açığının yalnızca ilginç ve önemli olduğu ortaya çıktığında değil, aynı zamanda kendi logosu, alan adı ve web sitesi ile ortaya çıktığı zaman verdiğimiz bir ödüldür.

Bu dublajlı ÆPIC Sızıntısı, kelimeler üzerinde bir kelime oyunu APIC ve EPİK.

Eskinin kısaltması Gelişmiş Programlanabilir Kesinti Denetleyicisive ikincisi basitçe "destansı" kelimesidir. dev, masif, aşırı, mega, muazzam.

Æ harfi, Sakson zamanlarından beri yazılı İngilizcede kullanılmamıştır. Onun adı æsc, telaffuz kül (ağaçta olduğu gibi) ve modern ASH kelimesindeki A'nın sesini hemen hemen temsil eder. Ama kelimeyi telaffuz etmeniz gerektiğini varsayıyoruz ÆRESİM burada ya “APIC-slash-EPIC” olarak ya da “ah!-eh?-PIC” olarak.

Ne hakkında?

Bütün bunlar beş büyüleyici soruyu gündeme getiriyor:

  • APIC nedirve neden buna ihtiyacım var?
  • nasıl veriye sahip olabilirsin ki çekirdek bile bakamaz mı
  • Bu destansı başarısızlığa ne sebep olur? APIC'de mi?
  • Mu ÆPIC Sızıntısı beni etkile?
  • Ne yapalım hakkında?

APIC nedir?

IBM PC'nin ilk ortaya çıktığı 1981 yılına geri dönelim.

PC, adı verilen bir çip içeriyordu. Intel 8259A Programlanabilir Kesinti Denetleyicisi, veya PIC. (Daha sonraki modellerde, PC AT'den itibaren, daha fazla kesme olayını desteklemek için birbirine zincirlenmiş iki PIC vardı.)

PIC'nin amacı, tam anlamıyla, hemen dikkat edilmesi gereken zaman açısından kritik bir şey olduğunda, bilgisayarın merkezi işlemcisinde (CPU) çalışan programı kesmekti.

Bu donanım kesintileri, aşağıdaki gibi olayları içeriyordu: klavyenin bir tuş vuruşu alması; bir karakter alan seri port; ve tekrar eden bir donanım zamanlayıcısı geçiyor.

Bu tür bir donanım kesme sistemi olmadan, işletim sisteminin gelen tuş vuruşlarını düzenli olarak kontrol etmek için işlev çağrılarıyla dolu olması gerekir; bu, kimse yazmadığında CPU gücü israfı olur, ancak yanıt vermez. yaptıklarında yeterli.

Tahmin edebileceğiniz gibi, PIC'yi kısa bir süre sonra, adı verilen yükseltilmiş bir çip izledi. APIC, Bir ileri CPU'nun kendisinde yerleşik bir tür PIC.

Bu günlerde APIC'ler klavyeden, seri bağlantı noktasından ve sistem zamanlayıcısından gelen geri bildirimden çok daha fazlasını sağlıyor.

APIC olayları, aşırı ısınma gibi olaylar tarafından tetiklenir (ve hakkında gerçek zamanlı veriler sağlar) ve çağdaş çok çekirdekli işlemcilerde farklı çekirdekler arasında donanım etkileşimine izin verir.

Ve günümüzün Intel yongaları, basitçe söylemek gerekirse, genel olarak iki farklı şekilde çalışacak şekilde yapılandırılabilir. xAPIC modu ve x2APIC modu.

Burada, xapik kesme denetleyicisinden veri çıkarmanın "eski" yoludur ve X2APIC daha modern bir yoldur.

Daha da basitleştiren xAPIC, MIOiçin kısa bellek eşlemeli giriş/çıkış, ilgili bir olayı kaydettiğinde APIC'den veri okumak için.

MMIO modunda, APIC yongasının giriş/çıkış kayıtlarını yansıtan belirli bir bellek bölgesinden (RAM) okuyarak bir APIC olayını neyin tetiklediğini öğrenebilirsiniz.

Bu xAPIC verileri, bilgisayarın fiziksel RAM'inde bir yerde 4096 baytlık bir bellek bloğuna eşlenir.

Bu, verilere erişimi kolaylaştırır, ancak APIC yongası ile sistem belleği arasında can sıkıcı, karmaşık (ve göreceğimiz gibi, potansiyel olarak tehlikeli) bir etkileşim gerektirir.

Buna karşılık, x2APIC, şunları yapmanızı gerektirir: APIC verilerini doğrudan okuyun olarak bilinenleri kullanarak çipin kendisinden Modele Özgü Kayıtlar (MSR'ler).

Intel'e göre, sürecin MMIO kısmından kaçınmak "önemli ölçüde artırılmış işlemci adreslenebilirliği ve kesinti tesliminde bazı geliştirmeler sağlar."

APIC verilerinin doğrudan çip üzerindeki kayıtlardan çıkarılması, desteklenen toplam veri miktarının ve aynı anda yönetilebilecek maksimum CPU çekirdeği sayısının MMIO modunda mevcut olan 4096 bayt ile sınırlı olmadığı anlamına gelir.

Çekirdeğin bile bakamadığı verilere nasıl sahip olabilirsiniz?

xAPIC modunu kullanırken MMIO bellek alanına giren verilerin her zaman olması gerektiği kadar dikkatli yönetilmediğini tahmin etmişsinizdir…

…ve bu nedenle, bu MMIO alanına bir tür “veri sızıntısı” bu sorunun kalbidir.

Ama sana verilen zaten sysadmin düzeyinde yetkilere ihtiyaç var ilk etapta MMIO verilerini okumak için ve bu nedenle neredeyse kesinlikle bellekteki herhangi bir veriye zaten ulaşabilirsiniz…

…neden başkalarının verilerinin APIC MMIO veri alanında yanlışlıkla görünmesi destansı sızıntı?

Bazı veri çalma veya RAM kazıma saldırılarını pratikte biraz daha kolaylaştırabilir, ancak kesinlikle teoride zaten sahip olduğunuz daha fazla bellek gözetleme yeteneği vermez mi?

Ne yazık ki, sistemdeki herhangi bir yazılım Intel'in SGX'ini kullanıyorsa bu varsayım doğru değildir. Yazılım Koruma Uzantıları.


SGX HAKKINDA DAHA FAZLA BİLGİ


SGX, birçok yeni Intel CPU'su tarafından desteklenir ve işletim sistemi çekirdeğinin, bir yerleşim bölgesi olarak bilinen şeyi oluşturmak için bir kod ve veri yığınını fiziksel bir RAM bloğuna "mühürlemesi" için bir yol sağlar.

Bu, en azından geçici olarak, şifre çözme anahtarları gibi sırları depolamak için kullanılan cep telefonlarındaki özel güvenlik yongaları gibi davranmasını sağlar.

Enclave'in SGX “kilidi” ayarlandıktan sonra, yalnızca kapatılmış bellek alanı içinde çalışan program kodu o RAM'in içeriğini okuyabilir ve yazabilir.

Sonuç olarak, enclave etkinleştirildikten sonra gerçekleşen herhangi bir hesaplamanın dahili ayrıntıları, sistemdeki diğer herhangi bir kod, iş parçacığı, işlem veya kullanıcı tarafından görülmez.

Çekirdeğin kendisi dahil.

Enklavda mühürlenmiş kodu çağırmanın bir yolu ve gerçekleştirebileceği hesaplamaların çıktısını döndürmenin bir yolu var, ancak kodu kurtarmanın, gözetlemenin veya hata ayıklamanın bir yolu yok ve Çalışırken ilişkili verileri.

Yerleşim yeri, özel bir anahtarla imzalanacak veriler gibi girdileri besleyebileceğiniz ve oluşturulan dijital imza gibi çıktıları çıkarabileceğiniz ancak kriptografik anahtarları kırpamayacağınız bir kara kutuya dönüşür. imza sürecinde kullanılır.

Tahmin edebileceğiniz gibi, bir SGX yerleşim bölgesi içinde mühürlenmesi gereken veriler yanlışlıkla xAPIC "bellek haritalı" modunu kullanırken APIC verilerini "yansıtmak" için kullanılan MMIO RAM'e kopyalanırsa…

…bu SGX'in güvenliğini ihlal eder; bu, bir SGX yerleşim bölgesi oluşturulduktan sonra hiçbir verinin, yerleşim bölgesi içinde çalışan kod tarafından kasıtlı olarak dışa aktarılmadığı sürece asla ortaya çıkmaması gerektiğini söyler.

APIC'deki bu destansı başarısızlığa ne sebep olur?

arkasındaki araştırmacılar ÆPIC Sızdıran kağıt APIC verilerini kurnaz ve olağandışı bir bellek erişimi dizisi aracılığıyla okumayı düzenleyerek keşfetti…

…işlemciyi, APIC MMIO alanını yalnızca APIC'nin kendisinden yeni alınan verilerle değil, aynı zamanda yakın zamanda CPU tarafından başka bir amaç için kullanılmış olan verilerle doldurması için kandırabilirler.

Bu davranış, APIC MMIO bellek sayfasının boyutu 4096 bayt olmasına rağmen, xAPIC modundaki APIC yongasının aslında 4096 bayt değerinde veri üretmemesi ve CPU'nun her zaman doğru şekilde etkisiz hale getirmemesi gerçeğinin bir yan etkisidir. MMIO bölgesinin kullanılmayan kısımlarını önce sıfırlarla doldurarak.

Bunun yerine, CPU önbelleğinde kalan eski veriler, APIC yongasının kendisinden alınan yeni verilerle birlikte yazılmıştır.

Araştırmacıların belirttiği gibi, böcek olarak bilinen şeye doğru kaynıyor. başlatılmamış bellek okuma, burada bir başkasının kalan verilerini RAM'de yanlışlıkla yeniden kullanırsınız, çünkü önce ne onlar ne de siz önceki sırlarından temizlediniz.

ÆPIC Sızıntısı beni etkiler mi?

Etkilenen çiplerin tam listesi için bkz. Intel'in kendi danışmanlığı.

Bildiğimiz kadarıyla 10. veya 11. nesil Intel işlemciniz varsa muhtemelen etkilenmişsinizdir.

Ancak, yepyeni bir 12. nesil CPU'nuz varsa (yazma sırasındaki en son sürüm), yalnızca sunucu sınıfı yongaların etkilendiği görülüyor.

İronik olarak, 12. nesil dizüstü bilgisayar yongalarında Intel, SGX'ten vazgeçti, bu nedenle bu hata geçerli değil çünkü sızabilecek herhangi bir "mühürlü" SGX yerleşim birimine sahip olmak imkansız.

Tabii ki, potansiyel olarak savunmasız bir çipte bile, SGX kullanan herhangi bir yazılıma güvenmiyorsanız, o zaman hata da geçerli olmaz.

Ve bug, dublajlı CVE-2022-21233, yalnızca bilgisayarınıza yerel, yönetici düzeyinde (kök) erişimi olan bir saldırgan tarafından kullanılabilir.

Normal kullanıcılar APIC MMIO veri bloğuna erişemez ve bu nedenle bir SGX yerleşim bölgesinden sızmış olabilecek gizli verileri bir yana, oradaki hiçbir şeye göz atmanın hiçbir yolu yoktur.

Ayrıca, konuk sanal makineler HyperV, VMWare veya VirtualBox gibi bir hiper yöneticide bir ana bilgisayar işletim sisteminin kontrolü altında çalışan (VM'ler) neredeyse kesinlikle bu numarayı diğer konuklardan veya ana bilgisayarın kendisinden sırları yağmalamak için kullanamaz.

Bunun nedeni, konuk VM'lerin genellikle ana bilgisayar işlemcisindeki gerçek APIC devresine erişememesidir; bunun yerine, her konuk, o VM'ye özgü kendi simüle edilmiş APIC'sini alır.

Ne yapalım?

Panik yapma.

Bir dizüstü veya masaüstü bilgisayarda, ya daha eski (ya da şanslısınız, yepyeni bir!) bilgisayarınız olduğu için ya da zaten SGX'e güvenmediğiniz için hiç risk altında olmayabilirsiniz.

Ve risk altında olsanız bile, dizüstü bilgisayarınıza admin/root olarak giren herhangi biri muhtemelen size şimdiden bir sorun dünyası yaratacak kadar güce sahiptir.

Güvenlik açığı bulunan sunucularınız varsa ve operasyonel güvenliğinizin bir parçası olarak SGX'e güveniyorsanız, Intel güvenlik danışma belgesine bakın Intel-SA-00657 koruma ve azaltma bilgileri için.

Bunu yazan araştırmacılara göre, “Intel, sorunu çözmek için mikro kod ve SGX Yazılım Geliştirme Kiti güncellemeleri yayınladı.”

Linux çekirdek ekibi de şu anda, sisteminizi her zaman x2APIC kullanacak şekilde yapılandırmanıza izin verecek bir yama üzerinde çalışıyor gibi görünüyor (daha önce hatırlayacağınız gibi, APIC verilerini paylaşılan bellek yoluyla iletmiyor), ve açılıştan sonra sistemin xAPIC moduna geri zorlanmasını zarif bir şekilde önleyecektir.


Zaman Damgası:

Den fazla Çıplak Güvenlik