sexta-feira, 6 de junho de 2008

Falhas

Definição

Todos os sistemas têm falhas. Elas consistem em pequenos erros na criação dos programas, possibilitando que cracker os utilizem para tomar o controle de alguma máquina. Essas falhas por mais insignificantes que pareçam, podem comprometer a segurança de uma rede inteira. E a maior de todas as falhas é o desinteresse dos muitos administradores de hoje que acham que o termo bug é algum desenho do Walt Disney.

Como surge o bug

O bug, ou falha, surge a partir do momento que o programador comete um erro. Ou seja, indiretamente é um erro humano que gera a falha nos programas. Por serem pequenos erros e não aqueles cabeludos que fazem o compilador até rir do programador, muitas vezes passam despercebidos e só são descobertos por algum hacker ou analista de segurança.

Exemplos de falhas

Algumas falhas são tão bobas que é difícil de acreditar. Como por exemplo novamente o sistema Windows, pois de longe é o que possui mais falhas (claro, todas podem ser corrigidas). O Windows 98 possui muitos erros, mas alguns são interessantes. Um é que não consegue executar nem abrir nenhum link com a url c:\con\con. Se você tentar ir em iniciar e executar, o sistema travará e mostrará a famosa tela azul.

Buffer overflows

O buffer overflow é um ataque usado a muito tempo e que ainda será muito usado. Compreende em lotar os buffers (memória disponível para aplicativos) de um servidor e inclui na lista de processos algum programa tal como um kaylogger ou um trojan. Todos os sistemas são vulneráveis a buffer overflows e a solução é a mesma, procurar se já existem correções existentes. Novos erros desse tipo surgem todo dia, até o XP já têm alguns. Se atualize sempre para não ficar para trás.

Race condition

O race condition consiste em fazer algum programa que rode como root (super-usuário) executar alguma falha que possa lhe enviar para o shell do sistema. O programa que mais teve problemas de race condition até hoje é o sendmail, serviço de e-mails padrão Unix. É possível encontrar falhas até em versões mais recentes.





Descobrindo se algum sistema têm falhas

Para o programador experiente é mais fácil verificar se um sistema têm falhas (se o programador for interessado e tiver boa vontade), utilizando de recursos de debug que checam por erros de buffer overflow e outros. Para o usuário é bem mais difícil descobrir algo, principalmente o usuário comum. O interessante seria visitar páginas especializadas no assunto, que a cada dia publicam novos tipos de erros descobertos. Algumas muito boas são a Security-focus (http://www.security-focus.com/) e a Hacker brasileira (http://www.hacker.com.br/).

Utilizando exploits

Exploits são programas criados para explorar falhas. Um exemplo é um exploit chamado iishack2000.Ele possibilita que somente digitando o IP de algum computador, você consiga acesso direto ao interpretador de comandos (ou shell). Assim podemos fazer o que quiser com o sistema.

Instalando patches

Toda vez que um erro for descoberto, deve-se visitar a página do fabricante do programa e pegar a correção. Isso não pode ser feito de mês em mês, é no máximo de três em três dias. Os erros aparecem muito rápido, e um sistema é composto de muitos softwares. Todos devem ser checados. É interessante também assinar uma lista de discussão sobre segurança, assim toda vez que uma falha for descoberta, você receberá um e-mail.

Nenhum comentário: