SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Segurança na Interoperabilidade de
Redes TCP/IP
Bruno Milani
Flávio Calil Junior da Silva
Ronan Luz
Profª. Bina
Faculdade Barretos
Metodologia do Trabalho Acadêmico
II Semana Acadêmica do Curso de Sistemas de Informação
24/11/2008
1 – Introdução
Neste trabalho, apresentamos uma série de vulnerabilidades que surgem com a
utilização de procolos TCP/IP, onde soluções que possivelmente não foram
implementadas e gerenciadas de forma correta ocasionam falhas de diferentes
proporções nas redes. O artigo propõe a abordagem básica de conceitos TCP/IP
juntamente em um contexto interoperável entre cliente/servidor, cenários de ataque e
algumas técnicas de segurança comumente usadas até 2008.
2 – Keywords;
Interoperabilidade, TCP, IP, redes, vulnerabilidade, segurança, protocolos
3 – Protocolos de Rede TCP/IP;
TCP / IP é a espinha dorsal da Internet hoje em dia. Composto de dois
protocolos, TCP e IP, o protocolo TCP / IP é um dos mais amplamente utilizado.
Apresentamos uma breve introdução aos dois protocolos.
3.1 - TCP (Protocolo de Controle de Transmissão);
Protocolo de Controle da Transmissão (TCP) é um protocolo amplamente usado
na camada de Transporte (Ver tópico 3.3.2). Na recepção de dados, o protocolo TCP
pega os pacotes passados pela camada Internet (Ver tópico 3.3.3) e trata de colocá-los
em ordem, já que os pacotes podem chegar ao destino fora de ordem, confere se os
dados dentro dos pacotes estão íntegros e envia um sinal de confirmação chamado
“acknowledge” (“ack”) ao transmissor, avisando que o pacote foi recebido corretamente
e que os dados estão íntegros. Caso nenhum sinal de confirmação (ACK) seja recebido
o transmissor reenviará novamente o pacote perdido. Por essa razão o TCP é
considerado um protocolo confiável.
Durante a transmissão de dados, o TCP receberá os dados passados da camada
de Aplicação (Ver tópico 3.3.1) e adicionará a esses dados um cabeçalho. Na recepção
de dados, o cabeçalho será removido antes dos dados serem enviados para a porta
apropriada. Neste cabeçalho estão várias informações de controle, em particular o
número da porta de origem, o número da porta de destino, um número de seqüência
(para a confirmação de recebimento e mecanismos de reordenamento usado pelo TCP) e
uma soma de verificação (chamada checksum ou CRC, que é um cálculo usado para
verificar se o dado foi recebido intacto no destino). O cabeçalho TCP tem entre 20 e 24
bytes (dependendo se o campo opções estiver sendo ou não usado).
3.2 - IP (Protocolo de Interconexão);
O Protocolo de Interconexão (IP, como ele geralmente é conhecido), é uma das
camadas de rede da Internet. A tarefa do IP é criar a rota de envio de pacotes de
informações para um determinado destino. Os pacotes IP são normalmente
denominados datagramas. Os datagramas passam por uma série de routers antes de
chegar ao destino. E em cada nó que o datagrama atravessa, o nó determina o próximo
salto.
Uma vez que a rede é dinâmica, é possível que dois datagramas a partir da
mesma fonte tomem caminhos diferentes para encaminhá-los para o mesmo destino.
Porém, uma vez que a rede tenha variáveis atrasos em seu timer (tempo de
espera do ACK), as integridades desses datagramas são comprometidas, pois o mesmo
tenta apenas realizar sua melhor performance, não oferecendo nenhuma garantia para a
entrega correta desses pacotes, visto que o TCP tem o encargo de fazer essa conexão
confiável.
3.3 - Camadas da pilha dos protocolos internet;
O protocolo TCP/IP pode ser compreendido como um modelo de camadas, onde
cada camada é responsável por uma tarefa, com base no padrão de normalização para
rede estabelecida pela OSI (Open Systems Interconnection).
Pilha de protocolos TCP/IP é composta por quatro camadas:
3.3.1 – Camada: Aplicação
Esta é a primeira camada, onde os programas se comunicam, tendo algumas
aplicações como SMTP (e-mail), FTP (transferência de arquivos) e o HTTP (navegação
web), possuindo protocolos de aplicações diferentes, dependendo de sua finalidade.
Após processar a requisição do programa, o protocolo na camada de aplicação se
comunica com o outro protocolo na camada de Transporte (TCP).
3.3.2 – Camada: Transporte
Nesta camada geralmente o TCP é responsável por pegar os dados da camada
superior, dividi-los em pacotes e envia-los imediatamente para a camada inferior, a
camada Internet. Além disso durante a recepção dos dados, esta camada é responsável
por colocar os pacotes recebidos da rede em ordem e também verificar se o conteúdo
dos pacotes está intacto.
3.3.3 – Camada: Internet
Terceira camada da pilha de protocolos, onde o IP pega os pacotes recebidos da
camada de Transporte e adiciona informações de endereçamento virtual (endereço do
computador que está enviando os dados e o endereço do computador que receberá os
dados). Em seguida os pacotes são enviados para a camada imediatamente inferior.
3.3.4 – Camada: Interface com a Rede
A quarta e última camada, onde receberá os pacotes enviados pela camada
Internet e os enviará para a rede (ou receberá os dados da rede, caso o computador
esteja recebendo dados). O que está dentro desta camada dependerá do tipo de rede que
o cliente estiver usando, por exempo, Ethernet (que está disponível em diferentes
velocidades) e wireless.
4 – Interoperabilidade
A interoperabilidade é a capacidade de dois ou mais sistemas, redes,
dispositivos, aplicações ou componentes realizarem a troca de informações entre eles e
utilizar as informações assim trocadas, através de linguagens e protocolos comuns. Na
nossa sociedade globalizada, dada a crescente diversidade de aplicações e sistemas, a
interoperabilidade torna possível o desenvolvimento de um mercado de massas e evita
os efeitos indesejáveis da fragmentação.
Um bom exemplo da primeira abordagem à interoperabilidade é o conjunto de
normas e protocolos que foram desenvolvidas para a comunicação de redes TCP/IP
fazendo com que haja uma capacidade de dois sistemas operacionais independente do
software utilizado de se comunicarem. A interoperabilidade acontece quando se
determina um padrão de normas e protocolos para o desenvolvimento independente se
for um sistema, rede de comunicação, dispositivo, aplicação ou componente para troca
de informação.
5 – Vulnerabilidades TCP/IP:
5.1 - Análise de vulnerabilidade da rede;
Os softwares (incluindo sistemas operacionais, aplicativos, etc) podem ser
vulneráveis a ataques maliciosos. Existem muitas razões para essas vulnerabilidades. O
tipo inseguro de bibliotecas utilizadas no desenvolvimento de softwares ou negligências
sobre o ambiente em que o software é implantado podem determinar surgimento de
falhas de diferentes níveis em uma rede. Além disso, as redes são dinâmicas na sua
natureza dependendo em parte de ações humanas. (por exemplo: Os usuários ativos
inadvertidamente ativam um cavalo de tróia, ou executam um código malicioso via
email.)
A utilização de componentes de software on-line é regido pelas políticas de
segurança que definem a política de acesso à rede, que são confiáveis para acessar o
componente ou local específico. No entanto, devido as dificuldades na implantação de
aplicativos que controlem o nível de acesso, muitas políticas de segurança (como regras
de firewall) podem-se tornar nulas devida a falhas de implantação e gerenciamento das
mesmas.
Em simples palavras, a confiança nos relacionamentos são definidos pelo
endereço IP baseado na origem das solicitações de acesso. Políticas de segurança não
adequadas podem deixar uma rede sensívelmente vulnerável a ataques "Insider", bem
como ataques remotos, lançadas à partir de máquinas locais.
Na prática, a necessidade da análise da vulnerabilidade é universalmente
reconhecida. Os scanners comerciais de vulnerabilidade são bons em sua identificação.
Contudo, a identificação de brechas é somente uma pequena parte de uma rede de
segurança, pois a tomada de medidas cabíveis para seu monitoramento limita em cada
host em uma rede (cliente de serviços de hospedagem ou serviços de rede, ou até
mesmo acessar mensagens e-mail) possuir suas pertinentes falhas e abri-las para o
mundo exterior.
5.2 - Cenários de Ataque:
Quando o TCP/IP foi criado no início da década de 1970, a segurança não era
uma preocupação primordial. No entanto, nos anos posteriores desde sua criação, a falta
de segurança nesses protocolos tornou-se mais um grande problema diversos cenários .
A generalização do uso dos protocolos TCP/IP tem evidenciado ainda mais suas
fraquezas. Abaixo estão apresentados uma série de vulnerabilidades bem conhecidas de
ambos TCP/IP em si, e de alguns protocolos comumente usados junto com os mesmos,
como por exemplo, DNS (Domain Name Server).
5.2.1 - TCP SYN attacks (ou SYN Floods)
SYN flood é uma forma de ataque de negação de serviço (DoS - Denial of
Service) que resulta em sucessivos envios de solicitações SYN para um direcionado
sistema específico. O sistema cliente começa a enviar uma mensagem SYN ao servidor.
O servidor então reconhece o SYN, enviando mensagem SYN-ACK para o
cliente. O cliente então que estabelece a ligação com uma mensagem ACK. A ligação
entre o cliente e o servidor então é aberta, e os dados específicos do serviço podem ser
trocadas entre o cliente e o servidor.
O potencial de abuso surge no ponto em que o servidor tenha enviado um
sistema de aviso (SYN-ACK) de volta ao cliente, mas ainda não recebeu a mensagem
ACK. Este processo denomina-se um sistema semi-aberto de conexão. O servidor tem o
seu sistema construído em sua memória uma estrutura de dados descrevendo todas as
conexões pendentes. Esta estrutura de dados é de tamanho finito, e pode ser feita pelo
congestionamento intencionalmente de demasiadas conexões parcialmente abertas.
As conexões semi-abertas são facilmente realizadas por IP spoofing. O cliente
malicioso envia mensagens SYN para a vítima (servidor), onde estas parecem ser
legítimas, porém o sistema cliente que é incapaz de responder às mensagens SYN-ACK,
devido a utilização de ip’s inválidos, gerados randômicamente por esta técnica. Isto
significa que a mensagem final ACK aguardada pelo servidor não existirá pois seu
remetente não é válido.
Com a sobrecarga do servidor, o sistema estará impossibilitado de aceitar novas
conexões. Normalmente existe um tempo limite associado com uma conexão pendente,
de modo que conexões semi-abertas irão eventualmente expirar a vítima, e o sistema
servidor irá recuperar. No entanto, o ataque ao sistema pode simplesmente continuar
enviar pacotes de IP-falsificado solicitando novas conexões mais rápidas do que a
vítima possa expirar o sistema de conexões pendentes.
Na maioria dos casos, a vítima de um ataque deste genero terá dificuldade em
aceitar qualquer nova conexão de rede recebidas, ocasionando perda de dados na
memória, falhas no sistema ou deixando a rede inoperante.
5.2.2 - IP Spoofing
IP Spoofing é um ataque em que um atacante finge estar enviando dados a partir
de um endereço IP diferente do seu próprio. A camada IP assume que o endereço de
qualquer fonte de pacotes IP que ele recebe é o mesmo endereço IP como o sistema que
realmente enviou o pacote pois não realiza nenhuma autenticação. Muitos protocolos e
aplicações de nível superior também partem deste pressuposto, pelo que nos parece que
alguém capaz de forjar o endereço fonte de um pacote IP (chamados de "falsificação" de
endereço) poderia obter privilégios não autorizados.
No entanto, existem duas capturas. O primeiro é que todas as comunicações de
captura sejam suscetíveis de ser one-way. O anfitrião remoto irá enviar todas as
respostas para o endereço falsificado não para o acolhimento real, fazendo o spoofing.
A segunda é que atacante precise pegar a seqüência correta de números do TCP,
caso eles planejem estabelecer uma conexão TCP com a máquina atacada (serviços mais
comuns, como Telnet, FTP e r-comandos).
O ACK final em um handshake de três vias devem conter o outro anfitrião do
ISN, de outro modo, a ligação não pode concluir, porque o ISN no SYN ACK + pacote
é enviado para o verdadeiro acolhimento, onde o invasor deve começar por este ISN ou
por qualquer outro método. Se o atacante puder monitorar clandestinamente os pacotes
a partir de outra máquina, ele poderá ver o ISN.
5.2.4 - ICMP Attacks
ICMP é usado pela camada IP para enviar mensagens informativas one-way para
um host. Não há autenticação no ICMP, o que leva a ataques por meio de ICMP que
podem resultar em uma negação de serviço, ou permitir que o invasor intercepte
pacotes. Existem alguns tipos de ataques que estão associados com ICMP demonstrado
como segue:
ICMP DOS: O Atacante poderia usar tanto as mensages de ICMP: "Tempo excedido"
ou "Destino inacessível". Ambas estas mensagens podem causar uma queda imediata de
acolhimento para uma conexão. Um atacante pode fazer uso desta feita apenas forjando
uma destas mensagens ICMP, e enviando-a para um ou ambos os hosts comunicantes.
Sua conexão será, então, quebrada. A mensagem de redirecionamento de ICMP é
comumente usado por gateways quando um host tem assumido equivocadamente o
destino que não existe na rede local. Se um atacante forja esta mensagem, ela pode
causar um outro host para enviar pacotes para determinadas ligações através do
acolhimento do atacante.
Ampliação pacotes ICMP (SMURF): Um atacante envia pacotes de ICMP echo
forjado à redes vulneráveis "transmitindo endereços". Todos os sistemas nessas redes
enviam respostas ICMP echo para a vítima, consumindo a largura de banda disponível
no sistema e criando uma negação de serviço (DoS) para o tráfego legítimo.
Ping of Death: Um atacante envia um pedido de pacote ICMP echo utilizando o
tamanho máximo de pacote IP, sendo posteriormente quando recebida fragmentada pelo
seu tamanho. A meta é ocasionar no sistema alguma falha ou reinicialização do mesmo.
PING ICMP Flood Attacks: Uma quantidade maciça de pings no broadcast
ultrapassam a meta sistema e como tal não pode responder aos tráfegos legítimos.
5.2.5 - DNS attacks
DNS Attacks tem vitimado um número estimado de 500 organizações
recentemente em todo o mundo. Especialistas dizem que esses números tendem a
aumentar pois as falhas ainda são um fértil solo para o spamming.
O envenenamento do cache DNS permite ao atacante controle de subverter todo
o sistema de DNS em local a vítima. Isso permite que o atacante redirecione qualquer
aplicativo para internet com base em [HTTP, FTP, SMTP, DNS, POP3, IMAP, SSH,
etc], que é baseado em nomes DNS em vez de endereços IP. Ela poderia permitir a um
invasor roubar usuários e senhas para diversos sites ligados às empresas, extranet,
reencaminhar e-mails de empresas, e, no mínimo, provocar uma ruptura na atividade
normal da empresa que poderiam resultar em graves prejuízos de produtividade.
Os ataques em DNS ao longo dos últimos meses envolveu várias tecnologias
diferentes: DNS dinâmico, envenenamento do cache DNS, um bug no Symantec
firewall / gateway produtos, as configurações padrão no Windows NT 4.0/2000,
spyware / adware, e um compromisso de, em menos cinco servidores Web Unix.
5.2.6 - Connecting Hijacking
Uma interessante variante sobre IP spoofing permite que um hospedeiro inserir-
se no meio de uma ligação entre duas máquinas (conexão seqüestro). O IP spoofing
sozinho não pode ignorar seguranças adicionais, tais como mecanismo de autenticação
por senha. Mas com esse ataque, um invasor pode permitir autenticação normal para
avançar entre os dois anfitriões, e depois aproveitar o controle da conexão.
Essa conexão explora o seqüestro "estado desincronizado" na comunicação TCP.
Quando o número sequencial em um pacote recebido não é o mesmo que o esperado, a
ligação está a ser dito "desincronizada". Dependendo do valor real do número de ordem
recebida, a camada TCP maior desfaz o pacote.
Existe uma escolha, porque o TCP utiliza opções em seu protocolo para permitir
a comunicação eficiente mesmo na presença de pacotes ou perda latência de rede.
Assim, se o pacote recibo não é aquele esperado, o pacote será gravado na premissa de
que será esperado mais tarde (vários mecanismos de TCP que garantam o esperado
pacote acabará por chegar).
Assim, quando dois hospedeiros são suficientemente desincronizado, eles vão
rejeitar (ignorar) pacotes de cada um dos outros. Um atacante pode, então, forjar as
injeção de pacotes com os números de seqüência correta (e potencialmente modificar ou
adicionar comandos para a comunicação). Obviamente, isso exige que o atacante para
localizar no caminho da comunicação entre os dois anfitriões de modo que ele pode
ouvir secretamente, a fim de replicar pacotes sendo enviados. A chave para este ataque é
a criação da desincronia da conexão do sistema. Suas maneiras possíveis para fazer isso:
uma é durante o handshake de três vias, e a outra é no meio de uma conexão
estabelecida.
Note que os pacotes ignorados podem até gerar ACK's, em vez de ser
completamente ignorados. Quando a outra ponta recebe pacotes com números de
sequência incorretos, ele responde com um pacote de confirmação contendo o número
sequencial o espera. O receptor dessas devoluções ACK, obtêm a sequência de números
inválidos, assim o mesmo envia então o seu próprio ACK para notificar o remetente.
Portanto um grande número de ACK's são geradas por este atentado. Este tipo de ataque
poderia ser usado para detectar uma conexão seqüestro.
5.2.7 - Routing (RIP) Attack
Embora não seja estritamente um componente de TCP/IP, o Routing Information
Protocol (RIP) é muitas vezes um componente essencial em uma rede TCP/IP. O RIP é
utilizado para distribuir o encaminhamento da informação no âmbito de redes, tais como
caminhos curto, rotas a partir da rede local. Tal como o TCP/IP, o RIP não tem
autenticação, e as informações prestadas em um pacote RIP é freqüentemente usada sem
sua verificação.
Ataques aos RIP são diferentes das dos outros ataques comuns porque a
mudança deste ataque direciona-se para dados. Por exemplo, um atacante pode forjar
um pacote RIP, alegando o seu recebimento "X" tendo o caminho mais rápido para fora
da rede. Todos os pacotes enviados a partir dessa rede seria, então, encaminhados
através de X, onde eles poderão ser modificados ou examinados.
Um atacante poderia também utilizar eficazmente este ataque para personificar
qualquer máquina, redirecionando todo o tráfego da máquina atacada para a máquina do
atacante.
5.2.8 - Desynchronization during connection establishment
Nesta forma de desincronização durante a conexão já estabilizada, o atacante
redefine a conexão durante o handshake de três vias. Depois de acolhimento B & ACK
SYN elee envia o pacote para o host A, o atacante forja novos pacotes a partir do B
(para A) em que a primeira conexão é fechada através da RST bit e, em seguida, um
novo handshake de três vias é iniciada com A - idêntico ao o original, "real" aperto de
mão, mas com diferentes números de sequência. Host B agora ignora mensagens de A
(porque está usando uma nova seqüência do números do atacante), e um anfitrião ignora
mensagens de B (A é porque esperava mensagens com números de sequência do
atacante).
O atacante, em seguida, replica novos pacotes, com a seqüência correta números,
A e B quando tentam comunicar. Ao fazer isso, o atacante pode também modificar as
suas próprias mensagens ou injetar.
6 - Técnicas de Segurança
Há uma multiplicidade de discussões teóricas referentes as fragilidades no
protocolo TCP/IP, sendo várias abordagens publicadas e discutidas o tempo todo. Para
cada documento, que adverte os leitores sobre "Segurança, Vulnerabilidade X," parece
haver um pedaço de código correspondente de que o indivíduo possui esta fraqueza na
vida real, em computadores reais. Correspondente ao ataque SYN flooding existe uma
biblioteca SYNflood.c disponível na internet, que quando compilada e executada,
tentará negar o acesso a todos os alvos com as inundações ao servidor. Existem também
pacotes (spoofit), que oferece opções de interfaces para conexão-seqüestro.
Passar do papel à "explorar", como são conhecidas as implementações de
segurança, às vezes não é uma tarefa fácil, pois exige, muitas vezes significativos
conhecimentos de redes. Existem muitos artigos bem escritos que facilitam o uso de
técnicas para proteger as vulnerabilidades de segurança. Uma vez que o TCP/IP é o
ponto médio que liga todo o conjunto de computadores da Internet, é fácil ver que
milhares de milhões de investimentos em hardware estão em risco. Infelizmente, a
maioria dos ataques descritos neste artigo ciêntífico vem de encontro com falhas ainda
existentes porém já documentadas nestes protocolos. Vamos analisar o que pode ser
feito dentro da atual cenário do TCP / IP.
6.1 – TCP Wrappers (Linux);
Proteção adicional contra as falhas na autenticação pode ser adquirida a partir do
uso de TCP Wrappers. Um TCP wrapper é um pequeno programa executado no lugar
dos serviços que o Inet Daemon (Distribuição Linux) inicia normalmente. Por exemplo,
com o TCP wrappers no servidor, quando um usuário tentar se autenticar, a norma de
autenticação do usuário não é executado diretamente, em primeiro lugar, o Wrapper é
executado, e executa algumas das funções de segurança e, em seguida, supondo que
esteja o processo em sua normalidade, a principal função de autentição de usuários é
executada.
A instalação típica do TCP Wrapper não implica em qualquer alteração de
software ou ficheiros de configuração já existentes. A vantagem adquirida é que pode-se
registrar e exibir em relatórios informações sobre o que os usuários estão solicitando,
quais os serviços requisitados e monitorar o comportamento caso suspeito. É possível
adicionar filtros para os pacotes TCP Wrapper, em vez de simplesmente deixar em uma
"black list" os usuários que estão tentando usar alguns serviços, obtendo informações
adicionais de monitoramento. Ou, pode-se ativar um padrão de segurança mais rigoroso,
esperando um ataque.
Alguns dos serviços do Inet, propriamente o rsh e rlogin, pode solicitar uma
autenticação baseada por nome. O TCP Wrapper pode ser configurado para pedir
múltiplos servidores de DNS para a correspondência e esperar por consenso.
Os benefícios do TCP Wrappers não são de forma alguma uma armadura
inexpugnável, a idéia é de que elas não são úteis na prevenção geral do caso de IP
spoofing. No entanto, elas fornecem algumas proteções contra variações específicas
sobre o problema spoofing, e que proporcionam tempo maior para a inserção de novos
controles extras de proteção.
6.2 - Criptografia / IP Packets (SKIP)
Em vez de trocar uma sessão chave, como se poderia fazer através de Kerberos
(Computer Network Authentication Protocol) para uma sessão telnet, poderíamos optar
por criptografar todos os pacotes IP, a tempo todo, ao nível IP. Naturalmente, temos de
criptografar-los de uma forma que pode conseguir decifrar o destino deles. Existe um
esquema especial de distribuição de chaves projetado para pacotes de nível de
criptografia chamado de Simple Key-Management for Internet Protocol (SKIP).
O SKIP assume que cada ponta na rede tem uma chave pública, que pode ser
usado para criar muitas chaves entre dois sites. A idéia básica do algoritmo é encapsular
os pacotes de chaves (a chave para decifrar esse pacote) no interior do pacote, e
criptografar com que o segredo compartilhado entre dois sites. A técnica SKIP também
fornece um método fácil de alterar o segredo compartilhado entre duas localizações.
Uma vez que este método não é baseado em sessão, ela pode cobrir todos os aspectos da
comunicação TCP / IP, e não apenas aplicações.
7 – Conclusão
Redes interoperáveis que utilizam protocolos TCP/IP possuem um imensurável
descaso por conta de incertas políticas de segurança. São exemplos de implementações
de SYN flooding, IP spoofing, Connection hijacking, etc que nos mostram que esta
ausência de segurança tem levado para o desenvolvimento de ferramentas e técnicas
para explorar as vulnerabilidades das fraquezas destes protocolos. As aplicações e
métodos que corrigem algumas destas falhas, são possíveis, mas infelizmente os
modelos atuais de gestão em segurança de rede deixam a desejar, ocasionando como
mencionado em todo o artigo oportunidade reais de ataques a estes protocolos.
8 – Referências Bibliográficas
The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference
[ILLUSTRATED] (Hardcover) - Kozierok, Charles
Mcse Tcp/ip For Dummies® , 2nd Edition, Brandon, Cameron / John Wiley & Sons
Tcp/ip - Architecture Protocoles Applications - Comer Douglas / Dunod
Tcp/ip Bible - Scrimger, Rob / John Wiley & Sons
Exploração de Vulnerabilidades em Redes Tcp/ip - 2ª Edição - Melo, Sandro / ALTA
BOOKS
Redes de Computadores/comunicação de Dados Tcp/ip - Conceitos, Protocolos e Uso
Starlin, Gorki / ALTA BOOKS
Hacking: The Art of Exploitation, 2nd Edition - Erickson, Jon
Google.com (English Language)

