¿Cuántas veces os han venido con un ordenador que “hacía cosas raras” y
que parece que "tenía vida propia”? Cuando estás investigando un posible
incidente de seguridad, y no se tiene claro qué es lo que está pasando,
máxime cuando hablamos de un montón de máquinas, puede ser interesante
instalar un agente en cada máquina que remotamente pueda enviarnos (o al
que podamos solicitar) información interna sobre el equipo en cuestión.
En esta línea, existe una
herramienta llamada
OSQuery,
que permite realizar estas tareas en entornos Linux (CentOS y Ubuntu) y
Mac OS X. Cabe destacar dos cosas muy curiosas: La primera es la
interfaz de selección de datos, y es que la
herramienta abstrae al
usuario de hacer búsquedas entre diferente tipo de ficheros, ejecuciones
de comandos, búsquedas en /proc, etc,…. mediante la utilización de SQL a
partir de una interfaz de comandos propia. La segunda cosa curiosa es
que la empresa encargada de su desarrollo, es nada más y nada menos que
Facebook.
La interacción con la interfaz es lo más parecido a SQLite, mediante la
ejecución de "osqueryi", de manera que para poder ver las tablas a las
que podemos hacer consultas, ejecutamos “.schema” y nos salen, entre
otras, tablas como las siguientes:
CREATE VIRTUAL TABLE shell_history USING shell_history(username TEXT, command TEXT, history_file TEXT);
CREATE VIRTUAL TABLE process_envs USING process_envs(pid INTEGER, key TEXT, value TEXT);
CREATE VIRTUAL TABLE kernel_extensions USING kernel_extensions(idx
INTEGER, refs INTEGER, size BIGINT, wired BIGINT, name TEXT, version
TEXT, linked_against TEXT)
Obviamente, la ejecución en un Mac y en un Linux entrega tablas
diferentes, aunque hay un subconjunto de ellas bastante grande que es
común a ambos sistemas operativos.
Las diferentes tablas, de las que podéis extraer información, la podéis ver aquí:
https://osquery.io/docs/tables/. Se ofrecen separadas entre CentOS, Ubuntu y Mac OS X, así como las que son comunes a dichas plataformas.
Con OSQuery se incluye también "osqueryd" un demonio que permite
programar las diversas consultas que más nos interesen, para poder
comprobar cómo cambian los valores entregados a lo largo del tiempo,
generándose logs agregados que permitan ver las variaciones, siendo de
gran ayuda a la hora de entender qué le pasaba a la máquina en un
momento determinado.
En el módulo de Linux del curso online de
Análisis Forense de Securízame,
entre otras, mostré el funcionamiento de esta herramienta, en un
contexto en el que nos interesaba preguntarle en remoto, y de forma
programada, diferentes parámetros a un sistema operativo CentOS cada X
tiempo. Creo recordar que en este caso una de las consultas que hice era
la relación entre direcciones IP y MAC de la tabla ARP del sistema
operativo, a fin de poder comprobar si la máquina estaba siendo víctima
de un ataque MiTM. Este tipo de soluciones, puede resultar muy útil a la
hora de inspeccionar el comportamiento de máquinas vivas.
Disponéis de toda la información sobre la
herramienta en
https://osquery.io/Autor:
Lorenzo Martínez