É seguro usar números de porta altos? (re: obscurecendo serviços da web)

9

Eu tenho uma pequena rede doméstica e estou tentando equilibrar a necessidade de segurança versus conveniência. A maneira mais segura de proteger servidores da Web internos é conectar-se apenas usando VPNs, mas isso parece um exagero para proteger a interface da Web remota dos DVRs (por exemplo).

Como compromisso, seria melhor usar números de portas muito grandes? (por exemplo, cinco dígitos até 65531)

Eu li que os scanners de portas tipicamente apenas digitalizam as primeiras 10.000 portas, portanto, usar números de porta muito altos é um pouco mais seguro.

Isso é verdade?

Existem maneiras melhores de proteger servidores web? (por exemplo, guias da web para aplicativos)

SofaKng
fonte
Não, não é verdade. Máquinas modernas de CPU (inclusive desktop) com vários núcleos e acesso de banda larga podem escanear todas as 65535 portas em segundos. E mesmo que o invasor decida espaçá-los por dois segundos para frustrar os portões de DoS, quem se importa, você está deixando o sistema em funcionamento por mais de um dia, certo? Uma velha máxima é, como outros já disseram abaixo, que "a segurança através da obscuridade" é essencialmente inútil no mundo digital.
msanford

Respostas:

9

Eu li que os scanners de portas tipicamente apenas digitalizam as primeiras 10.000 portas, portanto, usar números de porta muito altos é um pouco mais seguro.

Muitas pessoas acreditam nisso. Eu não.

Talvez seja um pouco mais seguro, mas não muito. As portas com numeração baixa são mais comuns, portanto, alguns scanners procurarão lá primeiro.

Se eu fosse um cracker, examinaria primeiro as portas altas, apenas para capturar pessoas que confiam nesse método para segurança. As pessoas que confiam na segurança através da obscuridade provavelmente têm um entendimento ruim da segurança e têm mais chances de esquecer de usar outros métodos de segurança. Portanto, esses serviços podem ser mais vulneráveis ​​e mais fáceis de quebrar.

Alguns scanners exploram essa crença e começam no topo e avançam na lista. Outras verificações escolherão portas aleatórias em todo o intervalo, para que todas as portas tenham a mesma chance de serem verificadas.

Vá em frente e teste você mesmo usando o NMAP . Execute uma varredura nmap nas portas 1-10.000 e procure um servidor HTTP e compare-a com uma varredura que varre todas as 1-65 portas xxx. Você verá que a diferença geralmente é de 3 a 10 minutos. Se eu fizer uma varredura detalhada usando algo como o Nessus, a diferença será de 20 a 60 minutos.

Um bom cracker é um cracker paciente. Eles vão esperar.

Stefan Lasiewski
fonte
1
Supondo que todas as outras medidas de segurança relevantes foram implementadas, seria melhor ou pior ocultar o número de portas? Meu pensamento seria que seria um pouco melhor se o servidor não fosse especificamente direcionado.
wag2639
2
+1 "Um bom cracker é um cracker paciente. Eles vão esperar."
msanford
@ wag2639 Você realmente não está fazendo nada alterando o número da porta de um serviço, mas fazendo com que um script-kiddie encontre um script um pouco melhor. A discagem de guerra de um bloco de IPs e TAMBÉM portas que varre todas as portas é trivial.
msanford
Se um hacker estiver atrás de um alvo específico, poderá esperar 20 a 60 minutos verificando números de portas altos. No entanto, se eles estiverem tentando digitalizar centenas ou milhares de endereços IP para encontrar sistemas vulneráveis, eles não estarão digitalizando portas altas. Além disso, eles precisam saber que existe um sistema lá antes que eles possam começar a alvejá-lo. Se o firewall está fazendo seu trabalho, o sistema fica basicamente invisível até que tropeçam em uma porta aberta.
user1751825
3

O uso de números de porta ímpares não é absolutamente seguro, a menos que você esteja apostando no fato de permitir que você execute seu aplicativo como um usuário não root.

Esse tipo de coisa pode ser considerada segurança pela obscuridade, mas na verdade não é segurança.

Antoine Benkemoun
fonte
Existem alternativas para usar uma VPN completa, então? Talvez algum tipo de proxy Web reverso que tenha proteção extra de login / senha? (lula não faz isso)
SofaKng
@sofakng: você pode estar interessado em um wrapper SSL como Stunnel: stunnel.org
Maxwell
3

Você também pode usar um túnel ssh se estiver usando o Linux nas duas extremidades:

ssh -f -N -L 9090:localhost:9090 user@remote-host

Por exemplo, é isso que eu uso para encaminhar a porta 9090 no host remoto para minha porta local 9090 cherokee-admine uso configurações semelhantes para outras GUIs da web. Você pode proteger aplicativos dessa maneira, especificando na configuração do aplicativo que eles são executados apenas no host local, ou seja, ativado 127.0.0.1. Dessa forma, eles não podem ser acessados ​​de fora, mas você pode enviá-los com ssh. Verifique se man sshhá mais opções usando o encaminhamento de porta (incluindo o X, que pode resolver seu problema de outra maneira).

Essa pode ser uma maneira adequada de atingir seu objetivo sem instalar / configurar software adicional, dependendo da sua configuração.

Sam Halicke
fonte
1

Se o seu firewall permitir, você poderá fazer a autenticação acontecer no nível do firewall primeiro, se a complexidade das suas senhas for boa o suficiente, isso deve reforçar a segurança dos serviços expostos. você também pode usar o encapsulamento SSL usando, por exemplo, stunnel e autenticação mútua.

Considerando que o uso de número de portas mais alto é mais seguro, de certa forma, talvez em referência a bots verificando seu IP e tentando algumas explorações, mas se alguém realmente deseja invadir, usar números de portas mais altos não fornecerá uma segurança maior.

Maxwell
fonte
Estou usando o pfsense e alguns dos meus serviços da web têm suporte SSL (HTTPS) embutido. Ainda é melhor usar stunnel? O uso do stunnel está no nível "autenticação no firewall"?
precisa saber é o seguinte
1
Como você faz "autenticação no firewall"?
precisa saber é
Não sei se o pfsense tem essa funcionalidade, mas, nos roteadores Junipers, você pode usar usuários locais (mesmo o RADIUS) para conceder acesso ao tráfego traduzido por HTTP. Em relação ao Stunnel, você pode usar a autenticação mútua com certificados, o stunnel encapsulará o tráfego HTTP com SSL e manipulará a autenticação.
Maxwell