O que são redirecionamentos de ICMP e devem ser bloqueados?

22

Depois de ativar o ufw e o auditor de segurança do Tiger, vejo avisos dizendo:

The system accepts ICMP redirection messages

O que são mensagens de redirecionamento de ICMP? Eles devem ser desativados por motivos de segurança? Em caso afirmativo, qual é a maneira correta de fazer isso usando o firewall ufw?

jrdioko
fonte

Respostas:

28

Conforme este artigo

Há certos casos em que os pacotes ICMP podem ser usados ​​para atacar uma rede. Embora esse tipo de problema não seja comum hoje em dia, há situações em que esses problemas acontecem. Este é o caso do redirecionamento ICMP ou pacote ICMP tipo 5. Os redirecionamentos ICMP são usados ​​pelos roteadores para especificar melhores caminhos de roteamento de uma rede, com base na escolha do host, portanto, basicamente, afeta a maneira como os pacotes são roteados e os destinos.

Por meio de redirecionamentos ICMP, um host pode descobrir quais redes podem ser acessadas na rede local e quais são os roteadores a serem usados ​​para cada uma dessas redes. O problema de segurança vem do fato de que os pacotes ICMP, incluindo o redirecionamento ICMP, são extremamente fáceis de falsificar e, basicamente, seria bastante fácil para um invasor falsificar pacotes de redirecionamento ICMP.

O atacante pode então alterar basicamente as tabelas de roteamento do seu host e desviar o tráfego para hosts externos no caminho de sua escolha; o novo caminho é mantido ativo pelo roteador por 10 minutos. Devido a esse fato e aos riscos de segurança envolvidos nesse cenário, ainda é uma prática recomendada desativar as mensagens de redirecionamento de ICMP (ignorá-las) de todas as interfaces públicas.

Você precisa editar o arquivo /etc/sysctl.conf

e mudar

###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0

PARA

###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
net.ipv4.conf.all.send_redirects = 0

Em seguida, aplique as modificações de parâmetro do kernel acima com:

$ sudo sysctl -p
Manish Sinha
fonte
Obrigado. Você provavelmente também precisa descomentar essas linhas, não? :)
jrdioko
Ai sim. Meu erro. Atualizado.
Manish Sinha
4
Você precisa fazer isso para aceitar as alterações: sudo sysctl -p
Eu não acho que a configuração net.ipv4.conf.all.accept_redirects = 0 faz alguma coisa; observe o or_ no arquivo. Se eu estiver lendo secure_redirects [ frozentux.net/ipsysctl-tutorial/chunkyhtml/… ] corretamente, isso substituirá o net.ipv4.conf.all.accept_redirects = 0
gerardw
3

Lembre-se de que, se o encaminhamento estiver desativado (não somos um roteador), o valor net.ipvX.conf.all.accept_redirects será um valor específico da interface ORed, por exemplo, net.ipvX.conf.eth0.accept_redirects. send_redirects sempre é ORed.

A correção completa seria então:

net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0

Para utilizar as configurações 'padrão', as interfaces de rede devem ser configuradas novamente.

Marek
fonte