CVE-2023-2163: eBPF Linux çekirdek açığının keşfi ve düzeltilmesi
Arka plan
- eBPF, karmaşık çekirdek modülleri yazmadan Linux çekirdeğinin işlevlerini çalışma zamanında genişletmeyi sağlayan bir teknolojidir.
- eBPF programları belirli olaylar gerçekleştiğinde çalışır ve yüklenmeden önce güvenlik açısından doğrulanmaları gerekir.
- Doğrulayıcı (
verifier) karmaşık koddan oluşur ve içinde birçok açık bulunmuştur.
- Google, eBPF doğrulayıcısını otomatik olarak denetleyen Buzzer adlı bir fuzzer geliştirdi.
Buzzer işaretçi aritmetiği stratejisi
- Buzzer, eBPF için mantıksal hataları tetiklemeyi amaçlayan stratejiler kullanan yeni bir fuzzer'dır.
- İşaretçi aritmetiği stratejisi şu adımlardan oluşur:
- Register'ları rastgele değerlerle başlatan bir header oluşturma
- Rastgele aritmetik ve atlama komutları üretme
- Rastgele bir register seçip eBPF map öğesine ait işaretçiyle toplama işlemi yapma
- İlgili öğeye sihirli bir değer yazma
eBPF yol budama
- eBPF doğrulayıcısı, bir programın güvenli şekilde çalıştırılıp çalıştırılamayacağını kontrol eder.
- Koşullu ifadeler olduğunda tüm olası durumları simüle eder.
- Çok sayıda koşullu atlama olduğunda performansı artırmak için yol budama stratejisi kullanılır.
Hata
- CVE-2023-2163, yol budamayı daha verimli hale getirmek için "kesin izleme" kavramını tanıttı.
- Hata,
r9 register'ının r6'nın kesinliğine katkıda bulunduğunun gözden kaçırılması nedeniyle ortaya çıktı.
Exploit
- CVE-2023-2163 istismar edilerek keyfi okuma/yazma elde edildi ve LPE ile container escape gerçekleştirildi.
- Başlıca adımlar:
- Keyfi okuma/yazma elde etme
- Süreç kimlik bilgilerini bulup yetkileri yükseltme
Düzeltme
- CVE-2023-2163'ü düzeltmek için, kesin register'ları etkileyen işlemlerde kesin olmayan register'lar da kesin olarak işaretlendi.
- Performans üzerindeki etkisi net değil, ancak ek bir sorun bulunmadı.
Geleceğe dönük fikirler
- Doğrulama sürecinin karmaşıklığı nedeniyle eBPF programlarının güvenliğini sağlamak zordur.
- Google bu sorunu Buzzer ile çözmeye çalışıyor ve açık kaynak topluluğunun katkılarını memnuniyetle karşılıyor.
GN⁺ özeti
- Bu yazı, eBPF doğrulayıcısındaki bir açığın nasıl keşfedilip düzeltildiğini açıklıyor.
- eBPF, çekirdek güvenliği araştırmalarında önemli bir teknoloji ve güvenliğini garanti etmek zor.
- Google, eBPF doğrulayıcısındaki açıkları otomatik olarak denetlemek için Buzzer adlı bir fuzzer geliştirdi.
- Yazı, güvenlik araştırmacıları ve geliştiriciler için faydalı olup eBPF gibi karmaşık sistemlerin güvenliğini sağlamaya yardımcı oluyor.
- Benzer işleve sahip projeler arasında eBPF ile ilgili diğer fuzzer araçları da bulunuyor.
Henüz yorum yok.