Auditoría de sistemas UNIX. Parte 9. Ficheros ocultos
Es imprescindible inventariar y conocer los ficheros ocultos que tengamos en nuestro sistema.
La necesidad de inspeccionar ficheros ocultos surge a consencuencia de que en caso de existir algún componente malicioso, este podría ser camuflado ocultándolo en el sistema de ficheros. De hecho, la gran mayoría de amenazas para sistemas UNIX, como por ejemplo los em>rootkits, suelen emplear técnicas de ocultación, con lo que es razonable y prudente hacer un análisis de los mismos.
Por fortuna, es muy fácil obtener un listado completo de los ficheros ocultos usando la consola. Para ello ejecutamos:
/usr/bin/find / -name ".*" -exec ls -la {} \;
La lista de ficheros ocultos puede ser larga. De hecho, habitualmente lo es, ya que existen ciertos tipos de archivo que por diversas cuestiones, están ocultos. Lo que lo recomendable ante este escenario es llevarse los resultados a un fichero de texto, para posteriormente analizarlo con calma:
/usr/bin/find / -name ".*" -exec ls -la {} \; >> sample_ficheros_ocultos.txt
Este es el resultado que arroja una instalación Xubuntu por defecto. En nuestro caso, han aparecido más de 1000 registros, con lo que analizarlos todos puede suponer una tarea con un consumo excesivo de tiempo.
¿Qué solución podemos darle a esto? El análisis diferencial. Una buena manera de conocer qué cosas se han ocultado desde una instalación por defecto es compararla con el estado del sistema a la hora de conducir la auditoría. Si conocemos el estado inicial (instalación por defecto) es muy fácil conocer los cambios que se han producido en el sistema de ficheros en el momento de ejecutar el análisis. Para ello, extraemos un fichero, que llamaremos sample_ficheros_ocultos_2.txt y lo compararemos al que corresponde al estado inicial, nuestro sample_ficheros_ocultos.txt
diff sample_ficheros_ocultos.txt sample_ficheros_ocultos_2.txt
309a310
> -r--r--r-- 1 root root 4096 2007-01-10 17:58 /sys/module/.rootkit_de_sergio_me_has_pillado
Hemos encontrado un presunto rootkit.
Resumen
Analizar los ficheros ocultos puede desvelar la presencia de elementos sospechosos en el sistema de ficheros. Si el volumen de ficheros es muy elevado, compararemos los sistemas de ficheros con un estado conocido y asegurado (instalación por defecto de la distribución escogida) y analizaremos las discrepancias.
En caso de producirse diferencias, investigaremos la naturaleza de cada fichero oculto desvelado.
Trackbacks & Pingbacks
[...] Parte 1. La Piedra Rosetta UNIX Parte 2. Identificación del sistema Parte 3. El nivel de parche Parte 4. Los permisos de los ficheros del directorio /etc Parte 5. Procesos en ejecución Parte 6. Compiladores en máquinas de producción Parte 7. Autorizaciones cron Parte 8. Variables de entorno Parte 9. Ficheros ocultos Parte 10. Ficheros con sticky bit Parte 11. Ficheros con bit setgid y setuid Parte 12. Ficheros .netrc Parte 13. Ficheros sin propietario, grupo y con escritura para otros Parte 14. Ficheros host.equiv y .rhosts [...]
Comentarios
Escribir un comentario
Las rupturas de línea y párrafo son automáticas. El e-mail nunca será mostrado ni cedido a terceros. Se permite el siguiente código HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Interesante serie de artículos la que estas escribiendo. Creo que cuando terminases podría ser interesante que los recopilases en un documento, es una sugerencia.
LostScene,
Es mi intención generar ese documento. Otro tema será sacar tiempo para ello, pero es mi intención, sí :)
Me alegro de que te esté gustando la serie de artículos.
Un saludo,
Un enfoque menos simplista y más completo que el de simplemente inventariar y monitorizar los ficheros ocultos del sistema, sería el hecho de monitorizar todos aquellos archivos/directorios del sistema dignos de vigilancia (que podrían ser todos si se quiere una seguridad extrema, pero puede ser tedioso y generar un alto consumo de recursos).
Para ello existen en GNU/Linux diversas herramientas que nos facilitan la tarea. Sin ir más lejos, tenemos en los repositorios de Debian a Tripwire (de los más famosos en eeste ámbito), Integrit (para los que quieran un menor footprint en memoria) y Bsign (éste no usa bases de datos para mantener los checksums, aunque se hace cargo de menos tipos de ficheros).
Ah y por cierto, propongo un onliner ligeramente alterado para evitar que se ensucie la salida (no queremos ni . ni ..; en otras palabras, no queremos directorios):
find / -type f -name ".*" -exec ls -la {} \; > salida.log
Un saludo!
Gracias por la contribución, jors :)
Tomaremos nota.
Un saludo !