Incrementando la Seguridad del Correo-E con Procmail

Amenazas, vulnerabilidades y ataques

Regresar a la página de inicio
This page in English


Ataques basados en Correo-E

Hay cuatro tipos de ataques contra la seguridad de un sistema de cómputo que se pueden llevar a cabo vía correo electrónico: Otro ataque contra la privacidad del usuario, aunque no contra la seguridad del sistema, es el uso de los así llamados Web Bugs los cuales pueden notificar a un sitio desde donde se hace un seguimiento, cuando y donde se lee un mensaje dado de correo-e.

Ataques Basados en Contenido Activo (también conocidos como Ataques Basados en Navegadores Web), Ataques Basados en HTML Activo o Ataques Basados en Scripts.

Estos ataques están dirigidos contra personas que usan clientes de correo con soporte HTML habilitado o navegadores web  para leer su correo, lo cual en estos días corresponde a una gran proporción de la comunidad de cómputo. Típicamente estos ataques intentan usar las características de los lenguajes basados en scripts del HTML o de los clientes de correo-e (típicamente Javascript o VBScript) para extraer información privada del computador de la víctima o para ejecutar código en el computador de la víctima sin el consentimiento de la víctima (y posiblemente sin el conocimiento de la víctima).

Las formas menos peligrosas de estos ataques pueden hacer que el computador del destinatario muestre algún contenido que el atacante desea, tal como abrir automáticamente una propaganda o una página web de pornografía cuando se abre el mensaje, o ejecutar un ataque de Negación-del-Servicio contra el computador del destinatario a través de código que bloquea o hace colapsar al navegador o al computador entero.

La manera más simple de evitar totalmente tales ataques es no utilizar o clientes de correo-e con soporte HTML habilitado o navegadores web para leer el correo-e. Puesto que muchos de estos ataques no dependen de fallos de software en los clientes del correo-e, ellos no se pueden prevenir mediante parches para los clientes de correo-e. Si usted usa un navegador web o un cliente de correo-e con soporte HTML, usted será vulnerable a estas clases de ataques.

También, cuando alguno de estos ataques depende de si el cliente de correo-e es capaz de ejecutar scripts embebidos en código HTML en lugar de depender de la debilidad de cualquier sistema operativo, estos ataques pueden alcanzar varias plataformas. Un cliente de correo-e con soporte HTML habilitado en un Macintosh es simplemente tan vulnerable a ataques de correo-e basados en HTML activo como lo son los clientes de correo-e con soporte HTML habilitado bajo Windows o Unix. En este caso la vulnerabilidad variará de un sistema de cliente de correo a otro y no por el sistema operativo utilizado.

Para muchas personas el cambio a un cliente de correo-e sin soporte HTML no es una opción viable. Una alternativa es filtrar o alterar el código HTML o código script ofensor antes de darle al cliente de correo-e la oportunidad de procesarlo. También puede ser posible el configurar su cliente de correo-e para deshabilitar la interpretación de código de scripts. Consulte los detalles en la documentación de su programa de correo. Se recomienda  firmemente el deshabilitar el soporte de ejecución de scripts en su cliente de correo-e; no hay una buena razón para soportar mensajes de correo-e que incluyan scripts.

Los usuarios de Microsoft Outlook deberían visitar esta página que describe como configurar Outlook para que sea más seguro.

Los recientemente anunciados gusanos de correo-e de Outlook son un ejemplo de estos ataques. Para conocer mayor detalles consulte la base de datos de vulnerabilidades Bugtraq.

Otra forma para defenderse contra ataques basados en contenido-activo es cambiar las etiquetas distintivas de los scripts antes que el programa de correo tenga la oportunidad de mirarlos. Esto se hace en el servidor de correo cuando se recibe el mensaje y se almacena en el buzón del usuario, y en su forma más sencilla consiste meramente en cambiar todas las etiquetas <SCRIPT> a (por ejemplo) etiquetas <DEFANGED_SCRIPT>, las cuales hacen que el programa de correo las ignore. Puesto que hay muchos lugares donde esos comandos tipo script se pueden usar dentro de otras etiquetas, el proceso de sanear o disminuir la vulnerabilidad es más complicado que esto en la práctica.


Ataques Basados en Desbordamiento de Búfers

