lunes, 25 de agosto de 2008

Dulces sueños

Mr I/O [blackhat4all@gmail.com]

“… Belerofonte mató la bestia que arrojaba fuego por la boca, y así el reino de Licia pudo dormir en paz” Mitos Griegos

La historia comienza un día cualquiera, en cualquier pequeño pueblo a donde el destino fijó mi morada, el administrador – de sistemas claro está – se levantó temprano como era costumbre y se marchó a trabajar. Como es usual era un buen admin, por consiguiente no tenía mucho que hacer, ya que como saben en nuestro empleo – sino tienes servidores de correos, web, ftp, etc. – los papeles se hacen el primer día y sirven casi para toda la vida, solo tienes que cambiarles la fecha. Sino fuera por la clásica rutina de una auditoria – a la que esperaba tranquilo – todo habría sido solo un aburrido día más.


Lo que él no sabía era de la existente disconformidad de los auditores – resentidos por problemas personales –, que buscaban un chivo expiatorio en quien descargar algunas iras no importantes ahora, ni el momento en que esto sucedió. Pero eso ya es otra historia – más bien chismes de barrios – lo que sucedía aquel día era – quizás para sorpresa de sus extremistas visitantes – que todo marchaba demasiado bien.

Luego de horas de trabajo forzado por encontrar la mínima muestra de delitos Dios favoreció la perseverancia y en la máquina numero 6 de las auditadas por fin apareció algo – lo único creo – la imagen semidesnuda – ligera de ropas diría alguien, aunque yo preferiría semivestida pues soy bastante optimista – de alguna modelo.

Después de esto hubo silencio, nada más ocurrió en el mundo público, pero nada se había detenido, la maquinaria giraba en los engranajes de las reuniones a puertas cerradas y chismes de pasillos. Y así pasaron los días.

Otro día cualquiera – algún tiempo después claro está – otro administrador se despertaba con la tranquilidad de saber su “trabajo bien hecho” y este hubiera sido un día más – aburrido – sino se hubiera enterado de los chismes del mundo.

Habían encontrado – entre archivos eliminados – una foto – tremendo delito recogido en los reglamentos de toda entidad y resoluciones ministeriales, cosas esas que usualmente nadie lee – y le habían aplicado una medida al admin fulano de tal y a los técnicos que con el trabajan, impactante noticia en Infierno Grande. Lo más impactante – y extremo – era que la foto era de al menos 5 años atrás, cuando para colmo el admin aun no trabajaba en ese lugar.

De pronto quedé estupefacto – altamente preocupado además – yo también era un inocente admin durmiendo dulces sueños con mi cabeza en el cielo, y mi cuerpo en el infierno. Que para colmo había comenzado a trabajar en algún dichoso lugar después de que las máquinas habían sido instaladas con anterioridad.
¿Cuántos usuarios pasan a diario por mis máquinas? – o por las de cualquiera.

¿Cuántos regalos como ese tendría yo guardados entre los archivos borrados, en las profundidades del subsuelo de mis workstations?

No lo sabía. Y eso era ya suficiente para alejarme de inmediato de mis dulces sueños. El fantasma de las perturbaciones había colocado una gran preocupación en mi subconciencia y había envenenado mi existencia feliz. Pues cualquiera – yo mismo, tú o ella – podíamos ser victimas de la injusticia justiciera de cualquier idiota oportunista, resentido contra alguien.

Luego de meditar por algún tiempo decidí que era tiempo suficiente de dedicarme a buscar la solución a esta pequeña dificultad peligrosa. Por eso me dispuse a estudiar al enemigo, pues decidí que debía matar al dragón que vivía en mis dominios antes que viniera alguien le despertara y este me matara a mí.

Conociendo al “enemigo” Master File Table

