¿Escáner de rootkit basado en firmas?

20

Actualmente, los únicos escáneres de rootkit que conozco tienen que instalarse en la máquina antes del rootkit para que puedan comparar los cambios de archivos, etc. (por ejemplo: chkrootkity rkhunter), pero lo que realmente necesito hacer es poder escanear mi máquina y otras máquinas desde un LiveUSB porque si el rootkit es lo suficientemente bueno, también se habrá apoderado de los programas de detección de rootkit.

Entonces, ¿hay un escáner de rootkit basado en firmas para Ubuntu / Linux que pueda instalar en un LiveUSB y usar para escanear de manera confiable las máquinas en las que lo conecto sin tener que monitorear el comportamiento o comparar archivos de fechas anteriores?


fuente
Seguro que tienes el nombre correcto, @Paranoid. ¿Están sus computadoras en la naturaleza en Internet, totalmente expuestas?
SDsolar
@SDsolar: No, pero me gusta un plan de respaldo por si acaso. Además, es posible que desee escanear la máquina de un amigo y, si ya está en peligro, instalar algo como rkhunterprobablemente no servirá de mucho. De hecho, si se instala un rootkit, esperaría rkhunterque ya no dé resultados precisos, por lo que es un poco tonto que solo sea una herramienta instalada en la máquina real que se vea comprometida.
No quiero amortiguar su movimiento, pero creo que está pidiendo una herramienta que perdería una gran parte de los expertos en informática forense y podría generar millones de $$$ rápidamente. :-)
CatMan
@Paranoid Panda: el escáner gratuito para Linux de Sophos tiene más de 12,5 millones de firmas, pero por lo que sé, dicen: ¿es solo para virus? Pero supongo que quieren decir con "virus" todo tipo de malware en el desierto (de M $ ...) ...
dschinn1001
@ParanoidPanda: Parece que lo que quieres es tomar un escáner de rootkits que te guste, instalarlo en un sistema que estés seguro que esté limpio, luego instalar ESO en un LiveUSB para que tu dispositivo de escáner pueda referirse a los buenos archivos en el dispositivo cuando está escaneando un sistema (potencialmente comprometido). Es posible que sea necesario piratear el escáner para mirar el dispositivo en busca de los archivos / firmas de referencia que utiliza para verificar la máquina de destino. Es posible que también necesite tener un dispositivo separado para cada versión del sistema operativo que desee escanear.
Tom Barron

Respuestas:

3

AIDE ( A VANZADO I ntruder D etección E nvionment) es un reemplazo al tripwiremencionado en otra respuesta aquí. De wikipedia :

El Entorno avanzado de detección de intrusiones (AIDE) se desarrolló inicialmente como un reemplazo gratuito para Tripwire con licencia bajo los términos de la Licencia pública general (GPL) de GNU.

Los desarrolladores principales se nombran como Rami Lehti y Pablo Virolainen, ambos asociados con la Universidad Tecnológica de Tampere, junto con Richard van den Berg, un consultor de seguridad holandés independiente. El proyecto se utiliza en muchos sistemas similares a Unix como un sistema de control de línea de base y detección de rootkits de bajo costo.


Funcionalidad

AIDE toma una "instantánea" del estado del sistema, registra hash, tiempos de modificación y otros datos relacionados con los archivos definidos por el administrador. Esta "instantánea" se utiliza para construir una base de datos que se guarda y se puede almacenar en un dispositivo externo para su custodia.

Cuando el administrador quiere ejecutar una prueba de integridad, el administrador coloca la base de datos previamente construida en un lugar accesible y le ordena a AIDE que compare la base de datos con el estado real del sistema. Si se produce un cambio en la computadora entre la creación de la instantánea y la prueba, AIDE lo detectará e informará al administrador. Alternativamente, AIDE puede configurarse para ejecutarse según un cronograma e informar cambios diariamente utilizando tecnologías de programación como cron, que es el comportamiento predeterminado del paquete AIDE de Debian. 2

Esto es principalmente útil por razones de seguridad, dado que AIDE informará cualquier cambio malicioso que pudiera haber ocurrido dentro del sistema.


Desde que se escribió el artículo de Wikipedia, el actual mantenedor Richard van den Berg (2003-2010) ha sido reemplazado por un nuevo mantenedor Hannes von Haugwitz desde 2010 hasta la actualidad.

La página de inicio de AIDE indica que Debian es compatible, lo que significa que la aplicación se puede instalar en ubuntu con el predecible:

sudo apt install aide

