iremos presenciar uma onda de worms e vírus cada vez mais sofisticados. Quase 100% dos vírus hoje em dia utilizam alguma funcionalidade de rede, seja para sua propagação, ou como sua funcionalidade principal. E pensar que tudo isso poderia ter sido evitado apenas se os sistemas estivessem atualizados. Estudos comprovam que o Code Red I infectou cerca de 250.000 servidores pelo mundo, em apenas 9 horas, no dia 19 de julho de 2001. O Code Red II, que utiliza a mesma falha do Code Red I, ainda conseguiu atingir mais de 100.000 servidores. A análise dos worms indica que o Code Red II infectou TODOS os sistemas vulneráveis em menos de 48 horas. Além das falhas de segurança já explicadas, o Code Red foi responsável pelo aumento de cerca de 300% do tráfego na Internet, deixando toda a rede cerca de 3 vezes mais lenta; ou seja, afetando a todos, mesmo aqueles que não estavam vulneráveis ao ataque direto. Outra lição que pode ser tirada destes acontecimentos recentes: como eles infectam servidores web, e realizam esta tarefa enviado comandos diretamente para qualquer servidor que encontrarem randomicamente, também foram responsáveis por tirar do ar equipamentos de rede que possuem servidores web embutidos, de diversos fabricantes, simplesmente porque estes componentes não possuíam uma checagem correta de buffers de entrada. Com isso, até equipamentos de rede como switches e roteadores foram afetados. Para se proteger de worms e vírus no futuro, a melhor forma é manter o sistema atualizado, e com um bom antivírus instalado. Estas medidas teriam transformado estes worms em absolutamente... nada. Apesar destes worms terem cargas potencialmente nocivas, e terem como seu objetivo principal explorar uma vulnerabilidade em um software servidor, causaram o efeito colateral de elevar em até 300% o tráfego na Internet. Vários computadores e equipamentos de rede foram tirados do ar devido ao tráfego Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. causado pelos worms. Mesmo não tendo sido considerados ataques DDoS com uma natureza direcionada, acarretaram este efeito indiretamente. Este, por sinal, é o saldo mais perigoso e comentado sobre a ação dos mesmos. IP Spoofing http://www.fc.net/phrack/files/p48/p48-14.html http://www.pcwebopedia.com/TERM/I/IP_spoofing.html A técnica de spoofing possui uma lógica bastante simples. Muitos serviços antigos que são executados em hosts UNIX dependem de uma relação de confiança, baseada no endereço de rede de um determinado host. Digamos que um serviço determinado, só aceite comandos ou conexões de um computador que esteja em um determinado endereço IP pré-configurado. A técnica de spoofing consiste em “personificar” este computador na qual a vítima confia. Basicamente, precisa-se ter o endereço IP da vítima, o endereço IP do computador “confiado”, ter algum modo de tirar o computador “confiado” do ar, saber como quebrar o número de sequência TCP da vítima. Teoricamente, quaquer serviço que tenha sua segurança dependente apenas da confirmação de um endereço origem de rede, é vulnerável a este tipo de ataque. É uma técnica bastante apurada, e que requer geralmente uma certa dedicação. Nos anexos, a técnica e descrita em detalhes em um ótimo whitepaper. Para maiores detalhes sobre como proteger uma rede de IP Spoofing, veja o capítulo “Ferramentas” / Personal Firewalls, que possui maiores detalhes sobre como implementar segurança com filtragem de pacotes. DNS (Name Server) Spoofing / Poisoning Como vimos anteriormente, o serviço de DNS adiciona uma nova camada de identificação para rede. As conexões são feitas através de endereços IP, que fecham “sockets”, descritos anteriormente. Contudo, fica praticamente impossível hoje em dia “decorar” centenas de endereços IP para tentar estabelecer uma conexão. Assim sendo, existe o serviço de DNS, que de certa forma elimina esta dificuldade. Ao invés de decorar endereços de rede, estes são associados a nomes, que obedecem a uma regra de nomenclatura bem específica. De acordo com este regra, podemos identificar rapidamente um servidor ou serviço. Contudo, a maioria das pessoas digita em seus programas de acesso endereços DNS ou FQDN (Fully Qualified Domain Name). Se você deseja acessar o site da Receita Federal, para tentar ler informações sobre sua declaração de imposto de renda, dificilmente digitará no browser: http://161.148.231.100 É provável que digite: http://www.receita.fazenda.gov.br Ao digitar este endereço no seu browser, ele consultará o servidor DNS configurado em seu computador e perguntará: “qual o endereço IP do servidor www.receita.fazenda.gov.br ?” A resposta será: “161.148.231.100”. A partir daí, a conexão será estabelecida com o endereço IP destino. O DNS Spoofing consiste em modificar as informações do servidor DNS de forma que a resposta seja diferente. Assim, seu computador acessará OUTRO servidor, sem seu conhecimento. Além do spoofing, existe o poisoning. Todas as “perguntas” feitas a um servidor de DNS são guardadas, e aquelas perguntas mais frequentes são armazenadas, e reutilizadas, evitando gerar tráfego para cada requisição (se eu já sei a resposta de uma pergunta, não preciso fazê-la). O poisoning significa alterar Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. estas informações de “cache”, ou “mudar” a resposta para uma determinada pergunta que o servidor DNS já possui. Em resumo, ao perguntar para o servidor DNS “qual o endereço IP do servidor www.receita.fazenda.gov.br ?”, ao invés de responder “161.148.231.100”, ele responderá outro endereço de rede, provavelmente de uma máquina previamente preparada por um hacker para tal fim. Portanto, temos dois cenários: 1. Quando o servidor DNS é a autoridade de um domínio 2. Quando o servidor DNS não é a autoridade de um domínio, e resolve o IP pelo seu cache. Nestes dois casos, o resultado é o mesmo. Contudo, esta técnica de ataque requer acesso ao servidor DNS, de forma a modificar o arquivo que contém as informações do domínio, ou modificar o cache do servidor. Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. 7. Ferramentas Existem diversas ferramentas prontas para testar vulnerabilidades em hosts, ou redes. Estas ferramentas podem ser classificadas basicamente em: • Portscanners • Service Fingerprinter • Sniffer Estas ferramentas são usadas para recuperar informações do computador remoto, ou da rede na qual ele está. Finalmente, estas inormações são usadas para dar a vantagem ao invasor, que, numa segunda parte de um possível ataque, irá listar quais falhas de segurança cada componente descoberto possui. Estas ferramentas não têm muita utilidade sozinhas, se não forem aliadas a algumas técnicas. Estas técnicas é que permitem explorar as falhas que as ferramentas podem potencialmente apresentar. Portscanners Portscanners são a base de qualquer tentativa de invasão. Da mesma forma, são a base para qualquer teste de vulnerabilidade que possa ser feito. O portscan basicamente consiste em tentar estabelecer, com um determinado host, conexões TCP em todas as portas, da 0 a 65535.