Para especificar el tipo de codificación se utiliza la cabecera Content-Transfer-Encoding, sirva el siguiente ejemplo:
From: foo
To: bar
Subject: foobar
Mime-Version: 1.0
Content-type: multipart/mixed; boundary=barfoot
--barfoot
Content-type: text/plain
This is only ASCII text, but the attachment contains an image.
--barfoot
Content-type: image/gif
Content-transfer-encoding: base64
R0lGODlhHgAUAOMJAAAAAAgICAkJCRVVFSEhIfDw8PLy8vX19fj4+P//////////////////////
/////yH5BAEKAA8ALAAAAAAeABQAAARaMMlJq7046827/2DoFQBQcKRJpWfCSm8Vw2VrzROOr/Xd
57/YzvWjqYjHYarEZLaERWBz+vwZAgKD72isHg+DwWFrQ3pbCAIBQeYloxhdEH6Rv+/lrvusF3ki
ADs=
--barfoot--
Dado que para el transporte sólo es necesaria una única codificación la especificación permite el uso de un único encabezado. Pero ¿qué ocurre si se utilizan de todas formas varios encabezados?
Veamos un ejemplo con el virus de testing Eicar, donde añadiremos dos cabeceras Content-Transfer-Encoding headers, una para el típico base64 y otra para quoted-printable:
From: foo
To: bar
Subject: eicar - base64 cte header preceding quoted-printable
Mime-Version: 1.0
Content-type: multipart/mixed; boundary=barfoot
--barfoot
Content-Transfer-Encoding: base64
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; name=eicar.txt
WDVPIVAlQEFQWzRcUFpYNTQoBF4pN0NDKTd9JEVJQ0FSLVNU
QU5EQVJELUFOVElWSVJVUy1URVNULUZJTEUhJEgrSCo=
--barfoot--
Resulta que la mayoría de clientes de correo y los interfaces web usarán el primer encabezado, mientras que los IDS como Bro y Snort y un montón de productos antivirus sólo usarán la última cabecera. Los resultados que se detallan a continuación se basan en pruebas realizadas a 9 de octubre:
Comportamiento observado: clientes de correo, Web mail, MTA, IDS
La primera cabecera Content-Transfer-Encoding es usada por:
- google MTA (bloquea virus directamente en la conversación SMTP)
- gmail Web interface
- GMX Web interface (bloqueará el correo si contiene virus, ver abajo)
- AOL Web interface
- Thunderbird
- Apple Mail
- Opera Mail
- Perl MIME::Tools, que es usado por amavisd
- KDE kmail
- horde Web interface
- mutt
- Outlook.de Web interface (Windows Live Mail)
- basado en el análisis del código fuente: snort 2.9.6.2. Interesante que solo acepta "Encoding" en lugar de "Content-Transfer-Encoding".
- basado en el análisis del código fuente: bro 2.3.1
- Al correo en Android parece que no le gusta el conflicto con varias cabeceras y no mostrará el archivo adjunto.
- GMX encuentra el virus sin importar el orden de los encabezados que utilizamos y reemplaza el correo afectado por un correo informativo acerca de la infección por el virus
- AOL MTA encuentra el virus también en ambos casos y bloquea el correo inmediatamente en el diálogo SMTP. Bien hecho!
Comportamiento observado: productos Antivirus
Los productos de antivirus muestran una gran variedad de comportamiento. Se han probado mediante virustotal.com con archivos en formato mbox o RFC822. Cualquier motor que no encontrara el virus Eicar en cualquiera de estas pruebas fue ignorado, ya que parece no entender estos formatos. resultados:
- El escáner de virus Rising sólo encontrará el virus si se da una sola cabecera.
- 7 productos antivirus sólo comprueban el primer encabezado y por lo tanto están en línea con la mayoría de los clientes de correo: Jiangmin, Kaspersky, Panda, Symantec, TrendMicro, TrendMicro-HouseCall, Zoner.
- 12 productos antivirus sólo comprueban la última cabecera y se comportan de este modo contrario a la mayoría de clientes de correo, lo que hace posible el fraude: Agnitum, Avast, Avira, Comodo, Cyren, DrWeb, ESET NOD32-, Fortinet, F-Prot, NANO-Antivirus, Tencent, VBA32.
- 11 productos detectan el virus independiente del orden de las cabeceras y por lo tanto no pueden ser evadidos de esta manera, no importa qde correo utilizado: BitDefender, ClamAV, a-squared, F-Secure, GData, Ícaro, McAfee, McAfee-GW-Edición , Microsoft, MicroWorld-eScan, Sophos.
El comportamiento más divertido: Correo Web de Yahoo!
El MTA de Yahoo parece no tener incorporado el análisis de virus, pero la interfaz de correo Web utiliza Norton de Symantec para escanear los archivos adjuntos antes de la descarga. El problema es que la interacción entre el antivirus y la descarga es totalmente independiente lo que permite la evasión inmediata del escáner antivirus:
- El antivirus analiza la última cabecera Content-Transfer-Encoding y por lo tanto no va a encontrar el virus en nuestro correo de ejemplo.
- La descarga de los datos adjuntos mirará la primera cabecera Content-Transfer-Encoding y por lo tanto el contenido (el virus) será descargado correctamente.
- La vista previa del correo usará de nuevo la última cabecera.
Fuente: http://noxxi.de/research/content-transfer-encoding.html
No hay comentarios:
Publicar un comentario