Mais conteúdo relacionado

Mais procurados

Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack ProxyDetectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack ProxyJeronimo Zucco
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Test Environment Management: A Critical Requirement for Effective CI/CD
Test Environment Management: A Critical Requirement for Effective CI/CDTest Environment Management: A Critical Requirement for Effective CI/CD
Test Environment Management: A Critical Requirement for Effective CI/CDDevOps.com
 
Tubulões a céu aberto
Tubulões a céu abertoTubulões a céu aberto
Tubulões a céu abertoJupira Silva
 
Introdução ao owasp zap aula-01
Introdução ao owasp zap   aula-01 Introdução ao owasp zap   aula-01
Introdução ao owasp zap aula-01 prof-claudio
 
Basics of Software Testing
Basics of Software TestingBasics of Software Testing
Basics of Software TestingShakal Shukla
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosEvandro Agnes
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Test data management a case study Presented at SiGIST
Test data management a case study Presented at SiGISTTest data management a case study Presented at SiGIST
Test data management a case study Presented at SiGISTrenardv74
 
Apresentação TCC - Gustavo de Camargo
Apresentação TCC - Gustavo de CamargoApresentação TCC - Gustavo de Camargo
Apresentação TCC - Gustavo de CamargoGustavo de Camargo
 
Performance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingPerformance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingKostCare
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 

