Reino: Environment

Esta sección incluye todo lo que está fuera del código fuente pero aun así es importante para la seguridad del producto que se está creando. Dado que todas las cuestiones incluidas en esta sección no están directamente relacionadas con el código fuente, las hemos separado de las demás secciones.

DNS Spoofing

Abstract
Permitir el control externo de la configuración de DNS puede provocar una interrupción del servicio o un comportamiento inesperado de la aplicación.
Explanation
La suplantación de DNS, también conocida como envenenamiento de la caché de DNS, es un tipo de ataque en el que un atacante corrompe la caché del solucionador de DNS, lo que le lleva a devolver direcciones IP incorrectas. Al utilizar la suplantación de DNS, un atacante puede redirigir a los usuarios a sitios web maliciosos sin su estos lo sepan. En el contexto de JavaScript del lado del servidor que utiliza Node.js, el manejo inadecuado de la configuración del servidor DNS puede generar vulnerabilidades de seguridad.

Ejemplo 1: Piense en un escenario en el que una aplicación Node.js permite a los usuarios especificar servidores DNS personalizados. Si esta entrada no se valida y desinfecta de forma adecuada, un atacante puede suministrar servidores DNS maliciosos e implementar ataques de suplantación de DNS.


const dns = require('dns');

// User-controlled input for DNS servers
const customDnsServers = from_user_controlled_input;

// Set custom DNS servers
dns.setServers(customDnsServers);


En este ejemplo, a la variable customDnsServers se le asigna un valor derivado de la entrada controlada por el usuario. Esta entrada se utiliza luego para configurar los servidores DNS usandodns.setServers(customDnsServers). Si un atacante proporciona direcciones de servidor DNS maliciosas, puede dirigir la aplicación para que resuelva nombres de dominio utilizando sus servidores, lo que puede devolver direcciones IP falsas.
desc.dataflow.javascript.dns_spoofing