¿Cómo detectar y eliminar un troyano de Linux?

16

Recientemente (re) me topé con esto:

Sí, sé que agregar PPA / software aleatorio de una fuente no confiable es pedir problemas (o peor). Nunca hago eso, pero muchos lo hacen (muchos blogs y tabloides de Linux promueven la adición de PPA para aplicaciones sofisticadas, sin advertir que puede dañar su sistema o, lo que es peor, comprometer su seguridad).

¿Cómo se puede detectar y eliminar un troyano o una aplicación / script no autorizado?

iamsid
fuente
Hice la misma pregunta (3 minutos después de preguntar aquí) en: askubuntu.com/questions/13265/… Avíseme si esto es una violación, eliminaré una de ellas.
iamsid

Respuestas:

20

No hay una receta general. Si su sistema ha sido infectado por un troyano desconocido, todo lo que puede hacer es reinstalarlo.

Si sabe que el troyano opera de cierta manera, por ejemplo, sabe que el troyano no infecta el núcleo, puede haber una forma menos dura de recuperación. Pero eso depende completamente de saber cómo se comporta el troyano. Si todo lo que tiene son los síntomas (como que su computadora envía spam sin su consentimiento), no hay una técnica general: el detector de troyanos debe ser más inteligente que el diseñador de troyanos (y afortunado). En lo que respecta a los troyanos, la detección y la ocultación son como armas y armaduras: hay una escalada tecnológica, y ninguna de las partes tiene una ventaja intrínseca (aunque los escondites tienen ventaja).

Muchos sistemas tienen un canal de distribución seguro en su lugar. Por ejemplo, cuando instala un paquete desde los repositorios de Ubuntu con las herramientas basadas en apt (apt-get, aptitude, synaptic, software center, ...), la herramienta verifica que el paquete esté firmado (examinado) por alguien en quien Ubuntu confía. (La mayoría de las distribuciones tienen un mecanismo similar). Cuando instala un paquete desde un PPA, todo lo que puede saber es que el propietario del PPA examinó el paquete, lo cual no es de ayuda si no tiene ninguna razón para confiar en el propietario del PPA en primer lugar.

Acerca de los troyanos y puertas traseras, recomiendo leer la conferencia del premio Turing de Ken Thompson , Reflexiones sobre la confianza . Para resumir, cambió el compilador para que al compilar el programa de inicio de sesión, agregue un código que le permita iniciar sesión con una contraseña secreta; luego cambió el compilador para que cuando se compilara, insertara el código para agregar la puerta trasera; luego compiló todo el sistema (en particular el programa de inicio de sesión y el compilador); finalmente restauró la fuente del compilador a la fuente original e incuestionable. Nuevamente, lea el artículo de Ken Thompson ; entonces también puede leer el contrapunto de David Wheeler , quizás mejor aprehendido a través del artículo de blog de Bruce Schneier .

Gilles 'SO- deja de ser malvado'
fuente
+1 por la respuesta descriptiva y por recomendar esos artículos: ampliaron mi conocimiento. Gracias.
iamsid
7

Si entiendo correctamente, "troyano" descrito en este artículo no podría ser descubierto de forma "normal" como malware "normal". Este IRCd se comportó normalmente hasta que se usó, por lo que el administrador pudo encontrar este agujero de seguridad solo cuando: 1) se usó y la acción realizada por este agujero causó la entrada en los registros o fue visible de alguna otra manera, 2) leyendo el código fuente.

El software AV para Linux o AV LiveCD Rescue Disks también debería detectar el malware "real" de Linux, para que pueda escanear la computadora con este software. Como puede ver en SecureList en la lista, hay 1941 entradas con Linux en nombre y ese software debe ser detectado por el software Kaspersky. Un vistazo rápido a esta lista muestra que muchas entradas tratan sobre algunas herramientas y exploits DDoS o herramientas que no se pueden propagar automáticamente y que solo se pueden usar como herramientas de ataque (por lo que no son dañinas).

Para verificar puertas traseras / rootkits instalados por cracker, puede usar una herramienta que verifique las sumas de verificación de archivos (debe generar una lista de archivos y sumas de verificación en un sistema limpio y actualizarlo después de la actualización del software del servidor). Cada nuevo archivo o archivo con suma de verificación incorrecta es sospechoso. La lista de suma de verificación y la herramienta que la generan deben estar en un medio de solo lectura (el cracker también podría cambiar, por ejemplo, md5sum para su propia versión que muestra sumas de verificación incorrectas). Esta forma de encontrar malware podría usarse en sistemas 'estables' donde el software no se actualiza todos los días.

Se puede detectar algo de malware ejecutándose netstatlocalmente para verificar el tráfico de red, pero si el sistema está infectado, los datos mostrados por netstattambién podrían modificarse. En este caso, alguna solución es monitorear el tráfico de red desde otra computadora (por ejemplo, desde un enrutador, para verificar qué tráfico se envía a Internet).

pbm
fuente
4

SELinux y AppArmor existen para la prevención de troyanos / rootkit y otras infecciones. Les cuento el caso de SELinux, que conozco mejor. Con SELinux habilitado, le da un contexto a todo el proceso (demonio incluido) que instala en la máquina. También etiqueta el sistema de archivos para que funcione con el contexto, uniéndolos. Cuando un proceso intenta hacer algo que no está dentro de su contexto, recibe un mensaje y, si SELinux está en modo obligatorio, la acción no puede completarse.
De esta manera, si su troyano ircd estaba dispuesto a sobrescribir el comando ps u otra cosa (estrategia común para troyanos / rootkits / gusanos para evitar la detección), no se me permitiría hacerlo. Y estarías informado.
Sé que es difícil de configurar, pero mis máquinas están trabajando con SELinux en este momento, y mis (dos) computadoras portátiles Fedora pueden hacer todo lo que un escritorio necesita sin demasiados problemas.
Incluso mi servidor doméstico ahora está en modo obligatorio.
Otra estrategia es una ejecución regular de detectores de rootkits que calculan una suma de verificación para los comandos cirtical e informan sobre los cambios en los comandos básicos.
Trabajo con el SELinux y el rkhunter habilitados (más un antivirus clamav).

Saludos

lucabotti
fuente
2

Otra respuesta afirmó que los "ocultadores" (malware oculto) tienen una ventaja intrínseca sobre los "detectores". Estoy en desacuerdo. Esto es cierto si se limita a los enfoques de detección que se basan en firmas o heurísticas para detectar malware. Pero hay otra forma de detectar malware: verificar productos conocidos. Tripwire, AIDE, etc. pueden verificar archivos en el disco. Second Look puede verificar el kernel y los procesos en ejecución. Second Look utiliza análisis forense de memoria para inspeccionar directamente el sistema operativo, los servicios activos y las aplicaciones. Compara el código en memoria con lo que ha publicado el proveedor de distribución de Linux. De esta manera, puede identificar de inmediato las modificaciones maliciosas realizadas por rootkits y puertas traseras, y programas no autorizados que se están ejecutando (troyanos, etc.).

(Divulgación: soy el desarrollador principal de Second Look).

Andrew Tappert
fuente