Mais procurados (20)

Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack ProxyDetectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Test Environment Management: A Critical Requirement for Effective CI/CD
Test Environment Management: A Critical Requirement for Effective CI/CDTest Environment Management: A Critical Requirement for Effective CI/CD
Test Environment Management: A Critical Requirement for Effective CI/CD
 
Tubulões a céu aberto
Tubulões a céu abertoTubulões a céu aberto
Tubulões a céu aberto
 
Introdução ao owasp zap aula-01
Introdução ao owasp zap   aula-01 Introdução ao owasp zap   aula-01
Introdução ao owasp zap aula-01
 
Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Gerência de bugs
Gerência de bugsGerência de bugs
Gerência de bugs
 
Ensaio de adensamento
Ensaio de adensamentoEnsaio de adensamento
Ensaio de adensamento
 
Basics of Software Testing
Basics of Software TestingBasics of Software Testing
Basics of Software Testing
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Test data management a case study Presented at SiGIST
Test data management a case study Presented at SiGISTTest data management a case study Presented at SiGIST
Test data management a case study Presented at SiGIST
 
Apresentação TCC - Gustavo de Camargo
Apresentação TCC - Gustavo de CamargoApresentação TCC - Gustavo de Camargo
Apresentação TCC - Gustavo de Camargo
 
