Apache SpamAssassin

Apache SpamAssassines unprograma de ordenadorutilizado para elfiltrado de spam. Utiliza una variedad de técnicas de detección de spam, incluyendo técnicas deDNSychecksum difusos,filtros bayesianos, programas externos, listas negras y bases de datos en línea. Está liberado bajo la Licencia de apache 2.0 y es  parte de laFundación Apachedesde el 2004.
El programa puede ser integrado con elservidor de correopara filtrar automáticamente todo correo que llega a un sitio. También pueda ser corrido por usuarios individuales en su buzón propio y se integra con variosprogramas de correo. Apache SpamAssassin es altamente configurable; si se utiliza como un filtro a nivel de sistema todavía puede ser configurado para permitir preferencias por cada usuario.
Apache SpamAssassin fue creado por Justin Mason, quién había mantenido un número de parches de un programa anterior llamadofilter.plxde Mark Jeftovic, el cual a su vez comenzó en agosto de 1997. Mason reescribió todo el código de Jeftovic desde cero y subió el código resultante aSourceForgeel 20 de abril de 2001.​
En el verano de 2004 el proyecto se convierte en un proyecto de laApache Software Fundationy más tarde es oficialmente rebautizado aApache SpamAssassin.​
La versión SpamAssassin 3.4.2 de septiembre de 2019 fue la primera en más de tres años, pero los desarrolladores dicen que "el proyecto ha tomado un conjunto nuevo de desarrolladores y está avanzando otra vez.".​
En diciembre de 2019, se liberó la versión 3.4.3 de SpamAssassin.
En abril de 2021, se liberó la versión 3.4.6 de SpamAssassin.  Se anunció que el desarrollo de la versión 4.0.0 sería el foco del proyecto.
Apache SpamAssassin es una aplicación basada enPerl( Correo::SpamAssassin enCPAN) la cual es normalmente utilizada para filtrar todo el correo entrante para uno o varios usuarios. Puede ser corrido comoaplicación independienteo como subprograma de otra aplicación (tales comoMilter, SA-Exim, Exiscan,MailScanner, MIMEDefang, Amavis) o comocliente( spamc) que se comunica con undaemon(spamd). El modo de operación servidor/cliente o integrado tiene beneficios de rendimiento, pero bajo ciertas circunstancias puede introducir riesgos de seguridad adicionales.
Típicamente la variante de la aplicación se configura como un programa defiltro de correogenérico, o  se llama directamente de unagente de usuario del correoque lo permite, cada vez que llega nuevo correo. Programas de filtrado del correo como procmail pueden ser configurados para canalizar todo el correo entrante a través de Apache SpamAssassin con un cambio el archivo procmailrc del usuario.
Apache SpamAssassin viene con un conjunto grande de reglas que se aplican para determinar si un mensaje decorreo electrónicoes spam o no. La mayoría de reglas están basadas enexpresiones regularesque están emparejadas contra el cuerpo o campos de encabezamiento del mensaje, pero Apache SpamAssassin también emplea varias otras técnicasantispam. Las reglas se llaman "pruebas" en la documentación de SpamAssassin.
Cada prueba tiene un valor de puntuación que será asignado a un mensaje si cumple los criterios de la prueba. Las puntuaciones pueden ser positivas o negativas, con valores positivos que indican "spam" y los negativos "ham" (mensajes no-spam). Un mensaje es revisado contra todas las pruebas y Apache SpamAssassin combina los resultados en un puntaje global el cual es asignado al mensaje. Mientras más alta la puntuación, más alta la probabilidad de que el mensaje sea spam.
Apache SpamAssassin tiene un umbral de puntuación interno (configurable) para clasificar un mensaje como spam. Normalmente un mensaje sólo será considerado spam si cumple varios criterios; cumplir solo una prueba no suele ser suficiente para alcanzar el umbral.
Si Apache SpamAssassin considera que un mensaje pueda ser spam, puede ser más reescrito. En la  configuración por omisión, el contenido del correo es agregado como anexoMIME, con un breve resumen en el cuerpo de mensaje, y una descripción de las pruebas que resultaron en que fuera clasificado como spam. Si la puntuación es más baja que el valor definido, por omisión la información sobre las pruebas pasadas y el puntaje total todavía son añadidos a los encabezamientos de mensaje de correo electrónico y pueden ser utilizados en post-procesamiento para acciones menos severas, como el marcado de correo como sospechoso.
Apache SpamAssassin permite configurar su comportamiento por cada usuario, incluso si está instalado como servicio a nivel sistema; la configuración puede ser leída de un archivo o una base de datos. En su configuración, los usuarios pueden especificar individuos cuyos mensajes de correo electrónico nunca son considerados spam, o cambiar las puntuaciones para ciertas reglas. El usuario también puede definir una lista de idiomas en los que quiere recibir correo, y Apache SpamAssassin entonces asigna una puntuación más alta a todos los  correos que parecen para ser escritos en otros idiomas.
Apache SpamAssassin está basado en heuristícas (reconocimiento de patrones), y tal software tiene por lo tanto falsos positivos y falsos negativos.
Apache SpamAssassin también permite:
Se pueden añadir más métodos con relativa facilidad escribiendo un plug-in en Perl para Apache SpamAssassin.
Apache SpamAssassin refuerza sus reglas a través defiltros bayesianosdonde el usuario o el administrador "alimenta" ejemplos de buenos (ham) y malo (spam) al filtro para que aprenda la diferencia entre ambos. Para este propósito, Apache SpamAssassin proporciona la herramienta de línea de comando sa-learn, la cual puede ser instruida para aprender un correo solo o un buzón entero si es ham o spam.
Típicamente, el usuario moverá spam no reconocido a una carpeta separada, y entonces se ejecuta sa-learn en la carpeta de no-spam y en la carpeta de spam por separado. Alternativamente, si el agente de usuario del correo lo permite, se puede llamar sa-learn para mensajes de correo electrónico individuales. Independiente del método utilizado para aprender, la prueba bayesiada de SpamAssassin ayudará a mejorar la exactitud de la puntuación de los mensajes de correo electrónico futuros basados en este aprendizaje.
Apache SpamAssassin es software de código abierto/libre, autorizado bajo la Licencia de apache 2.0. Versiones anteriores a 3.0 están licenciadas dualmente bajo laLicencia Artísticay elGNU Licencia Pública General.
sa-Compilees una utilidad distribuida con Apache SpamAssassin que compila un SpamAssassin el set de reglas en unautómata finito deterministaque permite que Apache SpamAssassin utilice el poder del procesador más eficientemente.
Apache SpamAssassin está diseñado para activar el GTUBE, un string de 68 bytes similar alEICAR archivo de pruebadeantivirus. Si el string está insertada en un mensaje formateado según elRFC 5322y es pasado a través del motor Apache SpamAssassin, apache SpamAssassin le asignará un peso de 1000.