O que é e como funciona port scanning?
Portas desempenham um importante papel na transmissão de dados, pois asseguram a chegada dos pacotes ao destino desejado. Elas moderam a relação entre computadores e programas, ou computadores e serviços, por meio de protocolos de rede TCP e UDP. Estes, quando combinados a um endereço IP, indicam ao sistema operacional o computador ou a aplicação que deve receber o pacote de dados.
O que é port scanning?
Sistemas operacionais usam portas para encaminhar pacotes de dados de entrada e de saída às aplicações de destino. Assim sendo, portas nada mais são que interfaces que moderam a relação entre sistemas, programas em execução e a internet. Para que uma aplicação possa receber ou enviar dados por meio de uma porta, esta deve, primeiramente, estar aberta (liberada, habilitada). Contudo, ao ser aberta, uma porta torna-se um ponto de vulnerabilidade, pois invasores também podem entrar por ela. Para minimizar riscos de ataques, você deve analisar, com regularidade, as portas abertas do seu sistema e as aplicações por trás de cada uma delas.
Port scanning, também chamado de port scan ou de varredura de portas, trata-se do processo de análise das portas abertas de um sistema, realizado por ferramentas especializadas. Para executar essa verificação, você não precisa estar devidamente logado em um sistema, mas somente conectado a ele, por rede local ou pela internet. Um port scan envia pacotes de dados de teste para as portas de um sistema, a fim de receber as devidas respostas. Uma vez recebidas, estas são analisadas e avaliadas. A depender da sua ferramenta de port scanning, você não somente receberá informações sobre portas abertas e fechadas como também sobre as aplicações ou serviços que estão as utilizando.
Administradores de sistemas fazem varreduras de portas para monitorar o tráfego de dados em uma rede. Munidos dos resultados apresentados, eles tornam-se capazes de identificar vulnerabilidades e combatê-las, diminuindo chances de ataques. Outros problemas de rede também podem ser descobertos e resolvidos por meio de um port scan. Ferramentas que executam port scanning pouco impactam o desempenho de sistemas, podendo ser usadas com segurança e sem hesitação.
Também é interessante que computadores domésticos passem por varreduras de portas, uma vez que aplicações que demandam uma conexão com a internet abrem portas automaticamente — a não ser que um firewall as impeça. Neste contexto, um port scanning pode identificar portas abertas não mais necessárias e fechá-las, dificultando a ação de invasores.
Segurança virtual descomplicada. Proteja todos os dispositivos contra ransomware, vírus e perda de dados usando ferramentas de análise inteligentes e backups automáticos.
- Totalmente escalável
- Seguro
- Automatizado
Como funciona o port scanning?
Vários são os métodos utilizados por scanners de portas para fazer port scan. Os mais comuns são baseados no protocolo TCP orientado à conexão. Para que você possa entender melhor varreduras de portas por este protocolo, vale a pena observar como uma conexão TCP é estabelecida, por meio do processo conhecido como three-way handshake:
- Primeiramente, o cliente envia um pacote SYN (sincronização) para a aplicação de destino por meio de uma porta.
- Se o pacote encontra a porta aberta e consegue chegar à aplicação, esta responde ao cliente com um pacote SYN-ACK (sincronização-confirmação), que informa que a sincronização deu certo e que a conexão pode ser estabelecida.
- Na terceira e última etapa do processo, o cliente retorna um pacote ACK (confirmação) à aplicação, que estabelece a conexão de fato dando início à troca de dados.
Se o processo de estabelecimento de conexão encontrar uma porta fechada, o cliente receberá um pacote RST (reset) na segunda etapa, o que impossibilitará o handshake.
Como trocar dados com inúmeras aplicações é inviável, pela demora e complexidade, um port scanning executa somente tentativas de conexão simples, que serão mais bem explicadas nos próximos tópicos.
Varredura TCP SYN
Varreduras TCP SYN são também chamadas de varreduras semiabertas, por não terem como objetivo o estabelecimento de uma conexão TCP completa. Neste método, um port scan envia pacotes SYN individuais somente para obter as respectivas respostas do destinatário. O destinatário, por sua vez, pode responder com um SYN-ACK, que confirma que a porta está aberta, ou com um pacote RST, que mostra que a porta está fechada. Caso nenhuma resposta seja obtida, muito provavelmente esta terá sido barrada por um firewall.
Port scannings TCP SYN não ficam visíveis aos aplicativos verificados e, portanto, não geram dados de registro. Justamente por isso elas também são conhecidas como stealth scans (varreduras secretas).
Varredura TCP connect
Uma varredura TCP connect não gera nem envia pacotes de dados por conta própria, por utilizar o sistema connect para tanto, disponibilizado por quase todo sistema operacional. Neste método, uma conexão bem-sucedida é interpretada como uma porta aberta. Por outro lado, se a conexão falhar, a porta é compreendida como fechada. Arquivos de registro das aplicações analisadas gravam varreduras como essa sempre que a conexão é devidamente estabelecida. Contudo, dados sobre o programa de port scanning utilizado não são gravados. Caso você não tenha a devida autorização para enviar pacotes de dados brutos, pode optar por uma varredura TCP connect ao invés de tentar realizar uma varredura TCP SYN.
Varreduras TCP FIN, xmas e null
Você também pode usar estes outros três métodos de port scanning para identificar portas abertas e fechadas. Eles são baseados em dois princípios de TCP listados na RFC 793:
- Pacotes de entrada que não são pacotes RST devem sempre ser respondidos por uma porta fechada com outro pacote RST individual.
- Todos os pacotes não marcados como SYN, RST ou ACK devem ser ignorados por portas abertas.
Varreduras TCP FIN, xmas e null exploram as situações descritas acima em port scannings realizados em sistemas compatíveis com RFC e com pacotes individuais:
- O port scan null não faz uso de nenhuma marcação especial.
- O port scan FIN envia pacotes FIN (finalizar).
- O port scan xmas combina marcações FIN, PSH (empurrar) e URG (urgente), se acendendo como uma árvore de Natal (xmas, em inglês).
Os três métodos de varredura de portas funcionam exatamente da mesma forma. Obedecendo normas estabelecidas por documentos RFC, pacotes enviados para fins de testes fazem portas fechadas responderem com um pacote RST e portas abertas não responderem de forma alguma. Entretanto, como apenas alguns roteadores geram uma mensagem de erro ao encontrarem portas com filtros, uma ausência de resposta também pode se dar por causa de um firewall. Mesmo que esses métodos sejam ainda menos detectáveis que varreduras TCP SYN, eles possuem a desvantagem de serem incompatíveis com sistemas que não seguem as normas do RFC 793, como o Windows.
Varredura UDP
Em uma varredura UDP, cabeçalhos UDP vazios (sem dados), são enviados a todas as portas de destino. Se estas também responderem com um pacote UDP, serão consideradas abertas. Já se o port scanning receber a mensagem de erro do roteador “Port unreachable” (tipo 3, código 3), interpretará a respectiva porta como fechada. Outras mensagens de erro também podem ser emitidas, indicando filtros nas portas.
A principal desvantagem de portas UDP é o alto consumo de tempo, já que mensagens de erro específicas demoram mais a serem enviadas, tanto por motivos de segurança quanto pela assimetria do processo. O núcleo do Linux, por exemplo, permite a emissão de somente uma mensagem por segundo. Neste sistema operacional, um port scan de 65.535 portas demoraria cerca de 18 horas para ser concluído.
Quais são as ferramentas de port scanning disponíveis?
Existem diferentes scanners de varredura no mercado, cada um com recursos específicos. Em sua maioria, ferramentas de port scan são freewares ou open source, disponibilizadas tanto por linha de comando quanto por interface gráfica do usuário.
Ao buscar por ferramentas para a realização de um port scanning, você também se deparará com soluções on-line, capazes de realizar varreduras de portas diretamente pelo navegador. Scanners on-line têm, contudo, funcionalidades limitadas. O Port Scanner DNS tools, por exemplo, só verifica portas individuais. Por esse motivo, recomendamos varreduras on-line somente para a execução de um port scanning rápido, em um computador doméstico.
Netcat: A ferramenta de rede veterana
A ferramenta de rede Netcat (nc) foi publicada em 1996 por um anônimo sob o pseudônimo de Hobbit. Originalmente criada para plataformas UNIX, hoje a ferramenta oferece portas para diversos sistemas, inclusive para Windows, e conta com complementos, como GNU Netcat, OpenBSD Netcat, Cryptcat e Netcat6 (também compatível com IPv6), implementados de forma padrão por diferentes distribuições Linux.
A versão básica da linha de comando do Netcat é geralmente utilizada para enviar ou ler dados por meio de conexões de rede TCP e UDP. Contudo, ela também pode ser usada para a realização de varreduras de portas simples. Com um único comando, como nc -zv localhost 20-30
, você conseguirá checar o status das portas 20 a 30 no sistema em execução. A varredura de portas UDP requer, contudo, o parâmetro adicional -u
. Ao invés de chamar o localhost, você também pode executar o comando com o respectivo namehost ou com o endereço IP do sistema externo.
Nmap para varreduras abrangentes
Nmap (Network Mapper) é uma ferramenta de port scanning bem mais impressionante e poderosa. Publicado em 1997, o programa de linha de comando inicialmente desenvolvido para sistemas UNIX possui licença GPL e também disponibiliza uma conveniente interface gráfica do usuário chamada Zenmap. Desde o ano 2000, o Nmap também conta com uma versão para Windows, embora esta tenha pequenas limitações. Varreduras TCP connect, por exemplo, são feitas em tempo desproporcional devido à API de rede do Windows. Varrer portas próprias também é um problema, e só é possível se executada de forma indireta.
Até hoje o inventor do Nmap, Gordon Lyon, juntamente com sua equipe de desenvolvedores, continua a trabalhar nos recursos de port scan da ferramenta. Técnicas de OS fingerprinting, que reconhecem o sistema operacional do destinatário, e outras que identificam serviços por trás de portas fazem do Nmap uma das soluções de varredura de portas mais populares do mundo. Sem contar os variados métodos de port scanning oferecidos, listado pela tabela abaixo:
Método de port scanning | Comando Nmap | Descrição |
---|---|---|
Varredura TCP connect | nmap -sT host | Port scan clássico para não-administradores |
Varredura TCP SYN | nmap -sS host | Port scan rápido e discreto para administradores |
Varredura TCP FIN, xmas, null | nmap -sFhost nmap -sXhost nmap -sNhost |
Port scan que pode contornarfirewalls |
Varredura TCP ping | nmap -sP host | Não é um port scan clássico, mas ajuda a verificar a acessibilidade de um host |
Varredura TCP ACK | nmap -sA host | Identifica portas com filtros, mas não as distingue entre abertas e fechadas |
Varredura TCP window | nmap -sW host | Comparável à varredura ACK; consegue varrer alguns tipos de portas abertas e fechadas |
Varredura TCP maimon | nmap -sM host | Combina as varreduras FIN e ACK |
Varredura TCP idle | nmap -sI host zumbi host | Método de port scan mais discreto, mais complexo e, portanto, mais lento; opera por um terceiro computador, chamado pelo próprio Nmap de zumbi |
Varredura UDP | nmap -sU host | Método de port scan para portas UDP sem conexão |
Varredura SCTP Init | nmap -sY host | Port scan por SCTP, alternativa ao TCP e UDP |
Varredura de protocolo IP | nmap -sO host | Não é um port scan propriamente dito, mas descobre os protocolos baseados em IP suportados pelo sistema de destino |
Faça download do Nmap ou de sua interface gráfica Zenmap, mas não se esqueça de escolher o link específico para o seu sistema operacional. Opte, ainda, entre a versão atual (estável) e a versão beta, também disponibilizada.
Por que port scanning pode ser ilegal?
Nem todas as situações envolvendo varreduras de portas é legal. Infelizmente, alguns utilizam-se de port scans para identificar falhas de segurança em terceiros e explorá-las negativamente. Casos como estes podem acarretar problemas judiciais.
Port scannings em excesso podem paralisar sistemas de computadores, uma vez que requisições de conexão ininterruptas sobrecarregam o sistema destinatário, levando-o a um crash. Ainda, os responsáveis pelo sistema analisado podem detectar tal atividade e interpretá-la como um ataque. Providências de proteção podem envolver a polícia e a justiça, uma vez que sobrecarregar sistemas de terceiros deliberadamente é considerado ataque DoS ou DDoS.
Antes de realizar um port scan, certifique-se de estar devidamente autorizado a fazê-lo e de usar a respectiva tecnologia somente para fins de segurança. Até mesmo por isso, fique de olho nas portas do seu próprio sistema, dos computadores da sua rede e nos serviços que as acessam.