Theo de Raadt 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. .
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". .
- 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. ja sĂŒsteemikutsude ja rakendusele saadaval olevate failisĂŒsteemi osade nimekirja piiramiseks vastavalt.
Vulnerabiliteedi Ă€rakasutamise veelgi keerukamaks muutmiseks taheti tĂ€iendada mehhanismi. , 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. .
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 . 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
