..... .......


TERCEIRO ARTIGO - REDES DE COMPUTADORES E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS


..... .......

AN ENGLISH VERSION WILL BE AVAILABLE AS SOON AS I HAVE FREE TIME TO TRANSLATE THIS TECHNICAL ARTICLE.

..... .......

Abstract

This project synthetizes the basic issues related to private networks security, emboding the more usual kinds of attack and the main technics to defeat them: firewalls and cryptography. The first topic introduces the real threat originated from Internet growph, exposing the ways data can be represented through the network, and also lists five typical attacks. The second topic describes the layer oriented reference model for communication systems, comparing the seven-layers ISO/OSI model with the five-layers TCP/IP model (each layer corresponds to a set of familiar Internet protocols, most of them handled by firewalls). The third topic defines a firewall system, which includes the concepts of security policies and network security perimeter, exploring the most important features of each firewall generation (there’s a brief description of the four generations most used). The fourth, and last, topic concludes the project by explaining the cryptography principles, relating its two basic method, from which all the encryption systems are developed: symmetric encryption and public-key encryption.

..... .......

Resumo

Este projeto sintetiza as questões básicas relacionadas com a segurança de redes privadas, englobando os tipos de ataque mais comuns e as técnicas principais para anulá-los: os sistemas de parede corta-fogo e a criptografia. O primeiro tópico introduz o leitor a cerca da ameaça real originada a partir do crescimento da Internet, expondo as formas pelas quais os dados podem ser representados através da rede, além de listar cinco tipos de ataques típicos. O segundo tópico descreve o modelo para sistemas de comunicação orientado a camadas, comparando o modelo de sete camadas ISO/OSI com o modelo de cinco camadas do TCP/IP (cada camada corresponde a um conjunto de protocolos familiares que são usados na Internet, a maioria gerenciada pelos sistemas de parede corta-fogo). O terceiro tópico define um sistema de parede corta-fogo, o que inclui os conceitos de políticas de segurança e perímetro de segurança, explorando as características mais importantes de cada geração (há uma breve descrição das quatro gerações mais usadas). O quarto, e último, tópico conclui o projeto ao explicar os princípios da criptografia, relatando seus dois métodos básicos, a partir dos quais todos os sistemas de encriptação são desenvolvidos: criptografia simétrica e criptografia com chave pública.

..... .......

SEQÜÊNCIA DE IMAGENS NO FORMATO JPEG (SLIDES) - ILUSTRAÇÃO DOS CONCEITOS
Slide 001 ... Segurança em Redes Privadas - Redes Geograficamente Distribuídas
Slide 002 ... Segurança em Redes Privadas - Representação Física dos Dados
Slide 003 ... Segurança em Redes Privadas - Dados Transitando pela Rede
Slide 004 ... Segurança em Redes Privadas - Pacote de Rede x Quadro Físico (IEEE 802.3)
Slide 005 ... Segurança em Redes Privadas - Invasão Passiva x Invasão Ativa
Slide 006 ... Segurança em Redes Privadas - Técnicas de Invasão Passiva Mais Usais
Slide 007 ... Segurança em Redes Privadas - Sondagem de Pacotes de Rede ("Network Packet Sniffers")
Slide 008 ... Segurança em Redes Privadas - Distribuição de Dados Sensíveis entre Fontes Externas
Slide 009 ... Segurança em Redes Privadas - Sondagem em Pontos de Interconexão Intermediários
Slide 010 ... Segurança em Redes Privadas - Técnicas de Invasão Ativa mais Usuais
Slide 011 ... Segurança em Redes Privadas - Burla de Endereço IP
Slide 012 ...
Slide 013 ...
Slide 014 ...
Slide 015 ...
Slide 016 ...
Slide 017 ...
Slide 018 ...
Slide 019 ...
Slide 020 ...
Slide 021 ...
Slide 022 ...
Slide 023 ...
Slide 024 ...
Slide 025 ...
Slide 026 ...
Slide 027 ...
Slide 028 ...
Slide 029 ...
Slide 030 ...
Slide 031 ...
Slide 032 ...
Slide 033 ...
Slide 034 ...
Slide 035 ...
Slide 036 ...
Slide 037 ...
Slide 038 ...
Slide 039 ...
Slide 040 ...
Slide 041 ...
Slide 042 ...
Slide 043 ...
Slide 044 ...
Slide 045 ...
Slide 046 ...
Slide 047 ...
Slide 048 ...
Slide 049 ...
Slide 050 ...
Slide 051 ...
Slide 052 ...
Slide 053 ...
Slide 054 ...
Slide 055 ...

..... .......

1. Introdução

Com a popularização do acesso à Internet nas empresas, processo iniciado em meados da década de 1990, a questão da segurança passou a ser tratada com mais critério pelos administradores de sistemas (é deles a responsabilidade maior de preservar a integridade dos dados corporativos). Se antes já era relativamente difícil manter a situação sob controle, há de se convir que com as “portas abertas” para um ambiente hostil, repleto de pessoas mal intencionadas, o problema tende a se agravar. Hoje, os projetistas gastam mais tempo para definir políticas de segurança e estabelecer mecanismos de proteção para as redes privadas, e mesmo assim há um certo grau de risco.

Quando uma rede privada é ligada à Internet, que abrange cerca de um milhão de redes (estimativa em 1997) [Comer 98] com todos os seus usuários e recursos, uma série de novos serviços são agregados, o que é muito bom em termos de produtividade. Por outro lado, ao mesmo tempo que diversifica as atividades do grupo ao disponibilizar novas ferramentas, além de facilitar o compartilhamento das informações, a Internet traz consigo o risco de acessos não autorizados por parte de estranhos.

De fato, este tipo de problema é cada vez mais comum, e pode acontecer até mesmo dentro da própria rede corporativa, a partir de alguma falha na administração. Como ponto de partida, temos uma pergunta-chave que dá início a formulação das políticas de segurança: O que deve ser feito para proteger os dados, isolando-os de eventuais ataques? O termo “ataque”, neste contexto, abrange qualquer tentativa de roubo, destruição, corrupção ou alteração dos dados, visando sabotagem de qualquer natureza.

..... .......

1.1. Técnicas Mais Usadas para a Invasão de Sistemas

