Técnicas Adotadas pelos Crackers para Entrar em Redes Corporativas
Introdução
Este documento não é um guia sobre como tornar uma rede segura. No entanto, tenta-se ajudar aos administradores a identificar os riscos de segurança que existem na sua rede e com isso ajudá-lo a prevenir-se de algum incidente que ele tema que possa acontecer.
A leitura deste documento é altamente recomendada para os administradores de sistemas preocupados com aspectos de segurança. Espera-se que com isto eles possam aprender como os crackers agem para que se possam tomar as precauções necessárias.
QUEM É VULNERÁVEL?
Redes de computadores são usadas todos os dias por corporações e várias outras organizações. Elas permitem que os usuários troquem uma vasta quantidade de informações ou dados de forma eficiente.
Usualmente, redes corporativas não são desenvolvidas e implementadas com os aspectos de segurança em mente, mas sim para terem uma funcionalidade e eficiência máximas. Embora isto seja bom do ponto de vista empresarial, os problemas de segurança certamente aparecerão depois, e as empresas gastarão dinheiro para resolvê-los na direta proporção do tamanho de suas redes.
Muitas redes corporativas e privadas funcionam baseadas no princípio cliente-servidor, onde os usuários utilizam estações de trabalho para conectarem-se aos servidores e compartilharem informações. Este documento irá concentrar-se na segurança do servidor, que é o alvo primordial dos crackers, pois se eles conseguem acesso ao mesmo, que geralmente é o mais bem protegido da rede, torna-se muito fácil conseguir acesso ao restante da rede.
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
Nesta seção, apresenta-se a principal forma de conexão à Internet adotada pela maiorias das instituições e o que isto implica em termos de vulnerabilidades.
FORMA DE CONEXÃO MAIS ADOTADA
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.
Testes de invasão executados por empresas especializadas em segurança têm mostrado um ambiente onde a rede corporativa e a Internet são separadas por firewalls e proxies.
Em tais ambientes, o servidor Web corporativo e os servidores de correio eletrônico são, às vezes, deixados do "lado de fora" da rede da empresa e as informações para a rede interna são transmitidas por canais confiáveis.
No caso, para estes canais confiáveis presentes entre servidores externos e máquinas da rede interna, uma política bem pensada de "filtragem" deve ser posta em ação, como, por exemplo, configurar os servidores de correio eletrônico para somente conectar à porta 25 de um único servidor seguro da rede corporativa. Isto já irá diminuir massivamente a probabilidade de acessos não autorizados quando um servidor externo for comprometido.
Do ponto de vista de segurança, hosts que operam em redes múltiplas podem ser uma séria ameaça à segurança da rede como um todo, pois os mesmos fazem simplesmente uma "ponte" entre as duas redes. Se alguém tem acesso a este host, pode conseguir acessar a rede da empresa.
ENTENDENDO AS VULNERABILIDADES DESTES SISTEMAS DE REDE
Tomando como exemplo uma instituição que, na Internet, possui servidores Web e servidores de correio eletrônico externos, onde estes são isolados da rede interna através de um firewall ou algum sistema de filtragem implementado.
Os servidores Web, geralmente, não são atacados por crackers que esperam ganhar acesso à rede corporativa, a menos que o firewall esteja configurado de alguma maneira que o permita acessar a rede da empresa através dos mesmos. Assim, é sempre bom ter configurado nestes servidores o TCP Wrappers para permitir que somente clientes confiáveis se conectem às portas de Telnet e FTP.
Os servidores de correio eletrônico, por sua vez, são os alvos prediletos de crackers que tentam acessar a rede interna. Esta predileção se dá porque tais máquinas necessitam ter acesso à rede corporativa para trocar e distribuir as mensagens entre a rede interna e a Internet. Novamente, dependendo da "filtragem" da rede em questão, o ataque pode ou não surtir efeito.
Roteadores com filtro também são alvos comuns de crackers através de ataques agressivos de SNMP-Scanning e password crackers do tipo força-bruta. Se tal ataque for efetivo, o roteador pode facilmente tornar-se uma ponte, dando então acesso não autorizado à rede.
Neste tipo de situação, o invasor avaliará quais servidores externos ele teve acesso, e então tentará identificar qual o nível de confiança entre estes e a rede corporativa. Se o TCP Wrappers for instalado em todos os servidores externos, pode-se definir que somente as partes confiáveis poderão comunicar-se com portas críticas destas máquinas, que são:
ftp (21), ssh (22), telnet (23), smtp (25), named (53),
pop3 (110), imap (143), rsh (514), rlogin (513), lpd (515).
Os protocolos SMTP, named e portmapper precisam ser configurados de acordo, dependendo da sua função na rede. Tudo isso pode reduzir bastante o risco de ataque a uma rede corporativa.
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
Se a meta do invasor é fazer transferência de informações sigilosas ou sensíveis de servidores FTP ou servidores Web corporação, ele pode fazer isto a partir de um host externo que esteja atuando como um ponte entre a Internet e a rede interna.
Porém, se a meta dele é fazer a transferência de informação sensível armazenada nas máquinas da rede interna, ele tentará obter acesso a ele através do abuso de confiança que o host externo que ele está utilizando possui.
EXPLORANDO OUTROS HOSTS E REDES CONFIÁVEIS
Muitos crackers, simplesmente, repetirão os passos descritos na seção anterior para testar e obter acesso aos computadores de uma rede corporativa interna, dependendo do que ele está tentando obter. "Cavalos de Tróia" e backdoors talvez sequer sejam instalados nas máquinas internas da rede. No entanto, se ele quer obter acesso total às máquinas da rede interna, então ele não sós os instalará, como tratará de remover os logs do sistema, conforme dito na seção anterior, bem como instalar sniffers nas máquinas, conforme será explicado abaixo.
INSTALANDO FAREJADORES
Uma maneira extremamente eficaz dos crackers obterem rapidamente uma grande quantidade de logins e senhas das máquinas da rede interna é usar programas especiais chamados de Ethernet Sniffers. Os tais sniffers (farejadores) precisam operar na mesma Ethernet usada pelo cmputador ao qual o cracker deseja obter acesso. Ele não será eficaz se for executado em uma máquina externa da rede.
Para "farejar" o fluxo de dados em uma rede interna, o cracker precisa fazer uma invasão a algum host da rede interna e obter acesso à conta root. Este host precisa ter também um número IP que esteja na mesma rede dos demais internos. As técnicas mencionadas na seção anterior são adotadas aqui, uma vez que o cracker precisa acessar e instalar backdoors para certificar-se que o farejador possa ser instalado e usado efetivamente.
Depois de invadir, instalar as backdoors e os "cavalos de Tróia" nos binários ps e netstat, será a vez de instalar o farejador no host. Ele, geralmente, é instalado no diretório /usr/bin ou /dev (no Solaris 2.x), e é modificado para que se pareça com um binário qualquer do sistema.
Muitos farejadores são executados em modo background e produzem um arquivo de log na máquina local. É importante lembrar que uma backdoor já deve ter sido instalada no ps, para que este processo não seja percebido pelo administrador.
Os farejadores funcionam mudando a interface de rede para o chamado "modo promíscuo". Esta interface, então, passa a "escutar" todos os pacotes que trafegam na rede e manda os dados para o arquivo de log configurado. Quaisquer logins, senhas ou outros dados que possam ser usados para obter acesso a outros hosts da rede passam a ser registrados.
Por estes programas estarem instalados em Ethernets, literalmente quaisquer dados que trafegam na rede podem ser "farejados"; tanto o tráfego de dados que passa por este host, como o tráfego que sai dele pode ser "farejado".
O cracker deverá retornar uma semana depois e fará a transferência do arquivo de logs que o farejador produziu. No caso de uma rede corporativa ter uma brecha como esta, está mais do que claro que o ele funcionará muito bem, e dificilmente será detectado se uma boa política de segurança não for implementada.
Um excelente utilitário usado por administradores conscientes é o TripWire disponível no site do COAST (veja Referências). Ele faz uma espécie de MD5 (checkSum) em seu sistema de arquivo e notificará qualquer mudança feita neles.
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 https://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
O presente artigo apresentou os procedimentos e técnicas adotadas pelos crackers quando pretendem invadir uma rede. Longe de ser alguam espécie de manual obscuro, a idéia aqui é conscientizar os administradores de sistema dos perigos aos quais sua rede pode estar exposta. Para tal, além de estar alerta aos sinais de invasão aqui alertados, ele deve promover uma política de segurança em sua rede. Um bom começo é comecar a ler os documentos abaixo relacionados.
^
Referências bibliográficas
Aqui estão muitos documentos bons disponíveis para ajudar você a manter a segurança de seu sistema, recomendamos você visitar os seguintes websites e dar uma olhada nos arquivos disponíveis:
https://www.antionline.com/archives/documents/advanced/
https://www.rootshell.com/beta/documentation.html
https://seclab.cs.ucdavis.edu/papers.html
https://rhino9.ml.org/textware/
https://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