Firewalls podem ser definidos como simples pontos de conexão entre duas redes não confiáveis que permitem que a comunicação entre elas seja monitorada e segura [Gon97]. Sua funcionalidade básica consiste em oferecer segurança para os componentes localizados dentro da rede sendo protegida, controlando e autenticando quem pode e quem não pode ter acesso à rede. Segundo [CB97], um firewall é composto por uma coleção de componentes localizados entre duas redes que coletivamente possuem as seguintes características:
Firewalls podem ser implementados através de um roteador, um PC (personal computer) com software especial, um sistema UNIX com esta capacidade ou um conjunto de hosts, todos configurados especificamente para proteger um site ou uma sub-rede de protocolos e serviços não confiáveis [SF97]. Ademais, as soluções encontradas podem ser tanto baseadas em hardware quanto em software. Independentemente da implementação, firewalls devem apresentar a mesma funcionalidade: interromper ataques e invasões antes que estes atinjam seu alvo (a rede sendo protegida).
Firewalls são seguros porque não são hosts de propósito geral. Assim, serviços duvidosos com relação à segurança do sistema, tais como NIS e rlogin, podem ser omitidos se não forem relevantes para a funcionalidade do firewall. Permitem, assim, a garantia da política de segurança estabelecida pela organização. Ademais, firewalls são considerados o ponto central para a administração de serviços de correio eletrônico e ftp, por exemplo. Desta forma, somente uma máquina precisa ser monitorada para o preenchimento da sintaxe de cabeçalho apropriada e reescrita do endereço de retorno. Máquinas externas possuem um único ponto de contato para problemas de correio eletrônico e uma única localização para a busca de arquivos sendo exportados.
Uma vez que um firewall consiste em um único ponto de acesso à rede sendo protegida e que todo o tráfego deve passar por ele, ele pode ser considerado como um checkpoint [CZ95]. Assim, pode-se disponibilizar ferramentas de rastreamento, as quais permitem coletar informações sobre a boa ou má utilização da rede. Por exemplo, pode-se determinar a origem das conexões, a quantidade de serviços que o servidor está atendendo e se existiu alguma tentativa de invasão no sistema.
Por outro lado, firewalls não oferecem proteção contra ataques internos maliciosos, conexões que não passam pelo firewall (como backdoor modem connections) e vírus. Apesar dos firewalls oferecerem excelente proteção contra ameaças de rede, eles não são soluções completas. Firewalls bem projetados podem proteger a rede, por exemplo, contra novas ameaças, permitindo apenas a definição de um pequeno conjunto de serviços confiáveis. No entanto, nenhum firewall pode automaticamente defender a rede interna contra cada ameaça nova que aparece.
Este artigo está estruturado da seguinte maneira.
A próxima seção apresenta decisões básicas
que devem ser tomadas antes de se implantar um firewall. A seção
3 descreve os componentes de um firewall e classifica-os em três
principais tipos: packet filtering, application-level gateway
e circuit-level gateway. As arquiteturas mais comumente utilizadas
para firewalls são discutidas na seção 4. A
seção 5 descreve o produto comercial FireWall-1, apontando
suas principais características e funcionalidades. O artigo é
finalizado na seção 6 com as conclusões.
2. Questões Básicas
Independentemente do fato de se comprar um produto de
firewall disponível atualmente no mercado ou de se implementar
um, deve-se possuir conhecimento de quais funcionalidades são desejadas,
de como firewalls são construídos e de como trabalham.
Segundo [Gon97], antes de se decidir qual tipo de firewall utilizar,
aonde ele será instalado e como será implementado (caso necessário),
deve existir uma política de segurança realística
que determine os padrões de segurança para o site
ou sub-rede a ser protegida, as regras a serem seguidas pelos usuários
do sistema e a configuração estratégica de segurança
a ser empregada.
Uma política de segurança consiste no conjunto de decisões que, coletivamente, determina a postura da organização frente à segurança. Mais precisamente, a política de segurança determina os limites aceitáveis de comportamento e como as respostas às violações devem ser. Uma seção especial nesta política deve ser dedicada ao firewall, esboçando como este será configurado e utilizado. Por exemplo, planeja-se utilizar o firewall para negar a maioria dos serviços e controlar todos os acessos à rede ou ele será utilizado apenas para monitorar o acesso à rede protegida? Também deve-se decidir quanta redundância, quanto controle e quanta acessibilidade pretende-se ter. Deve-se especificar quais ameaças devem ser evitadas, quais sites podem ou não utilizar os serviços a serem oferecidos e assim por diante.
Existem duas tecnologias de projeto de firewall: a tradicional (ou estática) e a dinâmica. Diferentemente de firewalls estáticos, para os quais o principal propósito (política) é permitir qualquer serviço a menos que ele seja expressamente negado ou negar qualquer serviço a menos que ele seja expressamente permitido, um firewall dinâmico irá permitir ou negar qualquer serviço para quando e por quanto tempo for desejado. Assim, um firewall apresenta habilidade de se adaptar ao tráfego e projeto da rede.
Firewalls dinâmicos são úteis
no oferecimento de serviços tais como ftp, que requerem duas
conexões: uma para comandos e outra para a transmissão dos
dados. O problema associado a este serviço está relacionado
ao fato de que o servidor de ftp não sabe qual conexão
será utilizada, abrindo desta forma diversas portas. Firewalls
dinâmicos previnem esta situação lendo o cabeçalho
do pacote e dos datagramas e determinando as portas a serem abertas para
o serviço sendo requisitado.
3. Componentes e Tipos
Um firewall consiste, de maneira geral, dos seguintes componentes (figura1) [CB97]:
Figura 1. Componentes de um firewall.
Tanto o filtro quanto o gateway podem ser omitidos, dependendo da arquitetura do firewall. Em geral, o filtro externo pode ser utilizado para proteger o gateway de ataques, enquanto que o filtro interno é utilizado para guardar contra as conseqüências de um gateway comprometido. Uma máquina gateway exposta é freqüentemente chamada de bastion host.
Existem três tipos principais de firewalls:
packet filtering, application-level gateway e circuit-level
gateway. Na prática, mais do que um tipo é usado ao mesmo
tempo. As seções 3.1, 3.2 e 3.3 descrevem cada um destes
tipos, apresentando conceitos, funcionalidades, vantagens e desvantagens.
3.1 Packet Filtering
Sistemas packet filtering roteiam pacotes entre hosts internos e externos de maneira seletiva. Eles permitem ou bloqueiam certos tipos de pacotes, refletindo a política de segurança adotada pelo site. Pacotes permitidos são roteados para o destino, ao passo que pacotes não permitidos ou suspeitos são descartados ou manipulados (ferramentas de rastreamento). O tipo de roteador utilizado nestes sistemas é conhecido como screening router.
Segundo [Fri95], sistemas packet filtering devem apresentar as seguintes características:
Sistemas packet filtering são úteis na definição de regras do tipo: bloqueie todas as conexões oriundas de sistemas localizados fora da rede interna, exceto para conexões SMTP (simple mail transport protocol) que chegam (ou seja, permita apenas o recebimento de mails), ou permita serviços FTP (file transfer protocol) e telnet, mas bloqueie outros serviços tais como TFTP (trivial file transfer protocol) e RPC (remote procedure call). Pelo simples fato de que certos serviços Internet residem em certos números de porta, isto permite que screening routers bloqueiem ou permitam certos tipos de conexão simplesmente especificando-se o número da porta. Por exemplo, porta 23 para conexões telnet.
Configurar um packet filtering consiste em um processo de três passos [CB97]. Inicialmente deve-se determinar o que deve e o que não deve ser permitido (política de segurança). Em seguida, deve-se especificar formalmente os tipos de pacotes permitidos, em termos de expressões lógicas (regras). Finalmente deve-se reescrever estas expressões de acordo com o produto utilizado. Suponha que a política de segurança de um site determine que todo o tráfego IP entre um host externo conhecido (endereço IP 172.161.51.50) e os hosts da rede interna (endereço IP 192.168.10) seja permitido. As seguintes regras (tabela 1) são derivadas:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reescrevendo estas regras de acordo com o produto screend
e utilizando-se a política negar qualquer serviço a menos
que ele seja expressamente permitido, tem-se:
between host 172.161.51.50 e net 192.168.10 accept;
between host any and host any reject;
O exemplo acima utiliza a forma de filtragem de pacotes por endereço. Este tipo de filtragem permite que se restrinja o fluxo de pacotes baseado apenas nos endereços fonte e destino, sem considerar quais serviços estão envolvidos. Tal filtragem apresenta como desvantagem o fato de que nem sempre os endereços de máquinas são confiáveis.
Outra forma de filtragem, mais utilizada do que a por endereços, é a filtragem de pacotes por serviço, na qual serviços geralmente associados a determinados números de porta são permitidos ou negados. Neste caso, para se determinar as regras a serem seguidas, deve-se inicialmente realizar um estudo detalhado de cada serviço a ser oferecido. Deve-se estudar fluxos de pacotes nos quais: (1) um cliente local está se comunicando com um servidor remoto (outbound) e (2) um cliente remoto está se comunicando com um servidor local (inbound). Para ambos os fluxos, deve-se especificar os endereços fonte e destino, o protocolo (TCP), as portas fonte e destino e as características do pacote (com ou sem ACK, para TCP), tanto para pacotes que chegam (incoming) quanto para pacotes que saem (outgoing). A tabela 2 mostra um estudo para o serviço telnet:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tabela 2. Estudo para o serviço telnet.
Baseado nos estudos realizados, na política de que apenas serviço outbound será permitido e utilizando-se a política negar qualquer serviço a menos que ele seja expressamente permitido, as seguintes regras podem ser derivadas:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tabela 3. Regras para o serviço telnet.
Sistemas packet filtering garantem segurança de maneira
útil e barata. Geralmente, as funcionalidades de filtragem já
são disponíveis em vários produtos de hardware
e software, ambos comercias ou distribuídos gratuitamente
pela Internet. Ademais, como o screening router se localiza de maneira
estratégica entre a rede interna e a externa, ele pode ser utilizado
para proteger toda a rede interna contra invasões.
3.2 Application-Level Gateway
Um application-level gateway é um host que executa aplicações especiais, chamadas proxy, as quais são responsáveis pela propagação de serviços para dentro da rede protegida [SF97]. Desta forma, o controle do tráfego entre a rede interna e a rede externa não confiável (como exemplo, Internet) é efetuado em nível de aplicação através de código especialmente escrito para cada serviço a ser disponibilizado, segundo requisitos próprios de segurança. Somente serviços que possuam proxy conseguem passar pelo gateway.
A principal funcionalidade de um application-level gateway é a sua capacidade de controlar todo tráfego entre a rede interna e a rede externa. Isto permite um completo monitoramento do sistema, o qual pode gerar informações sobre o uso de serviços e seu posterior armazenamento em um arquivo de log. A figura abaixo ilustra o funcionamento de um proxy, o qual possui logicamente as funções de cliente e servidor.
Figura 2. Application-level gateway e serviços proxy.
O servidor proxy é responsável por avaliar pedidos de serviços, podendo permitir ou negar tais pedidos de acordo com a política de segurança vigente. Tal controle pode ser efetuado em nível de operações individuais de um dado serviço. Para o serviço FTP, por exemplo, pode-se restringir a exportação de arquivos, mas permitir a importação de arquivos de sites considerados confiáveis. Uma vez aprovado o pedido de serviço, o servidor proxy repassa ao cliente proxy tal pedido, sendo este último responsável pela propagação do pedido ao servidor real. A propagação das respostas do servidor real ao cliente, assim como a propagação de novos pedidos do cliente para o servidor real são efetuadas de forma transparente pelo proxy. Desta forma, o cliente "acredita" que está lidando diretamente com o servidor real e o servidor real "acredita" que está lidando diretamente com um usuário presente no application-level gateway.
Em geral, um application-level gateway oferece
somente um subconjunto de serviços devido a questões relativas
à política de segurança e à implementação
de proxies. No primeiro caso, todos os serviços considerados
inseguros são removidos, satisfazendo a política negar
qualquer serviço a menos que ele seja expressamente permitido.
Já no segundo caso, para alguns serviços pode-se não
possuir uma implementação de proxy disponível
e/ou tal implementação pode não ser suportada para
uma determinada plataforma, como PC-Windows NT. De fato, somente para os
serviços mais importantes são disponibilizados proxies,
mais freqüentemente para UNIX. Serviços do tipo "store-and-forward"
são mais facilmente suportados do que serviços interativos,
sendo que ambos podem causar impacto no cliente através da necessidade
de configuração especial.
3.3 Circuit-Level Gateway
Um circuit-level gateway possui funcionalidade semelhante a sistemas packet filtering, mas via aplicação, sendo responsável pela transmissão de conexões TCP. Este também pode possuir controles adicionais, tais como tempo limite de utilização de uma porta e intervalo de tempo mínimo entre subsequentes usos de uma porta. Todo o controle de conexões é efetuado com base no endereço fonte e portas fonte e destino. Um cliente requisita um serviço através de uma porta fonte, sendo de responsabilidade do gateway a conexão com o destino e posterior propagação de bytes entre ambos. A figura a seguir ilustra o funcionamento deste componente.
Figura 3. Circuit-level gateway.
4. Arquiteturas
Os tipos de firewall descritos na seção anterior podem ser organizados segundo diferentes formas para compor uma arquitetura de firewall. Esta seção descreve algumas das arquiteturas de firewall mais comumente utilizadas, a saber: packet filtering, dual-homed host, screened host e screened subnet. Vale destacar que não existe uma arquitetura dita universal, a qual resolve todos os problemas de segurança.
A arquitetura packet filtering utiliza-se exclusivamente de um roteador inteligente para proteger uma rede interna. As funcionalidades de um packet filtering são descritas na seção 3.1. Esta arquitetura não requer que aplicações cliente e servidor sejam modificadas, mas é a arquitetura menos desejável como firewall. Dentre as suas desvantagens, pode-se citar: uma falha de segurança do roteador compromete toda a rede interna, o número de regras geralmente é limitado, o desempenho pode ser comprometido em função do número de regras, impossibilidade de modificar serviços através do tratamento de operações individuais, complexidade de configuração e tratamento de exceções, dentre outras. O componente packet filtering é utilizado em outras arquiteturas em conjunto com outros tipos de firewall, especialmente application-level gateways, para providenciar o primeiro nível de segurança contra uma rede não confiável.
A arquitetura dual-homed host é implementada através de um host que possui duas interfaces de rede, uma para a rede interna e outra para a rede não confiável. Este host é a única porta de entrada para a rede interna, sendo acessível tanto por hosts internos quanto externos. Entretanto, a função de roteamento é desabilitada e assim pacotes não conseguem ser roteados entre as redes, garantindo o isolamento de tráfego. Serviços são oferecidos através de login direto no dual-homed host ou através de proxy. A primeira opção pode comprometer a segurança devido à vulnerabilidade de senhas e à possibilidade de usuários habilitarem serviços inseguros.
A arquitetura screened host (figura 4) possui dois
componentes. O primeiro, screening router, atua com primeiro nível
de defesa contra uma rede não confiável e é responsável
por restringir conexões de hosts externos que não
sejam direcionadas a um host específico, chamado bastion
host (segundo componente). Além disto, é responsável
por restringir certos tipos de conexão independente do host
destino, por restringir que hosts internos abram uma conexão
direta com a rede externa e por permitir que o bastion host abra
alguns tipos de conexão com a rede externa. O bastion host,
localizado na rede interna e portanto sem possuir interface com a rede
externa, é o único host da rede interna acessível
por hosts externos. Desta forma, todo o tráfego entre a rede
interna e externa deve passar primeiro pelo bastion host, o qual
utiliza funções em nível de aplicação
para selecionar serviços (proxy).
Figura 4. Arquitetura screened host.
A arquitetura screened subnet (figura 5) adiciona uma camada
extra de segurança que isola a rede interna de uma rede externa
não confiável. Tal camada (DMZ) abriga três componentes,
sendo dois roteadores e um bastion host.
Figura 5. Arquitetura screened subnet.
O roteador externo possui funcionalidades semelhantes ao descrito
na arquitetura screened host, sendo responsável por proteger
a DMZ e a rede interna contra a rede externa. Em especial, tal roteador
possui a capacidade de identificar endereços fonte adulterados,
quando pacotes chegando da rede externa possuem endereço fonte de
um host da rede interna. O roteador interno possui as principais
regras de filtragem. Dentre suas responsabilidades, pode-se citar: restringe
que hosts internos abram uma conexão direta com a rede externa
para serviços que possuam proxy, seleciona os serviços
confiáveis que são disponibilizados exclusivamente via packet
filtering e restringe certos tipos de conexão do bastion
host cujo destino não seja um host preestabelecido, tal
como um servidor de mail. O bastion host, localizado na DMZ,
é o único host acessível por hosts externos.
Este suporta diversos serviços via proxy. Tal arquitetura
possui como vantagens adicionais o fato que uma quebra de segurança
do bastion host não permite a visibilidade do tráfego
da rede interna, além de providenciar um terceiro nível de
segurança através do roteador interno.
5. Produto Comercial FireWall-1
FireWall-1 [Siy95] é um sistema de segurança de rede para criação e gerenciamento de serviços TCP/IP. Possibilita que uma organização garanta sua política de segurança, oferecendo flexibilidade, escalabilidade, extensibilidade, transparência, suporte a múltiplos protocolos e tecnologias de rede, além de poder ser distribuído sobre múltiplas plataformas (tais como Windows 95, Windows NT e Unix). FireWall-1 cresce em conjunto com a rede para acomodar uma grande variedade de tipos de aplicações de rede, tais como tecnologias de redes de alta velocidade (100BaseT e ATM) e requerimentos de conectividade, sem causar impacto significativo no desempenho.
FireWall-1 é um application-level gateway composto por dois principais componentes:
O módulo de inspeção do FireWall-1 atua como um roteador seguro para passagem de tráfego entre redes privadas e públicas, como a Internet. Todos os pacotes, tanto os que saem quanto os que entram, são inspecionados e verificados se estão de acordo com a política de segurança da organização. Os pacotes que não estiverem de acordo são descartados.
O produto FireWall-1 provê filtragem segura de pacotes, acesso remoto seguro, acesso seguro à Internet, redes virtuais privadas para criar túneis seguros através de redes públicas inseguras, habilidade para definir e adicionar novos protocolos e serviços, auditoria e alerta.
Figura 6. Componentes do produto FireWall-1.
6. Conclusões
Este artigo descreve a teoria, os conceitos básicos, os componentes, os tipos e as arquiteturas de firewalls mais comumente utilizadas, além do produto comercial FireWall-1. Neste contexto foram destacados a funcionalidade de firewalls, quais as decisões básicas a serem tomadas antes de se implantar um firewall, as principais características de packet filtering, application-level gateway e circuit-level gateway, e as arquiteturas packet filtering, dual-homed host, screened host e screened subnet.
Firewalls oferecem segurança para os componentes localizados dentro da rede sendo protegida, controlando e autenticando quem pode e quem não pode ter acesso à rede. Garantem, assim, a política de segurança estabelecida pela organização, concentrando-a em um único componente lógico. A monitoração dos serviços oferecidos por firewalls pode ser utilizada para se determinar a boa ou má utilização da rede, além de servir como base para políticas de customização destes serviços.
Uma importante relação a ser considerada é o custo para se proteger a rede interna através da utilização de firewalls versus o custo relativo a perdas provocadas por invasões externas, devido ao fato de não se possuir um firewall. Independentemente do fato de se comprar um produto de firewall disponível atualmente no mercado ou de se implementar um, os custos principais associados são: de hardware, de software, de manutenção, de treinamento e custos decorrentes do bloqueio de serviços pelo firewall. Já os custos associados a invasões externas podem incluir: perda de informação, roubo de informação (dados confidenciais), sobrecarga do sistema (tempo de utilização dos recursos computacionais, deny of service) e atividades legais tomadas para se defender judicialmente de hackers.
Uma organização deve ponderar suas necessidades
(o que deve ser acessado, filtrado ou bloqueado), seus riscos e os custos
associados à implantação de um firewall. Em
geral, quanto maior o grau de segurança oferecido, maiores os custos
associados e menor a flexibilidade no oferecimento de serviços.
Embora firewalls possuam alto custo (entre US$10,000 e US$100,000),
a economia proporcionada contra as perdas acima citadas compensa a sua
utilização.
Referências Bibliográficas
[CB97] | CHESWICK, W.R., BELLOVIN, S.M. Firewalls and Internet Security. Addison-Wesley Publishing Company, 1997. 306p. |
[CZ95] | CHAPMAN, D.B., ZWICKY, E.D. Building Internet Firewalls. O'Reilly & Associates, 1995. |
[Fri95] | FRISCH, Æ. Essential System Administration. O'Reilly & Associates, 1995. 758p. |
[Gon97] | GONCALVES, M. Protecting Your Web Site with Firewalls. Prentice-Hall, Inc., 1997. 290p. |
[SF97] | SILVA, F.Q., FRANKLIN, D. Segurança de Informações e Acesso Seguro à Internet. DI - UFPE, 1997. (Transparências da Disciplina de Administração e Integração de Sistemas) |
[Siy95] | SIYAN, K. Internet Firewalls and Network Security. New Riders Publishing, 1995. 410p. |