¿Por qué la verificación DKIM tiene éxito con una firma de Yahoo cuando todas las cabeceras están falsificadas para parecerse a GMail?

7

Hoy recibí un correo electrónico fraudulento que decidí diseccionar. Descubrí rápidamente que se envió desde una dirección de Gmail ( From , Reply-To , Return-Path ) pero que el correo en sí vino de Yahoo.

  • HELO de Yahoo
  • Recibido de los mapas IP tanto hacia adelante como hacia atrás
  • El correo tiene una firma DKIM válida para yahoo.com
  • El correo electrónico falla GMail SPF porque una IP propiedad de Yahoo no forma parte de él

He canalizado el correo a través de opendkim-testmsg, que me dice que el mensaje está bien.

Estoy realmente confundido por todo esto. Por supuesto, cualquier persona puede firmar técnicamente cualquier correo electrónico usando DKIM para su propio dominio, incluso si no coincide con ninguno de los dominios utilizados en el correo. Pero, ¿por qué Yahoo haría esto? ¿Y por qué OpenDKIM no indica que hay algo de phishy en este correo, a pesar de que el dominio Return-Path y el dominio DKIM no coinciden?

Por solicitud popular, algunos encabezados de correo electrónico. Tenga en cuenta que este correo electrónico ha sido a través de un servicio de lavado de correo corporativo, Exchange y yo eliminamos una gran cantidad de datos de identificación. Sin embargo, la firma DKIM para la parte del encabezado aún coincide. He omitido el cuerpo, pero también se valida.

Received-SPF: softfail (MYMX: transitioning domain of gmail.com does not designate 87.248.110.97 as permitted sender) client-ip=87.248.110.97; [email protected]; helo=sonic302-34.consmr.mail.ir2.yahoo.com;
Received: from sonic302-34.consmr.mail.ir2.yahoo.com ([87.248.110.97])
    by MYMX with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
    (envelope-from <[email protected]>)
    for MYNAME@MYDOMAIN; Wed, 28 Feb 2018 05:03:02 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1519822976; bh=35/Syp7oOntp7GfGR2tdK316KBE4uAxZC5lOM//DYjg=; h=Date:From:Reply-To:Subject:References:From:Subject; b=KvnuAmNY1sujXiLsVnNqOJzF3MFxu/jY93zu5QKtbWRy9nMOhomUrZ+398oRwLC0P0RAkCbOj5a2x5JZtrZG4/71RKmHD/ftzOJI2goX2A4KaWrsczH4RsR/kfvpmz0jNRF4nxZONN4a5NKLavt6WPG7yWokVrGh2n/zUZPiFFv8kZL0uNPdIyCC94OiBh0c6GlSRpmTe0GbTQmbDgXZ+8nf7O5kiWpALbpSBHJ22QmdFhLLQWS18xZhl/AwprHFV+txsWtat02ldjYUmoGKhXNmTcWHDLPw7n5uyKXwsaOuX1uXSLzaWUgpnrD/v/FonebJoo1qkcnZoziov6TJmw==
X-YMail-OSG: dOZOfQ0VM1lyzg2OUT1yoveGRURYm6FHV_CU8qWTCRbr8jkKD_gBSwprVT5nSNr
 oxL32bI8ge8m_n_BDyDXFKnfZTDdFMGUPxFQt8bl2TLbWIC72.HGgEg6S8trxoSkeYLsPM8tUIhL
 XPCdlp3sNlz4quLJyyJznVo55S3vYeLt5fYSOqw2kJtOvf3l.puohOlVCc5WBZO1lp82MLbBi0rq
 0tCsbA3xDFW8_3JsxoJGinZ8fn0BBoqUfkfFdGv7UyoM94wlv4_GWYAQwIzicSQsC5od.fBm1lM_
 zSZlsV9hfeDUkwDyQiAmFq5rCUJ.3N7Lu9IKZTwnKjWvRFNudXOkEEJwW7Dg0eRNCBx.N2c.52Bi
 dfwYepO_0jqL.vF19srHCbj6PrUQjFYiIzaauD.m9IdfE692oG6o9B.w20VkMLmTcxjBKg7NC1pk
 6mWavSA7yHndoNrMfcB.liBw3XSLggRvPH60M
Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ir2.yahoo.com with HTTP; Wed, 28 Feb 2018 13:02:56 +0000
Date: Wed, 28 Feb 2018 13:02:52 +0000 (UTC)
From: hs <[email protected]>
Reply-To: hs <[email protected]>
Message-ID: <[email protected]>
Subject: MRS.HELEN SOLOMON FUNDS TRANSFER ASSISTANCE.
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
References: <[email protected]>
To: Undisclosed recipients:;
Return-Path: [email protected]
MIME-Version: 1.0
    
pregunta jornane 28.02.2018 - 14:42
fuente

3 respuestas

3

No puedo estar seguro sin ver los encabezados, pero supongo que desde / reply-to / return-path están todos falsificados y el atacante los entrega como parte de la transacción SMTP. Como dijiste, el HELO es de yahoo, y es yahoo el que lo firmó. Yahoo no está atestiguando los valores de ninguno de los encabezados en la transacción, solo que se inyectó en un servidor yahoo, que luego lo firmó DKIM, en nombre de yahoo, y se fue. p>

