Revista Do Linux  
EDIÇÃO DO MÊS
  Shell Script
  Software Livre 2000
  Projeto Kylix
  Alta disponibilidade
  Anatomia de um ataque
  Auto-Escola Linux
  Configurando Periféricos
  Código aberto
  Ensino público
  FlagShip
  Hard e Soft
  Linux para iniciantes
  Linux para mouses

Anatomia de um ataque
Sistemas desprotegidos e obscuros, um arsenal poderoso disponível na Internet, e "piratas" cada vez menos geniais, esta é a real composição do inimigo oculto.


Marcelo Barbosa Lima
marcelo.lima@dcc.unicamp.br

Recentemente temos acompanhado um aumento no número de ataques a redes de computadores conectadas à Internet. Os últimos ataques de DDoS revelam que muitos problemas de segurança existentes nos diversos protocolos e serviços da Internet ainda não recebem o tratamento adequado na maioria das redes locais. Não estamos falando somente das vítimas diretas dos ataques, mas principalmente dos diferentes pontos distribuídos na rede que deram sua contribuição para que alguns dos grandes portais mundiais ficassem inoperantes durante o ataque.

Muitos administradores de sistemas confiam na obscuridade como solução para esses problemas de segurança. Acreditam que, como ninguém conhece o seu sistema, ele estará sempre seguro das ameaças externas. Outros crêem que seus sistemas não oferecem nenhum bom motivo para uma tentativa de intrusão e, por isso, não se preocupam com os cuidados básicos para eliminar riscos de ataques. Isto significa que a maioria desses administradores de rede não estão sintonizados com os inúmeros problemas de segurança que aparecem diariamente e somente procuram tomar medidas com relação à segurança do sistema quando descobrem (se descobrem) que existe alguém indesejável visitando a rede com privilégios de superusuário.

Isto não é, em muitos casos, uma responsabilidade exclusiva de um administrador de rede. Muitas redes locais não fazem os investimentos necessários em tecnologias de segurança e pessoal qualificado. A preocupação com segurança é geralmente onerosa, consome tempo e recursos. Além disso, é bastante difícil quantificar quais seriam as perdas financeiras ou os danos resultantes de um ataque bem-sucedido a uma rede corporativa, tornando difícil a tarefa de provar que um pequeno investimento com segurança pode poupar grandes prejuízos no futuro. Felizmente, uma exceção neste cenário típico é o setor bancário, em que a segurança digital é fundamental.

Por outro lado, para ser um cracker ou pirata de computador (como a imprensa teima em denominar o intruso) não é preciso mais ser nenhum gênio da informática. Na própria Internet existe um verdadeiro arsenal que possibilita invadir redes de computadores com pouquíssimo esforço intelectual. A verdade é que o nível de sofisticação médio do atacante hoje é muito menor, mas as ferramentas usadas nos ataques estão cada vez mais poderosas e fáceis de usar. Os verdadeiros crackers são geralmente aqueles que criam essas ferramentas e as tornam públicas na rede. Eles agem silenciosamente, entendem dos protocolos e serviços usados na rede, são geralmente bons programadores e criativos. Porém existem poucos que fazem parte dessa classe e dificilmente seus ataques teriam como alvo pequenas redes locais.

Muitas dessas ferramentas para intrusão são muito sofisticadas apresentando, até mesmo, uma interface bastante amigável para o usuário. Dessa forma, qualquer pessoa com conhecimentos básicos em redes e computação pode tornar-se um cracker. Nesta edição, apresentaremos a metodologia Script Kiddie, adotada na grande maioria das invasões realizadas por esses piratas de computador a sistemas desprotegidos, principalmente aqueles em que a segurança é garantida pela obscuridade. Veremos que o Script Kiddie não tem nenhum preconceito e todas as redes locais conectadas à Internet e com certas vulnerabilidades específicas podem ser atacadas. É importante ressaltar que este artigo não pretende ser um manual de cracker e, assim, informações serão omitidas quando necessário, para garantir que pessoas despreparadas e/ou desocupadas façam um mau uso delas. O objetivo aqui é simplesmente alertar os administradores de rede e outros interessados sobre esse perigo existente na Internet.

Quem é o Script Kiddie?

O Script Kiddie é basicamente alguém que procura, nas diversas redes de computadores conectadas à Internet, certas vulnerabilidades que facilitariam uma invasão. Ele não objetiva, portanto, atacar nenhuma rede local em particular, mas somente aquelas que possuem a deficiência de segurança procurada. Assim, se existe um bug de segurança em uma determinada versão de algum serviço em sistemas Linux, um atacante pode fazer uma busca aleatória, na Internet, procurando sistemas Linux com essa versão do serviço instalado. A seguir, ele pode explorar esses sistemas usando o exploit para o problema. É essa busca aleatória que torna o Script Kiddie uma grande ameaça.

Geralmente o Script Kiddie é um usuário sem muitos conhecimentos técnicos, que deseja invadir algum sistema sem nenhum objetivo importante (alguns querem somente modificar páginas em Web sites e tornar público o seu grande feito). Outros usuários mais sofisticados desejam invadir o sistema e instalar backdoors para voltar posteriormente e usar a rede local como base para ataques mais requintados.

O ataque

