Qorshayaasha lagu Xoojinayo Farsamaynta Amniga ee W^X OpenBSD

Theo De Raadt la wadaago qorshaynaysa in la xoojiyo habka ilaalinta xusuusta W^X (Qor XOR Execute). Nuxurka habka ayaa ah in habraaca boggaga xusuusta aan isku mar la geli karin qorista iyo fulinta. Sidaa darteed, koodhka waxaa la fulin karaa oo keliya ka dib marka qorista la joojiyo, iyo qorista bogga xusuusta waxay suurtogal tahay oo kaliya ka dib marka la joojiyo. Habka W^X wuxuu caawiyaa ka ilaalinta codsiyada goobta-isticmaalka weerarrada buuxdhaafka ah ee caadiga ah, oo ay ku jiraan qulqulka xad dhaafka ah, wuxuuna ka shaqeeyaa OpenBSD iyada oo loo eegayo qaddarka.

Laga soo bilaabo bilawga shaqada W^X, way caddaatay in tani ay ahayd waddo dheer, maadaama ay jireen tiro badan oo codsiyo ah oo isticmaalaya JIT. Hirgelinta JIT waxaa loo qaybin karaa saddex qaybood:

  • U beddelashada xusuusta inta u dhaxaysa W iyo X, aqbala "kharashka" wicitaanka nidaamka toosin.
  • Abuurista magacyo u dhexeeya labada khariidad ee W iyo X ee xusuusta isku midka ah.
  • Doorashada ugu "wasakhsan" waxay u baahan tahay qaabka xusuusta W|X kaas oo u oggolaanaya duubista iyo fulinta isku mar.

Hadda, waxaa jira barnaamijyo aad u yar oo isticmaalaya ikhtiyaarka saddexaad iyo in ka badan oo isticmaalaya midka koowaad iyo labaad. Si kastaba ha ahaatee, maadaama ay lama huraan ahayd in lagu socodsiiyo barnaamijyada W faylka waxaa lagu calaamadeeyay sumadeeyaha "wxneeded", iyo codsiyada laftooda ayaa sidoo kale la ilaalinayay iyadoo la adeegsanayo habab ballanqaad ΠΈ Soo Bandhigtay si loo xaddido liiska wicitaannada nidaamka la isticmaalo iyo qaybaha nidaamka faylka ee loo heli karo arjiga, siday u kala horreeyaan.

Si loo sii adkeeyo ka faa'iidaysiga dayacanka ee codsiyadan, waxa la soo jeediyay in lagu daro habka MAP_STACK, kaas oo hubinaya in wicitaanka nidaamka laga fulinayo bogga xusuusta la qori karo. Haddii boggu yahay mid la qori karo, habka ayaa lagu qasbay inuu joojiyo. Sidan, weeraryahanku ma awoodi doono inuu ka faa'iidaysto wicitaanada nidaamka waxaana lagu qasbi doonaa inuu isku dayo inuu helo qalabka lagama maarmaanka ah ee fulinta JIT, ama xitaa sameeyo shaqada ugu adag ee ogaanshaha nidaamka wicitaanka wicitaanada si toos ah gudaha. libc si lama filaan ah.

Hannaanka Chrome/Iridium ayaa mar horeba si la isku halleyn karo loo ilaaliyo iyadoo la adeegsanayo ballan qaadka iyo daah-furka, laakiin meesha laga saaray awoodda isticmaalka, tusaale ahaan, habka qora(2) wicida ayaa iska cad faa'iido u leh, maadaama ay dhibaato dheeraad ah u abuurto weerarka. Si kastaba ha ahaatee, dhibaatooyin ayaa sidoo kale soo bixi kara haddii hirgelinta JIT ay isticmaasho wicitaanada nidaamka asalka ah ee xusuusta W|X. Si kastaba ha ahaatee, waxaa jira sabab rajo ah in tani aysan noqon doonin kiiska, maadaama ABI la bedelay dhowr jeer, laakiin qofna weligiis ma soo sheegin dhibaatooyin.

Isbeddellada ayaa horeba loogu heli jiray sawir-qaadista caadiga ah ee laanta OpenBSD-Current, qof kasta oo danaynaya waxaa lagu martiqaaday inuu tijaabiyo.

Wararka la xidhiidha muuqaalka qaabka Chrome/Iridium waxay u qalantaa faallo gooni ah Theo JITless. Marka laga eego aragtidiisa, tani waa mid la aqbali karo moodooyinka isticmaalka qaarkood, laakiin malaha maaha dhammaan, sababtoo ah qaabkani wuxuu si cad u kordhin doonaa culeyska processor-ka. Waqtigan xaadirka ah, Chrome inta badan wuu shaqayn doonaa haddii aad curyaamiso "wxallowed" ee /usr/maxalli ah, in kasta oo ay jiri karaan dhibaatooyin xagga kordhinta qaarkood (ghostery waa tusaale). Hal hab ama mid kale, Theo wuxuu rajeynayaa in shaqada buuxda ee qaabka JITless la keeni doono xaalad si buuxda u shaqeysa mustaqbalka dhow.

Source: opennet.ru

Add a comment