Buscar este blog
martes, 30 de abril de 2013
Un excelente colega
Quiero aprovechar la oportunidad para dar la bienvenida a un excelente colega con el cual tengo el gusto de trabajar el es Hecky Neobits les recomiendo este excelente blog : neobits.org y siganlo en twitter http://twitter.com/hecky
Analisis de memoria
Hablemos
acerca de la adquisición de memoria RAM en un sistema vivo, de
manera resumida y concreta la RAM (Random Access Memory) es
simplemente una ubicación en donde se almacena memoria dentro de un sistema
(podríamos irnos a definiciones más técnicas pero creo que ese
no es el tema de esta publicación), la memoria está diseñada para el CPU (central
processing unit) accede a ella de manera frecuente y rápida, de manera virtual
cualquier acción u operación que realice una computadora se lleva a cabo en memoria
y a mas memoria contenida en un dispositivo o sistema más rápido se realizan
las operaciones, algunos de nosotros como investigadores forenses olvidamos
pasar más tiempo y enfocar más esfuerzos en la recuperación de esta memoria,
debido a que es volátil y se almacena de manera aparentemente no estructurada
pensamos que es mejor “sacar lo que se quede” en el sistema, hace un par de
años era difícil rescatar este tipo de memoria volátil de ahí el taboo que la
RAM es muy difícil de analizar u obtener. Debido a que la memoria RAM es eliminada (yo
se que algunos de ustedes dirán que recientes estudios comprueban que no toda
la RAM se pierde, pero para fines prácticos digamos que al apagar el sistema la
RAM se pierde) este tipo de memoria necesita ser adquirida de manera forense
mientras el sistema aún sigue “vivo”
antes solo había la opción de utilizar herramientas que leyeran información
directamente del sistema operativo sin embargo ahora existen herramientas que
nos permiten adquirir la totalidad de la memoria y analizarla.
Herramientas que extraen información
del sistema operativo
El
problema con estas herramientas es que se enfocan a áreas específicas de la
memoria como:
- · Hora y fecha del sistema
- · Las aplicaciones que están corriendo
- · Puertos abiertos
- · El estado de las conexiones de red
- · Los servicios y procesos que Windows este ejecutando
- · Las aplicaciones que estén como “listening”
- · Live browsing
Otra
gran desventaja de estas herramientas es que algunos de estos aspectos pueden
ser modificados por medio de rootkits y entre más experimentados se vuelven los
hackers, más complejos son sus rootkits, leí recientemente en dfinews.com la
capacidad que tienen estos rootkits de modificar los tiemstamps del sistema, información
falsa de procesos que están corriendo etc. Debido a que los rootkits proliferan en la red y muchos de
ellos están disponibles para ser descargados les recomiendo que migren a
herramientas más especializadas para la adquisición y análisis de su memoria volátil.
Herramientas
especializadas
Me
gustaría compartir con ustedes algunos de los usos de Defense Computer Forensic
Lab Data Dump (DCFLDD), esta herramienta trabaja en ambientes de Linux,
unix BSD y Windows y pueden descargar la última versión en la siguiente liga: http://dcfldd.sourceforge.net/.
La
sintaxis del comando utilizado para preservar la memoria física es el siguiente:
DCFLDD if=\\PhysicalMemory of=AnyExternalDevice conv=sync,noerror
DCFLDD= Es el nombre del archivo binario que se esta ejecutando.
if= \\.\PhysicalMemory -"if" significa "In File", al cual se le da el valor correspondiente de la memoria fisica del sistema.
of =AnyExternalDevice - "of" significa "out file", el cual les recomiendo que seal cualquier dispositivo externo o algun dispositivo de red, debido a que se quiere evitar que cualquier infromacion sea escrita en nuestra evidencia original.
conv=sync,noerror le dice al programa que continue auqnue encuentre errores de lectura y que rellene con ceros cualquier bloque de input ya que queremos que la misma cantidad de informacion que lea sea la misma cantidad de infromacion que se escriba
DCFLDD if=\\PhysicalMemory of=AnyExternalDevice conv=sync,noerror
DCFLDD= Es el nombre del archivo binario que se esta ejecutando.
if= \\.\PhysicalMemory -"if" significa "In File", al cual se le da el valor correspondiente de la memoria fisica del sistema.
of =AnyExternalDevice - "of" significa "out file", el cual les recomiendo que seal cualquier dispositivo externo o algun dispositivo de red, debido a que se quiere evitar que cualquier infromacion sea escrita en nuestra evidencia original.
conv=sync,noerror le dice al programa que continue auqnue encuentre errores de lectura y que rellene con ceros cualquier bloque de input ya que queremos que la misma cantidad de informacion que lea sea la misma cantidad de infromacion que se escriba
Ahora
les recomiendo que en base al escenario que estén enfrentando utilicen
herramientas como “strings.exe” “find” y “grep” para localizar los caracteres
contenidos dentro de algún archivo. Claro
que existen otras herramientas tanto libres como de paga para obtener y
analizar nuestra memoria sin embargo en casos recientes esta herramienta me ha
sido muy útil sobre todo cuando sospecho que el incidente corresponde a alguna intrusión.
Espero
esta herramienta les sea de ayuda y estamos en contacto.
Suscribirse a:
Entradas (Atom)