Rencana kanggo Nguatake Mekanisme Keamanan W^X OpenBSD

Theo De Raadt dituduhake plans kanggo ngiyataken W ^ X (Tulis XOR Execute) mekanisme pangayoman memori. Inti saka mekanisme kasebut yaiku kaca memori proses ora bisa diakses bebarengan kanggo nulis lan eksekusi. Mangkono, kode bisa dieksekusi mung sawise nulis dipatèni, lan nulis menyang kaca memori bisa mung sawise eksekusi dipatèni. Mekanisme W^X mbantu nglindhungi aplikasi ruang pangguna saka serangan buffer overflow umum, kalebu tumpukan tumpukan, lan aktif ing OpenBSD kanthi gawan.

Saka wiwitan karya ing W^X, cetha yen iki minangka dalan sing dawa, amarga ana akeh aplikasi sing nggunakake JIT. Implementasi JIT bisa dipérang dadi telung kategori:

  • Ngalih memori antarane negara W lan X, nampa "biaya" saka telpon sistem mproteksi.
  • Nggawe alias ing antarane pasangan pemetaan W lan X saka memori sing padha.
  • Pilihan sing paling "reged" mbutuhake model memori W|X sing ngidini ngrekam lan eksekusi bebarengan.

Saiki, ana program sing luwih sithik nggunakake opsi katelu lan luwih akeh nggunakake sing pisanan lan kaloro. Nanging, amarga perlu kanggo mbukak program karo W|X JIT (utamane Chromium lan Iridum), opsi pemasangan sistem file "wxallowed" ditambahake, sing ngidini memori bisa digunakake bebarengan kanggo nulis lan eksekusi, yen ELF sing bisa dieksekusi. file ditandhani nganggo panandha "wxneeded", lan aplikasi kasebut uga dilindhungi kanthi nggunakake mekanisme. sumpah и ngeculake kanggo matesi dhaptar panggilan sistem sing digunakake lan bagean saka sistem file sing kasedhiya kanggo aplikasi kasebut.

Kanggo luwih rumit eksploitasi kerentanan ing aplikasi kasebut, tambahan kanggo mekanisme kasebut diusulake. MAP_STACK, sing mriksa apa telpon sistem lagi dieksekusi saka kaca memori sing bisa ditulis. Yen kaca bisa ditulis, proses kasebut dipeksa mandheg. Kanthi cara iki, panyerang ora bakal bisa ngeksploitasi panggilan sistem lan bakal kepeksa nyoba golek gadget sing dibutuhake ing implementasi JIT utawa malah nindakake karya sing luwih angel kanggo ndeteksi stub panggilan sistem langsung ing njero. ora sengaja disambung libc.

Chrome / pangolahan Iridium wis cukup andal dilindhungi nggunakake ikrar lan unveil, nanging njabut kemampuan kanggo nggunakake, Contone, nulis (2) sistem telpon temenan sawetara kauntungan, awit iku nggawe kangelan tambahan kanggo panyerang. Nanging, kesulitan uga bisa muncul yen implementasi JIT nggunakake panggilan sistem asli saka memori W|X. Nanging, ana alesan kanggo ngarep-arep yen iki ora bakal kedadeyan, amarga ABI wis diganti kaping pirang-pirang, nanging ora ana sing nglaporake masalah.

Owah-owahan wis kasedhiya ing gambar biasa saka cabang OpenBSD-Saiki, kabeh sing kasengsem diundang kanggo nyoba.

Warta sing gegandhengan babagan tampilan mode ing Chrome / Iridium pantes komentar kapisah saka Theo JITless. Saka sudut pandang, iki bisa ditampa kanggo sawetara model panggunaan, nanging mbokmenawa ora kanggo kabeh, amarga ing mode iki beban ing prosesor bakal nambah. Saiki, Chrome biasane bisa digunakake yen sampeyan mateni "wxallowed" kanggo / usr / local, sanajan ana masalah karo sawetara ekstensi (ghostery minangka conto). Salah siji cara utawa liyane, Theo ngarep-arep yen karya lengkap ing mode JITless bakal digawa menyang negara kanthi operasional ing mangsa ngarep.

Source: opennet.ru

Add a comment