De acuerdo con esto article , OpenBSD está implementando una función que creará un kernel único cada vez que un usuario reinicia o actualiza su computadora.
Se llama KARL, "Enlace aleatorio de la dirección del kernel". Esto funciona volviendo a vincular los archivos internos del kernel en un orden aleatorio para que genere un blob binario único del kernel cada vez.
La explicación técnica dice;
Un kernel único está vinculado de tal manera que el código de ensamblaje de inicio se mantiene en el mismo lugar, seguido de un espaciado de tamaño aleatorio, seguido de todos los otros archivos .o reorganizados aleatoriamente. Como resultado, las distancias entre funciones y variables son completamente nuevas. Una fuga de información de un puntero no revelará otros punteros u objetos. Esto también puede ayudar a reducir los dispositivos en las arquitecturas de tamaño variable, porque el polimorfismo en el flujo de instrucciones está dañado por el cambio de las compensaciones anidadas.
- ¿Cómo mejora esto la seguridad?
- ¿Qué tipo de ataques se mitigaría con esta nueva característica?
- ¿En qué se diferencia esto de la aleatorización de la distribución del espacio de direcciones del kernel?