OpenBSD-s tehtud muudatused protsessimälu täiendavaks kaitsmiseks

Theo de Raadt lisas OpenBSD koodibaasi rea plaastreid, et veelgi kaitsta kasutajaruumi protsessimälu. Arendajatele pakutakse uut süsteemikutset ja sellega kaasnevat samanimelist muuttava teegi funktsiooni, mis võimaldab mällu peegeldumisel pääsuõigusi fikseerida (mälu vastendused). Pärast fikseerimist ei saa mälualale seatud õigusi, näiteks kirjutamise ja täitmise keeld, hiljem muuta funktsioonide mmap (), mprotect () ja munmap () järgnevate väljakutsete kaudu, mida muutmise katsel tekitab EPERM-i vea.

Objektifailide peegelmälu lubade muutmise võimaluste kontrollimiseks on pakutud välja uus Mutable BSS-i jaotis (.openbsd.mutable, Mutable Block Starting Symbol) ning lisatud on uued lipud PF_MUTABLE ja UVM_ET_IMMUTABLE. Linkerile on lisatud tugi jaotiste "openbsd.mutable" määratlemiseks ja nende paigutamiseks BSS-is eraldi alasse, mis on joondatud mälulehe piiriga. Muudetava funktsiooni väljakutse kaudu on võimalik kõik peegeldatud alad muutumatuks märkida, välja arvatud jaotised, mis on märgitud kui "openbsd.mutable". Uus funktsioon avaldatakse kasutajatele OpenBSD 7.3 versioonis.

Allikas: opennet.ru

Lisa kommentaar