¿Hay alguna forma de realizar la adquisición de datos en los registros de la CPU?

8

En Digital Forensics, como práctica recomendada, un investigador debe recopilar datos desde la fuente más volátil hasta la fuente menos volátil. Generalmente, cuando se habla de adquisición dinámica / en vivo, la mayoría de los libros de texto comienzan con la RAM como la fuente de datos más volátil, aunque los registros de la CPU son más volátiles. Sin embargo, parece que no puedo encontrar una fuente que describa la adquisición de datos de la CPU de un dispositivo sospechoso. Dado que la ejecución de cualquier programa cambiará al menos un registro (EIP / RIP). Así que mis preguntas son, ¿Se está descuidando los datos dentro de los registros porque no hay un valor investigativo para ellos? ¿O porque no es posible?

Y, dependiendo de la respuesta a la pregunta anterior, ¿hay alguna forma de hacerlo?

    
pregunta HSN 22.05.2017 - 19:44
fuente

2 respuestas

5

Incluso si no se ejecuta programa , el sistema operativo se ejecuta. Y no puedes alterar eso, ni técnica ni forense.

Además, una moderna CPU de cuatro núcleos puede tener varios cientos de registros de CPU, la mayoría de los cuales son invisibles . Esta es una optimización: cuando se escribe un valor desde un registro de CPU a caché, puede llevar un tiempo. Al usar un registro invisible para mantener el valor por un tiempo, la CPU puede continuar. Pero tan pronto como se escribe el valor, se puede borrar el registro. Entonces, efectivamente, estás lidiando con registros invisibles que cambian de estado incluso si no hay ningún programa en ejecución, ¡buena suerte!

Lo que también nos lleva al siguiente problema: la memoria caché de la CPU se actualiza de forma permanente y bastante independiente. No sería eficiente si esto estuviera bajo el control del programa.

Ahora, lo que es posible es volcar un programa. Un sistema operativo moderno típico puede guardar el estado completo del programa, incluidos los registros , en un archivo de disco. En Linux, esto se conoce como archivo core , en Windows como volcado de modo de usuario . Esta capacidad era necesaria de todos modos porque es posible que un sistema operativo multitarea deba suspender y reanudar un proceso en ejecución (por ejemplo, cuando está programado que se ejecute otro proceso). Obviamente, para reanudar el proceso, los registros deben ser restaurados. La memoria caché normalmente solo se borra, ya que no debería afectar la corrección del programa, por lo que tampoco termina en archivos de volcado.

    
respondido por el MSalters 24.05.2017 - 01:01
fuente
3

La forma aceptada de hacerlo es adjuntar sondas lógicas a la CPU y / u otros lugares en el circuito.

Con esa disposición puede rastrear las instrucciones y el movimiento de datos dentro y fuera de la CPU, y puede deducir los estados de registro en consecuencia.

Pero una vez que introduce un nuevo programa en ejecución en el sistema, ha violado la primera regla sobre evidencia forense legalmente utilizable. Has cambiado el sistema. Cualquier abogado defensor decente podría impugnar tales pruebas.

    
respondido por el SDsolar 23.05.2017 - 23:21
fuente

Lea otras preguntas en las etiquetas