Coders Conquer Security: Share & Learn Series - Inyección de encabezado de correo electrónico
Hoy en día es habitual que los sitios web y las aplicaciones permitan a los usuarios enviar comentarios, recordatorios de citas y otros datos diversos a través de una aplicación mediante el correo electrónico. Normalmente este proceso es bastante benigno, y la mayoría de la gente ni siquiera piensa en ello en términos de un potencial riesgo de seguridad.
Sin embargo, como cualquier otro elemento de diseño que permite la entrada de datos por parte del usuario, si no se configuran adecuadamente, estas características aparentemente intrascendentes pueden ser manipuladas por usuarios maliciosos con fines nefastos. Todo lo que se necesita es dar al usuario la posibilidad de introducir un código en el campo de entrada que luego es procesado por error por el servidor. De repente, una aplicación de correo electrónico puede convertirse en un arma.
En este episodio aprenderemos:
- Cómo los atacantes pueden provocar una inyección de encabezado de correo electrónico
- Por qué son peligrosas las inyecciones de encabezado de correo electrónico
- Técnicas que pueden solucionar esta vulnerabilidad.
¿Cómo se activa una inyección de encabezado de correo electrónico?
Aunque no se suele considerar programable, la mayoría de las aplicaciones de contacto por correo electrónico o las funciones incluidas en sitios web o aplicaciones pueden aceptar entradas que cambien la naturaleza de la consulta. Normalmente, el servidor lo hace automáticamente después de que el usuario haya introducido su información, como su dirección de correo electrónico, en el campo de contratación. A continuación, el programa configura el mensaje, añade los destinatarios adecuados y lo envía utilizando su servidor de correo electrónico predeterminado.
Una solicitud POST de correo electrónico típica puede tener este aspecto:
POST /contacto.php HTTP/1.1
Host: www.example.com
Y generar un código parecido a este después de que un usuario haya introducido su información:
name=RealName&replyTo=RealName@ValidServer.com&message=YourAppointmentReminder
El problema se produce cuando los hackers comienzan a inyectar código en el proceso en lugar de sólo su información de contacto. Esto no es diferente a un ataque de tipo inyección SQL, pero realizado contra la aplicación de correo electrónico. Un ejemplo de una consulta manipulada que, en lugar de ello, enviaría spam desde su aplicación a un usuario objetivo podría tener el siguiente aspecto:
name=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=Spammed mensaje
¿Por qué es peligrosa la inyección de encabezados de correo electrónico?
Dependiendo de la habilidad del usuario malintencionado y de sus intenciones, los ataques de inyección de encabezados de correo electrónico pueden ir desde simplemente molestos hasta altamente peligrosos en términos de gravedad. En el extremo inferior de la escala de gravedad, podrían insertar su información de contacto en el campo CCO de un mensaje saliente enviado a un buzón secreto o no revelado dentro de su empresa, revelándolo así a un hacker.
Lo que es más preocupante, podría permitirles controlar completamente su servidor de correo electrónico para enviar spam, phishing u otros correos de ataque desde su organización. No tendrían que intentar fingir que el correo electrónico procede de sus servidores internos, porque realmente se estaría originando allí. Y si usted no está supervisando esa actividad, pueden incluso automatizar el proceso, enviando cientos o miles de correos electrónicos utilizando los servidores de su organización, y de tal manera que parezca que usted está realmente instigando esa actividad.
Eliminación del problema de la inyección en el encabezado del correo electrónico
Al igual que con la inyección SQL y otros ataques de esta naturaleza, la clave para eliminar la posibilidad de que un usuario malintencionado explote una vulnerabilidad de la cabecera del correo electrónico es no confiar nunca en la entrada del usuario. Si un usuario es capaz de introducir información, aunque parezca un proceso trivial como introducir su dirección de correo electrónico, hay que asumir lo peor. O al menos asumir que lo peor es posible.
La validación de la entrada debe realizarse para todos los parámetros, y esto incluye cuando se añade una capacidad de contacto por correo electrónico a una aplicación o sitio web. Las listas blancas se pueden utilizar para habilitar específicamente los procesos y campos que se consideren válidos, mientras se deniega todo lo demás. De hecho, la mayoría de los frameworks tienen bibliotecas disponibles que pueden ser utilizadas para ayudar a bloquear las funciones sólo las necesarias. Esto evitará que cualquier código o comando introducido por usuarios maliciosos sea reconocido y procesado por sus servidores.
Más información sobre las inyecciones de cabecera de correo electrónico
Para más información, puedes consultar lo que dice la OWASP sobre las inyecciones de encabezados de correo electrónico. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás preparado para encontrar y arreglar una inyección de correo electrónico ahora mismo? Dirígete a la plataforma y pon a prueba tus habilidades: [Empieza aquí]
Es habitual que los sitios web y las aplicaciones permitan a los usuarios enviar comentarios y otras informaciones diversas a través de una aplicación utilizando el correo electrónico. Y la mayoría de la gente ni siquiera piensa en ello en términos de un potencial riesgo de seguridad.
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.
Hoy en día es habitual que los sitios web y las aplicaciones permitan a los usuarios enviar comentarios, recordatorios de citas y otros datos diversos a través de una aplicación mediante el correo electrónico. Normalmente este proceso es bastante benigno, y la mayoría de la gente ni siquiera piensa en ello en términos de un potencial riesgo de seguridad.
Sin embargo, como cualquier otro elemento de diseño que permite la entrada de datos por parte del usuario, si no se configuran adecuadamente, estas características aparentemente intrascendentes pueden ser manipuladas por usuarios maliciosos con fines nefastos. Todo lo que se necesita es dar al usuario la posibilidad de introducir un código en el campo de entrada que luego es procesado por error por el servidor. De repente, una aplicación de correo electrónico puede convertirse en un arma.
En este episodio aprenderemos:
- Cómo los atacantes pueden provocar una inyección de encabezado de correo electrónico
- Por qué son peligrosas las inyecciones de encabezado de correo electrónico
- Técnicas que pueden solucionar esta vulnerabilidad.
¿Cómo se activa una inyección de encabezado de correo electrónico?
Aunque no se suele considerar programable, la mayoría de las aplicaciones de contacto por correo electrónico o las funciones incluidas en sitios web o aplicaciones pueden aceptar entradas que cambien la naturaleza de la consulta. Normalmente, el servidor lo hace automáticamente después de que el usuario haya introducido su información, como su dirección de correo electrónico, en el campo de contratación. A continuación, el programa configura el mensaje, añade los destinatarios adecuados y lo envía utilizando su servidor de correo electrónico predeterminado.
Una solicitud POST de correo electrónico típica puede tener este aspecto:
POST /contacto.php HTTP/1.1
Host: www.example.com
Y generar un código parecido a este después de que un usuario haya introducido su información:
name=RealName&replyTo=RealName@ValidServer.com&message=YourAppointmentReminder
El problema se produce cuando los hackers comienzan a inyectar código en el proceso en lugar de sólo su información de contacto. Esto no es diferente a un ataque de tipo inyección SQL, pero realizado contra la aplicación de correo electrónico. Un ejemplo de una consulta manipulada que, en lugar de ello, enviaría spam desde su aplicación a un usuario objetivo podría tener el siguiente aspecto:
name=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=Spammed mensaje
¿Por qué es peligrosa la inyección de encabezados de correo electrónico?
Dependiendo de la habilidad del usuario malintencionado y de sus intenciones, los ataques de inyección de encabezados de correo electrónico pueden ir desde simplemente molestos hasta altamente peligrosos en términos de gravedad. En el extremo inferior de la escala de gravedad, podrían insertar su información de contacto en el campo CCO de un mensaje saliente enviado a un buzón secreto o no revelado dentro de su empresa, revelándolo así a un hacker.
Lo que es más preocupante, podría permitirles controlar completamente su servidor de correo electrónico para enviar spam, phishing u otros correos de ataque desde su organización. No tendrían que intentar fingir que el correo electrónico procede de sus servidores internos, porque realmente se estaría originando allí. Y si usted no está supervisando esa actividad, pueden incluso automatizar el proceso, enviando cientos o miles de correos electrónicos utilizando los servidores de su organización, y de tal manera que parezca que usted está realmente instigando esa actividad.
Eliminación del problema de la inyección en el encabezado del correo electrónico
Al igual que con la inyección SQL y otros ataques de esta naturaleza, la clave para eliminar la posibilidad de que un usuario malintencionado explote una vulnerabilidad de la cabecera del correo electrónico es no confiar nunca en la entrada del usuario. Si un usuario es capaz de introducir información, aunque parezca un proceso trivial como introducir su dirección de correo electrónico, hay que asumir lo peor. O al menos asumir que lo peor es posible.
La validación de la entrada debe realizarse para todos los parámetros, y esto incluye cuando se añade una capacidad de contacto por correo electrónico a una aplicación o sitio web. Las listas blancas se pueden utilizar para habilitar específicamente los procesos y campos que se consideren válidos, mientras se deniega todo lo demás. De hecho, la mayoría de los frameworks tienen bibliotecas disponibles que pueden ser utilizadas para ayudar a bloquear las funciones sólo las necesarias. Esto evitará que cualquier código o comando introducido por usuarios maliciosos sea reconocido y procesado por sus servidores.
Más información sobre las inyecciones de cabecera de correo electrónico
Para más información, puedes consultar lo que dice la OWASP sobre las inyecciones de encabezados de correo electrónico. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás preparado para encontrar y arreglar una inyección de correo electrónico ahora mismo? Dirígete a la plataforma y pon a prueba tus habilidades: [Empieza aquí]
Hoy en día es habitual que los sitios web y las aplicaciones permitan a los usuarios enviar comentarios, recordatorios de citas y otros datos diversos a través de una aplicación mediante el correo electrónico. Normalmente este proceso es bastante benigno, y la mayoría de la gente ni siquiera piensa en ello en términos de un potencial riesgo de seguridad.
Sin embargo, como cualquier otro elemento de diseño que permite la entrada de datos por parte del usuario, si no se configuran adecuadamente, estas características aparentemente intrascendentes pueden ser manipuladas por usuarios maliciosos con fines nefastos. Todo lo que se necesita es dar al usuario la posibilidad de introducir un código en el campo de entrada que luego es procesado por error por el servidor. De repente, una aplicación de correo electrónico puede convertirse en un arma.
En este episodio aprenderemos:
- Cómo los atacantes pueden provocar una inyección de encabezado de correo electrónico
- Por qué son peligrosas las inyecciones de encabezado de correo electrónico
- Técnicas que pueden solucionar esta vulnerabilidad.
¿Cómo se activa una inyección de encabezado de correo electrónico?
Aunque no se suele considerar programable, la mayoría de las aplicaciones de contacto por correo electrónico o las funciones incluidas en sitios web o aplicaciones pueden aceptar entradas que cambien la naturaleza de la consulta. Normalmente, el servidor lo hace automáticamente después de que el usuario haya introducido su información, como su dirección de correo electrónico, en el campo de contratación. A continuación, el programa configura el mensaje, añade los destinatarios adecuados y lo envía utilizando su servidor de correo electrónico predeterminado.
Una solicitud POST de correo electrónico típica puede tener este aspecto:
POST /contacto.php HTTP/1.1
Host: www.example.com
Y generar un código parecido a este después de que un usuario haya introducido su información:
name=RealName&replyTo=RealName@ValidServer.com&message=YourAppointmentReminder
El problema se produce cuando los hackers comienzan a inyectar código en el proceso en lugar de sólo su información de contacto. Esto no es diferente a un ataque de tipo inyección SQL, pero realizado contra la aplicación de correo electrónico. Un ejemplo de una consulta manipulada que, en lugar de ello, enviaría spam desde su aplicación a un usuario objetivo podría tener el siguiente aspecto:
name=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=Spammed mensaje
¿Por qué es peligrosa la inyección de encabezados de correo electrónico?
Dependiendo de la habilidad del usuario malintencionado y de sus intenciones, los ataques de inyección de encabezados de correo electrónico pueden ir desde simplemente molestos hasta altamente peligrosos en términos de gravedad. En el extremo inferior de la escala de gravedad, podrían insertar su información de contacto en el campo CCO de un mensaje saliente enviado a un buzón secreto o no revelado dentro de su empresa, revelándolo así a un hacker.
Lo que es más preocupante, podría permitirles controlar completamente su servidor de correo electrónico para enviar spam, phishing u otros correos de ataque desde su organización. No tendrían que intentar fingir que el correo electrónico procede de sus servidores internos, porque realmente se estaría originando allí. Y si usted no está supervisando esa actividad, pueden incluso automatizar el proceso, enviando cientos o miles de correos electrónicos utilizando los servidores de su organización, y de tal manera que parezca que usted está realmente instigando esa actividad.
Eliminación del problema de la inyección en el encabezado del correo electrónico
Al igual que con la inyección SQL y otros ataques de esta naturaleza, la clave para eliminar la posibilidad de que un usuario malintencionado explote una vulnerabilidad de la cabecera del correo electrónico es no confiar nunca en la entrada del usuario. Si un usuario es capaz de introducir información, aunque parezca un proceso trivial como introducir su dirección de correo electrónico, hay que asumir lo peor. O al menos asumir que lo peor es posible.
La validación de la entrada debe realizarse para todos los parámetros, y esto incluye cuando se añade una capacidad de contacto por correo electrónico a una aplicación o sitio web. Las listas blancas se pueden utilizar para habilitar específicamente los procesos y campos que se consideren válidos, mientras se deniega todo lo demás. De hecho, la mayoría de los frameworks tienen bibliotecas disponibles que pueden ser utilizadas para ayudar a bloquear las funciones sólo las necesarias. Esto evitará que cualquier código o comando introducido por usuarios maliciosos sea reconocido y procesado por sus servidores.
Más información sobre las inyecciones de cabecera de correo electrónico
Para más información, puedes consultar lo que dice la OWASP sobre las inyecciones de encabezados de correo electrónico. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás preparado para encontrar y arreglar una inyección de correo electrónico ahora mismo? Dirígete a la plataforma y pon a prueba tus habilidades: [Empieza aquí]
Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.
Hoy en día es habitual que los sitios web y las aplicaciones permitan a los usuarios enviar comentarios, recordatorios de citas y otros datos diversos a través de una aplicación mediante el correo electrónico. Normalmente este proceso es bastante benigno, y la mayoría de la gente ni siquiera piensa en ello en términos de un potencial riesgo de seguridad.
Sin embargo, como cualquier otro elemento de diseño que permite la entrada de datos por parte del usuario, si no se configuran adecuadamente, estas características aparentemente intrascendentes pueden ser manipuladas por usuarios maliciosos con fines nefastos. Todo lo que se necesita es dar al usuario la posibilidad de introducir un código en el campo de entrada que luego es procesado por error por el servidor. De repente, una aplicación de correo electrónico puede convertirse en un arma.
En este episodio aprenderemos:
- Cómo los atacantes pueden provocar una inyección de encabezado de correo electrónico
- Por qué son peligrosas las inyecciones de encabezado de correo electrónico
- Técnicas que pueden solucionar esta vulnerabilidad.
¿Cómo se activa una inyección de encabezado de correo electrónico?
Aunque no se suele considerar programable, la mayoría de las aplicaciones de contacto por correo electrónico o las funciones incluidas en sitios web o aplicaciones pueden aceptar entradas que cambien la naturaleza de la consulta. Normalmente, el servidor lo hace automáticamente después de que el usuario haya introducido su información, como su dirección de correo electrónico, en el campo de contratación. A continuación, el programa configura el mensaje, añade los destinatarios adecuados y lo envía utilizando su servidor de correo electrónico predeterminado.
Una solicitud POST de correo electrónico típica puede tener este aspecto:
POST /contacto.php HTTP/1.1
Host: www.example.com
Y generar un código parecido a este después de que un usuario haya introducido su información:
name=RealName&replyTo=RealName@ValidServer.com&message=YourAppointmentReminder
El problema se produce cuando los hackers comienzan a inyectar código en el proceso en lugar de sólo su información de contacto. Esto no es diferente a un ataque de tipo inyección SQL, pero realizado contra la aplicación de correo electrónico. Un ejemplo de una consulta manipulada que, en lugar de ello, enviaría spam desde su aplicación a un usuario objetivo podría tener el siguiente aspecto:
name=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=Spammed mensaje
¿Por qué es peligrosa la inyección de encabezados de correo electrónico?
Dependiendo de la habilidad del usuario malintencionado y de sus intenciones, los ataques de inyección de encabezados de correo electrónico pueden ir desde simplemente molestos hasta altamente peligrosos en términos de gravedad. En el extremo inferior de la escala de gravedad, podrían insertar su información de contacto en el campo CCO de un mensaje saliente enviado a un buzón secreto o no revelado dentro de su empresa, revelándolo así a un hacker.
Lo que es más preocupante, podría permitirles controlar completamente su servidor de correo electrónico para enviar spam, phishing u otros correos de ataque desde su organización. No tendrían que intentar fingir que el correo electrónico procede de sus servidores internos, porque realmente se estaría originando allí. Y si usted no está supervisando esa actividad, pueden incluso automatizar el proceso, enviando cientos o miles de correos electrónicos utilizando los servidores de su organización, y de tal manera que parezca que usted está realmente instigando esa actividad.
Eliminación del problema de la inyección en el encabezado del correo electrónico
Al igual que con la inyección SQL y otros ataques de esta naturaleza, la clave para eliminar la posibilidad de que un usuario malintencionado explote una vulnerabilidad de la cabecera del correo electrónico es no confiar nunca en la entrada del usuario. Si un usuario es capaz de introducir información, aunque parezca un proceso trivial como introducir su dirección de correo electrónico, hay que asumir lo peor. O al menos asumir que lo peor es posible.
La validación de la entrada debe realizarse para todos los parámetros, y esto incluye cuando se añade una capacidad de contacto por correo electrónico a una aplicación o sitio web. Las listas blancas se pueden utilizar para habilitar específicamente los procesos y campos que se consideren válidos, mientras se deniega todo lo demás. De hecho, la mayoría de los frameworks tienen bibliotecas disponibles que pueden ser utilizadas para ayudar a bloquear las funciones sólo las necesarias. Esto evitará que cualquier código o comando introducido por usuarios maliciosos sea reconocido y procesado por sus servidores.
Más información sobre las inyecciones de cabecera de correo electrónico
Para más información, puedes consultar lo que dice la OWASP sobre las inyecciones de encabezados de correo electrónico. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás preparado para encontrar y arreglar una inyección de correo electrónico ahora mismo? Dirígete a la plataforma y pon a prueba tus habilidades: [Empieza aquí]
Índice
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
El movimiento Secure-by-Design es el futuro del desarrollo de software seguro. Conozca los elementos clave que las empresas deben tener en cuenta cuando piensan en una iniciativa Secure-by-Design.
DigitalOcean reduce su deuda de seguridad con Secure Code Warrior
El uso por parte de DigitalOcean de la formación Secure Code Warrior ha reducido significativamente la deuda de seguridad, permitiendo a los equipos centrarse más en la innovación y la productividad. La mejora de la seguridad ha reforzado la calidad de sus productos y su ventaja competitiva. De cara al futuro, SCW Trust Score les ayudará a seguir mejorando las prácticas de seguridad y a continuar impulsando la innovación.
Recursos para empezar
La puntuación de confianza revela el valor de las iniciativas de mejora de la seguridad mediante el diseño
Nuestra investigación ha demostrado que la formación en código seguro funciona. Trust Score, que utiliza un algoritmo basado en más de 20 millones de puntos de datos de aprendizaje procedentes del trabajo de más de 250 000 alumnos en más de 600 organizaciones, revela su eficacia a la hora de reducir las vulnerabilidades y cómo hacer que la iniciativa sea aún más eficaz.
Seguridad reactiva frente a seguridad preventiva: Prevenir es mejor que curar
La idea de introducir la seguridad preventiva en el código y los sistemas heredados al mismo tiempo que en las aplicaciones más recientes puede parecer desalentadora, pero un planteamiento basado en el diseño seguro, aplicado mediante la mejora de las competencias de los desarrolladores, puede aplicar las mejores prácticas de seguridad a esos sistemas. Es la mejor oportunidad que tienen muchas organizaciones de mejorar su seguridad.
Ventajas de la evaluación comparativa de las competencias de seguridad de los desarrolladores
La creciente atención que se presta al código seguro y a los principios del diseño seguro exige que los desarrolladores reciban formación en ciberseguridad desde el principio del proceso de desarrollo de software, con herramientas como Secure Code Warrior's Trust Score, que ayudan a medir y mejorar sus progresos.
Impulsando iniciativas de seguridad por diseño para empresas con éxito significativo
Nuestro último documento de investigación, Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise, es el resultado de un análisis profundo de iniciativas reales de Secure-by-Design a nivel empresarial y de la derivación de enfoques de mejores prácticas basados en hallazgos basados en datos.