Ana Sayfa

C ve C++'ta Bellek Güvenliği: CHERI Yetenekleri ile Tam Koruma

1 dk okuma

C ve C++ gibi sistem seviyesi dillerdeki bellek güvenliği eksikliği, sürekli yeni yazılım güvenlik açıklarına ve sömürü tekniklerine yol açmaktadır. Geleneksel bellek modelleri, nesne odaklı bir yaklaşımdan ziyade doğrusal bir bayt dizisi varsaydığından, uzamsal güvenlik ihlallerini (bir nesnenin sınırlarını aşma) önleyemez. Bu durum, sömürülebilir zafiyetlerin temel nedenidir ve yıllar içinde önerilen ve uygulanan birçok hafifletme tekniği kök sorunu çözememektedir.

Bu soruna umut vadeden bir çözüm olarak CHERI (Capability Hardware Enhanced RISC Instructions) öne çıkmaktadır. CHERI, mevcut işlemci mimarilerini yeteneklerle genişleterek tüm bellek erişimleri için donanım destekli kontroller sağlar ve uzamsal bellek ihlallerini engeller. Bu teknik rapor, CHERI yeteneklerini tüm işaretçiler için kullanarak, geleneksel olarak güvensiz kabul edilen diller için eksiksiz uzamsal bellek koruması sağlayan saf yetenek tabanlı bir programlama modelini prototiplemekte ve değerlendirmektedir.

Çalışma, bellek güvenliğine ulaşmak için önce dil tarafından görülebilen tüm işaretçilerin yetenek olarak uygulanmasını analiz eder ve mevcut kodlarla güçlü kaynak seviyesi uyumluluk sağlamak için saf yetenek tabanlı programlama modelini geliştirir. İkinci olarak, işlev çağrıları ve genel değişken erişimleri gibi dil tarafından görünmeyen işaretçilerin de korunması gerektiğini vurgular ve performans ile ayrıcalık minimizasyonu arasındaki dengeyi inceler. Son olarak, aynı nesnenin alanları arasındaki arabellek taşmalarına karşı koruma sağlayan ve CHERI'nin uzamsal bellek korumasını eksiksiz hale getiren yenilikçi ve uyumlu bir teknik olan CheriSH'i sunar. CHERI'nin saf yetenek tabanlı kod ile sağladığı bayt-tanecikli uzamsal güvenliğin diğer yaklaşımlardan çok daha güçlü olduğu belirtilmektedir.

İçgörü

Bu çalışma, C ve C++ gibi sistem seviyesi dillerdeki kronik bellek güvenliği sorunlarına, donanım tabanlı CHERI yeteneklerini kullanarak kapsamlı ve kalıcı bir çözüm sunarak yazılım zafiyetlerini kökten engelleme potansiyeli taşıyor.

Kaynak