Mhol seicphointe teicníocht cosanta um Nascadh Sábháilte, rud a fhágann go bhfuil sé níos deacra leas a bhaint as leochaileachtaí

Cuideachta seicphointe curtha i láthair Meicníocht chosanta um Nascadh Sábháilte, rud a fhágann go bhfuil sé deacair shaothrú a chruthú a ionramhálann sainmhíniú nó modhnú na dtreoir chuig maoláin a leithdháiltear agus glao malloc á dhéanamh. Ní chuireann Nascáil Sábháilte bac iomlán ar an bhféidearthacht leochaileachtaí a shaothrú, ach le forchostais íosta cuireann sé go mór le cruthú catagóirí áirithe dúshaothrú, mar i dteannta leis an ró-sreabhadh maoláin insaothraithe, is gá leochaileacht eile a aimsiú a fhágann sceitheadh ​​faisnéise faoi. socrúchán an chairn sa chuimhne.

Ullmhaíodh paistí a chuireann Safe-Linking i bhfeidhm do Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) agus Google TCMalloc, agus moltar freisin cosaint a uasghrádú i gCróimiam (i.
Ó 2012, tá Cróimiam tógtha cheana féin sa teicníc cosanta MaskPtr atá dírithe ar an fhadhb chéanna a réiteach, ach léiríonn an réiteach ó Checkpoint feidhmíocht níos airde).
Tá paistí molta ceadaithe cheana féin le seachadadh i scaoileadh Lúnasa Glibc 3.32 agus beidh Safe-Nacáil cumasaithe de réir réamhshocraithe. Tacaíonn uClibc-NG le Safe-Linking iontráilte san áireamh i scaoileadh 1.0.33 agus tá sé cumasaithe de réir réamhshocraithe. Athruithe ar gperftools (sean-tcmalloc) glactha, ach cuirfear ar fáil mar rogha é in eisiúint amach anseo.

Forbróirí TCMalloc (tcmalloc nua) dhiúltaigh glacadh leis athrú, ag lua díghrádú feidhmíochta dian agus an gá atá le tástálacha fairsinge a chur leis chun a sheiceáil go rialta go bhfuil gach rud ag obair mar a bhíothas ag súil leis. Léirigh tástálacha a rinne innealtóirí seicphointe nach bhfuil tomhaltas cuimhne breise mar thoradh ar an modh Nascáil Sábháilte, agus nach laghdaítear ach 0.02% ar an meán ar fheidhmíocht nuair a bhíonn oibríochtaí carn i gcrích, agus sa chás is measa 1.5% (le haghaidh comparáide, an forchostais i meastar gur “níos lú ná 2%) an modh a úsáidtear i gCróimiam”. Cuimsiú
Mar thoradh ar Nascáil Sábháilte déantar 2-3 threoir tionóil bhreise a fhorghníomhú gach uair a ghlaoitear saor(), agus 3-4 threoir gach uair a ghlaoitear malloc(). Ní gá na céimeanna tosaigh agus giniúint luach randamach a rith.

Mhol seicphointe teicníocht cosanta um Nascadh Sábháilte, rud a fhágann go bhfuil sé níos deacra leas a bhaint as leochaileachtaí

Is féidir Nascáil Sábháilte a úsáid ní hamháin chun slándáil na bhfeidhmiúchán éagsúla carn a fheabhsú, ach freisin chun rialuithe sláine a chur le haon struchtúir sonraí a úsáideann liostaí nasc aonair de na leideanna a chuirtear in aice leis na maoláin iad féin. Tá an modh an-simplí le cur i bhfeidhm agus ní gá ach macra amháin a chur leis agus é a chur i bhfeidhm ar threoracha chuig an gcéad bhloc eile sa chód (mar shampla, le haghaidh Glibc athruithe ach cúpla líne de chód). Baineann an modh seo leis na hathruithe seo a leanas:

+sainmhínigh PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr))))

+sainmhínigh REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

- nextp = p->fd;
+ nextp = REVEAL_PTR (p->fd);
...

Is é croílár an mhodha ná sonraí randamacha a úsáid ó mheicníocht randamaithe seoltaí ASLR (mmap_base) chun liostaí atá nasctha go haonarach mar Fast-Bins agus TCache a chosaint. Sula gcuirtear an luach i bhfeidhm ar phointeoir chuig an gcéad eilimint eile ar an liosta, déanann sé tiontú masc agus seiceálann sé ailíniú leathanaigh. Cuirtear toradh na hoibríochta "(L >> PAGE_SHIFT) XOR (P)" in ionad an phointeora, áit arb é P luach an phointeora agus is é L an suíomh cuimhne ina stóráiltear an pointeoir.

Mhol seicphointe teicníocht cosanta um Nascadh Sábháilte, rud a fhágann go bhfuil sé níos deacra leas a bhaint as leochaileachtaí

Nuair a úsáidtear é sa chóras ASLR (Randomú Leagan Amach Seoladh Seolta) cuid den ghiotán L leis an seoladh bonn carn tá luachanna randamacha a úsáidtear mar eochair chun P a ionchódú (a bhaintear as oibríocht shift 12-giotán do leathanaigh 4096-beart). Laghdaíonn an ionramháil seo an baol go ndéanfaí an pointeoir a fhuadach i ndúshaothrú, ós rud é nach stóráiltear an pointeoir ina bhunfhoirm agus go dteastaíonn eolas ar leithdháileadh an chairn chun é a athsholáthar. Ina theannta sin, tá seiceáil breise le haghaidh ailíniú bloc sa chód paiste freisin, rud nach ligeann d'ionsaitheoir pointeoir a athsholáthar le luach neamhailínithe agus a éilíonn eolas ar líon na ngiotán atá ailínithe, a cheadaíonn blocáil ar chórais 64-giotán freisin. 15 as 16 iarracht ionsaithe nach gcuireann ailíniú san áireamh.

Tá an modh éifeachtach chun cosaint a dhéanamh i gcoinne ionsaithe a úsáideann athscríobh pointeoir páirteach (beart íseal a athrú), athscríobh pointeora iomlán (atreorú chuig cód an ionsaitheora) agus athrú ar shuíomh an liosta ag seoladh neamhailínithe. Mar shampla, taispeántar go gceadódh úsáid Safe-Linking i malloc saothrú blocála le déanaí aitheanta ag na taighdeoirí leochaileachta céanna CVE-2020-6007 i solas cliste Philips Hue Bridge, de bharr maolán thar maoil agus a ligeann duit smacht a fháil ar an bhfeiste.

Foinse: oscailtenet.ru

Add a comment