Apresentação TCC
Apresentação TCCApresentação TCC
Apresentação TCC
 
Performance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingPerformance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance Testing
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Test
TestTest
Test
 

Semelhante a Segurança na Interoperabilidade de Redes TCP IP

1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redes1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redesmanustm
 
Artigo Atividade 1 Gredes
Artigo Atividade 1 GredesArtigo Atividade 1 Gredes
Artigo Atividade 1 GredesAlbarado Junior
 
Gestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptxGestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptxHJesusMiguel
 
Análise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkAnálise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkIgor Bruno
 
Artigo Analise De Redes Pelo Wireshark Igor
Artigo   Analise De Redes Pelo Wireshark   IgorArtigo   Analise De Redes Pelo Wireshark   Igor
Artigo Analise De Redes Pelo Wireshark IgorIgor Bruno
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAwolkartt_18
 
Analisando O Caminho Dos Pacotes No Wireshark Stalin
Analisando O Caminho Dos Pacotes No Wireshark   StalinAnalisando O Caminho Dos Pacotes No Wireshark   Stalin
Analisando O Caminho Dos Pacotes No Wireshark Stalinstalinstm
 
Referencia de redes.pdf
Referencia de redes.pdfReferencia de redes.pdf
Referencia de redes.pdfProfTelmaLcia
 
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geralDownloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geralRonaldo Souza
 
