Dublajlı yeni bir donanım saldırısı PACMAN Apple’ın M1 işlemci yonga setlerine karşı kanıtlanmıştır, bu da kötü niyetli bir aktörü macOS sistemlerinde rastgele kod yürütme becerisiyle donatma potansiyeline sahiptir.
MIT araştırmacıları Joseph Ravichandran, Weon Taek Na, Jay Lang ve Mengjia Yan, “önemli bir bellek koruma mekanizmasını, işaretçi bütünlüğünü zorlamak için kullanılan bir güvenlik özelliği olan ARM İşaretçi Kimlik Doğrulaması’nı atlamak için spekülatif yürütme saldırılarından” yararlanır. söz konusu yeni bir kağıtta.
Araştırmacılar, “PACMAN tarafından kullanılan donanım mekanizmalarının yazılım özellikleriyle yamalanamamasına rağmen, bellek bozulması hataları olabilir” diye ekledi.
Güvenlik açığı, işaretçi kimlik doğrulama kodlarında (PAC’ler), arm64e mimarisinde tanıtılan ve beklenmeyen değişiklikleri algılamayı ve bunlara karşı koruma sağlamayı amaçlayan bir savunma hattı işaretçiler — bir hafıza adresini saklayan nesneler — hafızada.
PAC’ler, kod yürütmeyi saldırgan tarafından kontrol edilen rastgele bir konuma yeniden yönlendirmek için genellikle bellekteki denetim verilerinin (yani işaretçiler) üzerine yazılarak yararlanılan bellek bozulması güvenlik açıkları gibi yazılım güvenliğinde yaygın bir sorunu çözmeyi amaçlar.
Adres Alanı Düzeni Rastgeleleştirme (ASLR) arabellek taşması saldırılarını gerçekleştirmenin zorluğunu artırmak için tasarlanmışsa, PAC’lerin amacı “minimum boyut ve performans etkisine sahip işaretçilerin geçerliliğini” tespit etmek ve bir saldırganın bir istismarda kullanılmak üzere geçerli işaretçiler oluşturmasını etkili bir şekilde engellemektir.
Bu, bütünlüğünü sağlamak için bir işaretçiyi, İşaretçi Kimlik Doğrulama Kodu (PAC) adı verilen bir şifreleme karmasıyla koruyarak elde edilir. Elma açıklar PAC’ler aşağıdaki gibidir –
İşaretçi kimlik doğrulaması, işaretçiyi saklamadan önce işaretçinin kullanılmayan yüksek dereceli bitlerine şifreleme imzası (veya PAC) eklemek için özel bir CPU talimatı sunarak çalışır. Başka bir talimat, işaretçiyi bellekten geri okuduktan sonra imzayı kaldırır ve kimliğini doğrular. Yazma ve okuma arasında saklanan değerde yapılacak herhangi bir değişiklik imzayı geçersiz kılar. CPU, kimlik doğrulama başarısızlığını bellek bozulması olarak yorumlar ve işaretçide yüksek dereceli bir bit ayarlayarak işaretçiyi geçersiz kılar ve uygulamanın çökmesine neden olur.
Ancak PACMAN, “işaretçi kimlik doğrulaması kullanılarak korunan bir platformda kontrol akışını ele geçirme saldırılarını gerçekleştirmenin önündeki birincil engeli kaldırıyor.” Güvenlik özelliğini atlatmak için bellek bozulmasını ve spekülatif yürütmeyi birleştirir ve “herhangi bir çökmeye neden olmadan mikro mimari yan kanallar aracılığıyla PAC doğrulama sonuçlarını” sızdırır.
Özetle saldırı yöntemi, doğru bir PAC ile yanlış karma arasında ayrım yapmayı mümkün kılar ve kötü bir oyuncunun çökmeleri bastırırken “doğru PAC değerini kaba kuvvetle kullanmasına ve bir PA-etkinleştirilmiş bir kontrol akışı kaçırma saldırısı oluşturmasına izin verir. kurban programı veya işletim sistemi.”
Kilitlenme önleme, kendi adına başarılıdır, çünkü her bir PAC değeri, zamanlama tabanlı bir yan kanaldan çeviri arabelleği aracılığıyla yararlanılarak spekülatif olarak tahmin edilir (TLB) bir Prime+Probe saldırısı kullanarak.
Spectre ve Meltdown örneğinde gözlemlenen spekülatif yürütme güvenlik açıkları, sıra dışı yürütmetarafından modern mikroişlemcilerde bir performans artışı sağlamak için kullanılan bir tekniktir. tahmin bir programın yürütme akışının en olası yolu.
Bununla birlikte, tehdit modelinin, bir kurban programında (çekirdek) zaten yararlanılabilir bir bellek bozulması güvenlik açığı olduğunu varsaydığını ve bunun da, ayrıcalığı olmayan saldırganın (kötü amaçlı bir uygulama) belirli bellek konumlarına hileli kod enjekte etmesine izin verdiğini belirtmekte fayda var. kurban süreci.
Araştırmacılar, “Bu saldırı, işaretçi kimlik doğrulaması içeren gelecekteki işlemcileri uygulamak isteyen tasarımcılar için önemli etkilere sahip ve gelecekteki kontrol-akış bütünlüğü ilkellerinin güvenliği için geniş etkilere sahip” dedi.