En cuanto a por qué OpenDKIM no indica phishy-ness cuando Return-Path y DKIM domain no coinciden, eso sería una pregunta / informe de error para la gente de OpenDKIM para responder. Una vez más, mi conjetura es que solo está verificando el dominio del remitente de MTA, contra la firma DKIM, que coincidirá.

Estoy de acuerdo en que parece ser un error.

    
respondido por el JesseM 28.02.2018 - 19:00
fuente
2

Todos los DKIM dicen que ciertas partes del mensaje no se alteraron entre las firmando el servidor SMTP saliente y el cliente (en este caso, DKIM firmó el cuerpo y varios encabezados identificados por las claves b y h en el encabezado DKIM-Signature ).

Integridad ≠ Autoridad ≠ Seguridad

Integridad: La firma de estos elementos simplemente garantiza que no se encuentren entre el reenvío de envío y el destinatario final (usted). Una coincidencia verificada en las firmas demostrará solo que el servidor vio el mismo contenido que usted.

Este mensaje con DKIM válido tiene integridad, por lo que lo ve como su remitente.

Autoridad: DMARC (y SPF ) puede determinar si el mensaje fue aprobado por el dominio en cuestión (gmail. com). SPF enumera los servidores de correo que pueden enviarse para el dominio dado y DMARC describe las políticas a seguir si el mensaje no tiene SPF o DKIM alineado. (Alineación significa que el encabezado Desde coincide con el correo de enveolope (para SPF) o la clave DKIM-Signature header d (DKIM). Puede ser "estricto" para las coincidencias de host exactas o "relajado" para las coincidencias de dominio de la organización.)

D = yahoo.com de DKIM no se alinea con el de @'s gmail.com, por lo que no pasa DMARC. SPF falla (la infraestructura de Yahoo no está permitida por GMail) ... y no está alineada de todos modos.

Este mensaje carece de DKIM o SPF alineado + válido, por lo que no está autorizado.
... Aunque la política DMARC (p = ninguna) no dicta una acción, por lo que se te entregó

Seguridad es algo sobre lo que los servidores tienen poco control. Si un usuario se ve comprometido (o era malicioso para comenzar), la cuenta se puede usar para enviar spam firmado. La mayoría de los retransmisores de correo saliente, especialmente los gratuitos como Yahoo y GMail, tienen capacidades de detección de correo no deseado saliente, pero todos los sistemas de detección de correo no deseado tienen aciertos y fallos, y la mayoría (especialmente para el correo saliente) se equivoca en el lado de la entrega (permite el correo malicioso como falso negativos en lugar de interceptar correos legítimos como falsos positivos).

⚠️ DKIM, SPF y DMARC no juzgan la seguridad del contenido, solo la integridad y la autoridad.

    
respondido por el Adam Katz 15.03.2018 - 18:55
fuente
0

Espero estar cortando el corazón de la pregunta como se expresa ahora.

DKIM no pretende verificar que el contenido del sobre sea exacto para su dominio. DKIM autoriza el correo electrónico y el receptor utiliza el protocolo DKIM para verificar que el correo electrónico fue autorizado para ser enviado desde el remitente registrado en el sobre.

De la RFC :

  

DKIM permite que una organización asuma la responsabilidad de transmitir un   mensaje, de manera que pueda ser verificado por un destinatario.

Esto permite que un intermediario firme y autorice el envío del correo electrónico y que un remitente del correo electrónico lo envíe en nombre de otros dominios.

Entonces, en su caso, alguien creó un remitente falsificado, pero utilizó el cliente de correo electrónico de Yahoo y el programa de correo para enviar. El SPF falla (como debería), pero el protocolo DKIM hace exactamente lo que se supone que debe hacer: firma el sobre y el remitente lo envía como un correo electrónico legítimo enviado desde sus sistemas. El receptor puede ver que el correo fue autorizado para ser enviado por el correo de Yahoo y no modificado en tránsito, gracias a DKIM.

Entonces, sí, lo que ves en tu encabezado es posible, pero completamente válido, de acuerdo con el protocolo DKIM. El remitente no verifica; lo autoriza.

¿Cuál es el punto de DKIM, entonces? DKIM es útil de muchas maneras, incluida la prevención de la manipulación en tránsito, pero también para evitar un servidor de correo electrónico personalizado que esté configurado para falsificar un correo electrónico legítimo. Por ejemplo, si creo un servidor de correo electrónico y configuro todos los sobres para indicar que el remitente del correo electrónico es Yahoo. DKIM garantiza que cuando el receptor recibe el correo electrónico, la IP, los dominios y las firmas no coinciden.

DKIM tiene un caso de uso muy estrecho y específico. Ese caso de uso es muy útil pero tiene limitaciones conocidas, como esta. Es por eso que la recomendación es combinar SPF, DKIM y DMARC. DMARC es el protocolo que le dice al receptor qué hacer cuando falla el SPF (como lo hizo) pero pasa el DMARC. DMARC une los protocolos y, en conjunto, se puede diseñar la política que habría rechazado este correo electrónico en su sistema.

    
respondido por el schroeder 03.03.2018 - 12:24
fuente

Lea otras preguntas en las etiquetas