2018’deki Spectre ve Meltdown güvenlik açıkları, bilgisayar belleğini bilgisayar korsanlarının kötü amaçlı kod enjekte edip veri çalması için kolay bir hedef olarak ortaya çıkardı. Sonrasında, bir bilgisayarın önbelleğini ve RAM’ini güvence altına almak için bellek güvenli yongaların ve programlama araçlarının benimsenmesi teşvik edildi; burada programlar yürütülürken veriler geçici olarak depolanır.
Microsoft, bilgisayar korsanlarının kötü amaçlı kod enjekte etmesine veya bellekten veri çalmasına olanak tanıyan arabellek taşmaları gibi hatalardan Windows sistemlerindeki belleği koruma çabalarını hızlandırıyor. Şirket, birçok sistem uygulamasını, şirketin C++ ile yazılmış koddan kaynaklanan bellek güvenliği sorunlarını çözeceğini umduğu Rust programlama diline geçiriyor. C++ bellek açısından güvenli değildir ve arabellek taşmaları oluşturabilir.
Ayrı olarak, Haziran ayında bir grup çip üreticisi, bellekte saklanan verileri korumak için güvenli bir donanım mimarisi oluşturan CHERI Alliance adlı bir konsorsiyum kurdu.
TechInsights analisti James Sanders, bellek güvenli mimarilerin ve programlama dillerinin insan programcı hatası için olası yolları ortadan kaldırdığını söylüyor. Sanders, “C ve C++ gibi dillerde, ‘en iyi uygulamaları’ uygulayan geliştirme senaryolarında, yüksek becerili, resmi eğitimli programcılar için bile, istemeden bellek güvenliğiyle ilgili bir güvenlik açığı yaratmak son derece kolaydır” diyor.
Microsoft’un kurumsal ve işletim sistemi güvenliği başkan yardımcısı Dave Weston, Microsoft’un düzelttiği hataların yaklaşık dörtte üçünün bellek güvenliği kategorisinden olduğunu söylüyor.
Microsoft, başlangıçta PC donanımını yöneten sistem aygıt yazılımını ve yazılımını C++’dan Rust’a geçiriyor. Rust’a geçiş, donanımı güvenilir ve emniyetli hale getirmeyi amaçlayan Secure Future Initiative adlı bir programın parçası, dedi Weston.
Şirket, yeni yapay zeka bilgisayarlarında kullanıcıları doğrulayan ve biyometrik verileri koruyan Pluton adlı bir güvenlik çipini zorunlu hale getirdi.
Weston, “Pluton üzerinde çalışan gerçek zamanlı işletim sistemimizi Rust tabanlı olacak şekilde taşıdık” dedi.
CHERI’nin Riskleri Azaltma Hedefi
CHERI (Yetenek, Donanım, Gelişmiş RISC Talimatları) İttifakı, bellek için bir donanım ve yazılım koruma modeli oluşturur. İttifakın amacı, yazılım ve donanım üreticileri tarafından yaygın olarak yamalanan bellek hataları ve saldırı risklerini azaltmaktır.
Cambridge Üniversitesi’nde araştırmacı olan Franz Fuchs, CHERI’nin belleğe her erişildiğinde doğrulanan verileri kodlayarak bir bellek denetim katmanı oluşturduğunu söyledi. RISC-V Zirvesi Avrupa’da sunum Haziran ayında.
Etiketlenen veriler, bellek bölgesini, bellek türünü, kapasitelerini ve diğer bilgileri tanımlayarak, bellekteki verilere erişimi doğrular ve yetkilendirir.
Cambridge Üniversitesi bu tasarımlara dayalı olarak bellek güvenli çip mimarileri geliştirdi. Ayrıca bellek güvenli işletim sistemleri ve programlama araçları da geliştirdi.
Microsoft’tan Weston, “CHERI, hangi dili oluşturuyor olursanız olun, bellek açısından güvenli bir işletim sistemi oluşturmak için size birçok ilkel özellik sunuyor” dedi.
Ancak uzmanlar, zorlukların arasında geliştiricilerin güvenliğe öncelik veren bir zihniyete sahip olmamasının da olduğunu söyledi. Windows, C++ üzerine inşa edildi ve geliştiriciler Rust programlama diline geçmek için motive değiller.
Graz Teknoloji Üniversitesi Bilgi Güvenliği Profesörü Daniel Gruss, CPU ve GPU’lara yönelik yan kanal saldırılarının da bitmeyeceğini, bunun da belleği savunmasız bırakacağını söyledi.
“Çekirdekte Rust bize ne kadar güvenlik getirirse getirsin, bir sonraki hata türüne geçeceğiz. Bugün hala bellek güvenliği hatalarımız var,” dedi Gruss.
Tirias Research Baş Analisti Jim McGregor, bilgisayar korsanlarının GPU’lar gibi modern işlemcilerde kullanılan yeni bellek türlerine de girmenin yollarını bulduğunu söyledi.
“Talimat seti GPU’lar için farklıdır, bu da bazı zorluklara yol açabilir. Ancak, bellek bellektir, bu nedenle bellek içeriklerini okumak aynı olacaktır,” dedi McGregor.