Um ataque usando essa metodologia sempre começa com o uso de alguma ferramenta de scanner, que pode ser encontrada sem muito trabalho na Internet. Usando essas ferramentas (não vamos citar seus nomes), um atacante pode descobrir o sistema operacional de uma máquina, quais serviços estão disponíveis nela e, conseqüentemente, procurar a vulnerabilidade desejada. Algumas dessas ferramentas tornam essa tarefa ainda mais simples, uma vez que, além de descobrir se um determinado serviço está disponível, elas verificam a versão do serviço e se ele possui alguma vulnerabilidade conhecida.

A figura 1 mostra a saída de uma dessas ferramentas para uma máquina alvo. Note que o alvo poderia ser toda uma faixa de endereços IP na Internet.

Figura 1
Prompt_atacante# ./ferramenta -o IP_da_máquina
–––––––––––––<[ * report for host máquina *
<[ tcp port: 80 (http) ]> <[ tcp port: 23 (telnet) ]>
<[ tcp port: 143 (imap) ]> <[ tcp port: 110 (pop-3) ]>
<[ tcp port: 111 (sunrpc) ]> <[ tcp port: 79 (finger) ]>
<[ tcp port: 53 (domain) ]> <[ tcp port: 25 (smtp) ]>
<[ tcp port: 21 (ftp) ]>
–<[ *OS*: máquina: os detected: redhat linux 5.1
máquina: VULN: linux box vulnerable to named overflow.
-<[ *CGI*: IP_da_máquina: tried to redirect a /cgi-bin/phf request.
-<[ *FINGER*: máquina: root: account exists.
–<[ *VULN*: máquina: sendmail will ‘expn’ accounts for us
–<[ *VULN*: máquina: linux bind/iquery remote buffer overflow
–<[ *VULN*: máquina: linux mountd remote buffer overflow
–––––––––––––<[ * scan of máquina completed *

Observe que na saída temos algumas linhas com VULN, o nome da máquina e o serviço vulnerável. Com essas informações, um atacante pode simplesmente usar o exploit específico em um dos serviços marcados como vulnerável e conseguir o acesso de root na máquina. Para este exemplo, o atacante estaria explorando um buffer overflow provocado no mountd (figura 2). Daí em diante, tudo depende dos objetivos e da sofisticação do atacante.

Obviamente, o administrador deve garantir de alguma forma a integridade dos logs do sistema. Algumas ferramentas, conhecidas como rootkits, são geralmente usadas por atacantes para esconder as trilhas deixadas no ataque (alterando ou apagando logs no sistema), implantar e esconder backdoors, modificar binários (ps e netstat, por exemplo), e criar contas de usuários com UID 0 no sistema comprometido. Assim, pode-se concluir que com uma seqüência simples de passos e ferramentas adequadas, encontradas na rede com facilidade, pode-se invadir rapidamente e sem muita dificuldade um sistema pobremente protegido.

Figura 2
[ gcc -o mountd_exploit ADMmountd.c ]
Prompt_atacante# ./mountd_exploit máquina
O log (/var/log/messages) na máquina atacada registraria o buffer overflow:
Apr 27 01:47:28 máquina mountd[306]: Unauthorized access by NFS client
IP_do_atacante
Apr 27 01:47:28 máquina syslogd: Cannot glue message parts together
Apr 27 01:47:28 máquina mountd[306]: Blocked attempt of
IP_do_atacante
to mount
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~

Vale ressaltar aqui que mesmo que o scanner não revele vulnerabilidades, como as que foram apresentas no exemplo, o atacante pode criar um banco de dados com as informações obtidas. Dessa forma, imediatamente depois de aparecer uma nova vulnerabilidade, ele verificaria esse banco de dados, procurando que máquinas poderiam ser comprometidas.

Como evitar Script Kiddies?

Se a quantidade de atacantes usando a metodologia Script Kiddie fosse pequena na rede, a probabilidade de alguém ter o seu sistema incluído numa pesquisa seria muito pequena. Entretanto, como explicado acima, essas ferramentas são em geral muito fáceis de usar e amplamente distribuídas na Internet. Um grande número de pessoas obtém e usa tais ferramentas com rapidez, aumentando consideravelmente as chances de um sistema ser vasculhado em busca de problemas de segurança.

A dica para evitar as ameaças desses Script Kiddies é manter, no sistema, somente os serviços necessários, bem configurados e atualizados com relação aos patches de segurança. Informações sobre as novas vulnerabilidades podem ser encontradas em listas de discussão, como a bugtraq, ou em sites, como o www.cert.org. Além disso, é interessante observar sempre os logs do sistema, garantindo, é claro, a sua integridade.

O ideal é manter cópias dos logs em algum outro lugar ou máquina para evitar que eles sejam alterados ou eliminados pelo atacante. Porém, algumas dessas ferramentas realizam stealth scanners, ou seja, nada fica registrado nos logs do sistema. Para detectar a ação de tais scanners, pode-se recorrer a outras ferramentas de segurança, como o tcplogd, ippl e scanlogd.

Finalizando esta discussão sobre Script Kiddies, vale a pena lembrar que, como demonstra essa metodologia, não se pode simplesmente acreditar na segurança pela obscuridade. Neste momento, existem vários piratas de computador verificando novas vulnerabilidades e procurando por sistemas desatualizados e sujeitos a ataques.

 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade