Guia de Segurança na Internet - 1º Parte

Started by Anonymous, 05 de February , 2006, 04:07:15 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Anonymous

De qualquer ponto podemos ter acesso a qualquer outro computador conectado à Internet, que esteja disponibilizando algum recurso, existe inclusive a possibilidade de invadir outros micros ou mesmo grandes servidores que não estejam protegidos adequadamente, mesmo usando como base um simples 486 ligado à Internet via acesso discado.

O protocolo TCP/IP foi concebido para ser tolerante a falhas de hardware, mas não a ataques intencionais. O principal risco é o fato dele permitir que usuários remotos acessem dados e arquivos de outros equipamentos conectados à rede. Como a Internet inteira funciona como uma grande rede TCP/IP, é possível ganhar acesso à qualquer máquina localizada em qualquer ponto do globo.

Já que o protocolo em sí não oferece grande proteção contra ataques externos, a segurança fica a cargo do sistema operacional de rede, e de outros programas, como os firewalls. Para proteger os dados que serão enviados através da rede, é possível usar um método de encriptação, para que mesmo interceptados, eles não tenham utilidade alguma. Atualmente são usados dois tipos de criptografia, de 40 bits e de 128 bits. Dados criptografados com algoritmos de 40 bits podem ser desencriptados em cerca de uma semana por alguém competente, porém a desencriptação de dados encriptados com um algoritmo de 128 bits é virtualmente impossível.

Dizemos que um sistema é perfeito apenas até alguém descobrir uma falha. Existem vários exemplos de falhas de segurança no Windows NT, em Browsers, em programas de criação e manutenção de sites Web, como o MS Front Page 2000 e até mesmo em programas como o VDO Live. Logicamente, após se darem conta da brecha, os criadores do programa se apressam em disponibilizar uma correção, mas nem todos os usuário instalam as correções e com o tempo outras falhas acabam sendo descobertas.

Por que o Unix é em geral considerado um sistema mais seguro do que o Windows NT, por exemplo? Por que por ser mais velho, as várias versões do Unix já tiveram a maioria de suas falhas descobertas e corrigidas, ao contrário de sistemas mais novos. Porém, a cada dia surgem novos softwares, com novas brechas de segurança, e além disso, cada vez mais máquinas são conectadas, ampliando a possível área de ataque.


.:: Como são feitas as Invasões ::.

Muitas vezes os chamados Hackers são vistos pelos leigos quase como seres sobrenaturais, uma espécie de mistura de Mac-Giver com Mister M, mas veja uma frase postada em um grande grupo de discussão sobre Hacking:.

"You may wonder whether Hackers need expensive computer equipment and a shelf full of technical manuals. The answer is NO! Hacking can be surprisingly easy!" numa tradução livre: "Você pode achar que os Hackers precisam de computadores caros e uma estante cheia de manuais técnicos. A resposta é NÃO! Hackear pode ser surpreendentemente fácil".

Frases como esta não são de se admirar, pois na verdade, a maioria dos ataques exploram falhas bobas de segurança ou mesmo a ingenuidade dos usuários, não exigindo que o agressor tenha grandes conhecimentos. Pelo contrário, a maioria dos ataques são feitos por pessoas com pouco conhecimento, muitas vezes lançando os ataques a partir do micro de casa.

Ultimamente têm sido descobertos vários ataques a sites, como por exemplo, o do Instituto de Previdência dos Servidores Militares do Estado de Minas Gerais, da Escola de Equitação do Exército, Faculdade Santa Marta e até mesmo do Ministério do Trabalho, onde as páginas principais eram substituídas por outras contendo o nome do invasor e alguns palavrões. Muitas destas invasões foram feitas aproveitando uma falha de segurança (já corrigida) do Front Page 2000, que sob certas condições permite a qualquer pessoa alterar as páginas mesmo sem a senha de acesso.

Outro caso famoso foi o de um site pornográfico Americano, que apesar de ser anunciado como um site gratuito, pedia o número do cartão de crédito do visitante "apenas como uma comprovação" de que ele era maior de 18 anos. Não é preciso dizer o que faziam com os números não é? ;-)

Hackers de verdade são capazes de lançar ataques reais a servidores aparentemente protegidos, mas sempre lançando ataques baseados em falhas de segurança dos sistemas, ou então, tentando adivinhar senhas de acesso. Uma vez dentro do sistema, a primeira preocupação é apagar evidências da invasão gravadas nos arquivos de log do sistema. Estes arquivos são alterados ou mesmo apagados, evitando que o administrador possa localizar o invasor. Em seguida, o atacante tenta conseguir mais senhas de aceso ao sistema, abrindo os arquivos do servidor que as armazenam. Caso consiga descobrir a senha do administrador, ou conseguir acesso completo explorando uma falha de segurança, pode até mesmo se fazer passar pelo administrador e atacar outras máquinas às quais a primeira tenha acesso. Para se proteger deste tipo de invasão, basta criar senhas difíceis de serem adivinhadas, se possível misturando letras e números com caracteres especiais, como @$#%& etc. e usar um sistema seguro, com todas as correções de segurança instaladas. Um bom programa de firewall completa o time.

Outras estratégias de invasão e roubo de dados, são usar programas keytrap (rastreadores de teclado que armazenam tudo que é digitado, inclusive senhas, em um arquivo que pode ser recuperado pelo invasor), cavalos de Tróia, monitores de rede, ou outros programas que permitam ao invasor ter acesso à maquina invadida. Para isto, basta enviar o arquivo ao usuário junto com algum artifício que possa convencê-lo a executar o programa que abrirá as portas do sistema, permitindo seu acesso remoto. Um bom exemplo deste tipo de programa é o back orifice.

Veja que neste caso não é preciso nenhum conhecimento em especial, apenas lábia suficiente para convencer o usuário a executar o programa, que pode ser camuflado na forma de um jogo ou algo parecido.

Caso o invasor tenha acesso físico à máquina que pretende invadir (o micro de um colega de trabalho por exemplo), fica ainda mais fácil. Um caso real foi o de um auxiliar de escritório que instalou um keytrap no micro do chefe e depois limpou sua conta usado a senha do home banking que havia conseguido com a ajuda do programa.
.:: Como se Proteger ::.

Hoje em dia, "Segurança na Internet" parece ser um tema de grande interesse, talvez pela complexidade (ou simplicidade, dependendo do ponto de vista :-) ou talvez pela pouca quantidade de informações disponíveis sobre o tema. Tanto que entre os 10 livros de informática mais vendidos, 3 tem como tema os "Hackers". O meu objetivo neste artigo é passar um pouco da minha experiência pessoal sobre o assunto.

Existem várias formas de se roubar dados ou invadir computadores. 99% das invasões se dá devido a um (ou vários) dos seguintes fatores:

1- Trojans como o Back-orifice instalados no micro

2- Bugs de segurança do Windows, IE, Netscape, ICQ ou de qualquer programa que estiver instalado no micro.

3- Portas TCP abertas

4- Descuido ou ingenuidade do usuário.


.:: Trojans ::.

Em primeiro lugar, vem os trojans. Os trojans, como o Back-orifice, Netbus e outros, nada mais são do que programas que uma vez instalados transformam seu computador num servidor, que pode ser acessado por qualquer um que tenha o módulo cliente do mesmo programa. Estes programas ficam quase invisíveis depois de instalados, dificultando sua identificação. De qualquer forma, como qualquer outro programa, estes precisam ser instalados. Ninguém é contaminado pelo BO de graça, sempre a contaminação surge devido a algum descuido.