Quando se comunicam, os computadores que estão ligados a uma rede local quebram a informação em pequenas unidades, ou pacotes, que são transmitidas em série através do canal até o receptor, para então serem reagrupadas. Esta técnica é necessária em virtude da limitação de memória (“buffer”) que é usada em cada interface física de rede, nos processos de transmissão e recepção, e de outras características relacionadas com a política de alocação de recursos adotada pelo protocolo de comunicação. A princípio, esses pacotes são enviados sem qualquer tipo de encriptação, isto é, os dados são encapsulados em um datagrama (representação lógica do pacote, expresso em uma seqüência ordenada de bits) que segue um padrão aberto, podendo ser facilmente identificado nos casos de interceptação - os dados até poderiam estar codificados, mas a nível de aplicação. Percebe-se aqui a potencial vulnerabilidade dos sistemas de comunicação, já que boa parte das técnicas de invasão baseia-se nesta característica.

Os dados confidenciais poderão estar fisicamente representados na estrutura da rede corporativa de duas maneiras: residindo em dispositivos de armazenamento primário ou secundário, como memória e unidades de disco rígido, ou em trânsito pelo canal de comunicação, na forma de pacotes. Esses dois estados apresentam múltiplas possibilidades de ataques internos e externos, mas agora vamos nos concentrar na segunda categoria, que engloba os ataques provenientes de usuários que invadem a rede privada através da Internet. As cinco técnicas mais usadas são a Sondagem de Pacotes de Rede (“Network Packet Sniffers”), Simulação de Endereço IP de Origem (“IP Spoofing”), Ataques sobre Senhas (“Password Attacks”), Distribuição de Dados Sensíveis para Fontes Externas (“Distribution of Sensitive Internal Information to External Sources”), Sondagem em Pontos de Interconexão Intermediários (“Man-in-the-Middle Attacks”), Ataques a Nível de Aplicação (“Application Layer Attacks”) e ataques a partir de Recusa de Sistema (“Denial-of-Service Attacks”).

..... .......

1.1.1. Sodagem de Pacotes de Rede (“Network Packet Sniffers”)

O protocolo de comunicação determina como os pacotes são identificados e rotulados, de modo que o computador de destino possa verificar sua autenticidade, isto é, se aquele grupo de pacotes realmente foi endereçado para ele; o grande problema é que a especificação do TCP/IP está amplamente publicada na literatura e na própria Internet, e qualquer pessoa com conhecimentos em redes locais e desenvolvimento de sistemas é capaz de escrever um programa para sondar o conteúdo dos pacotes. Tais programas, chamados de Farejadores de Pacotes (“Packet Sniffers”), capturam todo o conteúdo que é recebido pela interface de rede, de modo a serem posteriormente processados (muitos protocolos da camada de Enlace, como o Ethernet e suas variações, operam com difusão de quadros). Pior, hoje em dia é comum encontrar este tipo de programa em vários sítios eletrônicos para distribuição de “freeware”, facilitando a vida dos invasores que não têm o perfil de desenvolvedor.

Mas, afinal de contas, quais informações poderiam ser interceptadas pelos Farejadores? Por exemplo, em redes baseadas na plataforma NT (Microsoft) os pacotes são transmitidos na forma de texto puro (ASCII), e dados como o nome de login e a senha dos usuários - que costumam ser usados como recursos de validação em várias aplicações comerciais - viajam pelo canal sem qualquer proteção. Poderíamos ter ainda um SGBD (Sistema Gerenciador de Banco de Dados) constituindo a base de toda a empresa, com tabelas do departamento Financeiro, Diretoria ou até mesmo da Presidência, o que claramente caracteriza informação confidencial. Também é comum que administradores de sistema, por trabalharem com Farejadores para diagnosticar e corrigir problemas na rede, possam agir de má fé, sabotando dados importantes. Os “hackers” que violam as informações de um sistema conhecem as características do usuário, fazendo uso deste conhecimento (o que chamamos de Engenharia Social de Ataque), e sabem que a grande maioria das pessoas costuma empregar a mesma senha para diferentes contas de acesso (muitas vezes, a mesma senha que utilizam em cartões de banco), e quase sempre óbvias, com a própria data de nascimento ou até mesmo nomes de parentes ou de animais de estimação.

..... .......

1.1.2. Simulação de Endereço IP de Origem (“IP Spoofing”)

Neste tipo de ataque o invasor se faz passar por um elemento confiável, substituindo seu endereço IP de origem por um que esteja dentro da faixa de endereços alocados para a rede privada (ou subrede, quando o invasor é um funcionário da empresa), ou de outra fonte externa conhecida que tenha acesso aos seus recursos (ex.: usuários de uma filial consultando a base de dados disponibilizada na matriz). O computador do invasor é interpretado pelo sistema como se fosse mais um ponto da rede privada, seja local ou não. Geralmente este tipo de ataque é limitado ao acréscimo de dados ou comandos a um fluxo já existente entre a aplicação cliente e o servidor, ou para estabelecer uma conexão de rede ponto-a-ponto (uma possível abordagem seria sabotar o sistema para o envio não autorizado de correio eletrônico com informações sigilosas).

..... .......

1.1.3. Ataques sobre Senhas (“Password Attacks”)

Os ataques para identificação de senhas são quase sempre executados com a ajuda de programas que utilizam a técnica de tentativa-e-erro sucessivas vezes, de forma automática, a partir de cobinações definidas com base nas seqüências mais usadas (este tipo de ataque também é conhecido como ataque de “força bruta”). O invasor tem acesso aos recursos quando o programa acerta a seqüência definida para a senha e nome de login, com os mesmos direitos de acesso do usuário. Uma situação pior ocorre quando o usuário tem direitos exclusivos de administrador, já que neste caso pode ser criada uma “backdoor” (porta dos fundos) para novos ataques, como por exemplo a criação de uma conta não-autorizada.

..... .......

1.1.4. Distribuição de Dados Sensíveis para Fontes Externas (“Distribution of Sensitive Internal Information to External Sources”)

