Se ha encontrado una vulnerabilidad provocada por un fallo de diseño a la hora de procesar el cifrado S/MIME en Microsoft Office, Outlook y Windows Live Mail que podría ser aprovechada por un atacante remoto para hacer que un sistema vulnerable acceda a URLs arbitrarias.

S/MIME (Secure / Multipurpose Internet Mail Extensions) es un estándar para criptografía de clave pública y firmado de correo electrónico encapsulado en MIME, y está basado en los certificados X.509. Dicho certificado permite almacenar URIs en algunas de sus extensiones, que en teoría deberían dirigir a sitios web con información adicional acerca del certificado, (dónde descargar el certificado del emisor, etc.).

Según se describe en un documento técnico publicado por la compañía alemana Cynops, especialista en redes y seguridad, la vulnerabilidad está provocada por un error de diseño a la hora de implementar el estándar RFC3280 (Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile) en Microsoft Office, Outlook y Live Mail.

La clave del problema reside en que el usuario que envía el certificado no se puede tratar como confiable hasta que no se haya completado el ciclo de verificación del mismo. Lo que significa que las URIs almacenadas en las extensiones del certificado deberían tomarse como potencialmente maliciosas ya que la identidad del emisor todavía no ha sido comprobada. Éste simple hecho ha sido omitido en las consideraciones de seguridad del RFC, y puede causar que no se tomen las medidas de seguridad pertinentes a la hora de su implementación, como es el caso.

A continuación se detalla el efecto que podría causar la vulnerabilidad de ser explotada en los distintos vectores de ataque.

1- Microsoft Outlook & Windows Live Mail
Un atacante remoto podría crear un email S/MIME firmado y especialmente manipulado que, una vez abierto por el usuario, podría causar que el sistema accediera, por medio de la CryptoAPI de Microsoft, a las URLs arbitrarias especificadas en certificado. Entre otras cosas, esto podría ser usado por spammers para verificar direcciones de email. Además combinado con geolocalización IP podría ser usado para enviar spam selectivo o perpetrar ataques de phishing.

2- Microsoft Office 2007
Si un usuario abre un documento especialmente manipulado firmado usando X.509, el sistema intentaría igualmente acceder a las URLs en un intento de verificar el certificado, lo que podría ser aprovechado por un atacante para averiguar cuándo y quién ha abierto el documento. En éste caso, a diferencia del anterior, la firma sí debe ser válida.

Además la vulnerabilidad podría ser aprovechada para perpetrar ataques de escaneo de puertos contra sistemas arbitrarios o para acceder a URLs pertenecientes a una red interna, a las que de otra forma el atacante no tendría acceso.

Las siguientes aplicaciones se han comprobado como no vulnerables:
* Lotus Notes 8
* Mozilla Thunderbird (no las aplicaciones basadas en la librería NSS)
* Mail.app de Apple
* Clientes de correo basados en OpenSSL


Cualquier protocolo o aplicación que interprete el certificado podría ser potencialmente vulnerable al mismo tipo de problema. Ejemplos: puertas de enlace S/MIME, protocolo EAP/TLS o aplicaciones que hagan uso de la autenticación TLS de cliente.

Microsoft no ha proporcionado ningún parche por el momento para resolver la vulnerabilidad aunque se afirma que el problema está siendo investigado. Como contramedida, se podría filtrar a nivel de proxy las peticiones HTTP con user-agent 'Microsoft-CryptoAPI*' pues las peticiones se harían con ese valor.


Más Información:

HTTP over X.509 (S/MIME) - Microsoft Outlook
https://www.cynops.de/advisories/AKLINK-SA-2008-002.txt

HTTP over X.509 - Windows Live Mail
https://www.cynops.de/advisories/AKLINK-SA-2008-003.txt

HTTP over X.509 - Office 2007
https://www.cynops.de/advisories/AKLINK-SA-2008-004.txt

HTTP over X.509 � a whitepaper
https://www.cynops.de/techzone/http_over_x509.html

RFC 3280 - Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
RFC 3280 (rfc3280) - Internet X.509 Public Key Infrastructure Certificate

Fuente