Tipos de invasão e as principais técnicas utilizadas
Estes são alguns dos ataques que podem ser realizados contra qualquer rede que se conecte à Internet sem a devida proteção. A maioria deles é passível de ser realizada facilmente por qualquer pessoa que disponha do conhecimento técnico necessário.
O Firewall Aker protege sua rede contra todos os ataques aqui mencionados e muitos outros, oferecendo uma total transparência e flexibilidade. Ele é um software fundamental para todas as redes que pretendem se conectar à Intenet.
Varreduras de portas
A primeira coisa que um atacante normalmente faz em uma rede é o chamado Varredura de Portas. Isto consiste em enviar pacotes para todas as portas de uma máquina (ou de várias máquinas de uma rede), de modo a descobrir quais são os serviços oferecidos por cada uma delas. Com o uso desta técnica, é possível se determinar exatamente quais serviços TCP e UDP estão sendo oferecidos.
Este tipo de ataque ficou muito popular quando em 1995 foi lançado, com grande publicidade, o software SATAN, desenvolvido por Dan Farmer e Wietse Wenema. Feito em Perl, C e HTML, com uma interface amigável, o SATAN faz uma varredura completa em uma máquina ou rede denominada "alvo", relatando todos os serviços oferecidos e pontos vulneráveis. Ele não só descobre quais serviços estão disponíveis como também utiliza estes serviços para descobrir mais informações sobre o alvo e mais pontos vulneráveis. Existem atualmente inúmeros programas com funcionalidade similar ao SATAN, alguns em domínio público.
O Firewall Aker impede este tipo de ataque uma vez que somente os serviços explicitamente configurados por um administrador como passíveis de serem usados externamente serão visíveis para qualquer programa de varredura. Além disso, com o uso do Firewall Aker, é extremamente simples se detectar ataques deste tipo e tomas as devidas providências.
IP Spoofing
IP Spoofing é o nome dado para falsificações de endereços IP, fazendo com que um pacote seja emitido com o endereço de origem de uma outra máquina. Com o uso desta técnica, é possível para um atacante assumir a identidade de qualquer máquina da Internet.
O perigo maior deste ataque é para serviços baseados no protocolo UDP. Muitos serviços baseados neste protocolo só permitem acesso para determinadas máquinas, explicitamente configuradas pelo administrador. Este é o caso do serviço NFS, que permite o compartilhamento de discos remotos. (vamos dar um exemplo de ataque usando este serviço específico, mas o ataque é válido para qualquer serviço similar).
Um atacante pode enviar um pacote UDP para a máquina servidora de NFS como se este viesse de uma máquina cliente, autorizada a gravar em algum diretório. Este pacote pode conter solicitação de criação, remoção e escrita de arquivos. Como a máquina servidora acha que o pacote vem da máquina cliente (por causa do IP de origem falsificado), todas as solicitações serão prontamente atendidas. Este tipo de ataque não pode ser bloqueado sem a existência de um firewall.
O Firewall Aker impede este tipo de ataque na medida em que o administrador configura de qual interface de rede um determinado pacote pode ser aceito. Desta forma, se um atacante enviar um pacote para o firewall, como se este viesse da rede interna, o mesmo será imediatamente descartado pois está vindo de uma interface de rede inválida (uma interface de rede externa).
Roteamento dirigido
O protocolo TCP/IP foi um protocolo criado na época da guerra fria, com o objetivo de conectar a rede ARPANET, a rede de defesa do exército americano. Um dos objetivos desta rede, e do protocolo TCP/IP, era permitir que a mesma continuasse funcionando, mesmo que uma parte dela fosse derrubada (isto era fundamental no caso de ataques). Para possibilitar este tipo de comportamento, o protocolo IP foi dotado da capacidade do emissor de um pacote estabelecer a rota que o mesmo deveria seguir ao ser enviado através da rede. Desta forma, mesmo que uma parte da rede fosse derrubada, poderia-se estabelecer caminhos alternativos para o tráfego e manter a comunicação.
A quase totalidade das implementações de TCP/IP atuais ainda seguem as especificações originais, que determinam que ao se receber um pacote com roteamento dirigido, todas as repostas à este pacote também devem ser direcionadas e devem seguir a mesma rota especificada no pacote de origem (na ordem inversa, evidentemente). Se isso não fosse desta forma, não seria possível se atingir o objetivo de manter a comunicação em funcionamento.
Apesar de interessante, este comportamento possibilita a existência de um tipo de ataque que é fácil de ser implementado e impossível de ser impedido, senão com o uso de algum tipo de firewall. O ataque se baseia no fato de que em muitas vezes a validação de um serviço ou de um usuário é feito com base no endereço IP da máquina que está se conectando. Com o uso de pacotes direcionados, um atacante pode enviar pacotes para as máquinas da rede interna como se fossem originados de uma máquina confiável. Desta forma, o atacante consegue estabelecer uma conexão válida para uma máquina da rede interna com os direitos que teria se estivesse se conectando a partir de uma outra máquina.
Este tipo de ataque é particularmente perigoso em serviços que utilizam apenas endereços IP para fazer a validação de usuários, como o rsh, rlogin, etc. O Firewall Aker impede este tipo de ataque na medida em que permite que o administrador o configure para recusar todos os pacotes direcionados.
Ping O'Death
Este ataque foi descoberto recentemente e bastante explorado na Internet. Ele consiste em se enviar um pacote IP com tamanho maior que o máximo permitido (65535 bytes), para a máquina que se deseja atacar. O pacote é enviado na forma de fragmentos (a razão é que nenhum tipo de rede permite o tráfego de pacotes deste tamanho) e quando a máquina destino tenta montar estes fragmentos, inúmeras situações podem ocorrer: a maioria da máquinas trava, algumas reinicializam, outras abortam e mostram mensagens no console, etc. Praticamente todas as plataformas eram afetadas por este ataque, e todas as que não tiveram correções de segurança instalados, ainda o são.
Este ataque recebeu o nome de Ping O' Death porque as primeiras ocorrências deste ataque foram a partir do programa ping, entretanto, qualquer pacote IP com mais de 65535 (pacote inválido) provoca o mesmo efeito.
O Firewall Aker impede este ataque na medida em que ele armazena e monta todos os fragmentos de pacotes IP recebidos. Quando ele detecta um pacote inválido, o mesmo é automaticamente descartado.
SYN Flood
SYN Flood é um dos mais populares ataques de negação de serviço (denial of service). Esses ataques visam impedir o funcionamento de uma máquina ou de um serviço específico. No caso do SYN Flood, consegue-se inutilizar quaisquer serviços baseados no protocolo TCP. Para se entender este ataque, é necessário primeiro se entender o funcionamento do protocolo TCP, no que diz respeito ao estabelecimento de conexões:
O protocolo TCP utiliza um esquema de 3 pacotes para estabelecer uma conexão:
1. A máquina cliente envia um pacote para a máquina servidora com um flag especial, chamado de flag de SYN. Este flag indica que a máquina cliente deseja estabelecer uma conexão.
2. A máquina servidora responde com um pacote contendo os flags de SYN e ACK. Isto significa que ela aceitou o pedido de conexão e está aguardando uma confirmação da máquina cliente para marcar a conexão como estabelecida.
3. A máquina cliente, ao receber o pacote com SYN e ACK, responde com um pacote contendo apenas o flag de ACK. Isto indica para a máquina servidora que a conexão foi estabelecida com sucesso.
Todos os pedidos de estabelecimento de conexões recebidas por um servidor ficam armazenados em uma fila especial, que tem um tamanho pré-determinado e dependente do sistema operacional, até que o servidor receba a comunicação da máquina cliente de que a conexão está estabelecida. Caso o servidor receba uma pedido de conexão e a fila de conexões em andamento estiver cheia, este novo pacote de pedido de abertura de conexão é descartado.
O ataque consiste basicamente em se enviar um grande número de pacotes de abertura de conexão, com um endereço de origem forjado, para um determinado servidor. Este endereço de origem é forjado para o de uma máquina inexistente (muitas vezes se usa um dos endereços reservados descritos no capítulo sobre conversão de endereços). O servidor, ao receber estes pacotes, coloca uma entrada na fila de conexões em andamento, envia um pacote de resposta e fica aguardando uma confirmação da máquina cliente. Como o endereço de origem dos pacotes é falso, esta confirmação nunca chega ao servidor. O que acontece é que em um determinado momento, a fila de conexões em andamento do servidor fica lotada. A partir daí, todos os pedidos de abertura de conexão são descartados e o serviço inutilizado. Esta inutilização persiste durante alguns segundos, pois o servidor ao descobrir que a confirmação está demorando demais, remove a conexão em andamento da lista. Entretanto, se o atacante persistir em mandar pacotes seguidamente, o serviço ficará inutilizado enquanto ele assim o fizer. O Firewall Aker possui um módulo especial de proteção contra ataques de SYN flood, oferecendo total proteção contra ataques deste tipo.
Ataques contra o protocolo NETBIOS
Praticamente todas as redes locais existentes hoje em dia possuem PCs rodando plataformas Windows 3.11(tm), Windows 95(tm), Windows NT(tm) ou OS/2(tm). Estas plataformas possuem a característica de disponibilizar todos os seus serviços de rede através do protocolo NETBIOS. Ocorre também que praticamente todas estas máquinas rodam o protocolo TCP/IP, possibilitando que o NETBIOS seja encapsulado sobre o TCP/IP.
Se estas máquinas estão conectadas à Internet, é possível para um atacante verificar quais são os diretórios e impressoras compartilhadas por cada uma delas. Além disso, devido ao fato de muitas vezes os compartilhamentos serem feitos indiscriminadamente, normalmente pelos próprios usuários, é muito comum se conseguir acesso de leitura ou de gravação em muitos diretórios. Desta forma um atacante pode ter acesso à informações confidenciais, apagar informações importantes ou mesmo implantar arquivos contaminados nas máquinas da rede interna.
Além disso, até pouco tempo atrás, as máquinas Windows NT eram vulneráveis a diversos tipos de ataques realizados contra os serviços NETBIOS, que terminavam por travar o sistema ou inutilizar completamente todos os serviços (os ataques podiam ir de um simples telnet para a porta 139 até a ataques mais sofisticados). Mesmo hoje em dia ainda existem muitas máquinas vulneráveis, devido ao fato de ser necessário a aplicação de correções específicas para estes problemas, coisa que muitos administradores não fazem.
O Firewall Aker bloqueia ataques deste tipo facilmente: os serviços NETBIOS utilizam as portas 137, 138 e 139 dos protocolos TCP e UDP e portanto basta bloquear o acesso destas portas para máquinas externas.
Ataques contra o X-Windows
X-Windows é o padrão de interface gráfica utilizado em máquinas Unix. Ele é um padrão que foi criado visando o seu uso em redes locais. Desta forma, é possível se executar um programa em uma máquina e mostrar sua saída em outra máquina, localizada em qualquer lugar da Internet. É também possível um usuário ter programas sendo executados em diversas máquinas e todos eles sendo visualizados como se fossem aplicações locais, cada um na sua janela.
Toda esta flexibilidade, entretanto, tem problemas de segurança: caso disponha de autorização do servidor X-Windows (a máquina onde está a tela gráfica), é possível para um atacante exercer um controle completo sobre o tela, capturando imagens e caracteres ou mesmo enviando caracteres para outras aplicações. É possível até mesmo simular o movimento do mouse ou encerrar outras aplicações.
Esta autorização muitas vezes não é difícil de ser conseguida: o X-Windows possui dois métodos de autenticação, um a nível de usuário e outro a nível de máquina. Quando se está usando autenticação a nível de máquina, um usuário pode através de roteamento dirigido ou IP spoofing se conectar ao servidor e passar a ter o controle total da tela. Mesmo a autenticação a nível de usuário não é muito segura, uma vez que as informações para acesso trafegam em texto pleno pela rede.
Além disso, existe uma vulnerabilidade em alguns servidores X-Windows de modo que é possível travá-los com um simples telnet para a porta do servidor. Este travamento pode durar até a conexão ser interrompida. O Firewall Aker bloqueia ataques deste tipo facilmente: os servidores X-Windows rodam em portas com números bem definidos (o primeiro servidor de cada máquina roda na porta 6000, o segundo na 6001 e assim sucessivamente) e portanto, basta bloquear o acesso a estas portas para máquinas externas.
Ataques utilizando o RIP
O protocolo RIP é um protocolo de configuração dinâmica de rotas (atualmente ele é o protocolo mais utilizado na Internet). Os roteadores dinâmicos utilizam o protocolo RIP para transmitir para outros roteadores (normalmente em broadcast) as melhores rotas para transmissão dos pacotes. Em geral cada roteador anuncia para os outros roteadores, de tempos em tempos, que ele é capaz de rotear pacotes para determinada rede, de tal forma que em pouco tempo, a partir destas mensagens, todos tem uma tabela única e otimizada de roteamento.
O problema principal do protocolo RIP é o que as informações não são checadas. Um atacante pode, portanto, enviar informações falsas e maliciosas de roteamento para os outros roteadores, de tal forma que possa fingir que é uma outra máquina, pretensamente confiável, ou até mesmo para gravar todos os pacotes enviados para uma determinada máquina.
Um ataque típico seria repassar, para os roteadores da rede, informação de que os pacotes enviados para uma determinada rede devem ser roteados através dele, atacante, que posteriormente os envia para a destinação correta. Durante a passagem dos pacotes, o atacante é capaz de examinar seu conteúdo em busca de senhas ou informações interessantes ou mesmo alterar seu conteúdo.
O Firewall Aker é capaz de bloquear ataques deste tipo: os pacotes RIP são pacotes UDP enviados para porta 513 e, portanto, basta bloquear pacotes para esta porta para que o ataque não possa ser efetivado.
Ataque de Fragmentação
Um ataque de fragmentação na verdade não é um ataques propriamente dito. Ele é uma maneira de fazer com que serviços TCP de máquinas protegidas por um filtro de pacotes possam ser acessados mesmo que o filtro não permita seu acesso (ou seja, ele é uma maneira de enganar o filtro de pacotes).
Boa parte dos filtros de pacotes tradicionais apenas filtra o primeiro fragmento de um pacote, uma vez que sem este fragmento não será possível para a máquina cliente montar o pacote completo, e deixa os demais fragmentos passarem. Além disso, se o primeiro fragmento não for um pacote de abertura de conexão, ele também é autorizado a passar.
O ataque consiste em se fragmentar o pacote TCP de modo que o segundo fragmento contenha parte do cabeçalho TCP, mais especificamente as portas e os flags do protocolo. Este segundo fragmento possuirá os flags para uma abertura de conexão. O primeiro fragmento consiste em um pacote que não é de abertura de conexão.
Da forma com que ambos os fragmentos foram montados, eles serão aceitos pelo filtro de pacotes e atingirão a máquina destino. Uma vez na máquina destino, os pacotes serão montados, produzindo um pacote de abertura de conexão, que se estivesse sido enviado inteiro teria sido bloqueado no filtro de pacotes. O Firewall Aker monta todos os fragmentos recebidos e desta forma não pode ser enganado por ataques deste tipo.
Varredura invisível
A varredura invisível (stealth scanning) é uma maneira de um atacante descobrir todos os serviços TCP que estão rodando em uma rede, mesmo que esta esteja sendo protegida por um filtro de pacotes (não será possível ser conectar aos serviços utilizando esta técnica, mas ela já um primeiro passo para um ataque). O ataque consiste em fazer uma varredura de portas (como já mostrado), porém com a diferença de não se enviar pacotes de abertura de conexão e sim pacotes simulando uma conexão existente. Como os filtros de pacotes normalmente permitem o trânsito dos pacotes que não são abertura de conexão, todos estes pacotes atingiriam a máquina destino. A máquina destino, ao receber os pacotes, reagiria de maneira diferenciada caso existisse um serviço rodando na porta especificada ou não.
O Firewall Aker impede este tipo de ataque uma vez que mantém um registro de todas as conexões abertas e só permite a passagem de pacotes para estas conexões.
Transparência dos dados na rede
A Internet é uma rede mundial composta de milhares de máquinas espalhadas por todo o mundo. Quando duas máquinas quaisquer estão se comunicando, todo o tráfego entre elas passa de máquina em máquina da origem até o destino. Na quase totalidade das vezes, a administração destas máquinas intermediárias é feita por terceiros e nada se pode afirmar quanto a sua honestidade. (na maioria das vezes, não é nem possível se saber de antemão por quais máquinas os pacotes passarão até atingir o destino).
O problema que isso causa, é que todo o tráfego entre as duas máquinas que estão se comunicando pode ser visualizado ou alterado por qualquer uma das máquinas intermediárias. Este problema se torna ainda mais crítico quando se pretende transmitir dados confidenciais ou críticos para a operação das duas entidades se comunicando.
O Firewall Aker resolve este problema possibilitando a criação de canais seguros de dados entre firewalls. Desta forma, toda a comunicação de dados entre duas redes conectadas à internet que possuam um firewall Aker (ou firewalls compatíveis com o mesmo padrão de criptografia) são enviadas autenticadas e criptografadas sendo, portanto, invisíveis e imutáveis para qualquer possível atacante. Esta operação é feita de forma transparente para as máquinas clientes.
Cavalo de Tróia
O cavalo-de-tróia, ou trojan-horse, é um programa disfarçado que executa alguma tarefa maligna. Um exemplo: o usuário roda um jogo que conseguiu na Internet. O jogo secretamente instala o cavalo de tróia, que abre uma porta TCP do micro para invasão. Alguns trojans populares são NetBus, Back Orifice e SubSeven. Há também cavalos-de-tróias dedicados a roubar senhas e outros dados sigilosos.
Quebra de Senha
O quebrador, ou cracker, de senha é um programa usado pelo hacker para descobrir uma senha do sistema. O método mais comum consiste em testar sucessivamente as palavras de um dicionário até encontrar a senha correta.
Denial Of Service (DOS)
Ataque que consiste em sobrecarregar um servidor com uma quantidade excessiva de solicitações de serviços. Há muitas variantes, como os ataques distribuídos de negação de serviço (DDoS), que paralisaram sites como CNN, Yahoo! e ZD Net em fevereiro deste ano. Nessa variante, o agressor invade muitos computadores e instala neles um software zumbi, como o Tribal Flood Network ou o Trinoo. Quando recebem a ordem para iniciar o ataque, os zumbis bombardeiam o servidor-alvo, tirando-o do ar.
Mail Bomb
É a técnica de inundar um computador com mensagens eletrônicas. Em geral, o agressor usa um script para gerar um fluxo contínuo de mensagens e abarrotar a caixa postal de alguém. A sobrecarga tende a provocar negação de serviço no servidor de e-mail.
Phreaking
É o uso indevido de linhas telefônicas, fixas ou celulares. No passado, os phreakers empregavam gravadores de fita e outros dispositivos para produzir sinais de controle e enganar o sistema de telefonia. Conforme as companhias telefônicas foram reforçando a segurança, as técnicas tornaram-se mais complexas. Hoje, o phreaking é uma atividade elaborada, que poucos hackers dominam.
Scanners de Portas
Os scanners de portas são programas que buscam portas TCP abertas por onde pode ser feita uma invasão. Para que a varredura não seja percebida pela vítima, alguns scanners testam as portas de um computador durante muitos dias, em horários aleatórios.
Smurf
O Smurf é outro tipo de ataque de negação de serviço. O agressor envia uma rápida seqüência de solicitações de Ping (um teste para verificar se um servidor da Internet está acessível) para um endereço de broadcast. Usando spoofing, o cracker faz com que o servidor de broadcast encaminhe as respostas não para o seu endereço, mas para o da vítima. Assim, o computador-alvo é inundado pelo Ping.
Sniffing
O sniffer é um programa ou dispositivo que analisa o tráfego da rede. Sniffers são úteis para gerenciamento de redes. Mas nas mãos de hackers, permitem roubar senhas e outras informações sigilosas.
Spoofing
É a técnica de se fazer passar por outro computador da rede para conseguir acesso a um sistema. Há muitas variantes, como o spoofing de IP. Para executá-lo, o invasor usa um programa que altera o cabeçalho dos pacotes IP de modo que pareçam estar vindo de outra máquina.
Scamming
Técnica que visa roubar senhas e números de contas de clientes bancários enviando um e-mail falso oferecendo um serviço na página do banco. O Banrisul não envia e-mails oferecendo nada, portanto qualquer e-mail desta espécie é falso.
Port Scans : o invasor lança sondas tentando estabelecer conexão com cada uma das 65.535 portas de seu computador, via o protocolo TCP/IP. Se existir qualquer serviço associado a uma porta, ele irá responder.
Impressão Digital (FingerPrint) : através do envio de uma sequência especial de pacotes IP a um endereço especifico, pode-se detectar que sistema operacional está rodando analizando os pacotes que ele envia de volta.
Ping Sweep : o 'ping' é um comando de protocolo que verifica se um determinado computador está 'vivo' ou não. Um hacker pode varrer centenas de possíveis endereços e saber em pouco tempo quais maquinas estão disponíveis na rede.
Sniffers : é a maneira mais simples de se obter senhas. Esses programas capturam todos os pacotes que passam pela rede, sejam eles destinados a sua máquina, ou não. Os hackers sabem como decifrar estes pacotes e localizar as senhas e informações que ele está procurando. Esse perigo é real e imediato : qualquer informação que você passar (senhas, nomes, números, imagens, etc.) está sendo vista, assistida e eventualmente gravada pelo hacker.
DoS "Denial of Service" : são formas e tecnicas de fazer com que um determinado serviço (preferencialmente a maquina inteira) fique inoperante.
SYN Flood : é uma inundação de SYNs, que são pacotes IP especiais que abrem uma conexão. Enviando uma chuva desses pacotes em curto espaço de tempo, o sistema abre muitas conexões com a maquina alvo e não fecha nenhuma. Consequentemente o sistema entra em colapso.