Controlar a distribuição de dados sensíveis é a primeira etapa para se chegar a uma boa conduta de segurança. Funcionários podem, eventualmente, vender informações confidenciais para empresas concorrentes, ou gerar falhas de segurança a partir de um simples compartilhamento de disco. Uma boa política restringe de forma adequada o acesso à informação e os meios de transmiti-la dentro ou fora da rede privada, para evitar uma situação comprometedora. Um exemplo simples: determinado usuário poderia copiar para um servidor de FTP remoto (não confiável) dados importantes, mesmo sem a intenção de prejudicar a empresa para a qual trabalha, dados esses que poderiam ser interceptados por estranhos.

..... .......

1.1.5. Sondagem em Pontos de Interconexão Intermediários (“Man-in-the-Middle Attacks”)

Para efetuar este tipo de ataque, o invasor deve atuar em um ponto intermediário entre o usuário que está acessando os recursos e a rede externa, como por exemplo o funcionário que trabalha no provedor de acesso à Internet (muitos provedores comerciais definem cláusulas de segurança no contrato de prestação de serviços, mas do ponto de vista técnico este tipo de situação é possível). Tais ataques costumam ser implementados com a ajuda de Farejadores de Pacotes e protocolos de transporte e roteamento. O invasor poderia se aproveitar de uma sessão em andamento para obter, por exemplo, o nome de login e a senha do usuário.

..... .......

1.1.6. Ataques a Nível de Aplicação (“Application Layer Attacks”)

Ataques a nível de aplicação podem ser implementados usando vários métodos, o mais comum é explorar falhas encontradas em programas que são carregados no servidor, como o Sendmail, o PostScript e o FTP (os invasores ganham acesso aos recursos da rede com as mesmas permissões do usuário que faz a chamada e gerencia tais aplicações, ou seja, o administrador). Outro método muito comum é a técnica de se escrever um programa que simula condições regulares do sistema, chamado de Cavalo de Tróia (“Trojan Horse”), agregando funções e rotinas específicas para a invasão e ou destruição de dados.

Um Cavalo de Tróia poderia, por exemplo, substituir a seqüência de validação do usuário, objetivando capturar o nome de login e a senha de modo a enviá-los, posteriormente, para o invasor (poderia fazê-lo através de correio-eletrônico). O usuário, a princípio, não percebe que está sendo monitorado pelo Cavalo de Tróia, porque o mesmo faz chamada às rotinas normais do sistema depois de cumprir sua função.

Nos sistemas modernos, as técnicas mais usadas tiram proveito das facilidades proporcionadas pela especificação do HTML (“Hyper Text Markup Language”) e do HTTP (“Hyper Text Transfer Protocol”), através de programas maliciosos desenvolvidos em Java Script ou a partir de controles do ActiveX que, ao serem carregados em navegadores como o Netscape Communicator e o Internet Explorer, executam operações de acesso não autorizado aos recursos do computador (neste caso, é o próprio usuário que faz chamada ao Cavalo de Tróia quando acessa a página HTML com o código).

..... .......

1.1.7. Recusa de Sistema (“Denial-of-Service Attacks”)

Neste tipo de ataque, o invasor (ou grupo de invasores) sobrecarrega o sistema-alvo com um número muito grande de solicitações, tirando proveito de alguma restrição do sistema operacional, aplicação ou até mesmo da própria rede, com o objetivo específico de “derrubar o servidor” (isto é, impossibilitar que os usuários tenham acesso aos recursos). Quando este tipo de ataque envolve aplicações de rede, como o HTTP ou o FTP, tal objetivo pode ser atingido alocando-se todas as conexões suportadas, o que efetivamente bloqueia qualquer tentativa do usuário de acessar tais recursos. O invasor também pode se valer de fragilidades encontradas em protocolos usados na Internet, como o ICMP, sobrecarregando o canal com pacotes desnecessários, ou ainda fornecendo informações falsas sobre o estado da rede.

..... .......

2. Considerações sobre a pilha de protocolos TCP/IP

Um protocolo de rede, ou protocolo de comunicação, engloba determinado conjunto de regras estabelecidas para viabilizar a troca de dados entre computadores, ou nós, através de um enlace físico. Pela definição, percebe-se que o protocolo é responsável pelas diretrizes básicas de comunicação, exercendo papel equivalente ao da língua para as pessoas; analogamente, como não é possível estabelecer um diálogo entre duas pessoas que não falam o mesmo idioma, também não é possível intercambiar dados entre computadores que utilizam protocolos diferentes. Logo, em uma mesma rede de computadores todos os nós devem adotar o mesmo protocolo, isto é, utilizar regras de comunicação equivalentes. O TCP/IP existe para permitir que não só os computadores (identificados pelo termo “host”) de uma mesma rede possam se comunicar, como também para tornar possível a comunicação inter-redes, ou seja, fazer com que computadores de redes distintas possam se “falar”.

Os problemas inerentes ao projeto de um protocolo já são difíceis de solucionar quando tratamos de uma única rede; ao passar para um escopo mais amplo, o que inclui várias redes de computadores e, conseqüentemente, muitas tecnologias, o trabalho passa a ser extremamente complexo. A melhor estratégia para resolver um problema muito grande é quebrá-lo em partes menores, que possam ser analisadas individualmente até atingirmos o resultado final (“dividir para conquistar”). Desta forma, a ISO (“International Standardization Organization” - Organização para Padronização Internacional), estabeleceu um modelo de referência baseado em sete camadas - Física (1), Enlace (2), Rede (3), Transporte (4), Sessão (5), Apresentação (6) e Aplicação (7) - que tratam, uma a uma, de aspectos correlacionados: o OSI (“Open Systems Internconnection” - Modelo de Referência para a Interconexão de Sistemas Abertos) [Soares 97]. A mensagem a ser transmitida pelo usuário viaja pelas sete camadas, partindo da camada de nível superior (“Aplicação”) até atingir a camada de nível um (“Física”); quando a mensagem chega no destino ela faz o caminho inverso, até a camada de nível sete.

