Cambios realizados en OpenBSD para proteger aún más la memoria del proceso

Theo de Raadt ha agregado una serie de parches al código base de OpenBSD para proteger aún más la memoria de proceso en el espacio del usuario. A los desarrolladores se les ofrece una nueva llamada al sistema y la función de biblioteca asociada del mismo nombre, mimmuable, que permite fijar los derechos de acceso al reflejarse en la memoria (mapeos de memoria). Después de la confirmación, los derechos establecidos para un área de memoria, por ejemplo, la prohibición de escritura y ejecución, no se pueden cambiar posteriormente mediante llamadas posteriores a las funciones mmap(), mprotect() y munmap(), lo que generará un error EPERM al intentarlo. cambiar.

Para controlar la capacidad de cambiar los derechos de la memoria reflejada para archivos de objetos, se ha propuesto una nueva sección BSS mutable (.openbsd.mutable, símbolo de inicio de bloque mutable) y se han agregado nuevos indicadores PF_MUTABLE y UVM_ET_IMMUTABLE. Se agregó soporte al vinculador para definir secciones "openbsd.mutable" y colocarlas en un área separada en el BSS, alineada con el límite de una página de memoria. Al llamar a la función mimmutable, es posible marcar todas las áreas reflejadas como inmutables, con la excepción de las secciones marcadas como "openbsd.mutable". La nueva característica se implementará para los usuarios en la versión OpenBSD 7.3.

Fuente: opennet.ru

Añadir un comentario