Un búfer es una región de memoria donde un programa almacena temporalmente los datos que está procesando. Si esta región es de un tamaño fijo predefinido y si el programa no toma medidas para asegurar que los datos quepan dentro de ese tamaño, se presentará un fallo de software: si se leen más datos que los que alcanzan dentro del búfer, el exceso será aún escrito, probablemente reemplazando otros datos o instrucciones de programa.

Un ataque basado en desbordamiento de búfers en un intento por utilizar esta debilidad es enviar a un programa una cadena de datos larga inesperada para su procesamiento. Por ejemplo, en el caso de un programa de correo-e, el atacante podría enviar una cabecera Date: falsa con una longitud de varios miles de caracteres, asumiendo que el programa de correo-e únicamente espera una cabecera Date:  que posee cuando más cien caracteres de longitud.

Estos ataques pueden usarse como ataques de Negación-del-Servicio, ya que cuando la memoria de un programa llega a sobreescribir en forma aleatoria, el programa generalmente colapsará. Sin embargo, al manipular cuidadosamente el contenido exacto de lo que desborda el búfer, en algunos casos hará posible que se proporcionen instrucciones de programa para que el computador de la víctima las ejecute. El atacante envia un programa a la víctima y éste será ejecutado por el computador de la víctima.

Note que esto es el resultado de un fallo en el programa que se encuentra bajo ataque. Un cliente de correo-e propiamente escrito no permitirá que extraños corran programas en sus computadores sin su consentimiento. Los programas susceptibles a desbordamiento de búfers están incorrectamente escritos y deberían parcharse para corregir permanentemente el problema.

Los ataques basados en desbordamientos de búfer se presentan en el manejo de cabeceras de mensajes y cabeceras de anexos, información que el cliente de correo-e necesita procesar para conocer los detalles del mensaje y que hacer con él. El texto en el cuerpo del mensaje, que es simplemente mostrado en la pantalla y del cual se espera corresponda a una gran cantidad de texto, no se usa como un vehículo para ataques basados en desbordamientos de búfer.

Los fallos de desbordamientos recientemente anunciados en Outlook, Outlook Express y Netscape Mail son ejemplos de esto. Los parches para Outlook están disponibles vía el sitio de seguridad de Microsoft.

Las cabeceras del mensaje y las cabeceras de los anexos pueden ser preprocesadas por el servidor de correo para limitar sus longitudes a valores seguros. Haciendo esto los prevendrá de que se usen para atacar a los clientes de correo-e.

Una variación de ataques basados en desbordamientos de búfer es omitir información de donde se espera que el programa encuentre algo. Por ejemplo, Microsoft Exchange reacciona mal cuando se le pide procesar cabeceras de anexos MIME que están explicitamente vacías - for ejemplo, filename="". Este ataque puede usarse únicamente para denegar el servicio.


Ataques Tipo Caballos de Troya

Los Caballo de Troya son programas maliciosos que se enmascaran como algo benigno en un intento para conseguir que un usuario desprevenido los corra.

Estos ataques se usan generalmente para abrir brechas de seguridad al conseguir que un usuario corra un programa que concede acceso a un usuario invasor (por ejemplo, instalando programas de puertas traseras de acceso remoto), o para causar daño tal como intentar borrar todos los archivos del disco duro de la víctima. Los Caballos de Troya pueden actuar robando información o recursos o implementando ataques distribuidos, tal como distribuir un programa que intenta robar contraseñas  u otro tipo de información de seguridad, o puede ser un programa "auto-propagable" que por si mismo envía correos a sus alrededores (un "gusano") y que también auto-envía correos-bombas a los objetivos o borra archivos (un gusano con actitud :).

El gusano "I Love You" es un excelente ejemplo de un ataque tipo Caballo de Troya: una carta de amor aparentemente inofensiva resultó en realidad un programa auto-propagable.

Para que este ataque tenga éxito la víctima debe tomar la acción de correr el programa que le han enviado. El atacante puede usar varios métodos de "ingeniería social" para convencer a la víctima de correr el programa; por ejemplo, el programa puede estar disfrazado como una carta de amor o una lista de chistes, con un nombre de archivo especialmente seleccionado para aprovecharse de la propensión de Windows a ocultar información importante del usuario.

La mayoría de la gente sabe que la extensión .txt se usa para indicar que el contenido de un archivos es sólo texto plano, en forma contraria a un programa, pero la configuración predeterminada de Windows es ocultar las extensiones de los nombres de archivos del usuario, así que dentro de un listado de un directorio un archivo llamado textfile.txt aparecerá sólo "textfile" (¿para evitar confundir al usuario?).

