-[ 0x04 ]-------------------------------------------------------------------- -[ Seguridad en los datos ]-------------------------------------------------- -[ by blackngel ]----------------------------------------------------SET-30-- @ @ @@@ blackngel_hack@hotmail.com @@@ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII III @@@@ @ @@@@@ @@@@@ @ @ @@ @ @@@@@ @@@@@ @ III III @ @ @ @ @ @ @ @ @ @ @ @ @ @ III III @@@@@ @ @@@@@ @ @@@ @ @ @ @ @@@ @@@@ @ III III @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ III III @@@@ @@@@@ @ @ @@@@@ @ @ @ @@ @@@@@ @@@@@ @@@@@ III IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII @@@ @@@ @ @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%========================%%% %%% SEGURIDAD EN LOS DATOS %%% %%%========================%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% "Bienvenidos al mundo de lo real..." =_&_==_&_==_&_==_&_==_&_= =_&_= 01 INDICE =_&_= =_&_==_&_==_&_==_&_==_&_= ~$~~$~$~$~$~$~$~$~$~$~$~$~$~$~$~$~$~ ~$01$ INDICE $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$02$ INTRODUCCION $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$03$ INFORMATICA FORENSE $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$04$ ALMACENAMIENTO $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$05$ DESPERFECTOS $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$06$ ELIMINACION DE DISQUETES $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$07$ ELIMINACION DE CDs $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$08$ SOFT DE BORRADO $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$09$ SOFT DE ANALISIS $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$10$ PRUEBAS $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$11$ MI IMPLEMENTACION $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$12$ CONSEJOS $~ ~$~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~ ~$13$ DESPEDIDA $~ ~$~~$~$~$~$~$~$~$~$~$~$~$~$~$~$~$~$~ << En todas las actividades es saludable, de vez en cuando, poner un signo de interrogacion sobre aquellas cosas que por mucho tiempo se han dado como seguras. >> [ Bertrand Russell ] =_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 02 INTRODUCCION =_&_= =_&_==_&_==_&_==_&_==_&_==_&_= Hola de nuevo a tod@s, nos volvemos a ver otra vez con muchos mas conocimientos y seguro que con muchas mas ganas de seguir aprendiendo. Esta vez nos toca centrarnos en la seguridad que hay en los datos y en sus medios de almacenamiento. El articulo se basara principalmente en la proteccion de los mismos, pero tambien se vera algo sus posibilidades de violacion y los puntos mas debiles que nos ofrecen los sistemas para encontrarlos. Puede que en ciertas ocasiones el articulo se vuelva algo tecnico, pero para eso estamos, y repito que ami estas cosas me gustan. Entonces, para que nadie salga de aqui insatisfecho, si tiene alguna duda, solo tiene que enviarme un email a "blackngel_hack@hotmail.com" y tratare de resolversela. La mayor parte de esta informacion la podemos encontrar en infinidad de paginas sobre informatica e investigacion forense, asi como en articulos de aspecto tecnico o informacion sobre soportes. Se destaca que la gran parte de estas paginas se encuentran en ingles pero tambien se hayan articulos dedicados a nuestra nacion ;D. En este estudio que estamos haciendo nos basamos en la recuperacion y borrado seguro respectivamente de datos en los diferentes medios que conocemos, pero..., un analisis forense normalmente trata sobre el estudio de un ataque, todas las huellas que hayan podido quedar, los metodos que se han utilizado, cambios en el sistema y su implementacion. A partir de aqui se obtiene un informe con el que poder realizar las acciones adecuadas (personales o judiciales). Sin mas preocupaciones, comencemos, espero que disfruten de los conocimientos que yo puedo aportarles. << Lo que conduce y arrastra al mundo no son las maquinas, sino las ideas. >> [ Victor Hugo ] =_&_==_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 03 INFORMATICA FORENSE =_&_= =_&_==_&_==_&_==_&_==_&_==_&_==_&_= Definiremos informatica forense como la ciencia de manipular (en cualquier sentido de la palabra) los datos que han sido procesados electronicamente y que se encuentran almacenados en un medio computacional. Muchas veces relacionamos este termino con nuestro amigo el FBI y no nos equivocamos demasiado ya que ellos desarrollan software para la recoleccion de evidencia. Cabe decir que desarrollan mucho mas software de tipo catalogado y para fines desconocidos (no ilicitos, porque ellos son la ley :)). Por cierto, por lo que he visto hay mucha gente que no conoce el significado de "FBI". Traducido a nuestro lenguaje: Oficina Federal de Investigaciones. Con la informatica forense se logran 3 objetivos principales: * Compensacion de daños. * Persecucion y procesamiento judicial de los criminales. * Creacion y aplicacion de medidas preventivas. Los analistas forenses utilizan muchas herramientas para hacer mas facil su labor a la hora de presentar puntos de evidencia. Uno de los programas mas conocidos para estas labores es "EnCase" hecho por Guindace Software Inc. podemos encontrar mas informacion en esta direccion: http://www.guidancesoftware.com. Como no, esto no se consigue por la cara, sus precios: @ Gobierno y Educación ->> US$1,995 @ Sector Privado ->> US$2,495 Alquien podria ofrecer soporte economico para gente curiosa como nosotros... OK, veo que no :). Tambien hay que mencionar a "The Coroner Toolkit", esta herramienta fue utilizada por Wietse Venema y Dan Farmer (dos expertos en seguridad) en una demostracion de Unix Forensics, en la que dieron conocimiento de sus grandes posibilidades en la extraccion de informacion tanto del sistema de ficheros como de la red. Pasaros por esta pagina: http://www.porcupine.org/forensics. Alli encontrareis el codigo fuente de esta herramienta y muchos de sus diferentes "parches". Ademas, tambien tendreis acceso atraves de sus links a diversa documentacion de nuestros queridos amigos. Los documentos y paginas man que trae consigo esta fantastica herramienta, nos aportaran un monton de nuevos conocimientos sobre la recoleccion de evidencia y como recuperar datos que hemos perdido. Nota: Es necesario aprender ingles para conseguir estar bien informado. Esta deberia de ser nuestra segunda lengua. Entre las herramientas forenses nos encontramos las de monitorizacion, logeo, marcado de documentos e incluso herramientas de hardware para el analisis exhaustivo. Decir que los estudios que se hacen mediante dispositivos hardware son mas conocidos como "analisis de laboratorio". Ya teneis otro punto de busqueda mas para encontrar otra informacion jugosa en inet. Los peores inconvenientes para un analista forense sean quizas los temas judiciales, no es tan facil como parece presentar evidencias y cargos contra alguien en una corte. Aunque sea poco lo que le dificultemos nosotros, mucho mas dificil sera para ellos, por esto mismo debemos preocuparnos de proteger de la mejor forma posible nuestra informacion. << Nuestra tecnica no solo produce artefactos, esto es, cosas que la naturaleza no produce, sino tambien las cosas mismas que la naturaleza produce y dotadas de identica actividad natural. >> [ Xavier Zubiri ] =_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 04 ALMACENAMIENTO =_&_= =_&_==_&_==_&_==_&_==_&_==_&_= LAS BASES FISICAS ----------------- Aqui se mencionaran los cuatro fenomenos utilizados para el almacenamiento de datos en un medio magnetico: - 1 - Una corriente electrica produce un campo magnetico. - 2 - Algunos materiales se magnetizan con facilidad cuando son expuestos a un campo magnetico debil. Cuando el campo se apaga, el material se desmagnetiza rapidamente. Se conocen como Materiales Magneticos Suaves. - 3 - En algunos materiales magneticos suaves, la resistencia electrica cambia cuando el material es magnetizado. La resistencia regresa a su valor original cuando el campo magnetizante es apagado. Esto se llama Magneto-Resistencia, o efecto MR. La Magneto-Resistencia Gigante, o efecto GMR, es mucho mayor que el efecto MR y se encuentra en sistemas especificos de materiales de peliculas delgadas. - 4 - Otros materiales se magnetizan con dificultad (es decir, requieren de un campo magnetico fuerte), pero una vez se magnetizan, mantienen su magnetizacion cuando el campo se apaga. Se llaman Materiales Magneticos Duros, o Magnetos Permanentes. ESCRIBIR DATOS -------------- Los computadores almacenan datos en un disco magnetico en un sistema de numeracion binario, es decir, una secuencia consecutiva de 1s y 0s. Los bits se transforman en una onda de corriente electrica que es transmitida por medio de cables al rollo de la cabeza de escritura. Un bit 1 corresponde a un cambio en la polaridad de la corriente, mientras que un bit 0 corresponde a una ausencia de este cambio en la polaridad de la corriente de escritura. Los 1s almacenados aparecen en donde se produce una inversion en la direccion magnetica en el disco, y los 0s residen entre los 1s. LEER DATOS ---------- Para realizar la lectura de los datos previamente almacenados se hace uso de una tecnica llamada "efecto GMR" que es utilizado por la cabeza de lectura. Al pasar una corriente por el elemento GMR, los cambios que se producen en la resistencia son interpretados como cambios en el voltaje. El tiempo entre los impulsos que se producen, son decodificados respectivamente como 1s y 0s segun convenga. Existe un problema bastante desagradable, y es que, como todo componente electrico, las fuentes magneticas generan ruido y esto puede ser mal-interpretado por una cabeza de lectura << Si el unico instrumento de que se dispone es un martillo, todo acaba pareciendo un clavo. >> [ Lotfi Zadeh ] =_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 05 DESPERFECTOS =_&_= =_&_==_&_==_&_==_&_==_&_==_&_= Ahora es el momento de estudiar las zonas debiles que se encuentran en nuestro disco duro. Estas son controladas por el Sistema Operativo pero tambien se sabe que pueden ser manejadas por software especialmente diseñado para tal objetivo. Pueden ser utilizadas para la recoleccion de rica y variada informacion, por este motivo, debemos de ser conocedores de las mismas y asegurarnos de que no ofrezcan datos sensibles. FILE SLACK ---------- Para entender esto, debemos comprender mas o menos la estructura de un "sistema de archivos" y como estes son almacenados en nuestro disco duro. Todas las diferentes versiones de Windows dividen el disco duro en pequeños bloques denominados "clusters", su tamaño es especifico dependiendo del tamaño del disco y del sistema de archivos. Por ejemplo, para NTFS se decide de esta forma: .----------------------------------------. | Tamaño del disco | Tamaño del cluster | |-------------------|--------------------| | 512 MB o menos | 512 bytes | | 513 MB - 1024 MB | 1 KByte | | 1025 MB - 2048 MB | 2 KByte | | 2049 MB o mas | 4 KBytes | '----------------------------------------' *Esta tabla ha sido extraida del articulo de NTFS del Profesor Falken. Aunque parezca mentira, una de mis computadoras aun trabaja con un disco duro de escasos 2 Gigabytes. La verdad, para mi, cuanto mas vieja es una maquina, mas gusto me da el explotar al maximo todos sus recursos y sacarle el maximo probecho y rendimiento. Para comprender el almacenamiento en Linux recomiendo una atenta lectura a los fuentes del sistema de archivos ext2 (recientemente nos encontramos con ext3, con journaling). En "linux/ext2_fs.h" nos encontramos con las siguientes estructuras: # struct ext2_super_block -> Formato del superbloque. # struct ext2_group_desc -> Formato del descriptor de grupo. # struct ext2_dir_entry -> Formato de las entradas de directorio. # struct ext2_inode -> Formato de un inodo. La ultima sea quizas la mas importante, ya que un inodo es el bloque de construccion basico del sistema de archivos. Y contiene toda la informacion que puede describir a un fichero. Pues bien, suponiendo que queremos guardar un archivo de 2Kb y el tamaño del cluster esta definido a 4Kb estaremos desperdiciando otros 2Kb. Este espacio sobrante, entre el final del archivo y el final del cluster, es al que llamamos "file slack". Este espacio es sin duda una gran y valiosa fuente de informacion porque los SOs de Microsoft utilizan (rellenan) este espacio para almacenar datos que se encuentran en la memoria principal. Actualmente lo mas normal es encontrarnos con un tamaño de cluster igual que el de una pagina, es decir, 4Kb. AREA DE SWAP ------------ Debemos de diferenciar el sentido de este concepto para cada SO: 1.- Windows: Este utiliza un archivo que hace las veces de repuesto para la memoria principal del sistema (la RAM) y almacena informacion de acceso aleatorio en el mismo. El usuario no es conocedor de este suceso y por tanto una considerable vulnerabilidad. El tamaño de este archivo no es fijo y puede ser modificado. En WinXP vete a: Panel de control->Sistema->Op. Avanzadas-> ->Configuracion(Rendimiento)->Op.Avanzadas->Cambiar(M. Virtual) una vez ahi, puedes modificar a tu gusto el tamaño inicial y el tamaño maximo. Estos son los archivos de almacenamiento: * Windows 9x/Me -> win386.swp * Windows 2000/XP -> pagefile.sys Nota importante: Si bien es posible deshabilitar el uso de la memoria virtual o modificar su tamaño, ello no es nada conveniente, ya que provoca problemas frecuentes en el sistema y, por otro lado, hay gran cantidad de software que hace uso de estes archivos. En vez de esto, la mejor opcion seria cifrar su contenido, ello, por ejemplo, es una gran posibilidad que nos ofrece la fantastica herramienta BCWipe. 2.- Linux: Linux utiliza un area de tamaño definido por el usuario en la instalacion del sistema en el que se almacenan tambien datos de la memoria principal. Normalmente este area es una particion que se crea junto la particion raiz de 'Linux' y no deberia de sobrepasar el mismo tamaño de nuestra memoria RAM o el doble. Por otro lado, Linux hace uso de un dispositivo de caracter, que se encuentra en /dev/kmem, esta es una imagen de la memoria principal del ordenador. Bastantes toqueteos se han realizado ya con "kmem", busquen en inet o empiecen por nuestro amigo 'man mem' para mas informacion. Los dos son un buen lugar de comienzo para un investigador interesado en nuestras propiedades (si quieren, pueden...). UNALLOCATED FILE SPACE ---------------------- Cuando los usuarios de Windows confian en el simple borrado del mismo SO, estan cometiendo realmente dos errores, el primero es que este no es seguro y el segundo (peor aun) es que estes no son realmente borrados. Lo que realmente pasa con los ficheros es que son removidos a un area de espacio no-asignado, de tal forma que los datos siguen existiendo pero se encuentran ocultos a los ojos de los osuarios (que no a software especial). En los Windows 9x/Me, cuando un archivo es borrado, la FAT (Tabla de asignacion de ficheros) marca el expacio de este archivo como libre para asi poder ser sobreescrito con nueva informacion, pero mientras ello no se realiza, la informacion sigue manteniendose intacta con los consecuentes problemas de seguridad que ello conlleva. ARCHIVO DE HIBERNACION ---------------------- Es un archivo de sistema que utilizan los SOs Windows antes y despues del estado de hibernacion (o estado S4). Es una "imagen del sistema" que se escribe al disco antes de entrar en el estado de hibernacion, cuando el usuario vuelve a trabajar, este fichero se carga y todo vuelve a la normalidad (al estado anterior). Haber cabezas pensantes, que mejor que tener toda la configuracion del sistema en un solo archivo? A alguien se le empiezan a ocurrir ideas... La herramienta BCWipe tiene una opcion que se encarga de este archivo y es conveniente hacerlo con regularidad, mas facil activandolo como tarea programada. BORRADO EN UNIX --------------- Pues que mas que la otra cara de la moneda. Lo que unix hace para borrar un archivo de nuestro sistema, es setear el contador link a "0", eliminando el nombre del mismo de las entradas de directorio. El espacio se queda en un estado disponible para otros archivos, pero... - que pasa mientras este espacio no es utilizado? - se podria acceder a esta "basura"? Desgraciadamente el inodo sigue manteniendo informacion sobre el archivo al que hace referencia y solo habria que realizar la busqueda de inodos con datos y con el contador link con el valor de "0", seguir el puntero de bloques, llegando exactamente al contenido del fichero. En fin: Al igual que cualquier persona se preocupa de lo que sucede en su casa (quien anda en ella), su coche (que nadie lo raye), tambien deberiamos de preocuparnos de lo que pasa con nuestra informacion y de lo que alguien podria hacer con ella. No seamos conformistas e investiguemos un poquito que no nos viene nada mal. << La tecnica no solo es una modificacion, es poder sobre las cosas. >> [ Xavier Zubiri ] =_&_==_&_==_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 06 ELIMINACION DE DISQUETES =_&_= =_&_==_&_==_&_==_&_==_&_==_&_==_&_==_&_= Nostalgia me produce el hablar de los tan conocidos "disquetes", pero sin duda alguna muchos seguimos aun utilizandolos para pequeños trabajos y tambien para las preciadas minidistribuciones :) Si alguien no las ha probado, deberian hacerlo y entender su estructura, es facil. Por si solos son medios bastante fragiles, pero siguen siendo fuentes significables de informacion y aqui expondremos diferentes modos de conseguir la destruccion de los mismos o su borrado de datos. Como todos sabemos, los disquetes, a diferencia de los CD-R, son medios reescribibles y que funcionan al igual que un disco duro (no tan asi :)) incluso utilizan el mismo "Sistema de Ficheros" que nuestro SO, por ello los metodos de borrado por software utilizados tienen la misma influencia en este que en nuestro HD. METODOS ------- 1.- Pasar un iman a la superficie electro-magnetica del disquete hara que los datos se pierdan irremediablemente ya que estes son almacenados mediante pulsos electro-magneticos y cualquier fuerza proveniente de una de estas fuentes provoca su cambio o perdida. 2.- Incineracion, necesita de alguna explicacion?. El unico inconveniente es la contaminacion ambiental :). No os lo tomeis a broma, o sino, leeros el How-To en español de "Ecologia y Linux", para mi tiene cierto contenido de interes. 3.- Vertido de alguna substancia corrosiva sobre la superficie magnetica del disquete. 4.- Cortar en trozos el disquete asegurando que el disco interior queda convenientemente troceado. Se pueden recuperar datos de cada uno de los cachos... 5.- Sobreescritura del contenido del disquete, no es el metodo mas bueno pero si el mas facil. Cuantas mas veces se reescriba el mismo mas dificil sera la recuperacion de informacion. Es mas eficiente utilizar un programa que realice las iteraciones de sobreescritura. Podriamos cubrir mas formas pero no creo que necesitemos de su uso despues de que utilicemos correctamente las anteriores, demos paso entonces al soporte mas demandado en nuestros dias. Subida del precio de CDs? a que me suena eso? ;) << La television es el espejo donde se refleja la derrota de todo nuestro sistema cultural. >> [ Federico Fellini ] =_&_==_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 07 ELIMINACION DE CDs =_&_= =_&_==_&_==_&_==_&_==_&_==_&_==_&_= En este apartado daremos un vistazo a las opciones que disponemos para la eliminacion de los datos en nuestro querido soporte "el CD". Claro es de suponer que cualquiera de ellas provocara la inutilizacion total del mismo, pero realmente eso es lo que deseamos, que nadie pueda volver a reconstruir nuestra informacion. METODOS ------- 1.- Retirar la lamina reflectiva con algun elemente cortante. Pueden seguir quedando datos en el policarbonato. 2.- Introducir el CD en un microhondas. Esto trae consigo ciertos inconvenientes, puede causarse un cortocircuito por culpa del contendio de metales en el CD. 3.- Rayar la parte superior del CD que es la que contiene los datos. 4.- Cortar el CD en la mayor cantidad de trozos posibles asegurandose de que la lamina reflectiva queda destruida. 5.- Utilizacion de productos quimicos sobre el soporte. Quizas sea suficiente con cualquier tipo de acido corrosivo. Tener cuidado con lo que jugais, yo no me hago responsable. 6.- Incineracion del CD, la mas efectiva. Repito lo de la contaminacion ambiental... :D 7.- Y por ultimo si nuestro CD es regrabable, podemos hacer uso de la reescritura, pero aun despues de varias pasadas, podria llega a sacarse informacion (aunque seria un proceso muy dificil). Hasta aqui hemos llegado con los diferentes metodos que podemos y debemos utilizar en caso de hacer falta. Que os pareceria meter el CD en "Acido Sulfurico", si sigue vivo, cortarlo en trozos y por ultimo quemarlo en una hoguera (si no tienes conocimientos suficientes para hacer una hoguera puedes tirarlo a las lavas de Mordor). Si alquien es capaz de recuperar un CD despues de este proceso, estaria por apostar que ya esta fichado por nuestra amiga la NSA. << La gente comienza a plantearse si todo lo que se puede hacer se debe hacer. >> [ D. Ruiz Larrea ] =_&_==_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 08 SOFT DE BORRADO =_&_= =_&_==_&_==_&_==_&_==_&_==_&_==_&_= Las siguientes herramientas aqui presentadas, han sido analizadas y descritas bajo mi punto de vista, agradeceria que se me comentase cualquier discrepancia encontrada. Para un mejor conocimiento de cada una de estas utilidades, deben ser utilizadas con detenimiento, repito, "utilizadas". ################### # MS-DoS//WINDOWS # ################### __________ |_BCWipe_| Estupendo producto de la casa Jetico, su mayor defecto es que no es gratutito, fuera de esto, sus carateristicas son ampliamente destacables. Una de sus facetas mas interesantes es la de "Cifrado de la swap", con ello elevaremos de forma considerable nuestro grado de seguridad. Los algoritmos de cifrado disponibles son: * Rijndael -> 256-bit * Blowfish -> 448-bit * GOST 28147-89 -> 256-bit * Twofish -> 256-bit Este software dispone de diversas opciones que pueden ser modificadas a gusto del usuario. Metodo de borrado: * Metodo Gutmann de 35 pasadas. * Recomendado en el manual NISPOM del US DoD, 7 pasadas. * Una pasada aleatoria. Esta fantastica herramienta trae consigo una utilidad llamada "BCWipePD.exe", su objetivo es el de borrar todo el contenido de un disco duro, desde los sistemas operativos hasta la tabla de particiones. Usa el metodo del US DoD de 7 pasadas. Evidentemente, eficaz si vuestro sistema va a pasar por las manos de algun investigador forense, sin duda, se lo pondreis dificil. Y seguimos, BCWipe Task Manager, con esto podemos programar las tareas que queremos realizar cada cierto tiempo con BCWipe. Su uso es extremadamente sencillo, por ello no me detendre aqui ha explicarlo y seguiremos con mas descripciones generales. El software trae consigo suficiente documentacion, ademas, muchas paginas hacen mencion al mismo y a su utilizacion. ____________________ |_Norton Utilities_| Este gran kit de herramientas trae consigo a nuestro conocido "Wipe", lo podemos encontrar en Inicio > Programas > N. Utilities > Wipe Info. Una vez abierto nos da la posibilidad de borrar archivos, carpetas y el espacio libre del disco duro. Los metodos de borrado que nos ofrece son los siguientes: * Fast Wipe -> 1 pasada, sobreescribe con 0s pero el valor puede ser cambiado (0 a 255), 246 recomendado gubernamentalmente. * Government Wipe -> Sigue las indicaciones del manual NIPSON, 7 pasadas, sobreescritura de 0s y 1s alternada, tiene varior parametros modificables. Antes de culminar con el proceso de borrado, nos mostrara un resumen con todas las opciones que hemos elegido, asi podremos asegurar que todo esta en el orden correcto. _______ |_PGP_| Nuestro gran amigo el Pretty Good Privacy dispone de dos utilidades de cierta impotancia: Wipe -> Se encarga de la eliminacion segura de ficheros de nuestro sistema. FreeSpace Wipe -> Se encarga de el borrado del espacio libre disponible en el medio de almacenamiento. Solo debemos de elegir la unidad deseada y el numero de pasadas que nos parezcan. La segunda herramienta nos indica el tiempo aproximado que tardara en realizar la operacion, nunca biene mal si andamos justos del mismo. En mi caso, la version de la que estoy hablando es la 8.0.3, pero versiones anteriores tambien incluyen estas utilidades. ############### # UNIX//LINUX # ############### _______________________ |_THC-Secure Deletion_| Esta herramienta desarrollada por THC (The Hacker´s Choice) es un conjunto de utilidades que mantienen la seguridad de los datos que no podemos controlar en nuestro sistema o los cuales deseamos eliminar. Estas utilidades son: * srm ->> Borrado seguro de ficheros. * sfill ->> Borrado seguro del espacio libre de un disco. * sswap ->> Borrado seguro del area de 'swap'. * smem ->> Borrado seguro de datos en la RAM. El proceso utilizado por "srm" se basa 5 caracteristicas: 1.- Sobreescribe 38 veces. 2.- Flush de la cache de disco entre cada pasada. 3.- Truncamiento del fichero. 4.- Renombramiento del fichero. 5.- Llamada a 'unlink()'. _________________________ |_The Defiler's Toolkit_| Formada por dos herramientas complementarias, esta herramienta es conocida como una utilidad "anti-forensics". Las dos utilidades que incluye son: "necrofile" y "klismafile". En un sistema de archivos Unix/Linux cualquiera de las siguientes partes contendra evidencia de la existencia de archivos: * inodes (inodos) * directory entries (entradas de directorios) * data blocks (bloques de datos) Entre necrofile y klistmafile, se aseguran de eliminar cualquier rastro de informacion de las estructuras anteriormente mencionadas. Necrofile: Se encarga de la implementacion de borrado seguro en los inodos y de eliminar cualquier contenido de los bloques de datos. Klismafile: Su objetivo es sobreescribir las entradas de directorio que han sido eliminadas. La sobreescritura se realiza con ceros. ____________ |_MANDRAKE_| Esta distribucion trae consigo una opcion de borrado seguro que realiza sobre un fichero una sobreescritura de 35 pasadas, puede ser eficiente y una forma facil de empezar. ######### # OTROS # ######### ___________ |_PM WIPE_| Este herramienta es para el sistema OS/2, solo tienes que elegir los archivos a eliminar y listo. Tiene una interfaz amigable. OS/2 tambien hace uso de un archivo de 'swap' para el almacenamiento de datos en memoria. Tambien existe otra herramienta que solo borra directorios y otras de pago. << La humanidad necesita con urgencia una nueva sabiduria que proporcione el conocimiento de como usar el conocimiento para la supervivencia del hombre y para la mejora de la calidad de vida. >> [ V. R. Potter ] =_&_==_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 09 SOFT DE ANALISIS =_&_= =_&_==_&_==_&_==_&_==_&_==_&_==_&_= Solo me centrare en las carateristicas principales de cada utilidad pero, no explicare su funcionamiento, para ello, os envio directos a las paginas 'man' e 'info' de sus correspondientes y simplemente probar las cosas vosotros mismos. _______ |_TCT_| Describire aqui el objetivo de cada una de las utilidades que conforma este estupendo kit y tambien las del paquete 'TCT Utils' que lo complementa. * "file": Busca archivos. * "icat": Contenido de un inodo. * "ils": Informacion de un inodo. * "lastcomm": Ultimos comandos ejecutados. * "lazarus": Recupera datos de un dispositivo. * "unrm": Recupera datos de un dispositivo * "grave-robber": Informacion del sistema. * "mactime": Fechas de acceso y modificacion. * "bcat": Contenido de un dispositivo de bloques. * "blockcalc": Crea un mapa de bloques. * "fls": Lista entradas de directorio. * "find_file": Dado un inodo e imagen determina el archivo. * "find_inode": Dado un bloque e imagen determina el inodo. * "istat": Informacion de un inodo dado inodo e imagen. Cuando hablo de 'imagen' hago referencia a una imagen creada con "dd" de un dispositivo. Mas informacion 'man dd(1)' o 'info dd'. Os remito de nuevo a esta direccion: http://www.porcupine.org/forensics/tct.html ___________________ |_MANIPULATE_DATA_| Paquete con tres herramientas simples pero bastante eficientes, su codigo fuente es facil de comprender y se centra en su objetivo. Las tres utilidades son las siguientes: * "search_data": Busca una cadena en el dispositivo de bloques y muestra el numero correspondiente donde se encuentra. * "read_data": Lee tantos bytes como el usuario especifique a partir del numero de bloque dado. * "write_data": Sirve para escribir en el dispositivo. Buscar en este estupendo repositorio de herramientas, alli la encontrareis: http://fux0r.phathookups.com/tools Mas info en la siguiente seccion. ___________ |_HEXDUMP_| Esta fantastica utilidad viene incluida practicamente en cualquier distribucion Linux estandar. Realiza un volcado en hexadecimal. Para nosotros es muy util porque conseguimos pasar toda la informacion de un dispositivo a un fichero con el cual podremos trabajar despues. La ventaja es que mediante sus argumentos podremos especificar el formato de salida. El que mas nos interesa es el de ASCII, asi encontraremos de una forma mas comoda 'texto plano'. _________ |_OTROS_| Aqui nombrare el resto de herramientas que conozco pero queda de deberes el que sigais buscando mas informacion sobre ellos. * Partition recovery * Data Recovery Software * Magic Undelete * RIP * LDE (Linux Disk Editor) << Pensar la tecnologia es entonces una de las varias maneras de pensar al hombre... No es preciso tener ideas claras sobre el sentido y la funcion de la tecnologia para poder decidir que hacer con ella... >> [ Jose Luis Gonzalez Quiros ] =_&_==_&_==_&_==_&_==_&_= =_&_= 10 PRUEBAS =_&_= =_&_==_&_==_&_==_&_==_&_= En esta seccion realizaremos una prueba simple pero de la cual aprenderemos bastante, nuestro objetivo es que los resultados sean los que esperamos. Trataremos de recuperar un archivo previamente borrado de un disquete. Lo hago en este medio por la simple razon de que seria un poco angustioso que cada uno tuviera que andar jugando con su disco duro, de esta forma nos evitamos todos problemas. De todas formas, en cualquiera de los casos bastaria con cambiar las referencias a '/dev/fd0' por un '/dev/hdx' donde 'x' es variable para cada sistema. Nota: Seria mejor realizar todo lo que aqui se mostrara en un disquete nuevo, ya que asi todo sera mas limpio. De la otra forma, podriamos encontrar mucha mas informacion de la que nos pueda importar (Info interesante? Tal vez si... :)). Primero crearemos un archivo de texto dentro del disquete, esto seria algo asi: -> cd /media/floppy #Aqui deberia de estar montado el disquete -> echo 'Tenemos 5 misiles' > pruebas.txt Como es de suponer, ahora solo queda borrarlo: -> rm pruebas.txt OPCION 1 -------- Utilizaremos aqui, el kit "Manipulate Data" para nuestro objetivo solo haran falta las utilidades 'search_data' y 'read_data'. Con la primera buscaremos una cadena de la que nos acordemos, dare por supuesto que esta palabra es 'misiles'. El comando se ejecutaria de esta forma: -> search_data -i /dev/fd0 "misiles" * "-i": Esto hara que no se distingan mayusculas de minusculas. La salida del programa sera un numero de bloque que nos indicara donde se encuentra la cadena deseada, algo asi: -> found at 17418: misiles Ahora solo nos quedara valernos de nuestro amigo 'read_data' para encontrar el resto del archivo. Como el texto que buscamos esta mas atras que 'misiles' tendremos que utilizar un numero de bloque mas bajo y buscar mas cantidad de bytes, este seria el comando: -> read_data /dev/fd0 17408 30 La salida nos ofrecera lo que buscamos y, ademas, unos bytes de sobra que pueden o no tener informacion. Lo encontraremos en un archivo con el nombre '17408.30' en el directorio actual. -> Tenemos 5 misiles_____________ #El subrayado representa #datos desconocidos Como podemos comprobar, un metodo facil, pero seguiremos probando e investigando un poco mas. OPCION 2 -------- Con esta famosa utilidad volcaremos el contenido del disqute a un archivo estatico para despues examinarlo con calma. El comando que podemos utilizar es: -> hexdump -c /dev/fd0 > datos.txt * "-C": La salida es en formato hexadecimal y ASCII. Como bien podemos comprobar redireccionamos la salida hacia un fichero que analizaremos seguidamente en busca de la cadena deseada. El archivo se mostrara en tres columnas, eso puede hacer que una parte de la palabra que buscamos este en una linea y el final de la misma en otra. Por ello intentaremos buscar con una palabra mas pequeña como 'misil': -> grep -i 'misil' datos.txt La salida sera algo parecido a esto: 00004400 54 65 6e 65 6d 6f 73 20 35 20 6d 69 73 69 6c 65 |Tenemos 5 misile| Aqui vemos el claro ejemplo de que la palabra 'misiles' queda cortada en dos lineas. Ahora solo tendriamos que buscar en el archivo, a partir de ese offset (00004400) el resto de nuestra informacion. OPCION 3 -------- En este ultimo caso utilizaremos las herramientas que nos proporciona TCT, estas deberian acompañarnos alla donde nosotros vayamos. Con 'lazarus' conseguiremos recuperar la informacion del disquete, expuesta por bloques. Presento aqui el comando y despues paso a explicar cada uno de sus argumentos: -> lazarus -hB -D blocks -H html -w html /dev/fd0 * "-h": Salida en formato HTML. * "-B": No escribe bloques de binarios. * "-D": Crea un directorio con el nombre que prosigue al argumento, ahi se guardan los archivos con el contenido de los bloques. * "-H": Igual que el anterior pero aqui se guardan los archivos con extension '.html'. * "-w": Igual que el anterior (que alguien me lo explique). Ahora solo nos queda buscar entre los archivos del directorio 'blocks', cual de ellos contiene el texto que a nosotros nos interesa. Yo utilice un comando como este: -> strings -af *.txt | grep -i 'misil' La salida del mismo es la siguiente: -> 18.t.txt: Tenemos 5 misiles Segun indica la documentacion de 'lazarus' tambien podrias usar algo parecido a esto: -> egrep -l 'misil' blocks/*.txt > allfiles Y buscar entre los archivos listados en 'allfiles'. Para las imagenes bastaria con ejecutar lo siguiente: -> xv blocks/*.gif blocks/*.jpg # Y asi con cualquier formato Los ficheros del directorio anterior terminaran con diferentes extensiones segun 'lazarus' interprete el contenido de los mismos. Las posibles extensiones serian estas: A -> Archivo M -> Mail U -> UUencoded C -> Codigo C O -> Null W -> Contraseñas E -> ELF P -> Programa X -> EXE F -> Sniffer Q -> Mailq Z -> Comprimido H -> HTML R -> Eliminado . -> Binario I -> Imagene S -> Lisp ! -> Sonido L -> Log T -> Texto Con un poco de suerte, en nuestro caso podriamos reducir las posibilidades y el tiempo de esta forma: -> strings -af *.t.txt | grep -i misil # Notese el *.t.txt Esto nos ayuda para que el rango de ficheros que nos interesa sea menor y, por lo tanto, mas rapida su busqueda. Otro metodo que tambien seria efectivo, es utilizar en conjunto las dos herramientas de recuperacion: 'lazarus' y 'unrm'. Podriamos hacer esto: -> ./unrm /dev/fd0 > salida -> ./lazarus -h salida Los siguientes pasos son identicos a los explicados anteriormente. Nota: En el primer comando, el fichero 'salida' tiene que estar en un dispositivo diferente al examinado. Tambien decir que cada una de estas tareas lleva cierto tiempo segun el sistema. << Felicidad no es hacer lo que uno quiere, sino querer lo que uno hace. >> [ J. P. Sartre ] =_&_==_&_==_&_==_&_==_&_==_&_==_&_= =_&_= 11 MI IMPLEMENTACION =_&_= =_&_==_&_==_&_==_&_==_&_==_&_==_&_= Os presento aqui una "vaga" implementacion de un programa de borrado seguro. Utiliza las funciones principales como podreis comprobar pero, sin duda alguna, esta dispuesto a sutiles mejoras, tanto de rendimiento como de eficiencia. Es algo lento en archivos de tamaño grande, por otra parte, util a la hora de eliminar de forma segura documentos y/o informaciones confidenciales de no gran embergadura. Este programa es libre para ser modificado por cualquiera, pero si lo modificais para cualquier otro fin, borrar cualquier referencia a mi persona. Por que lenguaje PERL? Facil respuesta. Por su gran potencial, rapidez teniendo en cuenta que es un lenguaje interpretado y lo compacto que resulta resolver cualquier problema. Si mal no me acuerdo, existe un programa llamado "perl2exe", que convierte el codigo fuente de perl en un ejecutable (Dificil deduccion :)). Debido a la portabilidad de este lenguaje, no deberiais de tener ningun problema a la hora de ejecutar este programa tanto en plataformas Linux como en Windows. Si alguien sabe como realizar el flush de la cache de disco le agradeceria que se pusiese en contacto conmigo. --------------------xxx CORTAR AQUI xxx-------------------- #!/usr/bin/perl ##################################### # Nombre: Bsecdat V. 1.0 # # By: blackngel # # Mail: blackngel_hack@hotmail.com # # Coment: No me hago responsable... # ##################################### print "\n\n"; print " @@@@@@@@@@@@@@@@@@@@@@@@ \n"; print " @ Bsecdat by blackngel @ \n"; print " @@@@@@@@@@@@@@@@@@@@@@@@ \n"; print "\n\n"; print "Que archivo desea eliminar?: "; $archi=; chop $archi; print "\nNumero de sobreescrituras?: "; $num=; chop $num; open (ARCH,"+<$archi") or die "El documento no se ha abierto o no existe."; # Sacamos la informacion del archivo para extraer su tamaño -> $tam ($dev, $ino, $info, $links, $IDuser, $IDgrp, $IDdev, $tam, $uacc, $umod, $uino, $tambloqIO, $IO) = stat (ARCH); sobreescribir(); # Sobreescribe el archivo X veces truncate(ARCH, 0); # Trunca el tamaño del archivo a 0 utime(0, 0, $archi); # Cambia la fecha de ultima modificacion close(ARCH); # Nota: El archivo es renombrado y eliminado despues de ser cerrado renombrar(); # Renombra el archivo unlink($archi); # Elimina el archivo sub sobreescribir # Funcion o algoritmo de sobreescritura { for($i=0; $i < $num; $i++){ seek(ARCH, 0, 0); for($j=0; $j < $tam; $j++){ $car = rand(255); printf ARCH "%c", $car; } } } sub renombrar # Funcion que genera un nombre aleatorio { $n = rand(255); $nom = sprintf("%f", $n); rename($archi, $nom); } print "\n\n"; print " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"; print " @@@@@ Bsecdat V. 1.0 by blackngel @@@@@\n"; print " @@@@@ blackngel_hack @ hotmail.com @@@@@\n"; print " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"; print "\n"; --------------------xxx CORTAR AQUI xxx-------------------- Como podeis ver, he escrito el programa de forma que sea altamente legible. Se podrian haber realizado diversos cambios para que el codigo fuente quedara notablemente reducido. Posibles mejoras: * Entrada de datos como argumentos. * Operacion sobre multiples archivos. * Flush de la cache de disco. * Algoritmos mas complejos (pero mas lentos). * Otros... << La utopia esta en el horizonte. Me acerco dos pasos, ella se aleja dos pasos. Camino diez pasos y el horizonte se corre diez pasos mas alla. Por mucho que yo camine, nunca la alcanzare. ¿Para que sirve la utopia? Para eso sirve, para caminar. >> [ E. Galeano ] =_&_==_&_==_&_==_&_==_&_= =_&_= 12 CONSEJOS =_&_= =_&_==_&_==_&_==_&_==_&_= Pues que decir, ahora me toca expresar las ideas que llevo metidas en mi cabeza y que para mi resultan eficientes a la hora de una buena administracion y proteccion del sistema. Decir que estos consejos que os voy a dar debereis de razonarlos (como todo en la vida) y sacar partido de todo lo que creais que puede ser util para vosotros. Mis ideas son mis ideas y las vuestras son... las vuestras. No hagais caso absoluto nunca de lo que alguien os diga o de la informacion que consigais, sacar vuestras propias conclusiones y determinar que es lo correcto y lo que no. CONSEJOS -------- 1.- Ante todo, manten siempre cifrada la informacion que permanezca estatica en tu ordenador (no nombrare las herramientas de cifrado como siempre, esto queda a eleccion propia). 2.- Si una herramienta te permite elegir entre varios metodos de cifrado, (a no ser que sea necesario) trata de elegir una de las opciones que no esten por defecto, ya que este metodo seria el primero en ser atacado por alguien con malas intenciones. 3.- Utiliza siempre herramientas de borrado seguro, al fin de todo siempre mereza la pena, ademas hoy por hoy nos encontramos utilidades GUI user-friendly. Y para mas, adaptadas a diferentes entornos y SO's. 4.- Manten una buena programacion del horario de administracion. Intenta que este horario sea aleatorio pero con sentido, ya que de esta forma, por ejemplo, si realizaramos el borrado todos los martes de cada semana, un atacante se encargaria de sacarnos la informacion los lunes, de otra forma, manteniendo una buena aleatoriedad, tendrian que tener suerte para encontrar algo entre nuestra "basura". 5.- Utiliza un sistema de archivos que no este al alcance de una herramienta de analisis forense (normalmente Ext2, UFS, etc...) 6.- No olvides nunca los metodos de destruccion de medios portables, estOs nos pueden dar sorpresas el dia menos esperado. Hay que ser responsable y saber que es lo que estamos guardando y donde. 7.- A ser posible utiliza un sistema de archivos cifrado o para mas seguridad uno esteganografico. Como recomendacion, buscar info sobre "StegFS" para Linux (hay un buen articulo en el numero 8 de NetSearch). << Hasta ahora las masas han ido siempre tras el hechizo. >> [ K. Jaspers ] =_&_==_&_==_&_==_&_==_&_= =_&_= 13 DESPEDIDA =_&_= =_&_==_&_==_&_==_&_==_&_= Que tal chic@s, espero que con todo esto hayais quedado bien agusto y quizas con ganas de meter algun CD en el microhondas :) Siento haber parecido vuestro padre en algun momento, pero mis articulos son mi forma de expresion, y sin ello muero. Seria bueno que cada uno intentase hacer su propia implementacion de 'borrado seguro' y añadiera nuevos aspectos a gusto personal. Tampoco estaria de mas que leyeseis los codigos fuentes de alguna de las utilidades citadas anteriormente y sobretodo aprender su documentacion, es sin duda una gran fuente de conocimiento. Ojala hagais uso de todo lo aqui expuesto y sigais aprendiendo, que eso es, seguramente, el objetivo que vosotros y yo, tenemos en comun. Como siempre, sigue buscando en la red, que ahi es donde de verdad se encuentra la informacion valiosa. Nunca te conformes, complace tu sed de conocimiento. A todo esto, para que despues digan que no hay gente con ganas de trabajar y hacer algo decente por los demas. Esto forma parte de los muchos proyectos altruistas que nadan por la red... Cualquier duda, opinion, sugerencia o insulto que merezca la pena ser publicado, mail-me a: blackngel_hack@hotmail.com. << Los apasionados de Internet han encontrado en esta opcion una impensada oportunidad de volver a ilusionarse con el futuro. No solo algunos disfrutan como enanos; creen que este instrumento agiganta y que, acabada la fragmentacion entre unos y otros, se ha ingresado en la era de la conexion global Internet no tiene centro, es una red de dibujo democratico y popular. >> [ V. Verdu: El enredo de la red ] << Solo existen 10 tipos de personas: los que saben binario y los que no. >> [ XXX ] by blackngel *EOF*