Reino: Environment

Esta seção contém tudo o que fica fora do código-fonte, porém que é essencial para a segurança do produto que está sendo criado. Como os problemas tratados neste domínio não são diretamente relacionados com o código-fonte, nós o separamos dos demais domínios.

DNS Spoofing

Abstract
Permitir o controle externo das configurações de DNS pode levar à interrupção do serviço ou a um comportamento inesperado do aplicativo.
Explanation
A falsificação de DNS, também conhecida como envenenamento de chache DNS, é um tipo de ataque no qual um invasor corrompe o cache do resolvedor DNS, fazendo com que ele retorne endereços IP incorretos. Usando a falsificação de DNS, um invasor pode redirecionar usuários para sites mal-intencionados sem o seu conhecimento. No contexto do JavaScript do lado do servidor usando Node.js, o manuseio inadequado das configurações do servidor DNS pode levar a vulnerabilidades de segurança.

Exemplo 1: Considere um cenário em que um aplicativo Node.js permite que os usuários especifiquem servidores DNS personalizados. Se essa entrada não for devidamente validada e higienizada, um invasor poderá fornecer servidores DNS mal-intencionados e implementar ataques de falsificação 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);


Neste exemplo, a variável customDnsServers recebe um valor derivado da entrada controlada pelo usuário. Em seguida, essa entrada é usada para configurar os servidores DNS usando dns.setServers(customDnsServers). Se um invasor fornecer endereços de servidores DNS mal-intencionados, ele poderá direcionar o aplicativo para resolver nomes de domínio usando seus servidores, o que pode retornar endereços IP falsos.
desc.dataflow.javascript.dns_spoofing