Actualizado el 16/01/2025, por
INCIBE (INCIBE)
Las vulnerabilidades de corrupción de memoria son fallos críticos en los programas que ocurren cuando el software manipula incorrectamente la memoria. Estos fallos pueden permitir que un programa escriba datos en ubicaciones de memoria no previstas o acceda a áreas de memoria que están fuera del alcance previsto. Un atacante que controla estos datos, podría desencadenar un comportamiento inesperado en el sistema, como hacer que el programa se bloquee o, en el peor de los casos, obtener control total sobre el sistema afectado. En parte, esto es así porque inicialmente los sistemas computacionales no fueron diseñados teniendo en cuenta la seguridad, por lo que las direcciones de memoria utilizadas por los programas y sistemas operativos eran estáticas y predecibles. Esto significaba que cada vez que un programa se ejecutaba, las ubicaciones de la memoria, como la pila, el heap y las bibliotecas compartidas, se situaban siempre en las mismas direcciones. Esta previsibilidad facilitaba a los atacantes la explotación de vulnerabilidades de memoria, como los desbordamientos de búfer y los ataques de retorno a libc, ya que podían anticipar exactamente dónde se encontrarían los datos o el código que deseaban manipular para ejecutar código malicioso. En este artículo veremos cómo la técnica de ASLR ayuda a combatir estas vulnerabilidades.