Planaichean gus Uidheam Tèarainteachd W^X OpenBSD a neartachadh

Theo De Radt co-roinnte planaichean gus inneal dìon cuimhne W^X (Write XOR Execute) a neartachadh. Is e brìgh an uidheamachd nach fhaighear cothrom air duilleagan cuimhne pròiseas aig an aon àm airson sgrìobhadh agus coileanadh. Mar sin, chan urrainnear còd a chuir gu bàs ach às deidh an sgrìobhadh a bhith ciorramach, agus chan urrainnear sgrìobhadh gu duilleag cuimhne ach às deidh an coileanadh a bhith ciorramach. Bidh an uidheamachd W ^ X a’ cuideachadh le bhith a’ dìon thagraidhean àite-cleachdaidh bho ionnsaighean thar-shruth bufair cumanta, a’ toirt a-steach tar-shruthan stac, agus tha e gnìomhach ann an OpenBSD gu gnàthach.

Bho thòisich an obair air W^X, bha e soilleir gur e rathad fada a bha seo, leis gu robh àireamh mhòr de thagraidhean a’ cleachdadh JIT. Faodar buileachadh JIT a roinn ann an trì roinnean:

  • Ag atharrachadh cuimhne eadar stàitean W agus X, a’ gabhail ri “cosgais” gairm an t-siostaim dìon.
  • A’ cruthachadh ailias eadar paidhir mhapaichean W agus X den aon chuimhne.
  • Feumaidh an roghainn as “salach” modal cuimhne W | X a leigeas le clàradh agus coileanadh aig an aon àm.

An-dràsta, tha mòran nas lugha de phrògraman a 'cleachdadh an treas roghainn agus barrachd a' cleachdadh a 'chiad agus an dàrna fear. Ach, leis gu robh e riatanach prògraman a ruith le W | X JIT (Chromium agus Iridum sa mhòr-chuid), chaidh roghainn sreap siostam faidhle “wxallowed” a chuir ris, a leig le cuimhne a chleachdadh aig an aon àm airson sgrìobhadh agus coileanadh, gun fhios nach biodh an ELF so-ghnìomhaichte. Tha am faidhle air a chomharrachadh leis a’ chomharra “wxneeded”, agus chaidh na tagraidhean fhèin a dhìon a bharrachd le bhith a’ cleachdadh uidheamachdan gealladh и nochd gus an liosta de ghlaodhan siostam a thathar a’ cleachdadh agus pàirtean den t-siostam faidhle a tha ri fhaighinn leis an tagradh a chuingealachadh, fa leth.

Gus tuilleadh iom-fhillteachd a dhèanamh air a bhith a’ gabhail brath air so-leòntachd ann an leithid de thagraidhean, thathas a’ moladh cur ris an uidheamachd MAP_STACK, a nì sgrùdadh a bheil gairm an t-siostaim ga chur gu bàs bho dhuilleag cuimhne a ghabhas sgrìobhadh. Ma tha an duilleag air a sgrìobhadh, feumaidh am pròiseas crìochnachadh. San dòigh seo, cha bhith e comasach do neach-ionnsaigh brath a ghabhail air fiosan siostaim agus thèid a sparradh air feuchainn ris na h-innealan riatanach a lorg ann am buileachadh JIT no eadhon an obair nas duilghe a dhèanamh a bhith a’ lorg stumpaichean gairm siostaim gu dìreach a-staigh. libc ceangailte gun fhiosta.

Tha pròiseasan Chrome / Iridium mu thràth air an dìon gu h-earbsach le bhith a’ cleachdadh gealltanas agus foillseachadh, ach tha e follaiseach gu bheil buannachd ann a bhith a’ toirt air falbh comas cleachdadh, mar eisimpleir, gairm siostam sgrìobhaidh (2), leis gu bheil e a’ cruthachadh duilgheadasan a bharrachd don neach-ionnsaigh. Ach, faodaidh duilgheadasan èirigh cuideachd ma chleachdas gnìomhachd JIT fiosan siostam dùthchasach bho chuimhne W | X. Ach, tha adhbhar ann a bhith an dòchas nach bi seo fìor, leis gu bheil an ABI air atharrachadh grunn thursan, ach chan eil duine air duilgheadasan aithris a-riamh.

Tha na h-atharrachaidhean rim faighinn mu thràth ann an dealbhan cunbhalach den mheur OpenBSD-Current, thathas a’ toirt cuireadh do gach neach le ùidh deuchainn a dhèanamh.

Tha naidheachdan co-cheangailte mu choltas a’ mhodh ann an Chrome/Iridium airidh air beachd air leth bho Theo JIT gun fheum. Bhon bheachd aige, tha seo iomchaidh airson cuid de mhodalan cleachdaidh, ach is dòcha nach eil airson a h-uile duine, oir bidh am modh seo gu follaiseach a ’meudachadh an luchd air a’ phròiseasar. An-dràsta, obraichidh Chrome sa mhòr-chuid ma chuireas tu dheth “wxallowed” airson / usr/local, ged a dh’ fhaodadh gum bi duilgheadasan ann le cuid de leudachaidhean (tha taibhsearachd na eisimpleir). Aon dòigh no dòigh eile, tha Theo an dòchas gun tèid obair làn-chuimseach ann am modh JITless a thoirt gu staid làn-ghnìomhach a dh'aithghearr.

Source: fosgailtenet.ru

Cuir beachd ann