¿Qué es la autoubicación?
La autoubicación es una propiedad que posee un número muy pequeño de programas informáticos. Estos programas pueden alterar sus ubicaciones en la memoria mientras se ejecutan. La mayoría de los programas tienen poco o ningún control sobre su propia programación base; en cambio eso es manejado por programas de orden superior. Estos sistemas pueden cambiar su ubicación moviendo su programación o creando una copia de ellos mismos. Cuando se realiza una copia, la ubicación de ejecución generalmente cambia al nuevo programa y el código antiguo queda inactivo.
En la mayoría de los casos, un programa informático en ejecución se encuentra en dos áreas simultáneamente. Se encuentra en el almacenamiento físico de la computadora, como un disco duro u otra unidad de almacenamiento, y en la memoria volátil. El programa se traslada a la memoria volátil en la ejecución para acelerar el tiempo de acceso y hacer que funcione más rápido. Su posición en ambas ubicaciones generalmente está determinada por el sistema operativo de la computadora.
Las ubicaciones de estos programas se llaman direcciones. Estas direcciones son utilizadas por el sistema y otros programas para encontrar rápidamente un programa cuando sea necesario. Si un programa se rompe en el almacenamiento, funcionará más lentamente que si estuviera todo junto; por lo tanto, la mayoría de los sistemas intentan almacenar programas más grandes sobre direcciones secuenciales. Una vez más, la elección de hacer esto generalmente recae en el sistema operativo y el programa no tiene control directo sobre él.
Cuando un programa utiliza la autoubicación, tiene un control significativamente mayor sobre estos procesos que los programas típicos. Tiene la capacidad de controlar las direcciones en las que se ejecuta. Mientras está en uso, el programa puede mover su programación total desde la ubicación en la que se encuentra a otra ubicación dentro de la memoria de la misma computadora. Algunos programas solo pueden cambiar una de las dos direcciones, mientras que otros pueden cambiar ambas.
Por sí solo, la autoubicación es un proceso poco común, pero no problemático. El verdadero peligro se presenta cuando se utiliza la autoubicación junto con intenciones maliciosas. Es posible que un programa haga una gran cantidad de cosas inesperadas cuando tiene control sobre sí mismo. Puede crear numerosas copias físicas o volátiles para obstruir la memoria de una computadora. Esto puede provocar un reinicio y puede ser un precursor de un ataque de arranque.
Además, el programa puede hacer copias de seguridad de sí mismo para evitar su eliminación. Si un programa con autoubicación se ejecutara y luego se copiara, el programa original seguirá existiendo incluso cuando no se esté utilizando. Si el programa es malicioso y el sistema intenta eliminarlo, el programa activo simplemente puede volver a habilitar el código original antes de eliminarlo.