publications Alexandre Freire
Especialista Sênior em Segurança da Informação
Professor convidado do curso de Pós-Graduação em Gestão de Segurança da Universidade Federal do Rio de Janeiro (Núcleo de Computação Eletrônica)

O Globo Informática Etc..

Port knocking, o ‘abre-te Sésamo’ das máquinas

Por André Machado

A melhor maneira de entender a tecnologia de port knocking (bater à porta, em inglês) é lembrar a história de Ali Babá e os 40 ladrões. Principalmente daquela cena em que Ali Babá se posta em frente à caverna do tesouro e diz “Abre-te, Sésamo” para a porta abrir, dando acesso ao tesouro. Segundo Alexandre Freire, especialista em segurança sênior da Schlumberger Information Solutions e professor convidado do curso de Pós-Graduação em Segurança da Informação do Núcleo de Computação Eletrônica da UFRJ, port knocking é isso: um código que faz portas se abrirem. Mas portas de um computador — normalmente um servidor dentro de uma rede.


Uma tecnologia cujo mote é a discrição absoluta

Essa tecnologia de segurança, desenvolvida inicialmente para o mundo open-source, anda gerando um burburinho entre a turma de administração de rede e de segurança. Ela tem um grande diferencial em relação a outras tecnologias de acesso a dados preciosos (o tesouro da informação) em servidores ou computadores em geral: é silenciosa, sem alarde. E, principalmente, pode trabalhar com máquinas em que o firewall mantém, inflexível, TODAS as portas bem fechadas.

Mas, no fundo, ele não é tão inflexível assim: basta receber o código certo. Freire explica que o port knocking tem duas pontas: um programa que roda numa estação de trabalho (chamado port knocking client) e outro que fica no servidor (batizado de port knocking daemon).

— Funciona assim: o programa da estação se comunica com o programa do servidor e lhe envia uma quantidade de números de portas, numa seqüência preestabelecida — explica. — Digamos que mandou, em menos de cinco segundos, a seqüência de portas portas TCP 1020, 1050, 80, 22 e 75. O que acontece? O programa no servidor percebe “opa, esta é a seqüência para permitir que o firewall abra a porta tal”.

E então o que faz o programa do servidor? interage com o firewall da máquina, abre o firewall e diz a ele: “vou manipular suas regras. Insira mais uma regra agora, habilitando o serviço específico que esse cliente aqui, neste IP, solicitou, ao mandar a seqüência certa de portas”. Pronto, cria-se uma regra em tempo real para acessar qualquer serviço no servidor — administração remota, aplicações web, transferência de arquivos e assim por diante.

O interessante é que só no fim do processo o firewall permite a entrada no servidor. Durante o envio da seqüência, ou código, ele fica fechadinho, rejeitando normalmente os requests que chegam. Só quando o port knocking do servidor se dá conta de que o código certo foi mandado, em poucos segundos, é que o processo tem início de fato.

Não por acaso, o tempo é fundamental na configuração dos códigos — pode haver diferentes códigos para abrir diferentes portas, é tudo uma questão de configuração dos programas de port knocking.

— O intervalo de tempo é importante no processo. Se o intervalo for maior que o esperado, não há detecção da tentativa de conexão — diz Freire. — O ideal é que o intervalo seja o mínimo possível, para evitar que algum aventureiro dê a sorte de acertar uma seqüência e habilitar uma regra no firewall para outro IP, provavelmente com intenções malignas.


Ninguém consegue detectar um port knocking na rede

O servidor que roda o port knocking daemon analisa todo esse processo “na moita”. Ele não retorna nada para o cliente enquanto este não manda a seqüência de portas para lá. Fica monitorando o tráfego nas interfaces de rede (modo ativo) ou simplesmente analisando os logs gerados pelos firewalls (modo passivo). Identificada uma seqüência certa, a ação é automática para a criação da nova regra no firewall.

— Um dos grandes benefícios do processo é que ninguém consegue detectar que um host ou servidor está rodando um programa de port knocking daemon. Afinal, todas as portas estão fechadas e o processo é silencioso, discretíssimo — diz Freire.

Desenho original foi para a seara Unix/Linux

Com o mesmo processo é possível acessar o computador de casa (se este tiver uma conexão ADSL e um firewall fechado), mandando códigos para interagir com determinadas portas.

— Naturalmente, é preciso ter algum conhecimento técnico para fazer isso. Mas é uma boa: pode-se pegar aquela planilha ou apresentação que se esqueceu em casa sem descuidar da segurança. — vaticina Freire.

O desenho original do port knocking é para arquiteturas Unix/Linux, mas há programas para Windows também. E o envio da seqüência de portas pode ser criptografado, se o usuário desejar. Assim se evitam farejamentos (sniffings) do tráfego pela rede.


Códigos também podem servir ao Lado Sombrio

A hora de fechar a fresta no servidor acessado também é importante. Ela pode ser feita automaticamente (normalmente a porta só fica aberta por poucos minutos, por segurança) ou através do envio de outra seqüência de portas — é o “fecha-te, Sésamo”.

A tecnologia também tem suas desvantagens. Segundo Alexandre Freire, há possibilidade de tentativas de ataques em forma de knocking, tentando adivinhar a seqüência de portas para abrir uma conexão.

— Mas esses ataques são facilmente identificáveis pelo firewall. Além disso, o fator tempo, usado no port knocking com extrema precisão, não costuma estar presente nesse ataques, que logo mostram a que vieram — diz ele.

Mais: o código das portas tem de ser absolutamente secreto, porque é como uma senha em forma de request de portas.

— Essa seqüência deve ser guardada sempre com o uso de criptografia, de preferência numa mídia removível.

E o port knocking deve ser muito bem implementado, porque manipula regras automáticas de firewall. Se o port knocking daemon falhar ao interpretar o código de portas, pode inviabilizar totalmente o acesso a um servidor.

Mas o principal perigo está nos cavalos-de-tróia que já vêm sendo desenvolvidos há algum tempo para trabalhar no modelo de port knocking.

— É possível a um cracker plantar um programa de port knocking dentro de máquinas Unix/Linux ou Windows e enviar posteriormente o código de portas, para habilitar serviços diversos — diz Freire. — Na prática, com isso se criam backdoors para invasões futuras. E esses cavalos-de-tróia que infestam máquinas com port knocking daemon são mais difíceis de detectar.

Por esse motivo, quem deseja trabalhar com port knocking não pode descartar as demais ferramentas de segurança, como antivírus atualizados, IDSs... (AM)

Alexandre Freire colabora periodicamente com a midia digital e impressa em artigos em relação aos mais diferentes tópicos de Segurança da Informação. Por diversas oportunidades as matérias receberam destaque como matérias de capa de diversos jornais e sites especializados em tecnologia.

Reprodução Oficial - Fonte : Jornal O Globo - Caderno de Informática (impresso e digital)

http://oglobo.globo.com/jornal/suplementos/informaticaetc/169447411.asp


RETORNAR PARA PÁGINA PRINCIPAL