En cuanto a la portabilidad y la memoria USB, la página de inicio dice:

Crea una base de datos a partir de las reglas de expresión regular que encuentra en los archivos de configuración. Una vez que esta base de datos se inicializa, puede usarse para verificar la integridad de los archivos. Tiene varios algoritmos de resumen de mensajes (ver más abajo) que se utilizan para verificar la integridad del archivo. Todos los atributos de archivo habituales también se pueden verificar en busca de inconsistencias. Puede leer bases de datos de versiones anteriores o más recientes. Consulte las páginas del manual dentro de la distribución para obtener más información.

Esto implica para mí que podría tener la base de datos de firmas en su pen drive junto con la aplicación en el almacenamiento persistente USB en vivo. No estoy seguro de que AIDE satisfaga sus necesidades, pero como es un reemplazo de tripwiresu favorito actual, merece la pena investigarlo.

WinEunuuchs2Unix
fuente
¡Respuesta inteligente! :-)
Fabby
@Fabby Gracias por el cumplido. AIDE está configurandocron en la mayoría de las instalaciones. Podría considerarlo yo mismo no solo para la protección del rootkit, sino también para protegerme de mi propia mala programación: p También podría ser educativo ver qué cambia después de una apt get install.
WinEunuuchs2Unix
3

Me recuerda a Tripwire que crea sumas de verificación criptográficas de los archivos que especifique. Instale una copia del sistema que está comprobando desde una fuente buena conocida (DVD, por ejemplo), instale las mismas actualizaciones del sistema de destino), haga que tripwire cree el archivo de suma de comprobación. Copie el archivo de suma de control de Tripwire al sistema de destino, haga que Tripwire compare el archivo de suma de control con los archivos del sistema de destino.

Por supuesto, las actualizaciones / actualizaciones / instalaciones / archivos de configuración no sincronizados del sistema se marcarán / marcarán como modificados.

Actualización 2018-05-06:

También debo agregar que el sistema de destino debe verificarse sin conexión. Si el objetivo se ha visto comprometido, el hardware, el firmware de arranque, el kernel del sistema operativo, los controladores del kernel, las bibliotecas del sistema, los archivos binarios ya pueden haberse visto comprometidos e interferir o devolver falsos positivos. Incluso correr a través de una red hacia el sistema de destino podría no ser seguro ya que el sistema de destino (comprometido) estaría procesando los paquetes de red, el sistema de archivos, el dispositivo de bloqueo, etc.

El escenario comparable más pequeño que viene a la mente son las tarjetas inteligentes (EMV utilizado en tarjetas de crédito, PIV utilizado por el gobierno federal, etc.). Sin tener en cuenta las interfaces inalámbricas y todas las protecciones hw / electric / rf, la interfaz de contacto es esencialmente un puerto serie, tres o dos cables. La API está estandarizada y en caja blanca, por lo que todos están de acuerdo en que es impermeable. ¿Protegieron los datos en tránsito, en la memoria de tiempo de ejecución, en reposo en la memoria flash?

Pero la implementación es de código cerrado. Puede existir una puerta trasera en el hardware para copiar todo el tiempo de ejecución y la memoria flash. Otros pueden manipular los datos en tránsito entre el hardware y las memorias internas, el sistema operativo de la tarjeta inteligente o las E / S desde / hacia la tarjeta. Incluso si los compiladores hw / fw / sw / son de código abierto, tendría que auditar todo en cada paso y aún así podría perder algo en lo que usted / todos los demás no pensaron. La paranoia puede enviarte a una sala de goma blanca.

Perdón por salir corriendo por una tangente de paranoia. En serio, saca las unidades de destino para probar. Solo tiene que preocuparse por la unidad de destino hw / fw entonces. Mejor aún, simplemente saque los platos HDD / chips flash SSD para probar (suponiendo que su sistema de prueba sea dorado). ;)

rcpa0
fuente
Improvisado sí, ¡pero esta es una muy buena solución al problema! Lo aceptaré, ya que no parece haber otra buena solución para Linux. Aunque si aparece otra respuesta que proporciona la solución completa y solicitada para la pregunta, entonces tendré que mover el marcador de aceptación. ¡Pero muchas gracias por esta solución al menos temporal!
Nota: Algunos SSD en realidad cifran datos en reposo en la memoria flash, por lo que mi comentario sobre mover solo los chips flash para probar no funcionará en este caso. En algún momento, solo tiene que suspirar y aceptar el compromiso entre la seguridad y realizar su tarea informática.
rcpa0