En la investigación realizada se encontró que la llamada tabla maestra de ficheros (MFT) es el corazón de la estructura de ficheros de Microsoft Windows NT – NT, 2000, XP, SERVER, etc.). Esta no es más que un archivo (fichero) – un archivo invisible – especial del sistema, cuya esencia no es más que una base de datos que contiene información sobre todos los ficheros y subdirectorios (carpetas para la gente de la Windows era) existentes en el interior de una partición – volumen lógico – NTFS. Como cualquier base de datos “nuestra” MFT es una colección de registros para cada archivo y subdirectorio en el volumen lógico. Cada registro tiene una longitud de 1024 bytes y contiene como información los atributos de estos archivos, información que le dice al sistema como tratar con cada archivo.

Lo más interesante – a juicio del autor – acerca de MFT es que algunas veces almacena la actual data del fichero con toda la data relativa al fichero – tremendo chismoso ;) – la data almacenada dentro de la MFT es conocida como resident data (data residente). Esta puede tener importancia significativa concerniente a asuntos de seguridad informática con respecto a potenciales fugas – pérdidas – de datos sensibles por accidentes.

Es seductor exponer aquí que no existen cabos sueltos asociados con un fichero almacenado dentro de la MFT. La razón es que – por definición – esta es un área que marca desde los inicios hasta el final del fichero y el final del último cluster asociado a este fichero. En este caso, todos estos datos no residen en un cluster específico, residen en el archivo conocido como MFT.

Leyendo se encontró en otra parte que NTFS reserva los primeros 16 registros de la tabla para guardar cierta – ;) – información especial, y realizando un análisis de estos registros vemos que más o menos simplificadamente es así como están definidos:
El primer registro es el descriptor de la tabla en si o sea el índice, el cual es seguido por la MFT espejo (MFT$), la cual justifica su existencia porque si el primer registro se corrompe, NTFS lee el segundo registro para cargar los datos almacenados en él, al cual si comparamos con el primer registro descubrimos que es idéntico, con lo cual – sorpresa – puede autorepararse la tabla de asignación de ficheros. Otro asunto de interés es que la posición de los segmentos de datos – data segments – para ambas – MFT y MFT $ – están grabadas el sector de arranque (boot sector). A la vez que un duplicado del sector de arranque es almacenado en el centro del disco lógico.

El tercer registro de la MFT es el llamado “log file”, este es usado para – sorpresa – la RECUPERACIÓN DE FICHEROS, empleando para ello las posiciones del registro 17 en delante de la base de datos, los cuales representan cada fichero y (sub) directorio (interpretado como fichero claro está) existente en el volumen.

Nota: Los subsiguientes registros hasta el 16 no son del interés de este artículo por eso no son tratados.

Otro asunto de relativa importancia es la forma en que son interpretados los directorios: estos son tratados dentro de la MFT como simples ficheros, pues de manera similar a los datos los directorios contienen información, la diferencia radica en que esta se recoge ordenadamente y se utiliza como índice a su vez. Los directorios pequeños – sin directorios interiores – se recogen de manera entera dentro de la estructura MFT. Mientras que los largos son tratados como árboles binarios, con punteros – apuntadores – a clusters externos que contienen, a su vez, entradas de directorios que no pueden ser contenidas dentro de la estructura de la MFT.

Como quiera, pareciera que aun pueden existir “cabos sueltos”, pero son otro tipo de cabos sueltos, son los cabos sueltos que son el problema de nuestra investigación – cabos sueltos que al parecer no fueron tan sueltos – conocer de su existencia es lo los que hace fuerte a los investigadores y a los especialistas en seguridad, ya que la informática forense – csi en ciberworld – utilizan herramientas que capturan los ficheros borrados de manera supuestamente segura. Buscando su existencia entre los denominados por el autor “cabos sueltos”, pero no dentro de la MFT sino de la MFT$, tratando a esta como si fuera simplemente la MFT.

