Computadores e equipamentos informatizados podem
se comunicar uns com os outros através de padrões
estabelecidos que ditam como cada participante da
conversa deve se comportar. O padrão utilizado na
Internet (e na maioria dos sistemas atuais) é o
chamado "Cliente/Servidor". Você
certamente já ouviu falar disso mas, afinal, do que
se trata?
A comunicação em um ambiente cliente/servidor
é composta de dois módulos básicos: um módulo
que faz requisições de serviços - cliente - e
outro que recebe estes pedidos para executar as
tarefas pedidas - servidor- e, eventualmente,
retornar o resultado desta tarefa. Você utiliza
enormemente este esquema durante sua conexão
internet. Por exemplo, o seu navegador - que é o
programa cliente - fez um pedido ao programa
servidor instalado nos computadores onde estão
hospedadas as páginas deste site, que o recebeu e
respondeu com a página pedida - esta que você está
lendo agora. O mesmo acontece quanto você verifica
seus emails, baixa arquivos etc.
Como você já deve ter imaginado, a maior parte
dos programas utilizados no seu computador só
precisa fazer pedidos e esperar a resposta, ou seja,
são programas clientes. Teoricamente é isso o que
deve acontecer, mas nem sempre nossos computadores são
tão inofensivos. Os grandes vilões dos últimos
anos são programas que invertem este papel, fazendo
com que nossos computadores se tornem servidores. A
maioria arrasadora vem na modalidade de 'cavalos-de-tróia'
(discutiremos sobre ela mais tarde), por isso se
convencionou a chamar este método de 'invasão
através de cavalos-de-tróia'.
O que acontece, geralmente, é que um usuário
recebe um programa de alguém, através de qualquer
meio - por email, ICQ, fazendo um download ou por
disquete - e o executa em seu computador. Este
programa, após ser executado, instala um 'servidor'
que passa a responder aos pedidos de conexão pela
Internet, ou seja, seu computador adquire as
características de um 'servidor internet'. Os tipos
de pedidos que ele pode aceitar e executar variam de
acordo com o 'servidor' instalado.
Uma característica presente neste tipo de
comunicação é a necessidade de se atribuir 'portas
de comunicação' por onde os pedidos e as respostas
irão passar. Todos os programas para uso na
Internet se utilizam destas portas que geralmente são
abertas com o intuito de fazer pedidos a servidores
remotos. Quando um computador está, digamos, 'infectado'
por um programa servidor, este abre uma porta
naquele, de forma a permitir que outros computadores
façam pedidos através dela.
Com base nesta explicação, percebemos que não
é necessário nem interessante impedir que nossos
computadores abram portas. Se isso for feito, nenhum
dos nossos programas irá funcionar. O que
precisamos fazer é impedir que programas maliciosos
abram portas para receber conexões! Através delas
é que hackers podem vasculhar seu computador.
E como fechar as portas? Simples, vamos usar um
exemplo: eu vejo que meu computador tem uma porta
aberta e sei que esta porta é referente ao programa
de email, pois eu estou checando minha caixa postal
no provedor e sei que é necessário uma porta para
isso. Se eu quiser fechá-la, basta fechar meu
programa de email. Parece simples, mas o problema é
identificar a que programa uma porta está
relacionada. Além desta identificação ser
complexa, caso encontremos uma porta relacionada a
um servidor malicioso precisaremos ainda encontrar o
próprio programa servidor, que na grande maioria
das vezes está escondido ou inacessível.
O ideal neste caso é deixar a identificação
destes programas a cargo de outros programas
especializados nessa procura. Ao encontrar e remover
um programa servidor do seu computador, a porta
associada a ele será automaticamente fechada, já
que não há mais nenhum programa responsável por
abrí-la. Estes rastreadores podem ser programas
especializados em procura de 'servidores maliciosos'
conhecidos ou mesmo programas anti-vírus, já que o
método utilizado para se vasculhar o computador é
semelhante ao utilizado para se encontrar um vírus.
Para se fazer um teste em seu computador ou, se
apenas por curiosidade, quiser verificar as portas
que estão sendo abertas, o comando que mostra estas
conexões é o 'netstat'. Executando este programa
com o parâmetro '-a', serão mostradas todas as
conexões ativas, por exemplo:
(Iniciar > Arquivos de Programas > Prompt
do MS-DOS)
c:\>netstat
-a
Conexões
ativas
Proto |
Endereço
local |
Endereço
externo |
Estado |
TCP |
localhost:1249 |
www.uol.com.br:80 |
ESTABLISHED |
A listagem original possui várias e várias
linhas como esta, cada uma relatando o estado de uma
porta de conexão. O exemplo acima nos diz que meu
computador (localhost) está se comunicando pela
porta 1249 com o computador no endereço
www.uol.com.br, que está recebendo os pedidos pela
porta 80. A conexão foi estabelecida (Established).
A porta 80 está especificada mundialmente como
sendo a porta padrão para a Web. Resumindo, estou
navegando no site do Universo Online.
O que muitos usuários fazem após a execução
deste comando é entrar em desespero, pois mesmo em
condições normais e, dependendo da configuração
do computador de cada pessoa, muitas portas podem
aparecer abertas. Elas são responsáveis pelo
funcionamento do Windows, principalmente (mas não
exclusivamente) em rede. O método usado para se
identificar servidores maliciosos com base nas
portas que eles abrem é extremamente falho pois, além
desta porta poder ser alterada, existem muitos
programas e muitas portas disponíveis, e alguns
deles utilizam portas que não podem ser fechadas,
pois afetaria o funcionamento do sistema.
Por isso a recomendação é a de não se
preocupar com o relatório de portas e sim com os
programs instalados no seu computador. E, como já
foi dito, isto pode ser feito utilizando programas
específicos para estas tarefas, ou bons anti-vírus
atualizados. Dessa forma, estaremos cortando o mal
pela raíz.