A pilha de protocolos TCP/IP divide os sistemas de comunicação em quatro camadas conceituais que foram construídas sobre uma primeira camada de nível físico (os trabalhos de pesquisa que levaram ao desenvolvimento do TCP/IP não se basearam no ISO/OSI) - Interface de Rede (2), Inter-Rede (3), Transporte (4) e Aplicação (5). Cada camada corresponde a um grupo de protocolos, como o IP e o ICMP (“Inter-Rede”), o UDP e o TCP (“Transporte”), e os demais protocolos da camada de Aplicação. Uma vez mais, vale lembrar que múltiplos protocolos são usados para o tratamento das diversas tarefas envolvidas com o processo de transmissão/recepção de mensagens; similarmante às etapas empregadas na tradução de sistemas em desenvolvimento, onde temos um compilador (“compiler”), montador (“assembler”), editor de vínculos (“link editor”) e carregador (“loader”), também nos sistemas de comunicação se faz necessário especificar as interfaces entre os quatro módulos (camadas), ou seja, temos uma seqüência linear bem definida. O formato dos dados que trafegam da camada de Aplicação para a camada de Transporte, durante a transmissão da mensagem, será o mesmo aplicado nos dados que irão trafegar da camada de Transporte para a camada de Aplicação, durante a recepção da mensagem.

Excetuando-se os módulos da camada de Aplicação, o restante da pilha de protocolos, ou pilha de rede, é implementada no núcleo do sistema operacional (“kernel”); conseqüentemente, passar dados entre as camadas inferiores do sistema de comunicação é muito mais complexo do que entre programas aplicativos e a camada de Transporte. Outra observação importante é que a camada de Interface de Rede lida diretamente com endereços físicos (ex.: “MAC addresses”), ou seja, ela é responsável pela trasmissão de datagramas IP através de uma rede com tecnologia específica, baseada em padrões como o Ethernet ou o Token Ring.

..... .......

3. Paredes corta-fogo (“firewalls”)

Um sistema de parede corta-fogo, ou “firewalls”, atua como um portal de rede cuja finalidade é garantir que a comunicação ponto-a-ponto entre hosts localizados em segmentos distintos respeite determinadas regras que estão agrupadas no que chamamos de política de segurança para a rede privada (o sistema de parede corta-fogo analisa cada pacote de rede individualmente, de modo a bloquear qualquer tentativa de invasão).

Observação: Antigamente, nos EUA, paredes de tijolos eram usadas como forma de proteção contra incêndios; elas eram construídas entre os apartamentos de um condomínio e, devido ao papel exercido, eram chamadas de “firewalls” (adaptando para o português, parede corta-fogo). Analogamente, o termo “firewall” passou a ser adotado pela indústria para designar os sistemas de proteção que são usados como barreira entre duas redes, isolando a rede interna das ameaças provenientes do mundo exterior.

Ao se definir a política de segurança que será aplicada na rede privada, é necessário estabelecer procedimentos de modo a salvaguardá-la de ataques, protegendo seus dados e usuários contra perdas e danos. A partir deste ponto de vista, a política de segurança adotada especificamente na rede privada exerce um papel fundamental quando analisamos a organização como um todo, reforçando a própria política de segurança da empresa. O tráfego de dados e a alocação de recursos passam a ser controlados, identificando não só os componentes da rede como também seus pontos vulneráveis, de forma a isolar possíveis ameaças, além de especificar as medidas a serem tomadas (planos de ação) caso a política de segurança seja violada.

Um sistema de parede corta-fogo, portanto, caracteriza-se por oferecer um ponto central de defesa entre duas redes - geralmente a Internet e uma rede privada - de modo a bloquear possíveis ataques externos. Os sistemas de parede corta-fogo podem ser implementados no próprio roteador que atua como interface física de interconexão, a partir de filtros de pacotes, ou através de uma estratégia mais complexa, agrupando vários roteadores associados à procuradores (“proxies”), sistemas que atuam na camada de aplicação.

..... .......

3.1. Histórico

A tecnologia empregada nos sistemas de parede corta-fogo evolui a passos largos, a medida que a demanda por segurança aumenta novos aprimoramentos são desenvolvidos pela indústria, facilitando a vida dos administradores de sistema. A primeira geração surgiu por volta de 1985, com o advento dos roteadores que empregam filtros de pacotes, mas sua especificação formal só foi publicada em 1988 por Jeff Mogul (Digital Equipments) [Cisco].

A segunda geração, os sistemas de parede corta-fogo que atuam a nível de circuito, foi elaborada por Dave Presotto e Howard Trickey (ambos dos Laboratórios Bell - AT&T) no período de 1989-1990 [Cisco]. Eles chegaram a trabalhar, posteriormente, em uma terceira geração da tecnologia, que atua a nível de aplicação, mas não publicaram nenhum documento descrevendo suas características e nem lançaram um produto no mercado baseado em seus estudos.

Na prática, a terceira geração foi desenvolvida por várias pessoas no decorrer da década de 1990, com destaque para Gene Spafford (Universidade de Purdue), Bill Cheswick (Laboratórios Bell - AT&T) e Marcus Ranum, que descreveu os sistemas de parede corta-fogo que atuam a nível de aplicação (procuradores) no período de 1990-1991 (seu trabalho resultou no primeiro produto lançado no mercado pela Digital Equipments) [Cisco].

Por volta de 1991, Bill Cheswick e Steve Bellovin (este último também dos Laboratórios Bell - AT&T) iniciaram as pesquisas no desenvolvimento de um filtro de pacotes dinâmico, a quarta geração dos sistemas de parede corta-fogo, participando do projeto de um novo produto a ser lançado pela Bell, que não chegou a ser concluído. Em 1992, Bob Braden e Annette DeSchon (Instituto de Ciências da Informação da Universidade de Santa Clara) engendraram novas pesquisas, que resultaram no primeiro produto comercial baseado na quarta geração, lançado pela Check Point Software [Cisco].

..... .......

3.2. Perímetro de Segurança

Quando implementamos uma política de segurança para a rede privada, estamos na verdade fortalecendo pontos estratégicos que fazem parte do que podemos chamar de limites fronteiriços (como pontos de interconexão); esses pontos estratégicos constituem o perímetro da rede. Na verdade, podemos ter vários perímetros de rede - segmentos da rede privada -, cada um agrupando um determinado número de hosts que demandam um certo nível de proteção, e que devem se comunicar com os demais perímetros através de um ponto central: o sistema de parede corta-fogo.

Os perímetros são classificados de acordo com o seu posicionamento relativo: o perímetro de rede mais externo identifica o ponto de separação entre os recursos que estão sob o controle do administrador de sistema e a rede externa - geralmente um roteador que interliga a rede privada a um provedor de acesso à Internet -, os perímetros internos representam pontos intermediários onde mecanismos de segurança são posicionados de acordo com a estrutura de segurança. Na prática, para os usuários externos o sistema de parede corta-fogo representa todos os recursos que pertencem à rede confiável, definindo um ponto de foco pelo qual todo tráfego deverá passar.

..... .......

3.3. Redes Confiáveis, Redes Não-Confiáveis e Redes Desconhecidas

Redes confiáveis são as redes que estão localizadas dentro do perímetro de segurança, ou seja, justamente aquelas que demandam proteção, estando aos cuidados do administrador de sistemas. Quando um sistema de parede corta-fogo é configurado pela primeira vez, é necessário identificar de forma explícita os tipos de rede que irão se comunicar com o mesmo através das interfaces físicas; depois deste processo inicial, as redes confiáveis englobam o sistema de parede corta-fogo e todos os segmentos de rede protegidos.

Observação: As redes virtuais privadas (VPNs - “Virtual Private Networks”), mesmo transmitindo dados através da infraestrutura de uma rede não confiável, também podem ser classificadas como redes confiáveis. Seus pacotes se originam a partir do perímetro de segurança, e mecanismos são adotados de modo que o sistema de parede cortafogo possa validar a autenticidade da origem.

Já as redes não-confiáveis, como o próprio nome sugere, são aquelas redes que não estão sob o controle do administrador de sistemas, localizadas fora do perímetro de segurança. Em outras palavras, compreendem as redes externas com as quais é necessário se estabelecer um canal de comunicação sem que, para isso, a segurança deva ser comprometida. Assim como no caso das redes confiáveis, também é necessário identificá-las de forma explícita quando o sistema de parede corta-fogo é configurado pela primeira vez, definindo quem poderá ter acesso aos recursos situados dentro do perímetro de segurança.

As redes não identificadas no sistema de parede corta-fogo como redes confiáveis ou redes não-confiáveis são chamadas de redes desconhecidas, abrangendo todas as redes externas ao perímetro de segurança que não se comunicam diretamente com a rede privada (por padrão, toda rede não-confiável é considerada, a princípio, uma rede desconhecida). A Tabela a seguir descreve as designações aplicadas para cada segmento de rede que constitui o perímetro de segurança.

..... .......

Segmentos do Perímetro de Segurança
Redes Comuns Designação Descrição
Perímetro mais interno. Confiável. Protege os recursos mais internos, anterior aos demais perímetros de rede.
Perímetros de rede internos. Confiável. Perímetros de rede intermediários, anteriores ao sistema de parede corta-fogo.
Perímetro de rede mais externo. Confiável, embora sujeito a ataques. O perímetro de rede que está localizado entre o roteador mais externo (que atua como ponte de comunicação com a Internet) e o sistema de parede cortafogo.
Redes externas identificadas. Não-confiável. Acesso restrito aos recursos internos para usuários autorizados.
Redes externas nãoidentificadas. Desconhecida. O sistema não reconhece.

..... .......

3.4. Soluções Existentes

Duas questões principais devem ser analisadas ao se escolher uma estratégia de implementação a partir dos sistemas de parede corta-fogo existentes: segurança e desempenho. Um nível de segurança mais acentuado compromete o desempenho geral, visto que os pacotes trafegam até as camadas superiores da pilha de rede, onde serão inspecionados com mais critério. Logo, os sistemas de parede corta-fogo que atuam a nível de aplicação são considerados mais seguros do que as demais tecnologias; porém, em contrapartida, esta arquitetura é também a de operação mais lenta, efetuando um número de verificações bem superior.

..... .......

1.ª Geração (“Packet Filter Firewalls”)
Sistemas de Parede Corta-Fogo Baseados em Filtros de Pacotes - Camadas de Inter-Rede e Transporte

Os filtros de pacotes são a primeira geração de sistemas de parede corta-fogo, atuando ao nível da camada de Transporte, a partir da análise do conteúdo de quadros que estão encapsulados no campo de dados dos pacotes IP (TCP, UDP ou ICMP). Cada pacote IP é examinado de modo a verificar se o conteúdo encontrado em seu cabeçalho e no cabeçalho do quadro TCP, UDP ou ICMP obedece às regras estabelecidas pela política de segurança, regras essas que têm por finalidade determinar que tipo de comunicação é permitida, baseando-se no sentido do fluxo (da rede externa para a rede interna e vice-versa). Os filtros de pacotes nos permitem manipular a transferência de dados baseando-se nos seguintes critérios:

Os filtros de pacotes não interpretam os protocolos do nível de aplicação que são usados nos pacotes, ao invés disso eles operam a partir de um conjunto de regras que está mantido no núcleo do TCP/IP, contendo uma ação associada que será aplicada em qualquer pacote que não atenda às regras definidas a partir dos critérios listados acima. A ação tomada seguirá um dos dois valores possíveis para o pacote que está em trânsito: recusado ou permitido.

Duas listas são mantidas no núcleo do TCP/IP, uma para pacotes que devem ser recusados e outra para pacotes permitidos; um pacote de rede só poderá ser roteado para o seu destino após passar pelas duas listas, isto é, ele não deve ser recusado e deve ser permitido. Alguns filtros de pacotes que estão incorporados no hardware dos roteadores implementam uma política diferente, o pacote deve ser recusado ou então ele é permitido (para se entender as regras de filtragem, é necessário conhecer o critério de segurança adotada pelo hardware).

Filtros de pacotes implementam um conjunto de comandos para a verificação das portas de origem e de destino identificadas nos cabeçalhos dos quadros TCP ou UDP, checando a existência de uma regra aplicável para a combinação encontrada (tipo de protocolo + porta específica). Entretanto, uma vez que o ICMP não utiliza números de porta durante o processo de comunicação fica mais difícil para o filtro de pacotes aplicar uma política de segurança para este tipo de tráfego; para tal, é necessário manter tabelas de estado de modo a assegurar que as respostas dos pacotes ICMP foram, de fato, requisitadas por um “host interno” (esta capacidade de monitorar o estado das comunicações é uma das diferenças primárias entre os filtros de pacotes simples e os filtros de pacotes dinâmicos).

A inspeção completa dos pacotes de rede segue o seguinte algoritmo geral:

  1. Se nehuma regra aplicável é encontrada, então o pacote é descartado.
  2. Se uma regra aplicável que permita a comunicação é encontrada, o pacote é liberado.
  3. Se uma regra aplicável que bloqueie a comunicação é encontrada, o pacote é descartado.

Uma vez que este tipo de sistema não verifica os pacotes a nível de aplicação, e nem monitora o estado das conexões, de todas as tecnologias desenvolvidas para os sistemas de parede corta-fogo esta é a menos segura; por outro lado, justamente por requerer menos tempo de processamento, além de quase sempre ser implementada em hardware (roteadores IP), é também a mais rápida. Outra característica dos filtros de pacotes é o processo de alterar os endereços IP de origem dos pacotes que são roteados para as redes externas (NAT - “Network Address Translation”), fazendo-os parecer procedentes do próprio sistema de parede cortafogo - a tradução de endereços IP oculta a topologia e o esquema de endereçamento adotados na rede privada.

..... .......

2.ª Geração (“Circuit Level Firewalls”)
Sistemas de Parede Corta-Fogo que Atuam a Nível de Circuito - Camadas de Inter-Rede e Transporte

Segunda geração da tecnologia, os sistemas de parede corta-fogo que atuam a nível de circuito baseiam-se no fato de que o pacote analisado ou procede de uma requisição para se estabelecer conexão ou carrega dados de uma conexão já iniciada, o que chamamos de circuito virtual. O termo circuito virtual é usado para descrever essas conexões porque, embora os programas aplicativos considerem a conexão um circuito de hardware dedicado, a confiabilidade é uma ilusão proporcionada pelo serviço de transmissão de “streams” [Tanembaum 96].

Observação: Os pares atuando ao nível da camada de transporte, através do TCP. 4 Existem duas definições para circuito virtual: uma relativa ao tipo de serviço, outra ao encaminhamento de pacotes. No primeiro caso, o serviço de circuito virtual é um outro nome que se dá ao serviço com conexão. A nível de encaminhamento de pacotes, uma conexão de circuito virtual é aquela em que todos os pacotes seguem a mesma rota determinada durante a abertura da conexão. Note que podemos ter um serviço de circuito virtual implementado ou não em uma conexão de circuito virtual [Soares 97].

Para validar uma sessão, o sistema de parede corta-fogo examina cada processo ativo para se estabelecer uma determinada conexão, deste modo é possível assegurar que o mesmo segue um procedimento de negociação (“handshake”) legítimo para o protocolo de transporte que está sendo empregado. Ademais, os pacotes de dados não são encaminhados até o término do procedimento de negociação.

O sistema de parede corta-fogo mantém uma tabela de conexões válidas (o que inclui informações de seqüenciamento e referentes ao estado das sessões), liberando os pacotes quando as informações coletadas coincidem com uma das entradas cadastradas na tabela de circuitos virtuais; quando a conexão é finalizada, a entrada correspondente é removida e o circuito virtual estabelecido entre os pares da camada de transporte é fechado. Quando um processo para o estabelecimento de determinada conexão está ativo, o sistema de parede corta- fogo armazena as seguintes informações a cerca da conexão:

A partir dessas informações, o sistema verifica se o computador de origem tem permissão para transmitir e se o computador destino tem permissão para receber o pacote que está sendo examinado. Os sistemas de parede corta-fogo que atuam a nível de circuito também são limitados no que diz respeito aos tipos de protocolos com os quais eles são capazes de lidar, restringindo sua operação na camada de transporte, ou seja, operam sobre o TCP (similarmente aos filtros de pacotes, esses sistemas trabalham a partir de um conjunto de regras mantido no núcleo do TCP/IP). Os pacotes também são reendereçados antes de serem encaminhados para a rede externa, usando a tradução de endereços de rede (NAT), o que os faz parecer procedentes do sistema de parede corta-fogo ao invés dos hosts internos (como o sistema mantém informações sobre cada sessão, é possível mapear as repostas para os hosts internos da forma adequada).

Quando um pacote solicitando a abertura de uma nova conexão é recebido pelo sistema de parede corta-fogo, este último determina, a partir das regras definidas na política de segurança, se o processo pode realmente ser iniciado. Todos os demais pacotes associados a esta conexão são encaminhados pelo sistema, seguindo sua tabela de roteamento, sem verificações adicionais de modo a não comprometer o desempenho (verificações adicionais até podem ser aplicadas para identificar eventuais tentativas de invasão, a partir da simulação de endereços IP, além de checar se o conteúdo dos cabeçalhos TCP segue as definições para este protocolo.

..... .......

3.ª Geração (“Application Level Firewalls”)
Sistemas de Parede Corta-Fogo que Atuam a Nível de Aplicação - Camadas de Inter-Rede, Transporte e Aplicação

Os sistemas de parede corta-fogo que atuam a nível de aplicação examinam os dados obtidos a partir dos pacotes de rede, mantendo registro das informações de seqüenciamento e referentes ao estado das conexões; outros itens de segurança que só podem aparecer na camada de aplicação, como senhas de usuário e requisição para serviços, também podem ser vali- dados. Este tipo de sistema inclui aplicações especializadas, os procuradores (“proxies”), programas que têm por finalidade gerenciar o tráfego de protocolos específicos, como o HTTP ou o FTP, provendo melhor controle de acesso, validação dos dados (cuidadosamente detalhada) e geração de registros para auditoria. Os procuradores também podem executar funções adicionais, como alteração dos dados interceptados, autenticação, validação de usuário, filtragem de URL e cache para objetos transferidos através do HTTP.

Observação: O computador onde reside o sistema de parede corta-fogo que atua a nível de aplicação é chamado de bastião (“bastion host”), termo usado para identificar as saliências existentes em muralhas de fortificações (essas saliências existem para facilitar o trabalho dos soldados que cuidam da vigilância, por oferecerem melhor campo de visão).

O procurador, para operar adequadamente, requer dois componentes que costumam ser implementados em um único módulo executável: o servidor (“proxy server”) e o cliente (“proxy client”). O servidor administra todas as requisições de conexão originadas na rede confiável, isto é, toda a comunicação entre os usuários internos e a Internet passa através do proxy (os usuários não têm permissão para se comunicar diretamente com hosts situados fora do perímetro de segurança, eles não enxergam o roteador). A requisição gerada pela estação de trabalho para conectar o usuário a um serviço externo, como FTP ou Telnet, é recebida pelo servidor; este, por sua vez, avalia a solicitação baseando-se em um conjunto de regras definidas para o serviço em questão, decidindo se a mesma deve ser atendida. Obviamente, se o servidor é capaz de interpretar o protocolo referente ao serviço que está sendo avaliado, só serão liberados os pacotes que atendem às especificações formais definidas para este protocolo.

Já o proxy client é a parte da aplicação que se comunica diretamente com o servidor externo (Internet), atuando com um representante do host interno, sempre que as requisições encaminhadas para o servidor (“proxy server”) são validadas após o processo de verificação - esta é a razão pela qual o termo “procurador” é usado para identificar a aplicação que está sendo executada no sistema de parede corta-fogo. Os pacotes enviados pelo servidor externo são recebidos pelo cliente, passam pelo componente servidor, até chegar à estação de trabalho que gerou a solicitação. A comunicação entre os hosts internos e externos nunca é realizada de forma direta, sempre sendo intermediada pelo procurador, de forma que o tráfego de entrada e saída é monitorado. A princípio, todo o processo é transparente, porque do ponto de vista do usuário a estação de trabalho está lidando diretamente com o servidor externo, e vice-versa.

Determinados serviços de rede, como o SMTP, são temporariamente colocados em espera pelos servidores antes de serem processados (“store-and-forward”, ou seja, os dados são armazenados para transmissão posterior). Este tipo de serviço pode ser intermediado pelo procurador sem que, para tal, sejam efetuadas quaisquer alterações no cliente (estação de trabalho), ficando a cargo do usuário contatá-lo através de comandos específicos (por exemplo, usando TELNET). Outros serviços de rede, como o FTP, não foram projetados com base neste tipo de procedimento, isto é, não requerem pontos intermediários de replicação, o que inclui o próprio procurador. Nesses casos o software cliente deve ser adaptado de modo a viabilizar a comunicação com o sistema de parede corta-fogo. Na primeira hipótese, a maior desvantagem é o fato de que o usuário deve lidar diretamente com o procurador, sabendo de sua existência (cada sessão aberta por ele se dá através de um terminal virtual de rede, simulando a “shell” do procurador); já na segunda hipótese o processo é totalmente transparente para o usuário, mas os custos são bem maiores, visto que todas as estações de trabalho da rede interna deverão dispor de clientes modificados, e o host bastião terá que realizar a comunicação nos dois sentidos de forma automática.

Os serviços do procurador são implementados no topo da pilha de rede do host onde o sistema de parede corta-fogo está sendo executado, operando na área de memória reservada pelo sistema operacional para programas aplicativos; conseqüentemente, cada pacote deve passar através de protocolos de baixo-nível no núcleo (“kernel”) antes de passar para a área de programas, onde será inspecionado. Após a inspeção, o pacote faz a viagem de volta ao núcleo, descendo pela pilha de rede para ser distribuído. Como todos os pacotes de uma sessão estão sujeitos a este processo, a validação é bem mais demorada que nas tecnologias citadas anteriormente; os sistemas de parede corta-fogo que atuam a nível de aplicação, tal como os que operam a nível de circuito, também podem executar verificações adicionais para constatar se os pacotes foram simulados (“IP Spoofing”), além de utilizar tradução de endereços.

..... .......

4.ª Geração (“Dynamic Packet Filters”)
Sistemas de Parede Corta-Fogo Baseados em Filtros de Pacotes Dinâmicos - Camadas de Inter-Rede e Transporte

A principal vantagem desta tecnologia em relação aos filtros de pacotes convencionais é a sua capacidade de trabalhar com o UDP (transporte), associando este tipo de quadro a uma conexão virtual (o que, em circunstâncias normais, é implementado através do TCP, já que o UDP não fornece a transmissão de “stream” confiável) sempre que os pacotes trafegam de dentro do perímetro de segurança para redes externas e vice-versa. Quando um pacote é gerado no servidor externo, atendendo à solicitação do host interno, a conexão virtual é estabelecida e a permissão para transpassar o filtro é concedida; a informação vinculada a esta conexão é mantida durante um certo período de tempo, e se nenhuma resposta for recebida neste intervalo o circuito virtual é invalidado.

Esta tecnologia apresenta as mesmas vantagens e desvantagens encontradas na primeira geração dos filtros de pacotes, com o diferencial de bloquear pacotes de rede carregando quadros UDP que não foram solicitados pelos usuários do perímetro de segurança (qualquer pacote carregando resposta para uma solicitação interna deverá conter o endereço de destino equivalente ao endereço do hospedeiro de origem, a mesma porta e o mesmo tipo de protocolo da camada de transporte). Esta característica é muito útil, por exemplo, ao permitir que protocolos da camada de aplicação, como o o DNS, possam operar através do sistema de parede corta-fogo (um servidor DNS interno deve encaminhar as solicitações para resolução de nomes a servidores DNS externos, o que pode ser efetuado através de conexões TCP ou UDP).

..... .......

4. Criptografia

Criptografar é o processo de converter uma mensagem em outra, codificada, valendo-se de funções matemáticas e uma senha especial, chamada de chave. A criptografia já era empregada por diversas culturas da antigüidade, os egípcios, os persas, os gregos e os romanos utilizavam esta técnica, principalmente para fins militares e diplomáticos - a expressão tem origem nas palavras gregas “kryptos” (escondida) e “graphia” (escrever).

No âmbito da computação, a criptografia é um recurso importante, porque com sua ajuda é possível garantir a segurança das informações que demandam sigilo. Ela pode ser usada para codificar os dados que devem ser enviados através de uma rede pública, como a Internet, assegurando a privacidade em casos de interceptação. Conseqüentemente, a criptografia se tornou parte indispensável dos sistemas modernos.

Quando uma mensagem criptografada é enviada de um computador para outro, os seguintes requisitos devem ser obtidos: integridade (a mensagem recebida pelo destinatário deve ser igual à mensagem gerada na origem), sigilo (a mensagem enviada só poderá ser acessada pelas pessoas autorizadas), autenticidade (o remetente é indiscutível, ninguém poderá se fazer passar por ele) e não repúdio (se o remetente estiver solicitando mil pares de sapatos a R$ 15,00 cada, não poderá dizer que foi por R$ 10,00).

A criptografia é constituída de duas etapas: encriptar é o ato de transformar os dados, dificultando sua interpretação; decriptar é o processo inverso, ou seja, converter os dados criptografados para a sua forma original, inteligível. Chaves - valores numéricos, expressos no sistema hexadecimal, que devem ser trocados entre os usuários envolvidos na comunicação - são empregadas durante a encriptação/decriptação de uma mensagem; dependendo do método de criptografia empregado, a mesma chave pode ser usada nas duas etapas do processo, enquanto outros mecanismos utilizam chaves diferentes.

..... .......

4.1. Métodos Simétrico e Assimétrico

A mensagem pode ser codificada a partir de um determinado algoritmo de criptografia, de modo que, tendo conhecimento do algoritmo e da chave adotados, é possível recuperar a mensagem original fazendo o percurso contrário da encriptação, a decriptação. Algoritmos criptográficos são funções matemáticas usadas para codificar os dados, garantindo segredo e autenticação; eles devem ser conhecidos e testados, a segurança reside na chave secreta que deve ter um comprimento suficiente para evitar sua descoberta por teste exaustivo.

Com o aumento da capacidade computacional, hoje podemos empregar complexos esquemas criptográficos, antes impraticáveis em função do tempo de processamento que seria alocado, mesmo na codificação de mensagens pequenas. E, além da capacidade técnica, a criptografia moderna apresenta algumas características que a faz se subdividir em dois grandes grupos: criptografia simétrica, ou criptografia com chave secreta, e criptografia assimétrica, que também é chamada de criptografia com chave pública.

A criptografia de chave simétrica é a técnica mais tradicional; nela, a mesma chave é utilizada nos processos de codificação e decodificação. O problema óbvio deste método é que o destinatário deve ser informado de forma segura sobre a chave para a decriptação, e, se encontramos um modo de lhe passar a chave, a princípio seria mais fácil utilizá-lo para transmitir a própria mensagem. São exemplos de algoritmos que implementam este tipo de criptografia o IDEA (“International Data Encryption Algorithm” - Algoritmo Internacional para a Encriptação de Dados), o DES (“Data Encryption Standard” - Padrão para a Encriptção de Dados) e o RC2/4.

Por ser mais simples, a criptografia simétrica é muito eficiente em determinados casos, quando é adotada, por exemplo, em conexões na Internet onde processos computacionais trocam senhas temporárias para a transmissão de informações críticas. Quando o usuário navega pela WEB e visita sítios eletrônicos classificados como seguros, contendo formulários para o preenchimento de dados sigilosos, ele na verdade está utilizando o SSL (“Secure Sockets Layer” - Camada de Interfaces Seguras) que opera a partir de criptografia simétrica, muito provavelmente DES ou algo da RSA (Rivest, Shamir e Adleman).

Na criptografia assimétrica são empregadas duas chaves ligadas matematicamente: a primeira, que está disponível a todos e é denominada chave pública, entra no processo de codificação da mensagem; a segunda chave, que deve ser mantida em segredo e é referenciada como chave privada, entra no processo de decodificação (a chave privada pode ser representada como sendo a identidade do seu proprietário; logo, sua privacidade é crucial). Antes de enviar a mensagem, o emissor deverá encriptá-la valendo-se da chave pública do receptor, que irá decriptá-la usando sua chave privada; é claro que ambos deverão estar utilizando o mesmo algoritmo criptográfico.

Por serem mais complexos, os sistemas baseados no método assimétrico não são tão eficientes computacionalmente quanto aqueles que foram escritos a partir do método simétrico; para contornar este problema, podemos utilizar o método assimétrico para codificar a chave de um método simétrico, usando este último para codificar a mensagem [Soares 97]. Assim, é possível obter um ganho considerável de performance sem comprometer a segurança.

..... .......

5. Conclusão

Nos dias de hoje, é imprescindível a adoção de políticas de segurança adequadas para que possamos garantir a integridade dos dados corporativos, restringindo o acesso às informações de modo que somente as pessoas autorizadas possam, efetivamente, utilizá-las. A eficiência dos hackers atesta claramente a vulnerabilidade dos sistemas, que demandam um nível de proteção cada vez maior. Ao combinarmos as diversas tecnologias de firewalls com as técnicas de criptografia existentes, fortalecemos a estrutura da nossa rede corporativa, dificultando a ação dos invasores. É claro que os usuários também devem ser educados no sentido de manter um conduta compatível com as regras estabelecidas pela equipe de suporte, evitando erros comuns como a troca de mensagens com arquivos em anexo ou a cópia de programas a partir de sítios eletrônicos não-confiávies (veículos para a propagação de vírus e cavalos de tróia). Em linhas gerais, pode-se afirmar que não existe sistema totalmente a prova de invasões; entretanto, de posse dos recursos existentes, é possível neutralizar uma gama bem variada de ataques, dificultando a ação dos hackers.

..... .......

6. Agradecimentos

Obrigado, dEUS, seja lá o que você for, por ter me concedido a oportunidade de estudar essas coisas bacaninhas... quero estudar muito mais!

..... .......

7. Referências

[Comer 98]

COMER, DOUGLAS E. “Interligação em Rede com TCP/IP - Volume 1: Princípios, protocolos e arquitetura” . Segunda Edição. Editora Campus, 1998.

[Soares 97]

SOARES, LFG; LEMOS, G; COLCHER, S. “Redes de Computadores: das LANs, MANs e WANs às Redes ATM”. Segunda Edição. Editora Campus, 1997.

[Tanembaum 96]

TANEMBAUM, A. “Computer Networks”. Third Edition. Prentice Hall International, 1996.

[Cisco]

Documento publicado no sítio eletrônico da Cisco [http://www.cisco.com], entitulado “Securing Your Network with the Cisco Centri Firewall”.

..... .......

CONTINUAR... CONTINUAR... CONTINUAR... CONTINUAR... CONTINUAR... CONTINUAR... CONTINUAR...

..... .......

Clique aqui para abrir o sumário... Clique aqui para abrir a página inicial...

..... .......


Produzido por Bruno Tavares de Souza (endereço eletrônico para contato: [email protected] - Orkut & Messenger).


..... .......