http https Professor Marlon Sales
http https Professor Marlon Saleshttp https Professor Marlon Sales
http https Professor Marlon Salesmarloninternet
 
manual_ufcd_1421_segurana_informatica.pdf
manual_ufcd_1421_segurana_informatica.pdfmanual_ufcd_1421_segurana_informatica.pdf
manual_ufcd_1421_segurana_informatica.pdfCarlos Gomes
 

Semelhante a Segurança na Interoperabilidade de Redes TCP IP (20)

1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redes1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redes
 
Artigo Atividade 1 Gredes
Artigo Atividade 1 GredesArtigo Atividade 1 Gredes
Artigo Atividade 1 Gredes
 
Gestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptxGestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptx
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
Análise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkAnálise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o Wireshark
 
Artigo Analise De Redes Pelo Wireshark Igor
Artigo   Analise De Redes Pelo Wireshark   IgorArtigo   Analise De Redes Pelo Wireshark   Igor
Artigo Analise De Redes Pelo Wireshark Igor
 
Artigo Wireshark
Artigo WiresharkArtigo Wireshark
Artigo Wireshark
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNA
 
Internet: evolução e serviços
Internet: evolução e serviçosInternet: evolução e serviços
Internet: evolução e serviços
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Analisando O Caminho Dos Pacotes No Wireshark Stalin
Analisando O Caminho Dos Pacotes No Wireshark   StalinAnalisando O Caminho Dos Pacotes No Wireshark   Stalin
Analisando O Caminho Dos Pacotes No Wireshark Stalin
 
Redes - TCP/IP
Redes - TCP/IPRedes - TCP/IP
Redes - TCP/IP
 
Referencia de redes.pdf
Referencia de redes.pdfReferencia de redes.pdf
Referencia de redes.pdf
 
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geralDownloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
 
Lista04
Lista04Lista04
Lista04
 
Exercicio parte1
Exercicio parte1Exercicio parte1
Exercicio parte1
 
http https Professor Marlon Sales
http https Professor Marlon Saleshttp https Professor Marlon Sales
http https Professor Marlon Sales
 
manual_ufcd_1421_segurana_informatica.pdf
manual_ufcd_1421_segurana_informatica.pdfmanual_ufcd_1421_segurana_informatica.pdf
manual_ufcd_1421_segurana_informatica.pdf
 

