Cristiano Gerlach <vexxor@iname.com>
Rede Nacional de Ensino e Pesquisa (RNP)
Introdução
A estrutura de uma rede
O ataque
Abusos e privilégios em um acesso a uma rede
Conclusão
Referências bibliográficas
Ferramentas e programas
Escrito pelos consultores da Network Security Solutions Ltd. Front-line Information Security Team (FIST), em dezembro 1998, este artigo trata de um dos principais temas em discussão na Internet nos últimos anos: a segurança de redes.
Ele foi produzido para dar aos administradores de redes e relacionados uma idéia das metodologias adotadas pelos crackers de sistemas típicos quando estão atacando grandes redes, não sendo de forma alguma uma espécie de manual técnico obscuro.
Introdução
As entidades mais vulneráveis a um ataque em grande escala, normalmente, incluem:
- Instituições financeiras e bancos;
- ISPs (provedores de Internet);
- Companhias farmacêuticas;
- Governo e agências de defesa;
- Empresas multinacionais.
Embora muitos desses ataques sejam feitos pelos próprios funcionários da empresa, que já têm senhas de acesso a determinados setores, nos concentraremos nas técnicas utilizadas pelos invasores de fora da rede.
O PERFIL DE UM CRACKER DE SISTEMAS TÍPICO
Os estudos têm mostrado que um cracker de sistemas típico é geralmente do sexo masculino, com idade entre 16 e 25 anos. Eles, comumente, estão interessados em invadir as redes para aumentar suas habilidades ou para utilizar os seus recursos para seus propósito.
Muitos crackers são bastante persistentes em seus ataques, isto dá-se devido a quantidade de tempo livre que eles dispõem (alguns trabalham no setor, e muitos dos mais jovens sequer trabalham, sobrando muito tempo livre para a execução dos ataques). As técnicas por eles utilizadas são as mais diversas.
A estrutura de uma rede
Em uma corporação típica, a presença na Internet ocorre pelos seguintes propósitos:
- Hospedagem de servidores corporativos;
- Serviço de e-mail e outras facilidades de comunicação;
- Fornecimento aos funcionários dos serviços desta rede.
ENTENDENDO AS VULNERABILIDADES DESTES SISTEMAS DE REDE
Nos casos de redes com uma política de "corporação para Internet" não muito clara, certamente existirão multiple-homed hosts e roteadores com configuração imprópria. Tudo isso, aliado a falta de uma segmentação da rede interna tornará muito fácil a um cracker baseado na Internet, ter acesso não autorizado à rede interna.
O ataque
Serão vistas, nesta seção, as técnicas utilizadas pelos invasores para ocultar a sua ação, as formas de coleta de informação, bem como os programas de exploração que eles fazem uso.
TÉCNICAS USADAS PELOS INVASORES PARA OCULTAR A SUA LOCALIZAÇÃO
Crackers típicos, usualmente, usarão as seguintes técnicas para esconder seu endereço IP real:
- Conectar-se através de outras máquinas comprometidas via Telnet ou rsh;
- Conectar-se através de computadores com Windows via Wingates;
- Conectar-se através de hosts utilizando proxies configurados impropriamente.
Se um administrador descobre que um cracker está mantendo a rotina de rastrear os seus hosts a partir de máquinas já comprometidas, é aconselhável que este contacte o administrador destas máquinas por telefone e notifique-o do problema. Neste caso, não se deve fazer uso do correio eletrônico, pois o próprio cracker pode interceptar a mensagem antes que ela chegue ao seu destino.
Os crackers que estão aptos a invadir máquinas através de telefone, podem usar as seguintes técnicas para ocultar a sua ação:
- Conectar-se, através de números do tipo "0800", a centrais telefônicas privadas antes de se conectar a um provedor Internet utilizando contas "crackeadas" ou roubadas;
- Conectar-se a um host por telefone, e conseqüentemente, à Internet.
Aqueles que adotam estas técnicas especiais de conexão (bouncing) através de redes telefônicas são extremamente difíceis de rastrear, porque eles podem estar, literalmente em qualquer lugar do mundo. Se um cracker pode fazer um dial-up para um número 0800, ele pode conectar-se a máquinas em qualquer lugar do globo sem se preocupar com custos.
A COLETA DE INFORMAÇÕES
Antes de iniciar um ataque a uma rede corporativa através da Internet, o cracker típico executará alguns testes preliminares nos hosts externos da rede que estão ligados de alguma forma esta rede. Ele tentará obter os nomes de máquinas externas e internas, usando algumas das seguintes técnicas:
- Uso do comando nslookup para executar comandos tipo "ls ";
- Visualização do código HTML dos servidores Web para tentar identificar outros hosts;
- Conecção com os servidores de correio eletrônico para executar comandos do tipo "expn ";
- Visualização de documentos armazenados em seus servidores de FTP;
- Utilização do comando finger para identificar os usuários em hosts externos.
Crackers, normalmente, tentam obter informações sobre o "layout" da rede em primeiro lugar; ao invés de tentar identificar as vulnerabilidades específicas.
Observando, então, os resultados dos "pedidos" acima mencionados, torna-se mais fácil para ele construir uma lista de mäquinas e entender as relações existentes entre elas.
Quando executa estes testes preliminares, o cracker pode cometer, sem saber, alguns pequenos erros, como utilizar seu próprio IP para conectar-se a portas de máquinas para checar as versões do sistema ou outros pequenos detalhes. Então, se o administrador acha que talvez suas máquinas estejam de alguma forma comprometidas, uma boa idéia é checar os logs de FTP e HTTPD e verificar qualquer registro anormal.
IDENTIFICANDO COMPONENTES DE REDE CONFIÁVEIS
Os crackers procuram por componentes de rede confiáveis para atacar, pois estes, geralmente, são máquinas utilizadas pelos administradores ou mesmo um servidor que é considerado seguro.
Eles iniciarão conferindo o fluxo de dados NFS para qualquer das máquinas que estejam executando o nfsd ou o mountd. O caso é que há diretórios críticos em alguns hosts (como /usr/bin, /etc, e /home, por exemplo) podem ser somente acessados e "montados" por máquinas confiáveis.
O finger daemon é muito usado para identificar máquinas e usuários confiáveis que conectam-se, com freqüência, em computadores específicos. O cracker irá, então, procurar nessas máquinas por outras formas de "confiabilidade". Por exemplo, ele pode invadir uma máquina, utilizando alguma vulnerabilidade no CGI e então ter acesso ao arquivo /etc/hosts.allow, conforma já foi dito anteriormente.
Após analisar os dados decorrentes das checagens mencionadas acima, o invasor poderá iniciar a identificação das partes confiáveis entre os hosts da rede. O próximo passo seria, então, identificar quaisquer hosts confiáveis que podem ser suscetíveis a algum tipo de vulnerabilidade remota.
IDENTIFICANDO COMPONENTES VULNERÁVEIS DE UMA REDE
Se o cracker elaborar listas de hosts externos e internos da uma rede, ele poderá fazer uso de programas para sistemas Linux como ADMhack, mscan, nmap e alguns scanners simples para procurar por vulnerabilidades específicas nos mesmos.
Usualmente, tais "rastreadas" terão origem em máquinas com conexões rápidas (geralmente conexões de fibras ópticas), o ADMhack por exemplo, requer ser executado por um usuário root em uma máquina Linux. Por conseguinte, o cracker deverá procurar utilizar uma máquina com uma conexão rápida, da qual ele tenha conseguido algum acesso ilegal e tenha instalado um rootkit ou algo semelhante nela. Esse rootkit é usado para instalar backdoors em binários críticos do sistema, tornanando o acesso do invasor nesta máquina algo difícil de ser detectado.
Os administradores dos hosts que são usados como base de ataque a outros, geralmente, não fazem idéia que esta tarefa esteja sendo executada através de suas máquinas, pois binários como ps e o netstat são alterados para ocultar os processos de ratreamento. Qual o administrador que inicialmente desconfiará que existe um "cavalo de Tróia" no comando ps? Essa é a essência da coisa.
Outros programas, tais como mscan e nmap não requerem ser executados como root e podem ser lançados de máquinas Linux (ou outras plataformas, no caso do nmap), para identificar efetivamente vulnerabilidades remotas. Todavia, estes rastreamentos são lentos e, geralmente, não podem ser muito bem ocultados.
Tanto o ADMhack como mscan executam os seguintes tipos de teste em hosts remotos:
- TCP portscan;
- Dump do serviço RPC rodando através do portmapper ;
- Listagem dos dados exportados via nfsd;
- Listagem dos compartilhamentos feitos via Samba ou Netbios;
- Pedidos de finger múltiplos para identificar "contas default";
- Rastreamento de vulnerabilidades de CGI;
- Identificação de versões vulneráveis de programas servidores, incluindo Sendmail, IMAP, POP3, RPC status e RPC mountd.
Programas como o SATAN raramente são usados pelos crackers atuais (ou melhor informados), pois eles são lentos e procuram por vulnerabilidades já obsoletas.
Após executar o ADMhack ou mscan nos hosts externos, o cracker terá uma boa idéia de quais são vulneráveis e quais são seguros.
Se existirem roteadores e estes possuírem capacidades para SNMP, então os crackers mais avançados adotarão técnicas do tipo agressive-SNMP scanning e também tentarão ataques do tipo força bruta.
TIRANDO VANTAGENS DOS COMPONENTES VULNERÁVEIS DE UMA REDE
Se o cracker identificou qualquer host externo confiável, então ele também identificou algumas vulnerabilidades no mesmo. Se algum componente vulnerável de sua rede foi identificado, então ele tentará comprometê-la.
Um cracker experiente não tentará invadir redes em horário normal de expediente. Ele deverá lançar seu ataque entre 21h e 6h da manhã. Isto reduzirá a probabilidade de alguém descobrir o ataque, e dará ao mesmo um bom tempo para instalar backdoors e sniffers nas máquinas sem se preocupar com a presença de administradores de sistema. Muitos invasores têm a maior parte de seu tempo livre nos finais de semana e muitos dos ataques são feitos nos sábados e domingos.
O cracker poderá, portanto, invadir um host confiável externo, que deverá ser usado como ponto de partida para lançar um externa e a interna, ele logrará sucesso, ou não.
Se a invasão acontece em um servidor de correio eletrônico externo, pode ser que ele consiga acesso total a um segmento da rede interna, e então ele poderá iniciar um trabalho para tentar entrar em uma camada mais profunda da rede.
Para invadir ou comprometer muitos componentes da rede, os crackers usarão programas para explorar remotamente versões vulneráveis de programas servidores (daemons), executando em hosts externos. Tais daemons, conforme já foi dito antes, incluem versões vulneráveis do Sendmail, IMAP, POP3 e serviços RPC como statd, mountd e pcnfsd.
Muitos tentativas de exploração remotas feitas são lançados a partir de máquinas previamente comprometidas.
Ao executar tal programa remotamente para explorar um daemon vulnerável rodando em algum host externo da rede, o cracker poderá obter acesso à conta root deste host, que pode ser usada para obter acesso a outros hosts da rede corporativa.
QUANDO O ACESSO A COMPONENTES VULNERÁVEIS DA REDE É OBTIDO
Depois de conseguir explorar um serviço e invadir uma máquina, o cracker passa a tratar dos binários que contém backdoors e, em seguida, inicia uma operação de limpeza, cuidando dos logs, para que a sua presença não seja percebida.
A implementação de backdoors acontece para que ele possa, mais tarde, continuar a ter acesso ao sistema mesmo que sua presença seja detectada. Muitas dessas backdoors usadas são pré-compiladas, e são usadas técnicas para mudar a data e a permissão dos novos binários que conterão. Na maioria dos casos, os binários alterados terão o mesmo tamanho do original. Os invasores têm consciência dos logs de transferências feitas por FTP. Assim, eles podem usar o programa rcp para transferir seus backdoors para os hosts em questão.
É improvável que tal cracker, invadindo uma rede corporativa iniciará seu ataque instalando patches de vulnerabilidades nas máquinas. Geralmente, ele instalará backdoors e "cavalos de Tróia" em binários considerados críticos como o ps e o netstat para ocultar quaisquer conexões que ele, por ventura, venha fazer a esta máquina.
Por exemplo, podem ser instalados backdoors nos seguintes "binários críticos" em máquinas Solaris 2.x:
/usr/bin/login
/usr/sbin/ping
/usr/sbin/in.telnetd
/usr/sbin/in.rshd
/usr/sbin/in.rlogind
Alguns crackers podem adotar a estratégia de colocar um arquivo .rhosts no diretório /usr/bin para permitir acesso remoto via comandos rlogin e rsh.
Na seqüência, ele deve checar a máquina em busca de sistemas de logging que possam ter registrado suas conexões. Então, ele procederá editando os arquivos que contém estes registros, apagando sua passagem pelo sistema.
Se existe uma uma máquina "muito visada" em sua rede, é aconselhável que o administrador trate de direcionar os seus logs diretamente para uma impressora ou mesmo para uma outra máquina cujo acesso seja ainda mais difícil. Isto tornaria extremamente difícil para o cracker eliminar sua presença do sistema.
Ao certificar-se que sua presença não está mais sendo registrada, o cracker procederá com a sua invasão à rede privada corporativa. Muitos não irão tentar explorar vulnerabilidades de outros servidores externos, uma vez que eles já possuem uma base para tentar acessar a rede interna.
Abusos e privilégios em um acesso a uma rede
Das ações e procedimentos dos crackers após invadir uma rede, é o que trata esta seção.
FAZENDO A TRANSFERÊNCIA DE INFORMAÇÕES SIGILOSAS
EXPLORANDO OUTROS HOSTS E REDES CONFIÁVEIS
Para detectar interfaces de redes promíscuas (um sinal comum de instalação de farejadores), a ferramenta cpm, disponível no site da CERT, é muito útil. Veja o endereço http://www.cert.org/ft/tools/cpm/ para maiores informações.
TOMANDO REDES
Se o cracker puder comprometer servidores considerados críticos que estejam executando aplicações como bases de dados, operações de sistemas de rede ou outras "funções críticas", ele poderá facilmente "tomar" a rede por um certo período de tempo.
Uma técnica cruel, mas não usual adotadas pelos crackers que tentam desabilitar as funções da rede, é a de deletar todos os arquivos dos servidores principais, usando o comando rm -rf / & neste servidor. Dependendo da política de backups do sistema, ele poderá ficar por horas inutilizável; ou até meses.
Se ele obtiver acesso a rede interna, ele poderá abusar das vulnerabilidades presentes em muitos roteadores como Cisco, Bay e Ascend. Em alguns casos ele poderá resetá-los ou desligá-los até que o administrador tome providências e os reative. Isto pode causar grandes problemas com a funcionalidade da rede, já que ele pode ter montado uma lista dos roteadores vulneráveis que executam papéis fundamentais na rede (se eles forem usados em algum backbone corporativo, por exemplo), ele poderá, então, desabilitar a rede da corporação por algum tempo. Por este motivo, é fundamental que os roteadores e servidores de "missão critica" sejam especialmente verificados, instalando patches e cuidando de sua segurança.
Conclusão
Referências bibliográficas
http://www.antionline.com/archives/documents/advanced/
http://www.rootshell.com/beta/documentation.html
http://seclab.cs.ucdavis.edu/papers.html
http://rhino9.ml.org/textware/
http://listen.to/vexxor
"Practical Unix & Internet Security"
Este livro (em Inglês) é uma boa introdução a segurança de UNIX e Internet, se você não tenha lido muito sobre o assunto ultimamente.
Simson Garfinkel and Gene Spafford
O'Reilly & Associates, Inc.
ISBN 1-56592-148-8
Ferramentas e programas
ftp://coast.cs.purdue.edu/pub/tools/unix/
http://www.alw.nih.gov/Security/prog-full.html
http://rhino9.ml.org/software/
A Network Security Solutions Ltd. também está desenvolvendo um conjunto de ferramentas de segurança para UNIX e Windows NT nos próximos meses. Visite o site deles em http://www.ns2.co.uk
Copyright (c) Network Security Solutions Ltd. 1998
All rights reserved, all trademarks acknowledged
http://www.ns2.co.uk
Traduzido por Cristiano Gerlach (vexxor) em Fevereiro de 1999.
Underground Interface - http://listen.to/vexxor
Este documento pode ser distribuído livremente, desde que seja mantida esta nota de copyright. Se forem extraídas partes deste documento, os seus autores (Network Security Solutions Ltd.) devem ser citados, bem como o seu tradutor e o site que o abriga.
NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004