Você está na página 1de 31

Curso de

TCP-IP
Avançado
V.2.0

abril de 2004
AVISO IMPORTANTE
Esta apostila é parte integrante do Curso de TCP-IP Avançado,
desenvolvido pela TopMaster para a Embratel.
O objetivo deste documento é apresentar uma versão textual
do conteúdo do curso online para a conveniência do aluno.
Sua leitura não substitui o estudo online, pois este oferece interações e
animações que não podem ser representadas no formato impresso.

Curso de TCP-IP Avançado 2 de 31


4. Os Serviços e Aplicações

4.1. Servidores Web


Protocolo HTTP
O serviço World Wide Web (WWW) ou, simplesmente, Web é basicamente um conjunto de
documentos (páginas) contendo texto, imagens, áudio e/ou vídeo. As páginas são interconectadas
através de hiperlinks, permitindo ao usuário navegar entre os diversos documentos de forma
bastante intuitiva. O esquema de hiperlinks que liga os documentos forma o que é conhecido
como hipertexto.

Os documentos disponibilizados na Internet são desenvolvidos em HTML (HyperText Markup


Language), que é uma linguagem de marcação de texto responsável apenas pela forma na qual as
informações são apresentadas na tela. Depois de desenvolver as páginas HTML, os arquivos
devem ser copiados para um servidor Web, como o Apache e Microsoft Internet Information
Server (IIS).

Um cliente que deseja acessar uma determinada página deve utilizar sua respectiva URL
(Uniform Resource Locator), como, por exemplo, http://www.embratel.com.br/ index.html, sendo
que:
• http especifica o protocolo responsável pela comunicação entre o browser e o
servidor;
• www.embratel.com.br representa o domínio DNS;
• index.html é a página HTML.

Depois que a página é localizada e copiada do servidor Web para o cliente, o browser interpreta
as marcações (tags) da página e a exibe na tela.

Curso de TCP-IP Avançado 3 de 31


O protocolo HTTP (HyperText Transfer Protocol) faz parte da camada de aplicação do modelo
Internet, utiliza o protocolo TCP como transporte e funciona no modelo cliente-servidor. Nesse
modelo, quando um cliente deseja um serviço, abre-se uma conexão TCP e o pedido é enviado. O
servidor processa e devolve a solicitação pela mesma conexão TCP, que é desfeita em seguida.
Esse esquema de comunicação é conhecido como conexão sem estado (stateless connection).
Foram introduzidos alguns artifícios para manter o controle das conexões, tais como cookies.

Endereçamento de transporte

O HTTP é formado por dois tipos de mensagens: solicitações do cliente para o servidor e
respostas do servidor para o cliente. As mensagens utilizadas no HTTP são do formato texto. Nas
versões iniciais do protocolo, as mensagens de solicitações e respostas eram bastante simples
(simple-request e simple-response). O HTTP/1.1 implementa mensagens mais complexas (full-
request e full-response).

Uma mensagem de solicitação completa é formada por um método, a URL que deseja-se acessar
e a versão do protocolo HTTP que está sendo utilizada pelo cliente.

Solicitação completa:
<Método> <URL> <Versão do HTTP>

O método, na verdade, indica o comando que está sendo solicitado ao servidor. A tabela, a seguir,
apresenta os principais métodos disponíveis:

Curso de TCP-IP Avançado 4 de 31


Método Descrição

GET Permite solicitar uma página em uma URL.

HEAD Permite solicitar apenas o cabeçalho da página.

PUT Permite transferir uma página para uma URL.

POST Permite acrescentar uma página.

DELETE Permite eliminar uma página.

Apesar da simplicidade, uma solicitação HTTP pode conter informações adicionais a serem
enviadas ao servidor. Essas informações são descritas como uma seqüência de cabeçalhos
(request headers) que são enviados juntamente com uma solicitação.

O exemplo abaixo ilustra o que o servidor Web irá receber do browser. A primeira linha indica o
método utilizado (GET), a URL contendo o nome do arquivo desejado e a versão do HTTP, no
caso a 1.0. A segunda linha identifica o browser que está sendo usado pelo usuário, no caso o
Navigator (também conhecido como Mozilla), componente do Netscape Communicator. Essa
linha, assim como as demais, contém informações complementares ao pedido HTTP. As quatro
linhas seguintes trazem diversas informações úteis. A terceira linha, por exemplo, indica que o
browser está preparado para receber documentos texto (text/plain), documentos HTML
(text/html) e diversos tipos de imagens, como GIF (image/gif) e JPEG (image/jpeg). Essa lista é
codificada de acordo com regras MIME (Multipurpose Internet Mail Extensions), que identificam
o tipo de documento. Na terceira linha, o */* indica que o browser aceita qualquer tipo de
arquivo.

GET /internet/index.html HTTP/1.0


User-agent: Mozilla/4.5b1 [en] (WinNT; I)
Accept: text/plain, text/html, image/gif,
image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*
Accept-Charset: iso-8859-1,*,utf-8
Accept-Encoding: gzip
Accept-Language: en

Uma mensagem de resposta completa é formada pela versão do protocolo HTTP que está sendo
utilizada pelo cliente, por um código de status e uma pequena frase explicando o código de status.

Resposta completa
<Versão do HTTP> <Status> <Frase>

Curso de TCP-IP Avançado 5 de 31


Existem inúmeros códigos de status que podem indicar sucesso na solicitação, falha no cliente ou
no servidor. Alguns exemplos de códigos bastante comuns são apresentados a seguir:

Código Frase Descrição

200 Document follows Solicitação bem sucedida e o


documento será enviado.

403 Unauthorized Acesso não autorizado.

404 Not found Documento não localizado.

O exemplo, a seguir, seria a resposta enviada a partir da solicitação apresentada anteriormente. A


primeira linha indica a versão 1.0 do HTTP, o código de status 200 e que a informação
requisitada será retornada. Nas linhas seguintes são identificados o servidor Web, o tamanho do
documento (5807 bytes, de acordo com o exemplo) e outras informações. A mais importante,
entretanto, é a Content-type, que informa ao browser o tipo de informação que está sendo
retornada, de modo que ele possa exibi-la da forma adequada. Essa informação é codificada pelo
tipo MIME no pedido do browser, do mesmo modo que a lista de tipos na linha Accept.

Em outras palavras, o servidor Web, ao receber o pedido, procura o arquivo e verifica a sua
extensão (.html) através de uma consulta a uma grande tabela de tipos MIME que indica o código
que deverá ser usado para cada extensão existente. No caso, o tipo usado foi o text/html,
indicando que o arquivo que está sendo enviado é do tipo HTML. Após as linhas iniciais e uma
linha intermediária em branco, vem o documento propriamente dito ou alguma resposta acusando
erro ou arquivo não encontrado. Essa informação será, então, exibida pelo browser segundo o tipo
MIME informado na linha Content-type. Nesse momento, a página requisitada aparece na tela do
browser do usuário.

HTTP/1.0 200 Document follows


Date: Thu, 20 Aug 1998 18:47:27 GMT
Server: NCSA/1.4.2
Content-type: text/html
Last-modified: Fri, 14 Aug 1998 20:14:23 GMT
Content-length: 5807
... conteúdo do arquivo index.html ...

Curso de TCP-IP Avançado 6 de 31


4.2. Servidores FTP
Protocolo FTP
O protocolo FTP (File Transfer Protocol) permite a transferência de arquivos entre hosts
utilizando a rede de comunicação. O usuário remoto pode, além de copiar arquivos, visualizar o
conteúdo de arquivos e diretórios, definir o formato dos arquivos (texto e executável) além de
criar e eliminar arquivos e diretórios.

O FTP está na camada de aplicação e utiliza o protocolo TCP no transporte. O FTP utiliza o
modelo cliente/servidor, sendo necessário um cliente FTP e um servidor FTP. O servidor FTP
utiliza duas portas pré-definidas: 20 (dados) e 21 (controle). A porta 20 é reservada para a
transferência de dados entre cliente e servidor, enquanto a porta 21 é utilizada para a troca de
comandos.

O usuário tem acesso aos serviços de transferência de arquivo a partir do utilitário FTP, que
geralmente acompanha a maioria dos sistemas operacionais. A tabela, a seguir, descreve os
principais comandos disponíveis no utilitário:

Comando Descrição

open Abre uma conexão.

close Encerra uma conexão.

get Copia um arquivo do host remoto para o host


local.

put Copia um arquivo do host local para o host


remoto.

dir Lista o conteúdo do diretório remoto.

Curso de TCP-IP Avançado 7 de 31


ascii/binary Permite definir o formato do arquivo.

Após o comando open, o usuário é solicitado a identificar-se através de um login e senha. Apesar
dessa facilidade, o protocolo FTP não oferece qualquer confidencialidade no envio das
informações, inclusive em relação à senha, que é enviada abertamente. Alguns servidores FTP
permitem o login anônimo, utilizando a conta anonymous.

No exemplo a seguir, estamos conectando o servidor FTP da Embratel ftp.embratel.net.br


utilizando a conta anonymous e verificando o conteúdo do diretório default de login.

Exemplo:

ftp> open ftp.embratel.net.br


Connected to ftp.embratel.net.br.
220 wks01.rjo.embratel.net.br FTP server (Version wu-2.6.2(1) Tue Dec 4
17:42:05
EDT 2001) ready.
User (ftp.embratel.net.br:(none)): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
230-+-----------------------------------------------------------------------+
230-Servicos Internet Via EMBRATEL
230-Bem-vindo ao Servidor de FTP da Embratel ! (ftp://ftp.embratel.net.br)
230- Horario Local : Mon Jul 22 23:34:32 2002
230- Sua maquina : dial237.ism.com.br
230- Voce e' o usuario numero 2.
230- Numero maximo de usuarios anonimos : 400
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 16
-rw-r--r-- 1 1 1242 Oct 26 1999 .welcome
lrwxrwxrwx 1 1 7 Aug 31 2000 bin -> usr/bin
dr-xr-xr-x 2 1 512 Oct 26 1999 dev
dr-xr-xr-x 3 1 512 Oct 26 1999 etc
drwxr-xr-x 2 70 512 Oct 26 1999 incoming
drwxr-xr-x 23 70 512 May 16 14:06 pub
drwxr-xr-x 5 1 512 Oct 26 1999 usr
226 Transfer complete.
ftp: 381 bytes received in 0,09Seconds 4,19Kbytes/sec.

Protocolo TFTP
O protocolo TFTP (Trivial File Transfer Protocol), assim como o FTP, também permite a
transferência de arquivos, porém de forma mais simples. Um exemplo de utilização do TFTP
acontece na implementação de boot remoto em estações diskless (sem disco).

O TFTP está na camada de aplicação e utiliza o protocolo UDP no transporte, o que obriga o
TFTP a implementar seus próprios mecanismos de controle de erro. O TFTP também utiliza o
modelo cliente/servidor, sendo necessário um cliente e um servidor TFTP. O servidor TFTP
utiliza apenas a porta 69 para dados e controle.

Curso de TCP-IP Avançado 8 de 31


4.3. Servidores de correio eletrônico
Protocolo SMTP
O serviço de email (electronic mail) ou correio eletrônico é um dos mais antigos e importantes
serviços da Internet. O serviço é formado por clientes (user agents) e servidores (Message
Transfer Agents - MTAs). Os clientes, como Eudora e Microsoft Outlook, são responsáveis por
enviar e receber as mensagens. Os servidores, como Sendmail, Lotus Notes e Microsoft
Exchange, são responsáveis por reencaminhar a mensagem até seu destino.

Um email é muito semelhante a uma carta convencional, sendo formado por um envelope com
informações do destinatário, um cabeçalho com informações do remetente e o texto propriamente
dito. Inicialmente, a área de texto permitia apenas mensagens simples utilizando caracteres ASCII,
no entanto, o protocolo MIME (Multipurpose Internet Mail Extensions) foi concebido para ser uma
extensão, oferecendo suporte a outros alfabetos e mídias, como imagens, som e vídeo.

O protocolo SMTP (Simple Mail Transfer Protocol) está na camada de aplicação e utiliza o
protocolo TCP no transporte. O servidor de email recebe conexões na porta pré-definida 25. Após
estabelecida a conexão, a mensagem é armazenada na caixa postal (mailbox) do destinatário. Por
exemplo, quando enviamos um email para rbmaia@embratel.com.br, a mensagem é armazenada
na mailbox referente ao usuário rbmaia.

Curso de TCP-IP Avançado 9 de 31


Protocolo POP3 e IMAP
O protocolo POP3 (Post Office Protocol versão 3) permite que um cliente acesse um servidor de
email, onde está sua caixa postal, e transfira suas mensagens do servidor para a máquina local.
Em geral, as mensagens são apagadas do servidor depois de copiadas para o cliente.

O protocolo IMAP (Interactive Mail Access Protocol) permite que um cliente acesse um servidor
de email, onde está sua caixa postal, e apenas consulte suas mensagens no servidor, sem copiá-las
para a máquina local. A grande vantagem do IMAP é permitir que o usuário possa ter acesso à
sua caixa postal em qualquer máquina, ou seja, ele poderá consultar seus emails em um desktop
no trabalho ou em um laptop em casa.

4.4. Aplicações de Segurança


Firewall
Um firewall permite implementar um esquema de segurança centralizado, onde todo o tráfego
que sai ou entra de/para a empresa pode ser monitorado. Com esse monitoramento, é possível
restringir o acesso da rede interna de/para a rede externa, normalmente a Internet.

Em geral, o firewall é um software que é executado em um servidor Unix, Microsoft Windows


NT ou Windows 2000, dedicado exclusivamente para essa função. Também existem soluções que
englobam hardware e software proprietários. Independentemente da plataforma, as soluções de
firewall podem ser divididas em dois tipos: firewall de rede e firewall de aplicação.

Curso de TCP-IP Avançado 10 de 31


Firewall de rede
O tipo mais simples de firewall atua apenas na camada de rede, basicamente monitorando
informações do datagrama IP, como endereço de origem e destino e o tipo de protocolo.
Opcionalmente, também monitora portas de origem e destino pertencentes à camada de
transporte, por isso esse tipo de firewall também é chamado de filtro de pacotes.

Aplicação

Transporte

Rede

Enlace/Físico

Firewalls deste tipo são utilizados nas bordas da rede, funcionando como um primeiro nível de
defesa, podendo ser implementado no próprio roteador que conecta a rede interna e externa.

A partir de regras previamente definidas, o firewall pode permitir ou não certos tipos de tráfego
entre a rede interna e a Internet. Por exemplo, a tabela abaixo apresenta algumas das regras que
podem ser implementadas em um firewall para a rede 192.168.1.0.

IP Porta IP Porta Ação Descrição


origem origem destino destino

* * 192.168.1.0 > 1023 Permite Permite que as conexões solicitadas


internamente possam ser estabelecidas

* * 192.168.1.2 25 Permite Permite que qualquer usuário acesse o


(SMTP) serviço de mail

* * 192.168.1.3 80 Permite Permite que qualquer usuário acesse o


(HTTP) serviço de Web

* * * * Nega Qualquer acesso que não tenha sido


permitido é negado

Apesar da simplicidade, a definição e a manutenção das regras do firewall podem tornar-se


difíceis, em função do grande número de regras especificadas. Um dos principais problemas com
firewalls de rede é a possibilidade de não se identificar ataques que falsifiquem o endereço IP de

Curso de TCP-IP Avançado 11 de 31


origem, conhecidos como IP spoofing. Devido à fragilidade do protocolo, não se recomenda a
autenticação baseada em endereços IP.

Os firewalls de rede evoluíram e passaram a utilizar também informações da camada de


transporte para identificar e monitorar uma conexão lógica.

Esse tipo de firewall é conhecido como stateful inspection e atua, basicamente, no controle das
portas de origem e destino. Quando um cliente solicita uma conexão TCP, a porta origem deve
estar entre 1024 e 16384, enquanto a porta destino deverá ter um número entre 0 e 1023.

Aplicação

Transporte

Rede

Enlace/Físico

Por exemplo, uma conexão a um servidor Web utilizará, por default, a porta destino 80 e como
porta origem alguma porta disponível acima de 1023. O firewall stateful controla cada porta
origem utilizada na abertura de uma conexão externa, permitindo respostas apenas para as portas
de onde partiram as solicitações. Esta solução é mais segura que a oferecida por firewalls de rede,
que permitem a entrada de qualquer porta acima de 1023.

Além disso, o firewall stateful reconstrói os pacotes fragmentados e analisa o conteúdo por
completo, impedindo que um conjunto de pacotes aparentemente inócuos se transforme em um
ataque.

Firewall de aplicação (Proxy)


O firewall de aplicação ou proxy, além de poder executar as funções de filtro de pacotes, pode
examinar os protocolos da camada de aplicação, como HTTP e SMTP. Ao monitorar os
protocolos de aplicação, o controle é maior em relação a apenas realizar a verificação de
endereços IP e portas.

Aplicação

Transporte

Rede

Enlace/Físico

Curso de TCP-IP Avançado 12 de 31


O proxy funciona como um intermediador entre o cliente e o servidor. O cliente solicita um
serviço ao servidor e o proxy intermedia a conexão, criando uma conexão com cliente e uma
outra com o servidor. Todas as mensagens enviadas ou recebidas podem ser analisadas pelo
proxy, que pode permitir ou não o envio/recebimento de uma determinada mensagem.

Proxy

Como proxy, atua na camada de aplicação e pode desempenhar diversas funções. O proxy pode
ser utilizado como um filtro de protocolos de alto nível, como SMTP e HTTP, pode verificar o
conteúdo de emails e páginas Web, além de decidir se o acesso será permitido ou não. Por
exemplo, se um email contém palavras que não estejam de acordo com as regras de segurança da
empresa, o proxy pode barrar a entrada ou saída de emails que contenham tais palavras. Além
disso, pode impedir a entrada de arquivos anexados e verificar a existência de vírus. Um processo
semelhante pode ser implementado também no tratamento do conteúdo de páginas Web,
impedindo a entrada de páginas que contenham certas palavras, componentes Active X, Applets
Java e código JavaScript.

Enquanto os firewalls de rede podem autenticar as conexões utilizando apenas IPs e portas, que
podem ser facilmente forjadas (IP spoofing), os proxies permitem implementar diversos
mecanismos de autenticação, como login e senha, token e biométrica. Por exemplo, para que os
usuários da rede interna possam ter acesso à Internet, eles devem ser autenticados primeiro no
proxy.

Por questões de desempenho, o proxy geralmente não implementa o controle em todas as


camadas que lhe são permitidas. Na prática, as funções de filtro de pacotes são implementadas

Curso de TCP-IP Avançado 13 de 31


por um firewall preocupado apenas com as camadas de rede e transporte, enquanto o proxy
implementa apenas o controle na camada de aplicação.

O proxy também pode funcionar como cache de páginas Web. Quando um usuário realiza um
acesso a uma determinada página na Internet, o conteúdo da página é copiado para o proxy e
repassado ao usuário. Quando um outro usuário acessar a mesma página, não será preciso buscá-
la novamente, pois a página estará localizada no cache do proxy e poderá ser entregue ao cliente
sem a necessidade de acesso à Internet. Dependendo da política de atualização de cache do proxy,
é possível que os usuários acessem páginas com conteúdo desatualizado.

NAT
O NAT (Network Address Translation) geralmente é implementado no roteador que liga a rede
interna à Internet e tem duas funções principais: endereçamento e segurança.

Com o crescimento da Internet, a distribuição de endereços IP tornou-se um problema. Como os


endereços IP classes A e B estão esgotados, restam apenas endereços classe C, que permitem no
máximo 254 hosts por endereço. Para contornar o problema, as empresas passaram a utilizar um
endereço inválido na rede interna e um endereço válido para acessar a rede externa.

Quando se implementa o esquema de NAT, os usuários da rede externa desconhecem os


endereços da rede interna, não tendo acesso direto às estações. Nesse caso, o dispositivo que
implementa o NAT intermedia o acesso da rede externa para a rede interna, escondendo os

Curso de TCP-IP Avançado 14 de 31


endereços internos e aumentando o nível de segurança. O mecanismo de NAT só é possível
devido ao esquema de portas que permite mapear vários clientes internos em apenas um endereço
de saída.

Criptografia
A criptografia permite implementar uma série de atributos indispensáveis para uma comunicação
segura em uma rede de computadores, como a Internet. Seguem as implementações permitidas:
• Confidencialidade: é a garantia de que a comunicação entre o transmissor e
receptor seja implementada de forma sigilosa, sem o conhecimento de terceiros.
Por exemplo, quando utilizamos o Internet Banking, a comunicação entre o
cliente e o servidor do banco deve ser feita de forma confidencial;
• Integridade: é a garantia de que a informação trocada entre o transmissor e
receptor não será alterada. Por exemplo, quando enviamos um email, nada
impede que alguém intercepte a mensagem e altere seu conteúdo;
• Autenticidade: é a garantia de que a pessoa que realizou a operação é de fato
aquela que diz ser. Por exemplo, quando recebemos um email de alguém, não
temos qualquer garantia de que a mensagem foi enviada pela pessoa que consta
no cabeçalho do email, pois essa informação é facilmente forjada;
• Não repúdio: é a possibilidade de provar a terceiros a autoria de uma operação
após a mesma ter ocorrido. Por exemplo, quando enviamos um email, a pessoa
que recebe a mensagem não tem como provar quem foi a pessoa que o enviou.

A criptografia moderna está baseada no conceito de chaves criptográficas, que consistem em uma
seqüência de bits. Existem duas técnicas atualmente utilizadas: chaves simétricas e assimétricas.

Chaves simétricas
No esquema de chaves simétricas, também conhecidas como chaves secretas, o transmissor e o
receptor devem possuir a mesma chave criptográfica. O transmissor utiliza sua chave para
criptografar a mensagem, que pode então ser enviada. O receptor utiliza a mesma chave para
descriptografar a mensagem recebida. Caso a mensagem seja interceptada, não será possível ler o
seu conteúdo, a não ser que se descubra a chave secreta utilizada.

Curso de TCP-IP Avançado 15 de 31


A criptografia de chave simétrica é muito rápida, mas apresenta dois problemas: a troca e
gerência das chaves.

Chaves assimétricas
No esquema de chaves assimétricas, também conhecidas como chaves públicas, o transmissor
possui um par de chaves e o receptor outro. O par de chaves é formado por uma chave privada e
uma pública. A chave privada é de conhecimento apenas do dono do par, enquanto a chave
pública é amplamente divulgada e pode ser consultada por qualquer usuário.

Quando o transmissor deseja enviar uma mensagem confidencial, ele utiliza a chave pública do
receptor que está disponível na rede. O receptor, ao receber a mensagem, utiliza sua chave
privada para abrir a mensagem. Caso alguém intercepte a mensagem, não será possível a sua
leitura, pois apenas a chave privada do receptor pode ler uma mensagem criptografada com sua
chave pública.

Chaves assimétricas - Criptografia

Além de garantir a confidencialidade e integridade da mensagem, o esquema de chave pública


permite também implementar a assinatura digital, garantindo autenticidade da operação. Nesse
caso, o transmissor utiliza a sua chave privada para assinar (criptografar) a mensagem e o
receptor, por sua vez, utiliza a chave pública do transmissor para abri-la. Caso o receptor consiga
abrir a mensagem, está garantida a autenticidade da operação.

Curso de TCP-IP Avançado 16 de 31


Chaves assimétricas - Assinatura digital

É importante perceber que é possível utilizar os dois serviços de forma isolada ou combinada, ou
seja, apenas confidencialidade, apenas autenticidade ou os dois serviços simultaneamente.

Autoridades certificadoras
As autoridades certificadoras ou CAs (Certification Authorities) são cartórios virtuais onde as
chaves públicas ficam armazenadas de forma segura, ou seja, podem ser consultadas mas não
alteradas. Verisign, Certisign, Entrust, Serasa, Serpro são apenas alguns exemplos de CA's que
atuam no Brasil.

A chave pública fica armazenada em um certificado digital que, além da chave, possui
informações da certificadora e do dono da chave pública. Existem diferentes tipos de certificados
que podem ser emitidos, como certificados para servidores, email, autoria de software e
delegação de autoridade. O padrão X.509v3 é, atualmente, o padrão para certificados digitais e
define diversas informações que devem compor um certificado.

Informações sobre a CA

Informações sobre o
possuidor da chave pública

Chave pública

Assinatura da CA

Um certificado passa por diversas fases, que se iniciam na sua criação. Os certificados devem ser
periodicamente renovados, caso contrário, são revogados.

Curso de TCP-IP Avançado 17 de 31


HTTPS
O protocolo HTTP não foi concebido para oferecer segurança, porém, a maioria das operacões
em sites de comércio eletrônico utilizam esse protocolo. Para garantir segurança para operações
na Web, utiliza-se o HTTP seguro ou HTTPS. O HTTPS é o protocolo HTTP combinado ao
protocolo Secure Sockets Layer (SSL).

O SSL trabalha entre os protocolos da camada de aplicação e a camada de transporte (TCP),


oferecendo diversos serviços, como criptografia simétrica, assimétrica, certificação digital e
hashing. O SSL faz parte do browser e do servidor Web, que utiliza a porta 443 para conexões
Web seguras, ao contrário da porta default 80.

Aplicação

SSL

Transporte

Rede

Enlace/Físico

Curso de TCP-IP Avançado 18 de 31


O SSL foi inicialmente desenvolvido pela Netscape e hoje é um padrão para a implementação de
segurança na Internet, sendo utilizado por diversas aplicações de comércio eletrônico, como no
exemplo de Internet Banking a seguir:

IDS (Intrusion Detection Systems)


A função de um sistema de detecção de intrusão (IDS - intrusion-detection system) é automatizar
a identificação de ataques e intrusões por hackers. Ainda que o uso de IDS seja cada vez mais
comum, também os ataques contra este tipo de sistema também se tornam mais comuns.

Modelos de IDS
Um IDS pode ser implantado de duas formas, individualmente ou combinadas:
• baseados no host: são sistemas que se prestam principalmente a monitorar os
ataques no nível do próprio computador. Em outras palavras, IDS baseados no
host detectam alterações no sistema de arquivos, nos arquivos de log e em
aplicativos em cada computador. Normalmente, um servidor de administração
central do IDS recebe atualizações de cada host conforme essas mudanças são
detectadas.

Curso de TCP-IP Avançado 19 de 31


• baseados na rede: são sistemas que normalmente inspecionam a rede no nível
dos pacotes, de forma similar a um sniffer. Isto permite que o IDS monitore todos
os dados que trafegam em uma rede e que detecte a atividade de hackers ao
comparar esses dados com um conjunto de regras. Desta forma, o IDS não precisa
interagir com cada um dos computadores na rede - apenas com aqueles que estão
interferindo nos pacotes de dados. Além disso, um IDS baseado na rede pode ter
diversos sistemas de log espalhados por toda a rede, monitorando todos os
segmentos de forma abrangente

Tipos de IDS
Os IDS podem variar desde sistemas corporativos complexos a até aplicativos comuns para o
desktop. Independentemente do nível de complexidade, todos os IDS compartilham características
de operação comuns. Os tipos de IDSs disponíveis e seus métodos de operação são:

Monitor de arquivos de Log


A forma mais simples de um IDS é o monitor de arquivos de log, que procura detectar
intrusões ao analisar os logs de eventos do sistema. Por exemplo, um monitor de arquivo
de log básico poderia varrer o log de acesso de um servidor web procurando por
requisições /cgi-bin/ específicas. A limitação desta tecnologia reside no fato de só
detectar eventos que tenham sido registrados no log - algo que os invasores podem
facilmente alterar. Além disso, um sistema desse tipo perderia eventos de baixo nível no
sistema, posto que o registro de eventos é uma operação de alto nível na hierarquia dos
sistemas operacionais.

Curso de TCP-IP Avançado 20 de 31


Amostra de um log gerado por um script de ataque em cgi-scan

127.0.0.1 - - [14/Aug/2002:09:48:14 -0400] [ccc]


"HEAD /cgi-bin/test-cgi HTTP/1.0" 404 0
127.0.0.1 - - [14/Aug/2002:09:48:14 -0400] [ccc]
"HEAD /cgi-bin/nph-test-cgi HTTP/1.0" 404 0
127.0.0.1 - - [14/Aug/2002:09:48:14 -0400] [ccc]
"HEAD /cgi-bin/phf HTTP/1.0" 404 0
127.0.0.1 - - [14/Aug/2002:09:48:14 -0400] [ccc]
"HEAD /cgi-bin/phf.pp HTTP/1.0" 404 0
127.0.0.1 - - [14/Aug/2002:09:48:14 -0400] [ccc]
"HEAD /cgi-bin/phf.cgi HTTP/1.0" 404 0
127.0.0.1 - - [14/Aug/2002:09:48:14 -0400] [ccc]
"HEAD /cgi-bin/websendmail HTTP/1.0" 404 0

Monitor de integridade
Um monitor de integridade acompanha mudanças em estruturas chave do sistema. Por
exemplo, um monitor de integridade básico utiliza arquivos do sistema ou chaves no
registro como "iscas" para rastrear mudanças efetuadas por um invasor. Ainda que sua
funcionalidade seja limitada, monitores de integridade adicionam uma camada extra de
proteção a outras formas de detecção de intrusão.

Entre os atributos que podem ser rastreados por um monitor de integridade temos:
- Adição, exclusão e modificação de arquivos
- Mudança nos atributos dos arquivos (ocultos, somente para leitura, arquivo etc.)
- Último acesso ao arquivo
- Última escrita ao arquivo
- Data de criação
- Tamanho do arquivo
- Verificação por Hash

Scanner de assinatura
Da mesma forma que os scanners de vírus tradicionais, a maioria dos IDS tenta detectar
os ataques com base em um banco de dados de assinaturas de ataques conhecidas.
Quando um hacker tenta um ataque conhecido, o IDS procura por um padrão coincidente
em seu banco de dados.

Um exemplo clássico de assinatura detectada por um IDS são os scripts CGI. As


ferramentas de um hacker normalmente incluem um scanner CGI que sonda o servidor
Web alvo por bugs conhecidos no CGI. Por exemplo, um ataque phf conhecido permite
que o atacante recupere qualquer arquivo ao invés do arquivo HTML adequado. Para
detectar um ataque phf, o IDS deve vasculhar os pacotes por um pedaço da string:

Curso de TCP-IP Avançado 21 de 31


GET /cgi-bin/phf?

Quando esta string é detectada, o IDS reage de acordo com as instruções pré-
programadas. Como se trata de um comando CGI básico, o nível de periculosidade deste
ataque é médio, quando muito. Entretanto, se o IDS encontrasse a string:

cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd

...e criasse um registro em seu log como:

GET /cgi-bin/phf?Qalias x%0a/bin/cat%20/etc/passwd HTTP/1.0" 200


267

...então o problema seria mais sério e o servidor está vulnerável. Verificando o arquivo de
log, é possível observar que a requisição phf foi bem sucedida (código 200), o que
significa que o hacker foi capaz de visualizar o conteúdo do arquivo passwd, que contém
as senhas do sistema.

Detetores de anomalias
A detecção de anomalias normalmente compreende o estabelecimento de uma curva
padrão de atividade da rede ou do sistema e de um aviso quando houver um desvio dessa
curva. Posto que o tráfego de rede está constantemente mudando, este tipo de IDS é mais
adequado para implementação baseada em host. A detecção de anomalias fornece alta
sensibilidade porém baixa especificidade, sendo mais útil em máquinas da rede que sejam
absolutamente críticas porém razoavelmente estáticas. Nesta situação, quando um detetor
de anomalias indica alguma mudança com relação à curva padrão de atividade, será
necessária a intervenção humana para investigar as razões. Assim sendo, esta alta
sensibilidade apresenta um alto custo em termos de necessidade de recursos humanos.

Ataques ao IDS
Entender as vulnerabilidades de um IDS e a forma como estas são exploradas é um meio de
garantir uma melhor implementação da segurança na rede do cliente.

Fragmentação
Fragmentação é a forma mais comum de ataque contra IDS. Os pacotes são divididos em
pedaços menores, o que pode enganar um IDS. Um IDS stateful pode recompor os
pacotes fragmentados para a análise porém, conforme aumenta o tráfego, esta operação
consome mais recursos e se torna menos precisa. Quando a técnica de fragmentação é
utilizada, firewalls e IDS normalmente vêem apenas o pacote parcial, o que não ativa
nenhum dos tipos de alarme

Spoofing (fingimento)
É possível forjar (spoof) o número de seqüência do protocolo TCP visto pelo IDS. Por
exemplo, enviando um pacote SYN com um número de seqüência forjado após o início
da conexão, o IDS pode sair de sincronia com o host. Isto acontece porque o host é capaz

Curso de TCP-IP Avançado 22 de 31


de ignorar o pacote SYN inesperado e incorreto, ao passo que o IDS pode se reconfigurar
para seguir o novo número de seqüência. Desta forma, o IDS ignora o fluxo de dados real
e fica esperando pacotes com um novo número de seqüência que não existe. Ao enviar
um pacote RST com um endereço forjado que corresponde ao SYN forjado pode
inclusive fechar esta nova conexão com o IDS.

Tipos de IDS

Mutação do HTTP
Requisições HTTP complexas podem freqüentemente enganar IDS que simplesmente verificam o
tráfego Web. Se um IDS está procurando pela vulnerabilidade phf conforme abaixo:

GET /cgi-bin/phf

é possível enganá-lo simplesmente adicionando dados extras à requisição:

GET /cgi-bin/subdirectory/../phf HTTP/1.0

Neste caso, foi solicitado um diretório qualquer e então utilizado o comando /../ para subir para o
diretório pai e então executar o script desejado. Esta técnica é chamada de "directory traversal", e
é atualmente uma das formas de ataque mais comuns.

O futuro dos IDS


A tecnologia para sobrepujar os IDS continua a evoluir. Os fornecedores de IDS devem manter a
evolução, preferencialmente estando sempre um passo a frente. Alguns dos avanços futuros são:

IDS incorporado
O protocolo IPSec em breve se tornará o padrão para a segurança da transmissão de
dados em rede. A implementação deste padrão permite que pacotes de uma determinada
empresa trafeguem por uma infra-estrutura não confiável como a Internet, ao mesmo
tempo que previne o roubo, a alteração ou mesmo a falsificação de dados por hackers.

Como o IPSec garante a conexão segura fim-a-fim e realiza a criptografia na camada de


rede, este processo se torna transparente para as aplicações que geram o tráfego IP.

Infelizmente para os IDS, o IPSec se torna uma faca de dois gumes: ainda que permita o
acesso seguro a redes corporativas através de VPNs, a criptografia dos pacotes impede a
ação de IDS que vasculham os dados por ataques maliciosos. Dessa forma, se um hacker
conseguir acesso a um cliente remoto, terá um túnel seguro através do qual poderá
acessar a rede corporativa.

A forma de prevenir quanto a esta possível brecha de segurança é introduzir IDS em


todos as camadas do TCP/IP. Dessa forma, o pacote será analisado conforme é
desencapsulado e processado, inclusive nas camadas mais altas.

Curso de TCP-IP Avançado 23 de 31


Detecção estrita de anomalias
Conforme a velocidade e a complexidade dos ataques aumentar, logo será atingida a
capacidade dos IDS atuais de lidar com a carga de análise necessária. Uma forma de
resolver este dilema consiste na adoção mais ampla de detecção estrita de anomalias. Isso
significa que qualquer comportamento fora do normal, não importando quão pequeno,
será considerado um alarme positivo e verdadeiro.

Obviamente, para que seja exeqüível, esse método requer que o IDS atue em cada um dos
hosts ao invés de na rede como um todo. Dessa forma, é possível traçar uma curva de
utilização normal para cada host, que certamente será mais previsível do que a da rede
como um todo. Regras específicas de exceção aceitável são configuradas para cada um
dos hosts e o IDS monitora o comportamento da mesma forma que o firewall monitora a
rede.

Quando uma anomalia for detectada, quer no nível da rede, quer no nível da aplicação,
um alerta é enviado para o console central. Este método apresenta uma alta sensibilidade
a ataques porém gera uma quantidade significativa de dados.

IDS baseado em host vs. IDS baseado na rede


O uso cada vez mais comum de redes comutadas se torna um empecilho para IDS que
realizam a análise passiva de protocolos. Desta forma, a monitoração simultânea de
diversos hosts fica mais difícil. Além disso, o uso crescente de tráfego criptografado
também prejudica a análise passiva. Desta forma, é possível antever uma tendência de
cada vez mais mover o IDS da rede para os próprios hosts.

4.5. Aplicações em banda larga


Voz sobre IP
Voz sobre IP (Voice over IP - VoIP) é um serviço que permite conversas telefônicas ou áudio-
conferências utilizando uma rede TCP/IP, como a Internet, em tempo real. A grande vantagem em
utilizar esse tipo serviço é a convergência de voz e dados e, conseqüentemente, a redução de
custo com ligações interurbanas e internacionais que podem ser realizadas pelo custo de uma
ligação local.

O primeiro passo para enviar voz por uma rede de pacotes, como a Internet, é converter a voz,
que é um sinal analógico, em uma informação digital. Esse processo é implementado por um
dispositivo chamado codec, que normalmente utiliza uma técnica conhecida como PCM (Pulse
Code Modulation).

Curso de TCP-IP Avançado 24 de 31


A técnica de PCM mostra o sinal analógico periodicamente (a cada 125 ms) e gera uma informação
de 8 bits. Os vários bytes gerados são agrupados em uma seqüência que é submetida a um algoritmo
de compressão, como ADPCM ou CS-ACELP. O processo de compressão é utilizado para reduzir o
tamanho da mensagem a ser enviada e, conseqüentemente, a necessidade de banda.

A seqüência compactada é então encapsulada no protocolo RTP (Real-time Transport Protocol),


que, por sua vez, é encapsulado no datagrama UDP e, por fim, no pacote IP. O pacote, ao chegar
ao destinatário, é desencapsulado e a seqüência de bytes é descompactada e convertida
novamente para um sinal analógico, ou seja, para voz.

Em 1996, o ITU (International Telecommunications Union) ratificou o padrão H.323, que define
como áudio e vídeo devem ser transmitidos em uma rede IP. Em 1998, o padrão foi atualizado. O
H.323 é na verdade uma família de padrões, sendo vários deles especificações de codecs de áudio
(G.711, G.722, G.723, G.728 e G729). A recomendação baseia-se nos protocolos RTP e RTCP
para o gerenciamento da conexão.

Curso de TCP-IP Avançado 25 de 31


O grande problema com a transmissão de voz e demais informações multimídia em uma rede de
pacotes é a qualidade da transmissão. Em uma rede de pacotes, é possível que os pacotes sofram
atrasos para chegar ao destino e que esses atrasos sejam variáveis (jitter). Além disso, é possível
que alguns pacotes sejam perdidos e nunca cheguem. Algumas aplicações, como o correio
eletrônico, são pouco afetadas por esses problemas, mas aplicações de áudio e vídeo podem ser
seriamente comprometidas.

Video-conferência
Vídeo-conferência é um serviço que permite a transmissão de vídeo e áudio entre dois ou mais
pontos em tempo real, utilizando câmeras, monitores, microfones e auto-falantes. Existem
inúmeras aplicações para serviços de vídeo-conferência, como reuniões, ensino à distância,
telemedicina, home office, aplicações jurídicas, laboratórios virtuais e segurança. A vídeo-
conferência reduz principalmente custos, como, por exemplo, o deslocamento e possível estadia
dos envolvidos nos encontros.

O número de participantes de uma vídeo-conferência pode variar. Na figura 1, temos um exemplo


de uma vídeo-conferência bidirecional entre duas pessoas apenas. Na figura 2, temos uma
conferência entre diversos participantes de ambos os lados. É possível termos também apenas uma
única pessoa em um dos lados da transmissão. No caso de conferências com vários participantes em
diversos pontos, utiliza-se a técnica de MCU (Multi-point Conferencing Unit) ou multi-casting.

Curso de TCP-IP Avançado 26 de 31


A vídeo-conferência com linhas privadas é um serviço bastante difundido. No entanto, o grande
desafio é implementá-lo utilizando uma rede de pacotes. Em uma rede de pacotes, como já
abordamos em VoIP, existem problemas de latência na entrega, jitter e perda de pacotes.

A especificação H.323 também é utilizada como padrão para a transmissão de vídeo-conferência


em redes TCP/IP. O H.323, além de definir diversos codecs para áudio, ofecere várias opções de
codificadores para vídeo, que permitem transformar as imagens (sinal analógico) em informação
digital. O padrão também define os conceitos de gatekeepers, gateways e MCUs.

Um gatekeeper H.323 controla os dispositivos envolvidos em uma vídeo-conferência e os


serviços oferecidos, como endereçamento, controle de admissão, gerência de banda, sinalização
etc. Gateways são responsáveis por conectar sistemas de vídeo-conferência que utilizem padrões
incompatíveis, como H.320 (ISDN) e H.321 (ATM).

Streaming
O áudio e vídeo-conferência são realizados em tempo real. Streaming consiste na possibilidade de
armazenar áudio e vídeo em servidores para, posteriormente, serem transmitidos. Por exemplo,
uma vídeo-conferência pode ser gravada e armazenada para depois ser reapresentada. O vídeo-
streaming pode ser amplamente utilizado para ensino à distância, permitindo que os alunos
possam assistir ou rever uma determinada aula sempre que desejarem.

Uma das características mais importantes em aplicações que utilizam streaming é a possibilidade
de a apresentação ser iniciada antes mesmo do término da transmissão. Por exemplo, quando um
usuário solicita um vídeo, o servidor envia apenas uma pequena seqüência (stream) do vídeo
compactado. Recebido o primeiro stream, o vídeo pode ser descompactado, enquando um
segundo stream está sendo recebido. Após a descompactação, o primeiro stream pode, então, ser
exibido, enquanto o segundo é descompactado e o terceiro recebido. Quando implementado
adequadamente, o streaming permite criar um fluxo contínuo de apresentação, mesmo que a
transmissão não seja contínua.

Curso de TCP-IP Avançado 27 de 31


Protocolo RTSP
O protocolo RTSP (Real-Time Streaming Protocol) permite a apresentação de conteúdo
multimídia em redes IP, utilizando o conceito de streaming. O protocolo tem como principal
função estabelecer e controlar a exibição de áudio e vídeo streaming entre servidores de
multimídia e clientes. O RTSP permite implementar funções semelhantes a de um vídeo cassete
ou CD, como iniciar e finalizar a transmissão, gravação, pausa e avanço rápido, funcionando
como um "controle remoto". Suas principais funções são:
- Permitir ao cliente obter apresentações multimídia de algum servidor de mídia;
- Permitir a criação e gravação de conferência com vários participantes;
- Permitir a inserção de novas mídias em apresentações em tempo real.

O RTSP é implementado na camada de aplicação e utiliza em geral o protocolo RTP (Real-Time


Protocol), que por sua vez pode utilizar como transporte o TCP ou UDP. A sintaxe e operação do
RTSP são muito parecidas com as do protocolo HTTP/1.1, como pode ser observado no exemplo
abaixo, onde uma URL RTSP é especificada:

rtsp://media.example.com:554/twister/audiotrack

Apesar das inúmeras semelhanças, os protocolos RTSP e HTTP guardam certas diferenças. Por
exemplo, enquando o HTTP não guarda o estado da conexão (stateless), o RTSP a mantém.
Enquanto no HTTP apenas o cliente realiza solicitações, no RTSP tanto o cliente quanto o
servidor podem realizar solicitações.

Uma mensagem de solicitação RTSP é formada por um método, pela URL que se deseja acessar e
pela versão do protocolo que está sendo utilizada pelo cliente.

Curso de TCP-IP Avançado 28 de 31


Solicitação = <Método> <URL> <Versão do RTSP>

Os métodos mais importantes são:

Método Descrição

OPTIONS Permite que clientes e servidores troquem informações sobre as opções que
podem ser aceitas.

SETUP Permite inicializar uma conexão RTSP.

PLAY Permite começar a transmissão, inicializada pelo SETUP.

PAUSE Permite parar a transmissão, sem liberar os recursos alocados.

TEARDOWN Permite encerrar uma transmissão liberando os recursos alocados.

RECORD Permite gravar uma transmissão.

4.5. Serviços de Gerenciamento


SNMP
O protocolo SNMP (Simple Network Management Protocol) permite o gerenciamento remoto de
dispositivos em rede, como roteadores, switches, servidores e impressoras. A partir desse
protocolo, é possível monitorar e gerenciar remotamente os diversos dispositivos, simplificando o
trabalho de administração da rede.

Para que um dispositivo possa ser gerenciado remotamente, é necessário que o dispositivo suporte
o protocolo SNMP, ou seja, execute um processo específico para essa função, conhecido como
agente. O agente tem a função de receber e processar comandos remotos, além de armazenar
localmente as informações relacionadas ao dispositivo.

Os agentes dos dispositivos comunicam-se com uma ou mais estações de gerenciamento, que
enviam comandos para os agentes e recebem as respectivas respostas. Uma estação de
gerenciamento é, geralmente, uma máquina dedicada para essa tarefa que processa um software
de gerência de rede, como o HP OpenView, IBM Tivoli NetView ou CA Unicenter.

O protocolo SNMP faz a ligação entre a estação de gerenciamento e os vários agentes, permitindo
que a estação faça uma consulta ao agente, ele processe o pedido e retorne uma resposta. É possível

Curso de TCP-IP Avançado 29 de 31


também que o agente comunique determinados eventos sem a solicitação da estação de
gerenciamento.

Cada dispositivo mantém uma base de dados local, onde são armazenadas as variáveis que
descrevem o estado atual do dispositivo e histórico previamente armazenado.

A base de dados onde são armazenadas as variáveis correspondentes ao dispositivo se chama


MIB (management information base). Como diferentes serviços de gerenciamento de rede são
utilizados para diferentes tipos de dispositivos e protocolos, cada serviço terá o seu próprio
conjunto de variáveis (também chamadas objetos).

As mensagens de requisição que o agente pode receber da estação de gerenciamento podem ser
dos seguintes tipos:
• Get: O comando Get solicita uma determinada informação do agente sobre o
dispositivo que representa.
• Set: O comando Set modifica o valor de uma determinada informação no agente
• GetNext: Similar ao comando Get, o comando GetNext traz o próximo valor na
ordem léxica da MIB. É útil para os casos onde o tamanho da tabela é
desconhecido.
• GetBulkj: Similar ao comando Get, o comando GetBulk traz todos os valores da
MIB do agente em particular.

Ao receber qualquer uma dessas requisições, o agente executará a função específica: localizar o
valor de um determinado objeto e enviá-lo à estação de gerenciamento ou ajustar o valor do
objeto conforme solicitado.

Além disso, o agente pode enviar à estação de gerenciamento uma mensagem de Trap quando um
evento significativo ocorrer com o dispositivo que representa.

Curso de TCP-IP Avançado 30 de 31


Uma mensagem de Trap pode ser enviada quando:
- uma porta ou módulo é ativado ou desativado
- limites de temperatura são ultrapassados
- há mudanças na topologia da rede e ocorrem falhas na autenticação

- ocorre um problema com a fonte de alimentação

Curso de TCP-IP Avançado 31 de 31

Você também pode gostar