Esto se debe a que cuando se borra un archivo, simplemente se borra de la MFT, y se elimina de esta borrando el primer carácter del nombre, que es sobrescrito con un carácter especial que indica que ese registro está vacío y a la espera de que nueva data necesite ser almacenada en el disco, mientras que en el disco permanecen los datos supuestamente borrados, en cada uno de los clústeres, como esto ocurre a veces por accidente – y otros males - el espacio utilizado por este, y su ubicación en el volumen lógico aun se encuentra referenciado en la MFT$ y accesible a ciertas herramientas especiales – como un Restoration – o comunes como pueden ser en todo caso los undeletes.

Al concluir esta búsqueda quedaron todas las cosas claras, dejando absolutamente comprendido que cualquier método de borrado no es quizás lo suficientemente seguro. Pero que se le iba a hacer, seguimos trabajando con usuarios, que a su vez puede ser que nos dejen sorpresas de las que nosotros debemos haceros cargo, y – como se dice en voz común – debíamos enterrar sus muertos, que al estar en nuestras máquinas, se vuelven irremediablemente nuestros muertos.

Por ello y como se que este problema puede ser común para muchos de los que consultamos este documento, es que me siento a redactar algunas consideraciones a tener en cuenta para efectuar un borrado casi seguro, que pongo de esta manera en las manos del underground cubano, para que muchos de nosotros podamos seguir durmiendo en paz.

Pero antes se propone esclarecer que el autor considera un borrado seguro a aquel en que usando algún software – créanme he probado con muchos y solo uno me ha dado cierto resultado limitado –, método o la mezcla de ambos se logre eliminar un fichero sin la concebida posible recuperación, ya sea total, parcial, o simplemente conocer su anterior existencia en el ordenador.

Ideas elementales para un borrado seguro

La primera forma elemental de borrado casi seguro aplicable son las dos variantes del clásico se me borró la tesis, el cual tal vez no sea muy efectivo, pero es una solución elemental a nuestros problemas para una situación de crisis.

Primera variante:
Muy sencilla editamos el archivo con cualquier programa editor – no importa que archivo, puedes incluso utilizar el Word – borra unas cuantas líneas de lo que te abra en pantalla, salva el documento y seguidamente elimínalo.

Ventajas:
Cuando usas el recuperador de archivos recuperas un archivo ilegible
Inconvenientes:
El archivo ilegible aun te deja enseñando los bloomers pues conserva nombre y extensión, y aunque nadie pueda abrirlo, todo auditor sabe lo que es un jpeg, un mpeg, un avi, etc.

Segunda variante:
Crea con el bloc de notas un archivo vacío – 0 (cero) bytes – llamado – por ejemplo – noname.txt, guárdalo en una locación distinta a la que posee el archivo que vas a eliminar, renombra el archivo que quieres eliminar con ese mismo nombre y cópiale encima el archivo que creaste con el bloc de notas, lograrás engañar de esta manera al MFT, y obtendrás un borrado seguro en un 75 %.

Ventajas:
Obtienes un borrado bastante seguro pues te ahorras las extensiones delatoras.
Inconvenientes:
Esto es factible cuando borras un par de ficheros, pero que tal si tienes que borrar, las 6 temporadas de 24, cada una con su correspondiente subtítulo aparte, o 20 gigas de música. Tarea demasiado engorrosa digan de titanes. Ni alargando los días a 48 horas terminas con la segunda en una semana.

Una idea aparentemente más profunda

La idea subsiguiente parece una mejor solución, simplemente formateas la máquina – pero es solo en apariencias una buena idea – incluso podemos pensar en una reinstalación.
Ventajas
Supuestamente has destruido toda la data que te incriminaba, pero echemos un ojo primeramente a las desventajas.
Desventajas
Solo es valida si:
• Tienes una sola máquina.
• El formateo realizado es a bajo nivel.
• No tienes grandes volúmenes de información que puedas perder.

¿Por qué una máquina? No me digas que se te echaron a perder tus n (donde n >> 1) máquinas a la vez y ante la presencia de una auditoria inminente. Un poco extraño e incriminador este comportamiento, no te parece ;).

