Conheça a nossa empresaNotícias de informática e segurançaBoletins, artigos, livros e dicas sobre segurançaO que oferecemosArquivos sobre segurançaUm apoio culturalFale com a Pangeia

 


 

 

 

SEGURANÇA

Backdoors (I)

Por Nelson Murilo (nelson@pangeia.com.br)

Após uma efetuar uma invasão, um atacante provavelmente desejará garantir uma forma de voltar à máquina invadida sem precisar recorrer ao(s) método(s) utilizados para a invasão, quer para não expor as vulnerabilidades da máquina ao administrador, quer para promover um retorno de forma velada. Essas técnicas de retorno à uma máquina invadida, utilizando-se serviços criados ou modificados para este fim, dá-se o nome de "Portas dos Fundos" ou Backdoor.

Também existem casos recentes e outros nem tanto, de fabricantes que, alegando necessidades administrativas, incluíam/incluem Backdoor em seus produtos, como roteadores, switches e similares e sistemas operacionais.

A maneira mais usual de promover um retorno à uma máquina invadida consiste em substituir a função/porta de um determinado serviço por uma versão alterada, normalmente incluindo funcionalidades que permitam acesso remoto e não registrado em logs, que vão desde a simples inclusão de um shell no /etc/inetd.conf até sofisticados servidores com controle de senha e origem. Outras formas usuais são a substituição dos programas responsáveis pela identificação (login - Unix, Winlogon.exe - NT) do usuário, ou servidores que escutam múltiplas portas, por exemplo: inetd (Unix), inetsrv (NT).

A possibilidade de uso de backdoor não está restrita ao ambiente Unix, sistemas operacionais Windows 95/98 e NT também são vulneráveis a inclusão de backdoors, usualmente através de programas como NETCAT ou similares, e mais recentemente através de pacotes BackOrifice e NetBus, Master Paradise, etc.

Nos casos que um backdoor é instalado em uma porta não convencional ou na qual não existia serviço ativo, é bem fácil identificar sua presença, bastando para isso uma listagem das portas que estão em uso, o utilitário do sistema NETSTAT (Unix e NT) pode ser usado para isso.

Exemplo: # netstat -an (Unix)

c:\> netstat -an (NT)

Active Internet connections (including servers)

Proto Recv-Q Send-Q Local Address Foreign Address (state)

tcp 0 0 192.168.1.55.21 192.168.1.252.1026

ESTABLISHED

tcp 0 0 *.6000 *.*

LISTEN

tcp 0 0 *.993 *.*

LISTEN

tcp 0 0 *.995 *.*

LISTEN

tcp 0 0 *.23 *.*

LISTEN

tcp 0 0 *.21 *.*

LISTEN

tcp 0 0 *.465 *.*

LISTEN

tcp 0 0 *.25 *.*

LISTEN

tcp 0 0 *.22 *.*

LISTEN

udp 0 0 *.514 *.*

Portas não usuais ou não existentes previamente, em estado ESTABLISHED, LISTEN ou WAIT normalmente indicam backdoor.

A correspondência entre uma determinada porta e o programa que a esta usando, pode ser conseguida com a ajuda de um utilitário chamado LSOF (Unix)

É aparentemente simples identificar quando um arquivo foi modificado, basta verificar data e hora. Mas na prática as coisas não são tão fáceis, reconstituir as datas originais dos arquivos modificados e uma ação quase obrigatório após um ataque.

Da mesma forma que algoritmos simples de checksum (como por exemplo o SUM) também podem ser facilmente enganados por programas usados pelo invasor.

Uma outra técnica utilizada é o exame dos executáveis, através de programas como strings (no Unix) e editores hexadecimais, também este metodo não é confiável, visto que o invasor pode utilizar técnicas variadas para ocultar frases e variáveis, como rot13 por exemplo.

Atualmente as formas mais confiáveis de garantir originalidade de arquivos são as que usam o algoritmo MD5, não existem relatos de formas de substituir um arquivo e gerar a mesma assinatura MD5 que o original. Exemplo de uma assinatura MD5:

28443ea67cab80acfdca13714e1dc01b chkexploit-1.13.tar.gz

Vários programas utilizam MD5 para verificar a integridade de arquivos, dentre eles o Tripwire, originalmente escrito para ambiente Unix (veja em http://sourceforge.net/projects/tripwire, sobre porte para outros sistemas e novas versões) o programa permite algumas opções para catálogo de arquivos e diretórios, que devem ter periodicamente verificada sua integridade.

Outras soluções, vide a seção "Links de Interesse".

Cuidados Adicionais:

Fica claro que o executável tripwire ou o equivalente, e o banco de dados onde são armazenadas as informações sobre os arquivos e diretórios, devem ser mantidos íntegros. Algumas possibilidades de proteção de executável e banco são deixá-los em uma área somente para leitura, disco removível ou sistema de arquivo montado apenas quando da verificação de integridade.

Existem ainda outras áreas do sistema podem ser modificadas, como as e bibliotecas do sistema, permitindo que programas compilados possibilitem acessos não autorizados. Sistemas que permitem retirar e adicionar módulos em tempo real ao núcleo também são vulneráveis a modificações, que podem ocultar atividades não autorizadas e ataques. Apesar de mais raros modificação no núcleo dos sistema são factíveis, documentados em e-Zine e papers, e já foram identificados ataques utilizando esta técnica.

 


Voltar
Início

Copyright © 1995 - 2000 Pangeia Informática LTDA. Todos os direitos reservados.