Para isso pode-se usar de vários artifícios. Pode-se enviar o trojam disfarçado de um jogo ou qualquer outra coisa, fazendo com que o usuário execute o arquivo e se contamine (opção 4, ingenuidade do usuário...); o arquivo pode ser instalado quando você for ao banheiro por um "amigo" visitando sua casa...; ou finalmente, pode ser instalado sem que você perceba aproveitando-se de alguma vulnerabilidade em um dos programas que você tenha instalado.

Qualquer antivírus atualizado vai ser capaz de detectar estes programas e elimina-los, porém para isto é preciso que você atualize seu antivírus sempre, pois praticamente a cada dia surgem novos programas, ou versões aperfeiçoadas, capazes de enganar as atualizações anteriores. Não adianta nada manter o antivírus ativo caso você não baixe as atualizações. Pensando nisso, alguns programas, como o AVP avisam irritantemente sobre novas atualizações disponíveis.


.:: Bugs ::.

Quanto aos bugs nos programas, estes costumam ser os mais simples de se resolver, pois assim que um bug se torna público o fabricante se apressa em lançar uma correção para ele. No caso do Windows e do Internet Explorer, as correções podem ser baixadas usando o Windows Update ou então ser baixadas manualmente apartir do site da Microsoft. Falando em correções, lançaram algumas esta semana, aproveite a deixa para ir baixá-las.

No caso de outros programas, como o Netscape por exemplo, você pode baixar as atualizações disponíveis apartir da página do fabricante. Em muitos casos os bugs são corrigidos apenas ao ser lançada uma nova versão do programa. Por exemplo, as versões antigas do ICQ tinham um bug que mostrava o endereço IP dos contatos da sua lista mesmo que ele estivesse escondido (como N/A) caso você desconectasse o ICQ e checasse novamente o Info do contato. Isto foi corrigido apartir do ICQ 98a.

Quem acessa a Net a mais de um ou dois anos, deve se lembrar que até algum tempo atrás, existiam vários programas de Nuke, que derrubavam a conexão e travavam o micro da vítima. Atualmente a grande maioria destes programas não funciona, justamente por que o Bug do Windows 95a que o tornava vulnerável a este tipo de ataque foi corrigido apartir do Windows 95 OSR/2.

Outra safra de vulnerabilidades comuns, são as de buffer overflow, que atingem um número muito grande de programas.

Os Buffers são áreas de memória criadas pelos programas para armazenar dados que estão sendo processados. Cada buffer tem um certo tamanho, dependendo do tipo de dados que ele irá armazenar. Um buffer overflow ocorre quando o programa recebe mais dados do que está preparado para armazenar no buffer. Se o programa não foi adequadamente escrito, este excesso de dados pode acabar sendo armazenado em áreas de memória próximas, corrompendo dados ou travando o programa, ou mesmo ser executada, que é a possibilidade mais perigosa.

Se um programa qualquer tivesse uma vulnerabilidade no sistema de login por exemplo, você poderia criar um programa que fornecesse caracteres de texto até completar o buffer e depois enviasse um executável, que acabaria rodando graças à vulnerabilidade.

Um caso famoso foi descoberto ano passado (2000) no Outlook Express. Graças à uma vulnerabilidade, era possível fazer com que um e-mail executasse arquivos apenas por ser aberto! Bastava anexar um arquivo com um certo número de caracteres no nome, que ele seria executado ao ser aberta a mensagem. Naturalmente, a Microsoft se apressou em lançar um patch e alertar os usuários para o problema. Felizmente, pelo menos por enquanto, não foi descoberta mais nenhuma vulnerabilidade tão perigosa no Outlook.

Semanalmente são descobertas vulnerabilidades de buffer overflow em vários programas. Algumas são quase inofensivas, enquanto outras podem causar problemas sérios. O próprio codered se espalhou tão rapidamente explorando uma vulnerabilidade do IIS da Microsoft. Com isto, o worm podia contaminar servidores desprotegidos simplesmente enviando o código que explora o bug, sem que ninguém executasse nenhum arquivo.