Pleananna chun Sásra Slándála W^X OpenBSD a Neartú

Theo De Raadt roinnte pleananna chun meicníocht cosanta cuimhne W^X (Write XOR Execute) a neartú. Is é croílár na meicníochta ná nach féidir teacht ar leathanaigh chuimhne próisis ag an am céanna chun iad a scríobh agus a chur i gcrích. Mar sin, ní féidir cód a fhorghníomhú ach amháin tar éis an scríobh a dhíchumasú, agus ní féidir scríobh chuig leathanach cuimhne ach amháin tar éis é a fhorghníomhú a dhíchumasú. Cuidíonn an mheicníocht W^X le feidhmchláir spáis úsáideora a chosaint ó ionsaithe ró-shreafa maoláin choitianta, lena n-áirítear ró-shreabhadh cruachta, agus tá sé gníomhach in OpenBSD de réir réamhshocraithe.

Ó thús na hoibre ar W^X, ba léir gur bóthar fada a bhí anseo, mar go raibh líon suntasach iarratas ag baint úsáide as JIT. Is féidir cur chun feidhme JIT a roinnt i dtrí chatagóir:

  • Cuimhne a aistriú idir stáit W agus X, ag glacadh le “costas” ghlao an chórais mprotect.
  • Ailiasanna a chruthú idir péire mapálacha W agus X den chuimhne chéanna.
  • Éilíonn an rogha is “salach” samhail chuimhne W|X a cheadaíonn taifeadadh agus cur i gcrích comhuaineach.

Faoi láthair, tá i bhfad níos lú clár ag baint úsáide as an tríú rogha agus níos mó ag baint úsáide as an chéad agus an dara rogha. Mar sin féin, ós rud é go raibh gá le cláir a rith le W|X JIT (Cromium agus Iridum go príomha), cuireadh rogha gléasta córas comhaid "wxallowed" leis, rud a cheadaigh cuimhne a úsáid go comhuaineach le haghaidh scríbhneoireachta agus cur i gcrích, ar eagla go mbeadh an ELF inrite. marcáiltear an comhad leis an marcóir “wxneeded”, agus rinneadh na feidhmchláir féin a chosaint freisin trí úsáid a bhaint as meicníochtaí gealltanas и nochtadh chun teorainn a chur le liosta na nglaonna córais a úsáidtear agus na codanna den chóras comhaid atá ar fáil don fheidhmchlár, faoi seach.

Chun saothrú leochaileachtaí in iarratais den sórt sin a dhéanamh níos casta tuilleadh, moltar cur leis an meicníocht MAP_STACK, a sheiceálann an bhfuil an glao córais á dhéanamh ó leathanach cuimhne inscríofa. Má tá an leathanach inscríofa, ní mór an próiseas a fhoirceannadh. Ar an mbealach seo, ní bheidh ionsaitheoir in ann leas a bhaint as glaonna córais agus cuirfear iallach air iarracht a dhéanamh teacht ar na giuirléidí riachtanacha i gcur chun feidhme JIT nó fiú an obair níos deacra a dhéanamh chun stumpaí glaonna an chórais a bhrath go díreach taobh istigh. libc nasctha de thaisme.

Tá próisis Chrome/Iridium cosanta go leor go hiontaofa cheana féin ag baint úsáide as gealltanas agus nochtadh, ach is léir go bhfuil buntáiste éigin ag baint le baint as an gcumas úsáid a bhaint as, mar shampla, glaoch ar an gcóras write(2), toisc go gcruthaíonn sé deacrachtaí breise don ionsaitheoir. D’fhéadfadh deacrachtaí teacht chun cinn freisin, áfach, má úsáideann cur i bhfeidhm JIT glaonna an chórais dhúchais ó chuimhne W|X. Mar sin féin, tá cúis ann a bheith ag súil nach mbeidh sé seo amhlaidh, ós rud é gur athraíodh an ABI arís agus arís eile, ach níor thuairiscigh éinne fadhbanna riamh.

Tá na hathruithe ar fáil cheana féin i pictiúir rialta den bhrainse OpenBSD-Current, tugtar cuireadh do gach duine a bhfuil suim acu ann tástáil a dhéanamh.

Tá trácht ar leith ó Theo tuillte ag nuacht ghaolmhar faoi chuma an mhód in Chrome/Iridium Gan JIT. Óna thaobh, tá sé seo inghlactha do roinnt samhlacha úsáide, ach is dócha nach bhfuil sé ar fad, mar is léir go méadóidh an modh seo an t-ualach ar an bpróiseálaí. Faoi láthair, oibreoidh Chrome den chuid is mó má dhíchumasaíonn tú "wxallowed" le haghaidh /usr/local, cé go bhféadfadh fadhbanna a bheith ann le roinnt síntí (is sampla é an ghosaireacht). Ar bhealach amháin nó ar bhealach eile, tá súil ag Theo go dtabharfar obair lán-chuimsitheach i mód JITless go staid lánoibríochta go luath amach anseo.

Foinse: oscailtenet.ru

Add a comment