qmail es un agente de transferencia de correo (MTA) que se ejecuta en Unix . Fue escrito, a partir de diciembre de 1995, por Daniel J. Bernstein como una alternativa más segura al popular programa Sendmail . Originalmente era un software sin licencia , pero el código fuente de qmail fue posteriormente entregado al dominio público por el autor. [3]
Cuando se publicó por primera vez, qmail fue el primer agente de transporte de correo que tenía en cuenta la seguridad; desde entonces, se han publicado otros MTA que también tenían en cuenta la seguridad. El predecesor más popular de qmail, Sendmail , no se diseñó con la seguridad como objetivo y, como resultado, ha sido un objetivo perenne para los atacantes. A diferencia de sendmail, qmail tiene una arquitectura modular compuesta por componentes que no confían entre sí; por ejemplo, el componente de escucha SMTP de qmail se ejecuta con credenciales diferentes a las del administrador de colas o del remitente SMTP. qmail también se implementó con un reemplazo que tenía en cuenta la seguridad de la biblioteca estándar de C y, como resultado, no ha sido vulnerable a desbordamientos de pila y montón , ataques de cadenas de formato o condiciones de carrera de archivos temporales .
Cuando se lanzó, qmail era significativamente más rápido que Sendmail, particularmente para tareas de correo masivo como servidores de listas de correo. qmail fue diseñado originalmente como una forma de administrar grandes listas de correo.
En el momento de la introducción de qmail, la configuración de Sendmail era notoriamente compleja, mientras que qmail era simple de configurar e implementar.
qmail fomenta el uso de varias innovaciones en el correo (algunas originadas por Bernstein, otras no):
qmail también presenta el Protocolo de transporte rápido de correo (QMTP), un protocolo de transmisión de correo electrónico que está diseñado para tener un mejor rendimiento que el Protocolo simple de transferencia de correo (SMTP), el estándar de facto; [4] y el Protocolo de cola de correo rápido (QMQP), un protocolo de red diseñado para compartir colas de correo electrónico entre varios hosts. [5]
qmail es un sistema casi completamente modular en el que cada función principal está separada de las demás funciones principales. Es fácil reemplazar cualquier parte del sistema qmail con un módulo diferente, siempre que el nuevo módulo conserve la misma interfaz que el original.
En 1997, Bernstein ofreció una recompensa de 500 dólares para la primera persona que publicara un agujero de seguridad verificable en la última versión del software. [6]
En 2005, el investigador de seguridad Georgi Guninski encontró un desbordamiento de enteros en qmail. En plataformas de 64 bits, en configuraciones predeterminadas con suficiente memoria virtual, la entrega de enormes cantidades de datos a ciertos componentes de qmail puede permitir la ejecución remota de código. Bernstein niega que se trate de un ataque práctico, argumentando que ninguna implementación real de qmail sería susceptible. La configuración de límites de recursos para los componentes de qmail mitiga la vulnerabilidad. [7]
El 1 de noviembre de 2007, Bernstein aumentó la recompensa a 1000 dólares estadounidenses. [1] En una presentación de diapositivas al día siguiente, Bernstein afirmó que había 4 "errores conocidos" en el qmail-1.03, que tenía diez años, y que ninguno de ellos era "agujero de seguridad". Caracterizó el error encontrado por Guninski como un "posible desbordamiento de un contador sin comprobar". "Afortunadamente, el crecimiento del contador estaba limitado por la memoria y, por lo tanto, por la configuración, pero esto fue pura suerte". [8]
El 19 de mayo de 2020, Qualys [9] publicó un exploit funcional para la vulnerabilidad de Guninski, pero los autores del exploit afirman que se les negó la recompensa porque contiene restricciones ambientales adicionales.
El paquete principal qmail no ha sido actualizado durante muchos años. [10] Las nuevas características fueron proporcionadas inicialmente por parches de terceros, de los cuales los más importantes en ese momento fueron reunidos en un único metaparche llamado netqmail . [11]
qmail no fue diseñado como un reemplazo directo de Sendmail y no se comporta exactamente como lo hacía Sendmail en todas las situaciones. En algunos casos, estas diferencias de comportamiento se han convertido en motivo de crítica. Por ejemplo, el enfoque de qmail para los mensajes rebotados (un formato llamado QSBMF) difiere del formato estándar de notificaciones de estado de entrega especificado por el IETF en RFC 1894 [12] , que mientras tanto avanzó a un borrador de estándar como RFC 3464 [13] y se recomienda en la especificación SMTP .
Algunas características de qmail han sido criticadas por introducir complicaciones en el reenvío de correo; por ejemplo, el mecanismo de entrega "comodín" de qmail y el diseño de seguridad evitan que rechace mensajes de remitentes falsos o inexistentes durante las transacciones SMTP. [14] En el pasado, estas diferencias pueden haber hecho que qmail se comportara de manera diferente cuando se abusaba de él como retransmisor de spam, aunque las técnicas modernas de entrega de spam están menos influenciadas por el comportamiento de rebote.
qmail fue liberado al dominio público en noviembre de 2007. [15] Hasta noviembre de 2007, qmail era software libre de licencia , con permiso otorgado para distribución en forma de código fuente o en forma precompilada (un "paquete var-qmail") solo si se cumplían ciertas restricciones (principalmente relacionadas con la compatibilidad). Este inusual acuerdo de licencia hizo que qmail no fuera libre según algunas pautas (como la DFSG ) y fue causa de controversia.
qmail es el único agente de transferencia de mensajes ( MTA ) de software de dominio público ampliamente utilizado .
Por la presente pongo el paquete qmail (en particular, qmail-1.03.tar.gz, con suma de comprobación
MD5
622f65f982e380dbe86e6574f3abcb7c) en el dominio público. Usted es libre de modificar el paquete, distribuir versiones modificadas, etc.