Theo De Raadt W^X (Write XOR Execute) mĂ€lu kaitse mehhanismi tugevdamise plaanid. Mehhanismi olemus seisneb selles, et protsessi mĂ€lulehed ei saa olla samal ajal kirjutamiseks ja tĂ€itmiseks ligipÀÀsetavad. Seega saab koodi tĂ€ita ainult pĂ€rast kirjutamise lubamise lĂ”petamist ning kirjutamine mĂ€lu lehe sisse on vĂ”imalik ainult pĂ€rast tĂ€itmise keeldumist. W^X mehhanism aitab kaitsta kasutajaruumi rakendusi tĂŒĂŒpiliste rĂŒnnakute eest, mis on teostatud mĂ€lupuhverduste ĂŒlekoormuse kaudu, sealhulgas ka virna ĂŒlekoormuste eest ja on aktiivne OpenBSD-s. .
W^X-ga töötamise algusest oli selge, et see on pikk tee, kuna on mÀrkimisvÀÀrne hulk rakendusi, mis kasutavad JIT-i. JIT-i rakendusi saab jagada kolme kategooriasse:
- LĂŒlitavad mĂ€lu W ja X olekute vahel, leppides 'sĂŒsteemikutsumise' 'kuludega'. .
- Loovad pseudonĂŒĂŒmid W ja X kahe sama mĂ€lu kaardistuse vahel.
- KĂ”ige 'mustem' variant â nĂ”uab W|X mĂ€lumudelit, mis lubab samaaegset kirjutamist ja tĂ€itmist.
Praegu on kolmandat varianti kasutavate programmide arv oluliselt vĂ€henenud, samas kui esimese ja teise variandi kasutamine on suurenenud. Siiski, kuna oli vaja kĂ€ivitada ka programe W|X JIT (peamiselt Chromium ja Iridium), lisati failisĂŒsteemi ĂŒhendamise valik "wxallowed", mis vĂ”imaldas kasutada mĂ€lu samaaegselt nii kirjutamiseks kui ka kĂ€itamiseks, juhul kui kĂ€ivitatav ELF-fail oli mĂ€rgitud mĂ€rgisega "wxneeded", samal ajal kui rakendusi kaitsti tĂ€iendavalt, kasutades mehhanisme. ja sĂŒsteemikĂ”nede kasutamise loendi ja rakendusele kergesti ligipÀÀsetavate failisĂŒsteemi osade piiramiseks.
Haavatavuse Ă€rakasutamise edasiseks keerukamaks muutmiseks sarnastes rakendustes on ette pandud mehhanismi tĂ€iendus. , mis kontrollib, kas sĂŒsteemikĂ”ne toimub kirjutatavast mĂ€lulehest. Kui leht on kirjutatav, lĂ”petatakse protsess sunniviisiliselt. Nii ei saa rĂŒndaja kasutada sĂŒsteemikĂ”nesid ja peab proovima leida vajalikke seadmeid JIT-i rakenduses vĂ”i isegi tegema keerulisemat tööd, et avastada sĂŒsteemikĂ”nede plokke otse. .
Chrome/Iridium protsessid on piisavalt hĂ€sti kaitstud pledge ja unveil abil, kuid nĂ€iteks write(2) sĂŒsteemikĂ”ne kasutamise keelamine annab ilmselgelt teatud eelise, kuna see tekitab rĂŒndajale tĂ€iendavaid raskusi. Siiski vĂ”ivad raskused tekkida ka juhul, kui JIT-i rakendus kasutab natiivseid sĂŒsteemikĂ”nesid W|X mĂ€lust. Kuid on pĂ”hjust loota, et sellise probleemiga ei pea kokku puutuma, kuna ABI on korduvalt muutunud, kuid keegi pole kunagi probleemidest teatanud.
Muutused on juba saadaval OpenBSD-Ccurrent haru regulaarsetes snapshotides, kÔik huvilised on kutsutud testima.
Teo on kommentaari vĂ”rra tĂ€helepanuvÀÀrsed uudised Chrome'i/Iridiumi reĆŸiimi ilmumise kohta . Tema arvates on see mĂ”nede kasutusmudelite jaoks vastuvĂ”etav, kuid tĂ”enĂ€oliselt mitte kĂ”igi jaoks, kuna selle reĆŸiimi korral tĂ”useb protsessori koormus ilmselgelt. Praegu töötab Chrome peamiselt siis, kui âwxallowedâ on vĂ€lja lĂŒlitatud /usr/local, kuigi mĂ”ningate laiendustega (nĂ€iteks ghostery) vĂ”ivad esineda probleemid. Nii vĂ”i teisiti loodab Teo, et JITless-reĆŸiimi tĂ€ieĂ”iguslik toimimine viiakse tĂ€ieliku töökorrani peagi.
Allikas: opennet.ru