Segurança na Interoperabilidade de Redes TCP IP

  • 1. Segurança na Interoperabilidade de Redes TCP/IP Bruno Milani Flávio Calil Junior da Silva Ronan Luz Profª. Bina Faculdade Barretos Metodologia do Trabalho Acadêmico II Semana Acadêmica do Curso de Sistemas de Informação 24/11/2008 1 – Introdução Neste trabalho, apresentamos uma série de vulnerabilidades que surgem com a utilização de procolos TCP/IP, onde soluções que possivelmente não foram implementadas e gerenciadas de forma correta ocasionam falhas de diferentes proporções nas redes. O artigo propõe a abordagem básica de conceitos TCP/IP juntamente em um contexto interoperável entre cliente/servidor, cenários de ataque e algumas técnicas de segurança comumente usadas até 2008. 2 – Keywords; Interoperabilidade, TCP, IP, redes, vulnerabilidade, segurança, protocolos
  • 2. 3 – Protocolos de Rede TCP/IP; TCP / IP é a espinha dorsal da Internet hoje em dia. Composto de dois protocolos, TCP e IP, o protocolo TCP / IP é um dos mais amplamente utilizado. Apresentamos uma breve introdução aos dois protocolos. 3.1 - TCP (Protocolo de Controle de Transmissão); Protocolo de Controle da Transmissão (TCP) é um protocolo amplamente usado na camada de Transporte (Ver tópico 3.3.2). Na recepção de dados, o protocolo TCP pega os pacotes passados pela camada Internet (Ver tópico 3.3.3) e trata de colocá-los em ordem, já que os pacotes podem chegar ao destino fora de ordem, confere se os dados dentro dos pacotes estão íntegros e envia um sinal de confirmação chamado “acknowledge” (“ack”) ao transmissor, avisando que o pacote foi recebido corretamente e que os dados estão íntegros. Caso nenhum sinal de confirmação (ACK) seja recebido o transmissor reenviará novamente o pacote perdido. Por essa razão o TCP é considerado um protocolo confiável. Durante a transmissão de dados, o TCP receberá os dados passados da camada de Aplicação (Ver tópico 3.3.1) e adicionará a esses dados um cabeçalho. Na recepção de dados, o cabeçalho será removido antes dos dados serem enviados para a porta apropriada. Neste cabeçalho estão várias informações de controle, em particular o número da porta de origem, o número da porta de destino, um número de seqüência (para a confirmação de recebimento e mecanismos de reordenamento usado pelo TCP) e uma soma de verificação (chamada checksum ou CRC, que é um cálculo usado para verificar se o dado foi recebido intacto no destino). O cabeçalho TCP tem entre 20 e 24 bytes (dependendo se o campo opções estiver sendo ou não usado). 3.2 - IP (Protocolo de Interconexão); O Protocolo de Interconexão (IP, como ele geralmente é conhecido), é uma das camadas de rede da Internet. A tarefa do IP é criar a rota de envio de pacotes de informações para um determinado destino. Os pacotes IP são normalmente denominados datagramas. Os datagramas passam por uma série de routers antes de
  • 3. chegar ao destino. E em cada nó que o datagrama atravessa, o nó determina o próximo salto. Uma vez que a rede é dinâmica, é possível que dois datagramas a partir da mesma fonte tomem caminhos diferentes para encaminhá-los para o mesmo destino. Porém, uma vez que a rede tenha variáveis atrasos em seu timer (tempo de espera do ACK), as integridades desses datagramas são comprometidas, pois o mesmo tenta apenas realizar sua melhor performance, não oferecendo nenhuma garantia para a entrega correta desses pacotes, visto que o TCP tem o encargo de fazer essa conexão confiável. 3.3 - Camadas da pilha dos protocolos internet; O protocolo TCP/IP pode ser compreendido como um modelo de camadas, onde cada camada é responsável por uma tarefa, com base no padrão de normalização para rede estabelecida pela OSI (Open Systems Interconnection). Pilha de protocolos TCP/IP é composta por quatro camadas: 3.3.1 – Camada: Aplicação Esta é a primeira camada, onde os programas se comunicam, tendo algumas aplicações como SMTP (e-mail), FTP (transferência de arquivos) e o HTTP (navegação web), possuindo protocolos de aplicações diferentes, dependendo de sua finalidade.
  • 4. Após processar a requisição do programa, o protocolo na camada de aplicação se comunica com o outro protocolo na camada de Transporte (TCP). 3.3.2 – Camada: Transporte Nesta camada geralmente o TCP é responsável por pegar os dados da camada superior, dividi-los em pacotes e envia-los imediatamente para a camada inferior, a camada Internet. Além disso durante a recepção dos dados, esta camada é responsável por colocar os pacotes recebidos da rede em ordem e também verificar se o conteúdo dos pacotes está intacto. 3.3.3 – Camada: Internet Terceira camada da pilha de protocolos, onde o IP pega os pacotes recebidos da camada de Transporte e adiciona informações de endereçamento virtual (endereço do computador que está enviando os dados e o endereço do computador que receberá os dados). Em seguida os pacotes são enviados para a camada imediatamente inferior. 3.3.4 – Camada: Interface com a Rede A quarta e última camada, onde receberá os pacotes enviados pela camada Internet e os enviará para a rede (ou receberá os dados da rede, caso o computador esteja recebendo dados). O que está dentro desta camada dependerá do tipo de rede que o cliente estiver usando, por exempo, Ethernet (que está disponível em diferentes velocidades) e wireless. 4 – Interoperabilidade A interoperabilidade é a capacidade de dois ou mais sistemas, redes, dispositivos, aplicações ou componentes realizarem a troca de informações entre eles e utilizar as informações assim trocadas, através de linguagens e protocolos comuns. Na nossa sociedade globalizada, dada a crescente diversidade de aplicações e sistemas, a interoperabilidade torna possível o desenvolvimento de um mercado de massas e evita os efeitos indesejáveis da fragmentação.
  • 5. Um bom exemplo da primeira abordagem à interoperabilidade é o conjunto de normas e protocolos que foram desenvolvidas para a comunicação de redes TCP/IP fazendo com que haja uma capacidade de dois sistemas operacionais independente do software utilizado de se comunicarem. A interoperabilidade acontece quando se determina um padrão de normas e protocolos para o desenvolvimento independente se for um sistema, rede de comunicação, dispositivo, aplicação ou componente para troca de informação. 5 – Vulnerabilidades TCP/IP: 5.1 - Análise de vulnerabilidade da rede; Os softwares (incluindo sistemas operacionais, aplicativos, etc) podem ser vulneráveis a ataques maliciosos. Existem muitas razões para essas vulnerabilidades. O tipo inseguro de bibliotecas utilizadas no desenvolvimento de softwares ou negligências sobre o ambiente em que o software é implantado podem determinar surgimento de falhas de diferentes níveis em uma rede. Além disso, as redes são dinâmicas na sua natureza dependendo em parte de ações humanas. (por exemplo: Os usuários ativos inadvertidamente ativam um cavalo de tróia, ou executam um código malicioso via email.) A utilização de componentes de software on-line é regido pelas políticas de segurança que definem a política de acesso à rede, que são confiáveis para acessar o componente ou local específico. No entanto, devido as dificuldades na implantação de aplicativos que controlem o nível de acesso, muitas políticas de segurança (como regras de firewall) podem-se tornar nulas devida a falhas de implantação e gerenciamento das mesmas. Em simples palavras, a confiança nos relacionamentos são definidos pelo endereço IP baseado na origem das solicitações de acesso. Políticas de segurança não adequadas podem deixar uma rede sensívelmente vulnerável a ataques "Insider", bem como ataques remotos, lançadas à partir de máquinas locais.
  • 6. Na prática, a necessidade da análise da vulnerabilidade é universalmente reconhecida. Os scanners comerciais de vulnerabilidade são bons em sua identificação. Contudo, a identificação de brechas é somente uma pequena parte de uma rede de segurança, pois a tomada de medidas cabíveis para seu monitoramento limita em cada host em uma rede (cliente de serviços de hospedagem ou serviços de rede, ou até mesmo acessar mensagens e-mail) possuir suas pertinentes falhas e abri-las para o mundo exterior. 5.2 - Cenários de Ataque: Quando o TCP/IP foi criado no início da década de 1970, a segurança não era uma preocupação primordial. No entanto, nos anos posteriores desde sua criação, a falta de segurança nesses protocolos tornou-se mais um grande problema diversos cenários . A generalização do uso dos protocolos TCP/IP tem evidenciado ainda mais suas fraquezas. Abaixo estão apresentados uma série de vulnerabilidades bem conhecidas de ambos TCP/IP em si, e de alguns protocolos comumente usados junto com os mesmos, como por exemplo, DNS (Domain Name Server). 5.2.1 - TCP SYN attacks (ou SYN Floods) SYN flood é uma forma de ataque de negação de serviço (DoS - Denial of Service) que resulta em sucessivos envios de solicitações SYN para um direcionado sistema específico. O sistema cliente começa a enviar uma mensagem SYN ao servidor. O servidor então reconhece o SYN, enviando mensagem SYN-ACK para o cliente. O cliente então que estabelece a ligação com uma mensagem ACK. A ligação entre o cliente e o servidor então é aberta, e os dados específicos do serviço podem ser trocadas entre o cliente e o servidor.
  • 7. O potencial de abuso surge no ponto em que o servidor tenha enviado um sistema de aviso (SYN-ACK) de volta ao cliente, mas ainda não recebeu a mensagem ACK. Este processo denomina-se um sistema semi-aberto de conexão. O servidor tem o seu sistema construído em sua memória uma estrutura de dados descrevendo todas as conexões pendentes. Esta estrutura de dados é de tamanho finito, e pode ser feita pelo congestionamento intencionalmente de demasiadas conexões parcialmente abertas. As conexões semi-abertas são facilmente realizadas por IP spoofing. O cliente malicioso envia mensagens SYN para a vítima (servidor), onde estas parecem ser legítimas, porém o sistema cliente que é incapaz de responder às mensagens SYN-ACK, devido a utilização de ip’s inválidos, gerados randômicamente por esta técnica. Isto significa que a mensagem final ACK aguardada pelo servidor não existirá pois seu remetente não é válido. Com a sobrecarga do servidor, o sistema estará impossibilitado de aceitar novas conexões. Normalmente existe um tempo limite associado com uma conexão pendente, de modo que conexões semi-abertas irão eventualmente expirar a vítima, e o sistema servidor irá recuperar. No entanto, o ataque ao sistema pode simplesmente continuar enviar pacotes de IP-falsificado solicitando novas conexões mais rápidas do que a vítima possa expirar o sistema de conexões pendentes. Na maioria dos casos, a vítima de um ataque deste genero terá dificuldade em aceitar qualquer nova conexão de rede recebidas, ocasionando perda de dados na memória, falhas no sistema ou deixando a rede inoperante.
  • 8. 5.2.2 - IP Spoofing IP Spoofing é um ataque em que um atacante finge estar enviando dados a partir de um endereço IP diferente do seu próprio. A camada IP assume que o endereço de qualquer fonte de pacotes IP que ele recebe é o mesmo endereço IP como o sistema que realmente enviou o pacote pois não realiza nenhuma autenticação. Muitos protocolos e aplicações de nível superior também partem deste pressuposto, pelo que nos parece que alguém capaz de forjar o endereço fonte de um pacote IP (chamados de "falsificação" de endereço) poderia obter privilégios não autorizados. No entanto, existem duas capturas. O primeiro é que todas as comunicações de captura sejam suscetíveis de ser one-way. O anfitrião remoto irá enviar todas as respostas para o endereço falsificado não para o acolhimento real, fazendo o spoofing. A segunda é que atacante precise pegar a seqüência correta de números do TCP, caso eles planejem estabelecer uma conexão TCP com a máquina atacada (serviços mais comuns, como Telnet, FTP e r-comandos). O ACK final em um handshake de três vias devem conter o outro anfitrião do ISN, de outro modo, a ligação não pode concluir, porque o ISN no SYN ACK + pacote é enviado para o verdadeiro acolhimento, onde o invasor deve começar por este ISN ou por qualquer outro método. Se o atacante puder monitorar clandestinamente os pacotes a partir de outra máquina, ele poderá ver o ISN.
  • 9. 5.2.4 - ICMP Attacks ICMP é usado pela camada IP para enviar mensagens informativas one-way para um host. Não há autenticação no ICMP, o que leva a ataques por meio de ICMP que podem resultar em uma negação de serviço, ou permitir que o invasor intercepte pacotes. Existem alguns tipos de ataques que estão associados com ICMP demonstrado como segue: ICMP DOS: O Atacante poderia usar tanto as mensages de ICMP: "Tempo excedido" ou "Destino inacessível". Ambas estas mensagens podem causar uma queda imediata de acolhimento para uma conexão. Um atacante pode fazer uso desta feita apenas forjando uma destas mensagens ICMP, e enviando-a para um ou ambos os hosts comunicantes. Sua conexão será, então, quebrada. A mensagem de redirecionamento de ICMP é comumente usado por gateways quando um host tem assumido equivocadamente o destino que não existe na rede local. Se um atacante forja esta mensagem, ela pode causar um outro host para enviar pacotes para determinadas ligações através do acolhimento do atacante. Ampliação pacotes ICMP (SMURF): Um atacante envia pacotes de ICMP echo forjado à redes vulneráveis "transmitindo endereços". Todos os sistemas nessas redes enviam respostas ICMP echo para a vítima, consumindo a largura de banda disponível no sistema e criando uma negação de serviço (DoS) para o tráfego legítimo. Ping of Death: Um atacante envia um pedido de pacote ICMP echo utilizando o tamanho máximo de pacote IP, sendo posteriormente quando recebida fragmentada pelo seu tamanho. A meta é ocasionar no sistema alguma falha ou reinicialização do mesmo. PING ICMP Flood Attacks: Uma quantidade maciça de pings no broadcast ultrapassam a meta sistema e como tal não pode responder aos tráfegos legítimos.
  • 10. 5.2.5 - DNS attacks DNS Attacks tem vitimado um número estimado de 500 organizações recentemente em todo o mundo. Especialistas dizem que esses números tendem a aumentar pois as falhas ainda são um fértil solo para o spamming. O envenenamento do cache DNS permite ao atacante controle de subverter todo o sistema de DNS em local a vítima. Isso permite que o atacante redirecione qualquer aplicativo para internet com base em [HTTP, FTP, SMTP, DNS, POP3, IMAP, SSH, etc], que é baseado em nomes DNS em vez de endereços IP. Ela poderia permitir a um invasor roubar usuários e senhas para diversos sites ligados às empresas, extranet, reencaminhar e-mails de empresas, e, no mínimo, provocar uma ruptura na atividade normal da empresa que poderiam resultar em graves prejuízos de produtividade. Os ataques em DNS ao longo dos últimos meses envolveu várias tecnologias diferentes: DNS dinâmico, envenenamento do cache DNS, um bug no Symantec firewall / gateway produtos, as configurações padrão no Windows NT 4.0/2000, spyware / adware, e um compromisso de, em menos cinco servidores Web Unix. 5.2.6 - Connecting Hijacking Uma interessante variante sobre IP spoofing permite que um hospedeiro inserir- se no meio de uma ligação entre duas máquinas (conexão seqüestro). O IP spoofing sozinho não pode ignorar seguranças adicionais, tais como mecanismo de autenticação por senha. Mas com esse ataque, um invasor pode permitir autenticação normal para avançar entre os dois anfitriões, e depois aproveitar o controle da conexão. Essa conexão explora o seqüestro "estado desincronizado" na comunicação TCP. Quando o número sequencial em um pacote recebido não é o mesmo que o esperado, a ligação está a ser dito "desincronizada". Dependendo do valor real do número de ordem recebida, a camada TCP maior desfaz o pacote.
  • 11. Existe uma escolha, porque o TCP utiliza opções em seu protocolo para permitir a comunicação eficiente mesmo na presença de pacotes ou perda latência de rede. Assim, se o pacote recibo não é aquele esperado, o pacote será gravado na premissa de que será esperado mais tarde (vários mecanismos de TCP que garantam o esperado pacote acabará por chegar). Assim, quando dois hospedeiros são suficientemente desincronizado, eles vão rejeitar (ignorar) pacotes de cada um dos outros. Um atacante pode, então, forjar as injeção de pacotes com os números de seqüência correta (e potencialmente modificar ou adicionar comandos para a comunicação). Obviamente, isso exige que o atacante para localizar no caminho da comunicação entre os dois anfitriões de modo que ele pode ouvir secretamente, a fim de replicar pacotes sendo enviados. A chave para este ataque é a criação da desincronia da conexão do sistema. Suas maneiras possíveis para fazer isso: uma é durante o handshake de três vias, e a outra é no meio de uma conexão estabelecida. Note que os pacotes ignorados podem até gerar ACK's, em vez de ser completamente ignorados. Quando a outra ponta recebe pacotes com números de sequência incorretos, ele responde com um pacote de confirmação contendo o número sequencial o espera. O receptor dessas devoluções ACK, obtêm a sequência de números inválidos, assim o mesmo envia então o seu próprio ACK para notificar o remetente. Portanto um grande número de ACK's são geradas por este atentado. Este tipo de ataque poderia ser usado para detectar uma conexão seqüestro.
  • 12. 5.2.7 - Routing (RIP) Attack Embora não seja estritamente um componente de TCP/IP, o Routing Information Protocol (RIP) é muitas vezes um componente essencial em uma rede TCP/IP. O RIP é utilizado para distribuir o encaminhamento da informação no âmbito de redes, tais como caminhos curto, rotas a partir da rede local. Tal como o TCP/IP, o RIP não tem autenticação, e as informações prestadas em um pacote RIP é freqüentemente usada sem sua verificação. Ataques aos RIP são diferentes das dos outros ataques comuns porque a mudança deste ataque direciona-se para dados. Por exemplo, um atacante pode forjar um pacote RIP, alegando o seu recebimento "X" tendo o caminho mais rápido para fora da rede. Todos os pacotes enviados a partir dessa rede seria, então, encaminhados através de X, onde eles poderão ser modificados ou examinados. Um atacante poderia também utilizar eficazmente este ataque para personificar qualquer máquina, redirecionando todo o tráfego da máquina atacada para a máquina do atacante. 5.2.8 - Desynchronization during connection establishment Nesta forma de desincronização durante a conexão já estabilizada, o atacante redefine a conexão durante o handshake de três vias. Depois de acolhimento B & ACK SYN elee envia o pacote para o host A, o atacante forja novos pacotes a partir do B (para A) em que a primeira conexão é fechada através da RST bit e, em seguida, um novo handshake de três vias é iniciada com A - idêntico ao o original, "real" aperto de mão, mas com diferentes números de sequência. Host B agora ignora mensagens de A (porque está usando uma nova seqüência do números do atacante), e um anfitrião ignora mensagens de B (A é porque esperava mensagens com números de sequência do atacante). O atacante, em seguida, replica novos pacotes, com a seqüência correta números, A e B quando tentam comunicar. Ao fazer isso, o atacante pode também modificar as suas próprias mensagens ou injetar.
  • 13. 6 - Técnicas de Segurança Há uma multiplicidade de discussões teóricas referentes as fragilidades no protocolo TCP/IP, sendo várias abordagens publicadas e discutidas o tempo todo. Para cada documento, que adverte os leitores sobre "Segurança, Vulnerabilidade X," parece haver um pedaço de código correspondente de que o indivíduo possui esta fraqueza na vida real, em computadores reais. Correspondente ao ataque SYN flooding existe uma biblioteca SYNflood.c disponível na internet, que quando compilada e executada, tentará negar o acesso a todos os alvos com as inundações ao servidor. Existem também pacotes (spoofit), que oferece opções de interfaces para conexão-seqüestro. Passar do papel à "explorar", como são conhecidas as implementações de segurança, às vezes não é uma tarefa fácil, pois exige, muitas vezes significativos conhecimentos de redes. Existem muitos artigos bem escritos que facilitam o uso de técnicas para proteger as vulnerabilidades de segurança. Uma vez que o TCP/IP é o ponto médio que liga todo o conjunto de computadores da Internet, é fácil ver que milhares de milhões de investimentos em hardware estão em risco. Infelizmente, a maioria dos ataques descritos neste artigo ciêntífico vem de encontro com falhas ainda existentes porém já documentadas nestes protocolos. Vamos analisar o que pode ser feito dentro da atual cenário do TCP / IP. 6.1 – TCP Wrappers (Linux); Proteção adicional contra as falhas na autenticação pode ser adquirida a partir do uso de TCP Wrappers. Um TCP wrapper é um pequeno programa executado no lugar dos serviços que o Inet Daemon (Distribuição Linux) inicia normalmente. Por exemplo, com o TCP wrappers no servidor, quando um usuário tentar se autenticar, a norma de autenticação do usuário não é executado diretamente, em primeiro lugar, o Wrapper é executado, e executa algumas das funções de segurança e, em seguida, supondo que esteja o processo em sua normalidade, a principal função de autentição de usuários é executada.
  • 14. A instalação típica do TCP Wrapper não implica em qualquer alteração de software ou ficheiros de configuração já existentes. A vantagem adquirida é que pode-se registrar e exibir em relatórios informações sobre o que os usuários estão solicitando, quais os serviços requisitados e monitorar o comportamento caso suspeito. É possível adicionar filtros para os pacotes TCP Wrapper, em vez de simplesmente deixar em uma "black list" os usuários que estão tentando usar alguns serviços, obtendo informações adicionais de monitoramento. Ou, pode-se ativar um padrão de segurança mais rigoroso, esperando um ataque. Alguns dos serviços do Inet, propriamente o rsh e rlogin, pode solicitar uma autenticação baseada por nome. O TCP Wrapper pode ser configurado para pedir múltiplos servidores de DNS para a correspondência e esperar por consenso. Os benefícios do TCP Wrappers não são de forma alguma uma armadura inexpugnável, a idéia é de que elas não são úteis na prevenção geral do caso de IP spoofing. No entanto, elas fornecem algumas proteções contra variações específicas sobre o problema spoofing, e que proporcionam tempo maior para a inserção de novos controles extras de proteção. 6.2 - Criptografia / IP Packets (SKIP) Em vez de trocar uma sessão chave, como se poderia fazer através de Kerberos (Computer Network Authentication Protocol) para uma sessão telnet, poderíamos optar por criptografar todos os pacotes IP, a tempo todo, ao nível IP. Naturalmente, temos de criptografar-los de uma forma que pode conseguir decifrar o destino deles. Existe um esquema especial de distribuição de chaves projetado para pacotes de nível de criptografia chamado de Simple Key-Management for Internet Protocol (SKIP). O SKIP assume que cada ponta na rede tem uma chave pública, que pode ser usado para criar muitas chaves entre dois sites. A idéia básica do algoritmo é encapsular os pacotes de chaves (a chave para decifrar esse pacote) no interior do pacote, e criptografar com que o segredo compartilhado entre dois sites. A técnica SKIP também fornece um método fácil de alterar o segredo compartilhado entre duas localizações.
  • 15. Uma vez que este método não é baseado em sessão, ela pode cobrir todos os aspectos da comunicação TCP / IP, e não apenas aplicações. 7 – Conclusão Redes interoperáveis que utilizam protocolos TCP/IP possuem um imensurável descaso por conta de incertas políticas de segurança. São exemplos de implementações de SYN flooding, IP spoofing, Connection hijacking, etc que nos mostram que esta ausência de segurança tem levado para o desenvolvimento de ferramentas e técnicas para explorar as vulnerabilidades das fraquezas destes protocolos. As aplicações e métodos que corrigem algumas destas falhas, são possíveis, mas infelizmente os modelos atuais de gestão em segurança de rede deixam a desejar, ocasionando como mencionado em todo o artigo oportunidade reais de ataques a estes protocolos. 8 – Referências Bibliográficas The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference [ILLUSTRATED] (Hardcover) - Kozierok, Charles Mcse Tcp/ip For Dummies® , 2nd Edition, Brandon, Cameron / John Wiley & Sons Tcp/ip - Architecture Protocoles Applications - Comer Douglas / Dunod Tcp/ip Bible - Scrimger, Rob / John Wiley & Sons Exploração de Vulnerabilidades em Redes Tcp/ip - 2ª Edição - Melo, Sandro / ALTA BOOKS Redes de Computadores/comunicação de Dados Tcp/ip - Conceitos, Protocolos e Uso Starlin, Gorki / ALTA BOOKS Hacking: The Art of Exploitation, 2nd Edition - Erickson, Jon Google.com (English Language)