Linux çekirdeğindeki yarış koşullarını yakalayan MAccConc aracı yayımlandı
Öne çıkanlar
- Bellek erişimleri veri adresi yerine çağrı sayılarıyla zenginleştirilmiş yığın izleriyle tanımlanıyor.
- İş parçacığı sıralamalarını yönlendirmek için KCOV üzerinden gecikme enjeksiyonu uygulanıyor.
- Proje için gereken derleyici desteği LLVM 23.1.0 sürümüne eklendi.
- Geliştirilen araç seti GitHub üzerinde MAccConc adıyla açık kaynak olarak paylaşıldı.
Google Project Zero araştırmacısı, Linux çekirdeğindeki yarış koşulu güvenlik açıklarını tespit etmek ve tetiklemek için geliştirdiği MAccConc adlı açık kaynak araç setini duyurdu. Çok iş parçacıklı sistemlerde ortaya çıkan yarış koşullarının klasik testlerle veya fuzzing yöntemleriyle yakalanması güç oluyor. Geliştirilen yeni araç, çekirdek genelinde bellek erişimlerini izleyerek ve yığın tabanlı gecikme enjeksiyonu uygulayarak iş parçacıklarının farklı sıralamalarla çalışmasını sağlıyor.
Araç, bellek erişim kapsamını toplamak için Linux çekirdeğinin CONFIG_KASAN_OUTLINE mekanizmasından ve KCOV altyapısından faydalanıyor. Bellek erişimleri, veri adresleri yerine fonksiyon çağrı sayılarını içeren yığın izleriyle kimliklendiriliyor. Bu yapı sayesinde farklı test çalıştırmalarında aynı bellek işlem noktaları tutarlı şekilde tespit edilebiliyor. Geliştirici, LLVM 23.1.0 sürümüne eklenen çağrı izleme yamasıyla birlikte çalışan bir terminal arayüzü, otomatik test aracı ve grafiksel kullanıcı arayüzü sundu.
Yarış koşullarını yeniden üretmek için ioctl tabanlı KCOV_SET_DI komutu üzerinden iş parçacıklarına bekleme ve uyandırma eylemleri atanabiliyor. Bu yöntem sayesinde araştırmacılar, eşzamanlı sistem çağrılarının belirli sıralamalarda gerçekleşmesini sağlayarak güvenlik açıklarını doğrulanabilir hale getiriyor. Araç setinin kaynak kodları GitHub üzerinde erişime açılırken ilgili çekirdek yamaları Linux ana hattına sunuldu.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.