Promjene napravljene u OpenBSD-u za dodatnu zaštitu memorije procesa

Theo de Raadt dodao je niz zakrpa bazi koda OpenBSD-a kako bi dodatno zaštitio procesnu memoriju u korisničkom prostoru. Programerima se nudi novi sistemski poziv i pridružena funkcija biblioteke istog imena, mimmutable, koja vam omogućuje da popravite prava pristupa kada se odražavaju u memoriju (memorijski mapiranja). Nakon predaje, prava postavljena za memorijsko područje, na primjer, zabrana pisanja i izvršavanja, ne mogu se naknadno mijenjati kroz naknadne pozive funkcija mmap(), mprotect() i munmap(), što će generirati EPERM pogrešku pri pokušaju promijeniti.

Za kontrolu mogućnosti promjene prava reflektirane memorije za objektne datoteke, predložen je novi promjenjivi BSS odjeljak (.openbsd.mutable, početni simbol promjenjivog bloka) i dodane su nove oznake PF_MUTABLE i UVM_ET_IMMUTABLE. Dodana podrška povezivaču za definiranje odjeljaka "openbsd.mutable" i njihovo postavljanje u zasebno područje u BSS-u, poravnato s granicom memorijske stranice. Pozivanjem funkcije mimmutable moguće je označiti sva zrcalna područja kao nepromjenjiva, s izuzetkom odjeljaka označenih kao "openbsd.mutable". Nova značajka bit će dostupna korisnicima u izdanju OpenBSD 7.3.

Izvor: opennet.ru

Dodajte komentar