Marble Madness projesi 40 yıllık Atari güvenlik açığını ortaya çıkardı
Öne çıkanlar
- Marble Madness oyunu MAME referans alınarak TypeScript dilinde fonksiyon bazında yeniden yazıldı.
- Motorola 68010 işlemcisinin komut önceden getirmesi Atari Slapstic çipinde yan kanal etkisi yarattı.
- Önceden getirme adreslerinin durum makinesine eklenmesiyle karelerdeki bellek uyuşmazlığı giderildi.
Geliştirici Marco Magnocavallo, 1984 yapımı klasik atari oyunu Marble Madness'ı TypeScript dilinde sıfırdan yeniden yazarken Atari Slapstic güvenlik çipinde belgelenmemiş bir yan kanal davranışı keşfetti. Marble Love adlı projede oyun kodları fonksiyon bazında taşındı ve her karedeki bellek durumu MAME emülatörü ile bayt seviyesinde karşılaştırıldı.
Farklılık testleri sırasında 12950 numaralı karede ortaya çıkan 126 baytlık bellek uyumsuzluğu incelendiğinde, Motorola 68010 işlemcisinin komut önceden getirme mekanizmasının çipin durum makinesini etkilediği görüldü. Atari System 1 kartuşlarında korsan koruması ve bellek bankası değişimi için kullanılan Slapstic çipi, korumalı bellek aralığı dışındaki önceden getirme adreslerini de veri yolu üzerinden gözlemleyerek beklenmeyen bir bellek bankasına geçiş yaptı.
İşlemcinin önceden getirdiği adreslerin durum makinesine dahil edilmesiyle MAME ile olan bellek farkı sıfırlandı. Bu donanım yan kanalının daha önce MAME kaynak kodlarında veya Slapstic teknik belgelerinde yer almadığı belirtildi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.