Un atacante puede aprovechar esta combinación de cosas enviando un archivo anexo llamado "attack.txt.exe" - Windows servicialmente ocultará la extensión .exe, haciendo que el archivo anexo parezca ser un archivo de texto benigno llamado "attack.txt" en lugar de un programa. Sin embargo, el usuario olvida que Windows está ocultando la extensión del nombre de archivo actual y hace doble clic en el archivo anexo, Windows usará el nombre de archivo completo para decidir que hacer, y dado que .exe indica que se trata de un programa ejecutable, Windows correrá el anexo. ¡Pum! Usted ha caído en la trampa.

Las combinaciones típicas de extensiones aparentemente benignas y peligrosamente ejecutables son:

Este ataque puede evitarse simplemente no corriendo los programas que se han recibido en el correo-e hasta tanto ellos hayan sido chequeados de virus, aún si el programa parecer ser inofensivo y especialmente si viene de alguien que usted no conoce bien o de alguien de quien usted desconfía.

Hacer doble clic en anexos de correo es un hábito peligroso.

Hasta no hace mucho, diciendo simplemente "no haga doble clic en archivos anexos" era suficiente para estar seguros. Desafortunadamente ésto ya no es más el caso.

Los fallos en el diseño de clientes de correo-e o de programas pobres pueden permitir a los mensajes que atacan ejecutar automáticamente los anexos Caballo de Troya sin intervención de ningún usuario, ya sea utilizando HTML activo, scripts o vulnerabilidades de desbordamientos de búfer incluidos en los mensajes mismos como lo hacen los anexos Caballo de Troya. Este es un escenario extremamente peligroso y HA SIDO DEMOSTRADO en un foro público de seguridad de computadores.

En un intento para prevenir esto, los nombres de anexos de archivos ejecutables pueden cambiarse de tal forma que el sistema operativo nunca más piense que ellos son archivos ejecutables (por ejemplo, cambiando "EXPLOIT.EXE" a "EXPLOIT.DEFANGED-EXE"). Esto forzará al usuario a grabar y renombrar el archivo antes de que este pueda ser ejecutado (dándoles una oportunidad para pensar sobre si éste debería ser ejecutado, y dándole al software antivirus la oportunidad de examinar el anexo antes de que éste comience a correr), y esto reduce la posibilidad que otras vulnerabilidades en el mismo mensaje sean capaces de encontrar y ejecutar automáticamente el programa Caballo de Troya (puesto que el nombre ha sido cambiado).

En adición, para programas Caballos de Troya conocidos el formato mismo del anexo puede ser renombrado de tal forma que el cliente de correo-e nunca más mire a al anexo como un anexo. Esto forzará al usuario a contactar a personal de soporte técnico para recuperar el anexo, y le da al administrador una oportunidad de examinarlo.

Renombrar un anexo renombrado es bastante sencillo para el administrador. Al renombrar el archivo anexo se cambia la cabecera del anexo MIME original y se inserta una alerta de ataque en la cabecera del anexo. Ninguna información se borra.

Aquí está una lista de archivos ejecutables y documentos recientes correspondientes a Caballos de Troya, recogidos de bugtraq y de alertas del grupo de noticias Usenet, y de recomendaciones de los vendedores de antivirus:

*.asd
*.chm
*.dll
*.ocx
*.hlp
*.hta
*.js
*.pif
*.scr
*.shb
*.shs
*.vb
*.vbe
*.vbs
*.wsf
*.wsh
*.[a-z][a-z][a-z0-9].[a-z0-9]+ (para atrapar anexos de "doble-extensión")
IBMls.exe
anti_cih.exe
aol4free.com
avp_updates.exe
babylonia.exe
badass.exe
buhh.exe
chocolate.exe
compu_ma.exe
happy99.exe
i-watch-u.exe
ie0199.exe
jesus.exe
list.doc
lovers.exe
navidad.exe
path.xls
photos17.exe
picture.exe
pretty park.exe
prettypark.exe
qi_test.exe
seicho_no_ie.exe
serialz.hlp
setup.exe
story.doc
suppl.doc
surprise!.exe
x-mas.exe
y2kcount.exe
yahoo.exe
zipped_files.exe
Otro canal para ataques tipo Caballo de Troya es mediante archivos de datos asociados a programas escritos utilizando macro-lenguages de programación, por ejemplo, procesadores de texto, hojas de cálculos y herramientas de bases de datos de usuarios, modernos y de alto poder.

