Investigadores de la empresa SEC Consult han publicado una nueva técnica de suplantación, provocada por discrepancias en el cumplimiento de la especificación en diferentes implementaciones del protocolo SMTP. La técnica de ataque propuesta permite dividir un mensaje en varios mensajes diferentes al ser transferido por el servidor SMTP original a otro servidor SMTP, que interpreta de manera diferente la secuencia para dividir los correos enviados a través de una misma conexión. Este método puede usarse para enviar correos falsos en nombre de otros remitentes en servicios de correo que verifican el remitente original.
El problema se debe a que diferentes servidores SMTP interpretan de manera diferente la secuencia de finalización de datos, lo que puede llevar a la división de un solo correo en varios durante una sesión en el servidor SMTP. En la especificación para marcar el final de la transmisión del correo se define la secuencia ‘\r\n.\r\n’ (un punto rodeado por caracteres de retorno de carro y nueva línea). Después de esta secuencia pueden seguir comandos para enviar otro correo sin romper la conexión. Algunos servidores SMTP siguen estrictamente la norma, pero otros, para garantizar la compatibilidad con algunos clientes de correo raros, también tratan como separadores secuencias como ‘\n.\n’, ‘\n.\r\n’, ‘\r\n.\n’, ‘\r.\r’, ‘\r\n\0.\r\n’ y ‘\r\n\0.\r\n’.
El ataque consiste en que a un primer servidor, que solo procesa el separador ‘\r\n.\r\n’, se le envía un correo cuyo cuerpo contiene un separador alternativo, por ejemplo, ‘\r.\r’, seguido de comandos para enviar un segundo mensaje. Dado que el primer servidor sigue estrictamente la especificación, interpreta la secuencia recibida como un solo correo. Si luego el correo se envía a un servidor de tránsito o al servidor del destinatario, que adicionalmente interpreta la secuencia ‘\r.\r’ como separador, se procesará como si fueran dos correos enviados por separado (el segundo correo puede enviarse en nombre de un usuario no autenticado a través de ‘AUTH LOGIN’, pero parecerá correcto desde el lado del destinatario).


Como ejemplos de servidores SMTP y servicios que permiten delimitadores alternativos, se destacan Postfix, Sendmail, MS Exchange Online y Cisco Secure Email Gateway, mientras que entre los servicios de correo que no filtran delimitadores incorrectos de los correos al comunicarse con otros servidores, están GMX, iCloud y Microsoft Outlook.
Para bloquear problemas en Postfix, en las versiones 3.8.1, 3.7.6, 3.6.10 y 3.5.20 se agregó la configuración «smtpd_forbid_unauth_pipelining», que provoca la ruptura de la conexión en caso de utilizar delimitadores que no cumplen con los requisitos de RFC 2920 y RFC 5321. Actualmente, por defecto, esta configuración está desactivada, pero se planea activarla por defecto en la rama Postfix 3.9, que se espera para la primavera de 2024. En la rama 3.9 también se incluirá la configuración smtpd_forbid_bare_newline, que generará un error al usar solo el carácter de nueva línea («\n») para separar líneas, lo cual infringe RFC 5321.
En la próxima versión de Sendmail 8.18.0.2, para protegerse contra ataques, se propone en srv_features la opción ‘o’, que habilita el procesamiento solo de la secuencia «\r\n.\r\n». Se señala que desactivar el soporte para delimitadores alternativos puede interrumpir el funcionamiento de algunos clientes de correo poco comunes que no cumplen completamente con la especificación SMTP.
Fuente: opennet.ru