¿Por qué a bajo nivel? Porque incluso a bajo nivel existen warez especializados en la recuperación de formateos “accidentales”. O acaso no han escuchado de la historia de “se me formateó la máquina solita”.
¿Por qué grandes volúmenes de información no es recomendable? Porque esta cantidad de información vital debe estar disponible y no debe perderse, porque si es muy sensible puede que incluso puedas ir preso.
Pero la existencia de grandes volúmenes es un caso especial que si es discutible a raíz de un posible corolario que nos plantea que:

Una propuesta alternativa es la creación de tres particiones C, D y E. Donde C es la partición del sistema y los archivos de programa que instala Windows de manera automática – ojo xp real, no Windows desatentranca para usuarios inexpertos que se creen expertos -, D es la partición de tus archivos de programa – Office y toda la otra basura con la que trabajas – y E es la partición de los documentos de todos los usuarios que trabajan en la misma, pues sería cosa fácil mover los documentos – una vez borrada toda la basura – formatear esta última partición, y devolverlos luego a su lugar de origen.

Esto te brinda al menos un 85 % de seguridad, sobre todo si sabes lo que es un formateo de bajo nivel, y como llevarlo a cabo.

Belerofonte o las ideas originales a discutir en este material.

La próxima solución es la solución recomendada por el autor, para ello vas a utilizar un par de software el Norton Ghost 2003, y el Restoration 3.2.13, y la imagen de Ghost que se anexa a este material, con ellos lograremos un borrado en un 98 porciento de seguridad.

Para ello previamente tendrás compartida tu máquina como explicamos con anterioridad – acostúmbrate a trabajar organizado – con tres particiones, le habrás asignado un espacio de 7 Gb a la unidad C (sistema) y las unidades D y E tendrán el mismo tamaño.

El truco consiste – simplemente – en copiar los datos de E para D una vez eliminado los archivos que te hubieran hundido más profundo que al Titanic, seguidamente realizarás una restauración de la imagen "limpiadora_de_disco" que se crea utilizando el propio Ghost erigiendo una copia de respaldo de un disco duro vacío con un formateo a bajo nivel, que es envejecido con cada día que transcurre, lo cual la hace muy creíble hablando en términos forenses – y que fue creada con Ghost – en la partición D.

Esto se realiza – el autor pide disculpas ya que esto no es un tutorial paso a paso para principiantes, simplemente tratará de exponerlo de la manera más sencilla, pues prefiere dejar en manos de los especialistas en tutoriales explicar cómo realizar una restauración – sin muchas complicaciones para lo cual vamos a la opción restaurar del Norton Ghost y seguimos los pasos correspondientes para realizar una restauración del volumen.

Concluida esta primera parte ya podemos regresar toda la data movida a su lugar de origen, ya hemos limpiado de todo rastro acusador la MFT (en realidad hemos sustituido una MFT por otra, pero el resultado obtenido es igual a una MFT limpia ;). Nada, un poquitico de ingeniería social aplicada) y estamos en un 90 porciento libre de toda traza. Con lo que una vez finalizada esta operación podemos dar por concluida nuestra tarea, no obstante si ustedes son medios paranoicos como el autor – hecho este que considero una ventaja teniendo en cuenta cualquier eventualidad – aún podrías no sentirte seguro con la limpieza realizada, para ello te propongo “laves” también los clusters.

Para la limpieza de los clústeres se ejecutará el Restoration, en el cual se elegirá la opción Delete Completely del menú Others que realizará entonces la limpieza de los clusters copiando clústeres en blanco sobre cada uno de ello. Con esto si habrán concluido tus temores “normales” – resueltos en un 98 %, pues te advierto que existen más formas de saber que has hecho en tu máquina, por suerte todos los auditores no tienen tan alto coeficiente intelectual – y sentirte un poco más seguro, ya puedes regresar a la normalidad de una vida tranquila.

