VDSO - VDSO

vDSO (sanal dinamik paylaşılan nesne) bir Linux çekirdeği dikkatlice seçilmiş bir dizi dışa aktarma mekanizması çekirdek alanı rutinler Kullanıcı alanı uygulamalar, bu çekirdek alanı rutinlerini işlem içi olarak adlandırabilmeleri için mod anahtarı itibaren Kullanıcı modu -e çekirdek modu bu aynı çekirdek alanı yordamlarını, sistem çağrısı arayüz.[1][2]

Sanal dinamik paylaşılan nesne

vDSO aşağıdakiler için standart mekanizmalar kullanır: bağlama ve Yükleniyor yani standart Yürütülebilir ve Bağlanabilir Biçim (ELF) biçimi.[3][4] vDSO, bazı çekirdek işlevlerini ortaya çıkaran, kullanıcı alanında ayrılmış bir bellek alanıdır. vDSO dinamik olarak tahsis edilmiş, aracılığıyla gelişmiş güvenlik sunar adres alanı düzeni randomizasyonu ve 4'ten fazla sistem çağrısını destekler. Biraz C standart kitaplıkları, sevmek glibc, vDSO bağlantıları sağlayabilir, böylece çekirdek vDSO desteğine sahip değilse, geleneksel bir sistem çağrısı yapılmış.[5] vDSO, basit çekirdek rutinlerinde çağrı ek yükünü azaltmaya yardımcı olur ve ayrıca bazılarında en iyi sistem çağrısı yöntemini seçmenin bir yolu olarak da kullanılabilir. bilgisayar mimarileri gibi IA-32.[6] Diğer yöntemlere göre bir avantaj, bu tür dışa aktarılan rutinlerin uygun CÜCE (İlişkilendirilmiş Kayıt Biçimi ile Hata Ayıklama) hata ayıklama bilgileri. Uygulama genellikle vDSO'ları bulmak için dinamik bağlayıcıdaki kancaları ima eder.

Vsyscall

vDSO, vsyscall sınırlamalarını aşarken özellikleri: az miktarda statik olarak ayrılmış sadece 4 sistem çağrısına ve aynı adreslere izin veren hafıza uygulama ikili arabirimi (ABI) güvenliği tehlikeye atan her işlemde. Bu güvenlik sorunu, sanal bir sistem çağrısına öykünmek, ancak öykünme ek gecikme sağlar.[5]

Referanslar

  1. ^ Enrico Perla; Massimiliano Oldani (16 Aralık 2016). Kernel Hacking: Verstehen, schreiben und abwehren: Schwachstellen in Kernel-Architekturen erkennen und Gegenmaßnahmen ergreifen (Almanca'da). Franzis Verlag. s. 466–. ISBN  978-3-645-20503-0.
  2. ^ "vDSO - sanal ELF dinamik paylaşılan nesnesine genel bakış". Kanonik. Alındı 10 Aralık 2015.
  3. ^ "Bir vDSO Yaratmak: Albay'ın Diğer Tavuğu". Linuxjournal.com. Alındı 16 Şubat 2015.
  4. ^ "Vsyscalls ve vDSO'da". Lwn.net. Alındı 16 Şubat 2015.
  5. ^ a b "Soruya topluluk yanıtı" vDSO ve vsyscall nedir?"". Alındı 19 Kasım 2016.
  6. ^ "Bir sistem çağrısının anatomisi, bölüm 2". Lwn.net. Alındı 19 Kasım 2018.