LSSilva
(usa Outra)
Enviado em 16/11/2017 - 15:50h
hrcerq escreveu:
Henrique - RJ escreveu:
É, parece que vocês não sabem como acontece a troca do DNS sem conhecimento do usuário.
Pra citar esse tipo de ataque, certamente você viu alguma referência técnica explicando como isso ocorre, não? Eu gostaria de ver essa referência.
Não há a necessidade de trocar o DNS como root.
A troca é feita automaticamente por meio do navegador que acessa as configurações do roteador/modem.
O navegador nem precisa ser redirecionado para um endereço falso. No próprio script do site acessado são colocadas as instruções ( algumas linhas ) depois de invadido pelo cracker.
Pronto, com o seu DNS trocado, seu Linux passa a navegar por sites fakes com risco de ter seus dados sigilosos sequestrados.
A explicação ainda está vaga. Para o navegador acessar as configurações do modem, ele teria que executar um código javascript que estaria embutido em alguma página Web. Só que de acordo com a política de mesma origem (same-origin policy), um script não pode acessar o conteúdo de outra página se ela não estiver no mesmo domínio.
Logo, essa tática de acessar a configuração do roteador já seria barrada aí. Supondo que de alguma maneira essa proteção fosse burlada (gostaria de saber como), com o uso de whitelist (noscript), esse tipo de script pode ser facilmente filtrado.
Mas para que isso ocorra é preciso que a senha do seu modem/roteador seja a padrão ( "admin" por exemplo ).
Ou seja, dentro dessa hipótese ainda não detalhada, o roteador teria que estar mal configurado. Afinal, é boa prática trocar a senha de administrador do roteador justamente pra evitar o acesso indevido. Mais uma vez, a segurança está nas precauções.
---
Atenciosamente,
Hugo Cerqueira
Seria legal, em um router linux, adicionar algumas regras. Vamos supor que no meu router, tenho uma interface eth0, responsável pela rede interna e eth1, internet; e que, em primeiro caso, não haja DNS na rede, então haveria consulta externa.
Então adicionaria ao meu script de firewall:
trusteddns="8.8.8.8 8.8.4.4 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx"
for dns in $trusteddns
do
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 53 -s $faixaredeinterna -d $dns -m state --state NEW --syn -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -s $faixaredeinterna -d $dns -m state --state NEW -j ACCEPT
done
iptables -A FORWARD -i eth0 -o eth1 -s $faixaredeinterna -p tcp --dport 53 -j DROP
iptables -A FORWARD -i eth0 -o eth1 -s $faixaredeinterna -p udp --dport 53 -j DROP
Isto faria com que só fossem consultados dns's confiáveis, mesmo sendo adicionados outros ao PC ou router (router que teria que estar após o firewall, é claro).