Blog

SPF - No sea negativo

Recientemente hemos encontrado algunos problemas extraños con SPF en uno de nuestros clientes. No podemos determinar de forma fiable si un mensaje que afirma provenir de su propio dominio es auténtico o no, mediante SPF. La razón... es que están incluyendo a Salesforce en sus registros SPF y Salesforce utiliza una macro que puede provocar problemas.

Veamos El Problema

Utilizaremos el dominio example.com, incluyendo Salesforce, exactamente como lo ha hecho nuestro cliente. A continuación, se muestra un registro SPF de ejemplo para example.com.

v=spf1 ip4:206.168.70.196 include:_spf.salesforce.com include:spf.protection.outlook.com -all

El registro SPF anterior es sólido y robusto. Establece una única dirección IP desde la cual se permite el envío de correo, además incluye a varias organizaciones que este dominio también utiliza para diferentes servicios. Termina con -all, lo que significa que no se debe aceptar correo de example.com a menos que la dirección IP del remitente se encuentre dentro de los rangos especificados en el registro SPF.

Cuando un servidor recibe un mensaje de example.com, puede utilizar el registro SPF para verificar si la dirección IP del mensaje proviene de una dirección IP autorizada. Vamos a desglosarlo, utilizando la dirección IP 35.80.210.20, propiedad de Salesforce, que debería resultar en un PASS que confirma que el remitente del mensaje es legítimo.

Evaluando mecanismos de SPF

  • ip4:206.168.70.196

    Sin coincidencia, comprobando...


  • include:_spf.salesforce.com

    Se trata de un include que nos indica incluir los datos de SPF que Salesforce está publicando. Al consultarlo, obtenemos esto:

    v=spf1 exists:%{i}._spf.mta.salesforce.com -all

    Ese mecanismo SPF es una macro, el servidor que realiza la verificación SPF debe sustituir ${i} por la dirección IP del remitente. Tras la sustitución por la dirección IP obtenemos:

    35.80.210.20._spf.mta.salesforce.com

    We now have a host name of 35.80.210.20._spf.mta.salesforce.com and the server doing the SPF check needs to see if that host name resolves. Our SPF check checks if the host is valid, yes - it resolves so the SPF check is valid. Odds are good the message is genuine.

Ataque de virus

Ahora podemos ejecutar las mismas pruebas cuando un mensaje de spam con virus de computadora ha generado un mensaje que afirma provenir de example.com. Debería ser fácil de detectar como falso, ya que no provendrá de una dirección IP incluida en la lista SPF del dominio. Nuestra dirección IP será 123.200.123.200, ejecutemos las pruebas de nuevo.

Evaluando mecanismos de SPF

  • ip4:206.168.70.196

    Sin coincidencia, comprobando...


  • include:_spf.salesforce.com

    Se trata de un include que nos indica incluir los datos de SPF que Salesforce está publicando. Al consultarlo, obtenemos esto:

    v=spf1 exists:%{i}._spf.mta.salesforce.com -all

    Ese mecanismo SPF es una macro, el servidor que realiza la verificación SPF debe sustituir ${i} por la dirección IP del remitente. Tras la sustitución por la dirección IP obtenemos:

    123.200.123.200._spf.mta.salesforce.com

    We now have a host name of 123.200.123.200._spf.mta.salesforce.com and the server doing the SPF check needs to see if that host name resolves. Our SPF check checks if the host is valid, yes - it resolves so the SPF check is valid. Odds are good the message is genuine.