Si usted no puede descartar simplemente los archivos anexos que lo pueden poner en riesgo, se recomienda que usted instale software antivirus (que detecta y deshabilita Caballos de Troya de macro-lenguajes) y que usted siempre abra anexos de archivos de datos en el modo de "no ejecutar macros automáticamente" (por ejemplo, manteniendo oprimida la tecla [shift] cuando se hace doble clic sobre el anexo).

También: si su administrador del sistema (o alguien que afirme ser su administrador) le envía a usted un programa y le pregunta que lo corra, sospeche de inmediato y verifique el origen del correo-e contactando directamente a su administrador por algún medio diferente al correo-e.


Ataques Basados en Scripts de Intérpretes de Comandos

Muchos programas que corren bajo Unix y sistemas operativos similares soportan la capacidad de incluir en forma embebida scripts cortos de intérpretes de comandos (secuencias de comandos similares a los archivos de procesamientos por lotes bajo DOS) en sus archivos de configuración. Esto es un forma común para permitir la extensión flexible de sus capacidades.

Algunos programas de procesamiento de correo extienden en forma inapropiada su soporte para comandos embebidos basados en intérpretes de comandos, para los mensajes que ellos están procesando. Generalmente esta capacidad se incluye por error, llamando a un script de intérprete de comandos tomado del archivo de configuración para procesar el texto de algunas cabeceras. Si la cabecera está especialmente formateada y contiene los comandos tipo intérprete de comandos, es posible que estos comandos se ejecuten también. Esto lo puede prevenir el programa explorando el texto de la cabecera que se encuentra en formato especial y cambiando ese formato antes que logre pasar al intérprete de comandos para su procesamiento posterior.

Puesto que el formateo necesario para incluir en forma embebida un script de intérprete de comandos en una cabecera de correo-e es bastante especial, es bastante fácil detectar y alterar.


Ataques a la Privacidad Basados en Fallos Web

Un mensaje de correo-e con soporte HTML puede hacer referencia a contenido que no está realmente dentro del mensaje, igual como una página web puede hacer referencia a contenido que no está en realidad en el sitio web que aloja la página. Esto puede verse comúnmente en propagandas tipo parcarta (banner), por ejemplo, un sitio web de http://www.geocities.com/ puede incluir propagandas tipo pancarta que se toman de un servidor en http://ads.example.com/,  cuando la página es vuelta a desplegar, el navegador web automáticamente contacta al servidor web en http://ads.example.com/ y recupera la imagen de la propaganda en mención. Esta recuperación del archivo es registrada en los archivos de registro en http://ads.example.com/, dando el tiempo en el cual éste fué recuperado y la dirección de la red del computador que está recuperando la imagen.

Aplicando esto a correo-e con soporte HTML conlleva a colocar una referencia a una imagen en el cuerpo del mensaje del correo. Cuando el programa de correo recupera el archivo de la imagen como parte de lo que el programa de correo le está mostrando al usuario, el servidor web registra el tiempo y la dirección de red de la solicitud. Típicamente la imagen es algo que no será visible al destinatario del mensaje, por ejemplo una imagen que consiste únicamente de un pixel transparente, de allí el término Web Bugs - está, después de todo, pretendido para realizar una "vigilancia encubierta".

También es posible utilizar una etiqueta de sonido para lograr el mismo resultado.

La mayoría de los clientes de correo no pueden ser configurados para ignorar estas etiquetas, de ahí que la única forma de prevenir este fisgoneo es renombrar  las etiquetas que hacen referencia a imagen y sonido en el servidor de correo.



Me pueden contactar en inglés en <jhardin@impsec.org> - Usted también podría visitar mi sitio web.

Estaría muy interesado en ser contactado por personas que voluntariamente puedan colaborar en la traducción de ésta u otras páginas. Traducido por: Pablo Chamorro C. - Oct.16.2001.


Created with viBobby approvedMejor visto con Cualquier Navegador
$Id: sanitizer-threats.html,v 1.12 2001-09-08 13:05:02-07 jhardin Exp $
Contents Copyright (C) 2001 by John D. Hardin - All Rights Reserved.