Plaani W^X kaitse mehhanismi tugevdamiseks OpenBSD-s

Theo de Raadt videosid, kus ta nĂ€itas XQEMU emulaatori (emuleerib originaal Xbox konsooli) kĂ€ivitamist Nintendo Switch'il. Samuti demonstreeris Voxel9, et sĂŒsteem suudab kĂ€ivitada mitmeid mĂ€nge, sealhulgas Halo: Combat Evolved. plaanidest mĂ€lu kaitsemehhanismi W^X (Write XOR Execute) tugevdamiseks. Mehhanismi sisuks on see, et protsessi mĂ€lulehed ei saa olla samaaegselt kirjutamiseks ja tĂ€itmiseks kĂ€ttesaadavad. Seega saab koodi tĂ€itmist teha alles pĂ€rast kirjutamise keelamist, ja kirjutamine mĂ€lulehte on vĂ”imalik alles pĂ€rast tĂ€itmise keelamist. W^X mehhanism aitab kaitsta kasutajaruumi rakendusi tĂŒĂŒpiliste rĂŒnnakute eest, mida teostatakse mĂ€lu ĂŒlevoolu kaudu, sealhulgas virna ĂŒlevoolude eest ja on aktiivne OpenBSD-s. vaikimisi.

W^X-i tööde algusest oli selge, et see on pikk tee, kuna on olemas mÀrkimisvÀÀrne hulk rakendusi, mis kasutavad JIT-i. JITi rakendusi saab jagada kolme kategooriasse:

  • MĂ€lu vahetamine W ja X olekute vahel, leppides sĂŒsteemikutse "kuluga". mprotect.
  • Loovad pseudonĂŒĂŒmid sama mĂ€lu W ja X kaardistuste paarile.
  • KĂ”ige "rĂ€pasem" variant - nĂ”uab W|X mĂ€lumudelit, mis vĂ”imaldab samaaegset kirjutamist ja tĂ€itmist.

Praegu on oluliselt vĂ€hem programme, mis kasutavad kolmandat varianti, ja rohkem, mis kasutavad esimest ja teist. Sellegipoolest, kuna tuli kĂ€ivitada ka W|X JIT-programme (peamiselt Chromium ja Iridium), anti vĂ”imalus mountida failisĂŒsteem "wxallowed", mis vĂ”imaldas kasutada mĂ€lu samaaegselt nii kirjutamiseks kui ka tĂ€itmiseks, juhul kui kĂ€ivitatav ELF-fail on mĂ€rgitud mĂ€rgisega "wxneeded", ja ise rakendusi kaitsti, kasutades mehhanisme. pledge ja unveil sĂŒsteemikutsude ja rakendusele saadaval olevate failisĂŒsteemi osade nimekirja piiramiseks vastavalt.

Vulnerabiliteedi Ă€rakasutamise veelgi keerukamaks muutmiseks taheti tĂ€iendada mehhanismi. MAP_STACK, mis kontrollib, kas sĂŒsteemikutse toimub kirjutamises oleva mĂ€lu lehelt. Kui leht on kirjutamiseks kĂ€ttesaadav, lĂ”petatakse protsess sundlikult. Nii ei saa kurjategija kasutada sĂŒsteemikutsesid ja peab proovima leida vajalikud seadmed JIT rakenduse teostuses vĂ”i isegi tegema keerulisemat tööd, et tuvastada sĂŒsteemikutsede silumisvahendeid otse. juhuslikult seotud libc.

Chrome'i/Iridiumi protsessid on piisavalt turvalised, kasutades pledge ja unveil, kuid sĂŒsteemikĂ”ne write(2) kasutamise vĂ”imaluse piiramine annab rĂŒndajale ilmselgelt mĂ”ningaid eeliseid, kuna loob tĂ€iendavaid raskusi. Siiski vĂ”ivad raskused tekkida ka juhul, kui JIT realiseerimine kasutab natiivseid sĂŒsteemikĂ”nesid W|X mĂ€lust. Siiski on pĂ”hjust loota, et sellise olukorraga ei pea kokku puutuma, kuna ABI on korduvalt muutunud, kuid keegi ei ole kunagi teatatud probleemidest.

Muutused on juba saadaval regulaarsetes OpenBSD-Current harude snapshots, kÔik huvilised on kutsutud katsetama.

Teo sai eraldi kommentaari seoses Chrome'i/Iridiumi reĆŸiimi ilmumise uudistega JITless. Tema arvates on see vastuvĂ”etav mĂ”nede kasutusmudelite puhul, kuid ilmselt mitte kĂ”igi jaoks, kuna sellel reĆŸiimil suureneb protsessori koormus. Praegu töötab Chrome peamiselt siis, kui keelata «wxallowed» /usr/local jaoks, kuigi teatud laiendustega vĂ”ivad ilmneda probleemid (nĂ€iteks ghostery). Igal juhul loodab Teo, et JITless reĆŸiimi tĂ€ielik toimimine viiakse peagi tĂ€iesti toimivasse olekusse.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster