¿Cómo pueden funcionar los programas de prueba de memoria sin que supongan una brecha de seguridad?

¿Cómo pueden funcionar los programas de prueba de memoria sin que supongan una brecha de seguridad?

Estaba ejecutando una prueba de memoria en mi computadora portátil (del fabricante, ejecutandocomo servicio en Windows 10 Pro) y se me ocurrió que afirman poder probar toda la memoria del sistema (lo que requiere memoria de lectura y escritura).

Sin embargo, en los sistemas modernos, las aplicaciones nunca obtienen memoria "real", sino una imagen de memoria virtual (básicamente creen que tienen acceso a todo el sistema, pero en realidad es una imagen virtual de la memoria). Por lo tanto, debería ser imposible (salvo errores) que una aplicación acceda a la memoria utilizada por otra aplicación.

Presumiblemente, estos programas de prueba de memoria realmente funcionan y no me mienten, por lo que suponiendo que realmente puedan leer y escribir toda la memoria en el sistema para probar, ¿cómo no es esto un problema de seguridad? Sin mencionar el problema de que una aplicación de Windows pruebe la memoria que está utilizando para ejecutarse.

¿Que me estoy perdiendo aqui?

¡Gracias!

Respuesta1

[...] debería ser imposible (salvo errores) que una aplicación acceda a la memoria utilizada por otra aplicación.

Verdadero,a menos que la aplicación tenga los privilegios/permisos requeridos. En la mayoría de los sistemas, las restricciones de acceso a la memoria se pueden eludir con permisos especiales, ya que existen algunos usos legítimos para acceder a la memoria restringida, como la depuración. En MS Windows existen, por ejemplo, las funciones ReadProcessMemory()y WriteProcessMemory()para ello. Sin embargo, requieren privilegios especiales para trabajar (ver, por ejemplo,¿Cómo elevo los permisos para acceder a la memoria en un editor de memoria?para detalles).

Por lo tanto, presumiblemente el servicio se ejecuta con permisos de administrador o similares.

Entonces, suponiendo que realmente pueda leer y escribir toda la memoria del sistema para realizar pruebas, ¿cómo es que esto no es un problema de seguridad?

Si el servicio tiene los permisos adecuados para leer toda la memoria, entonces esto no es un problema de seguridad desde el punto de vista del sistema operativo: el servicio fue autorizado cuando fue instalado (por usted o por el fabricante). En la práctica, puede seguir siendo un problema de seguridad si el servicio tiene agujeros de seguridad (como una vulnerabilidad de ejecución remota de código), pero eso depende del servicio (como ocurre con cualquier servicio que se ejecute con permisos elevados).

Es de suponer que estos programas de prueba de memoria realmente funcionan y no me mienten.

Eso no es un hecho: los proveedores de software a veces tergiversan la verdad, como cualquier otra persona. Me parece cuestionable que un servicio pueda probar la memoria en un sistema en ejecución, independientemente de cualquier problema de permisos. ¿Cómo puede el servicio probar la memoria que está en uso, sin interferir con otro software? Tal vez lo lograron, o tal vez el servicio solo prueba la memoria que actualmente no está en uso, o solo prueba las lecturas... imposible saberlo sin analizarlo.

Como se señaló en los comentarios, los programas de prueba de memoria comunes, como la verificación de memoria del BIOS oMemtest86, se ejecutan inmediatamente después del arranque, sin cargar un sistema operativo, precisamente para obtener acceso completo y exclusivo a la memoria y la CPU.

información relacionada