En un sistema operativo moderno, los procesos no pueden acceder directamente a la memoria del otro. Por lo tanto, un virus debe ingresar al proceso a través de una de sus entradas. Si alguien estornuda en su cara, el virus del resfriado ingresa a través de su “entrada” nasal.
Una estrategia es que un proceso envíe una secuencia de bytes a la entrada de otro proceso, sabiendo que esto desencadenará un error en el programa. Un error de desbordamiento del búfer, por ejemplo, podría permitir al atacante escribir más allá del final de un búfer en el proceso de destino, porque el programador no se molestó en verificar si el búfer tenía suficiente espacio para los bytes entrantes.
Los bytes en la memoria que siguen directamente al búfer podrían ser instrucciones ejecutables, lo que significa que sería posible “reescribir” el programa de esta manera.
- ¿Son virus de carpetas '$ Recycle.bin y System Volume Information' en el sistema operativo Windows 8?
- Cómo obtener una pasantía en ciberseguridad
- Cómo instalar Norton Antivirus
- ¿Cuál es el archivo gss.conf?
- ¿Debería sentirme seguro al almacenar mis contraseñas confidenciales con aplicaciones como Keeper? Necesito una solución de contraseña, pero odio la idea de que una violación podría exponer toda mi vida digital. ¿Pluma y papel? ¿Tinta invisible?
En su pregunta, hace que parezca que un virus se une a un proceso, pero esto no es exactamente lo que sucede. En biología, un virus no es un ser vivo; es solo una secuencia de ARN / ADN que, cuando encuentra su camino en un organismo vivo, puede reprogramarla para que haga su voluntad.
Un virus informático es como un virus biológico; solo una secuencia muerta de bytes que, cuando se escribe en el lugar correcto en el espacio de direcciones de un proceso, hace que el proceso quede bajo el control del virus.
El ejemplo que di de una explotación de desbordamiento de búfer es bastante difícil de lograr en estos días, porque las secciones del espacio de direcciones que contienen instrucciones están designadas como de solo lectura por el sistema operativo, y el hardware lo aplica. Entonces, cuando un proceso intenta modificar sus propias instrucciones, habrá una excepción y el proceso morirá.
La imagen ejecutable en el disco que se carga cuando hace doble clic en un icono, esa es una historia diferente. Por supuesto, cualquiera puede cambiar las instrucciones dentro de dicho archivo, suponiendo que no esté firmado digitalmente y que tenga acceso. De esta manera, el virus se cargará junto con el resto del proceso.
Otro caso se refiere a intérpretes. Un intérprete carga un script en la memoria y lo ejecuta interpretando cada instrucción, una tras otra. Pero el sistema operativo puede no marcar el script como de solo lectura, por lo que sería posible inyectar un script poco fiable en el intérprete y ejecutarlo.