Cabría ahora realizarse algunas preguntas inteligentes para dar por concluida esta exposición.
¿Por qué no efectuar solamente una limpieza con el Restoration? Porque el Restoration solo limpia los clústeres, no limpia la MFT, si el programa de recuperación utilizado por los auditores hace un escaneo profundo en la MFT – son más usuales este tipo de recuperadores – encontrarás el nombre del archivo y su extensión, y una explicación de que es imposible su recuperación pues el archivo está corrupto. Por otro lado se debe agregar que el proceso de limpieza con el Restoration es bastante lento.

¿Entonces es más recomendable – si debiéramos elegir – realizar la limpieza con el Ghost? En cierta manera si, pues como ya se explicó anteriormente la mayoría de los recuperadores basan sus algoritmos en búsquedas y comparaciones en la MFT, pero qué tal que se hiciera con alguna herramienta para recuperar los contenidos de los clústeres. Creo que esta es una solución para una limpieza ágil y rápida. Pero se recomienda la utilización mezcladas de ambas técnicas, o sea un borrado a lo Belerofonte.

¿Cuándo copiamos los archivos a D, para hacerle la salva, y luego los borramos de D, al ser estos restaurados, no estaremos creando nuevas trazas de elementos eliminados en el disco duro?
Si, esto es totalmente cierto, pero se debe limpiar primero la casa antes de hacer la salva, o sea antes de copiar en D primero debemos eliminar los archivos ilegales que se encuentran en E – por supuesto con el método clásico del Shift + Del – hacer entonces la copia, limpiar con alguno de los procedimientos propuestos, y devolver los archivos a su lugar de origen. Si has trabajado con pulcritud no tienes que preocuparte por los archivos que quedan eliminados en la torre D, porque son archivos utilizados en tu lugar de trabajo y es normal que se encuentren estos tipos de archivos eliminados en el disco duro.
Ahora si – creo yo – que ya estamos listos para tener dulces sueños.

El autor, que gusta de vivir en el anonimato, es graduado del superior en una ciencia exacta y una carrera técnica, tiene 33 años aproximadamente, tuvo su primera experiencia con ordenadores a los 8, no se considera genio ni ha_cker pero si alguien que ha pasado mucho tiempo en el medio y más sabe el diablo por viejo que … ha trabajado como admin en diferentes lugares desde los 17 años, su verdadero alias es bastante conocido en su región por lo que para vivir en reposo prefiere ser llamado MisterIO (Mr I/O).



Artículos relacionados


2 comentarios:

Unknown dijo...

Hola Cuate. Se ve que sabes bastante, yo quieisera hacerte una pregunta en el orden contrario de tu artículo: ¿cómo recuperar información que se considera eliminada totalmente?
La situación es esta: despues de que tineup utilities hiciera una defragmentación de un disco de 160G ocupado en un 90% el disco dejó de ser reconocido por el sistema y este programó una reparación chkdsk. Con lo cual el resultado fué un virtual formateo de la unidad y una "suplantación" con carpetas ocultas del tipo found.000 y un bootex visible. El disco duro marca 2.4 gigas ocupados únicamente. Los ingenieros de recuperación de disco duro dicen que el MFT y el MFT mirror han sido sobreescritos y es inaccesible la MFT antes de la problemática. ¿crees que se pueda recuperar mi disco duro? Muchas gracias.

Reynier Matos Padilla dijo...

Hola Luis!

He probado varios softwares para hacer lo que quieres y el que mejores resultados me ha dado es el Get Data Back, recupera la información aún después de formateado el HDD.

Aunque si tu disco perdió la MFT original no se si se pueda hacer mucho, pero te animo a que lo intentes.

Aquí te dejo la URL para que lo desgargues:
http://www.softarchive.net/portable/portable_getdataback_for_ntfs_v:45403.html