Home Page do best seller de segurança Como Blindar seu Pc
A maior universidade Virtual de Tecnologia da Informação com ênfase em Segurança do país
Visão e referências para o público interessado em Segurança da Informação
Livros, artigos e papers publicados
Colaborações de Freire com a imprensa
Retornar Página Principal Curriculum Vitae de Alexandre Freire Envie e-mail aos cuidados de Freire




Retornar

Artigo Publicado

Sistemas de Firewall e Defesa de Perímetros - Parte IV

Por Alexandre Freire

Retomando a série de artigos, chegamos na parte IV onde Daremos prosseguimento às recomendações de proteção para os serviços Web, Small Services e Miscellaneous (TFTP, finger, NTP, LPD, SNMP, BGP e Socks).

08. Web - Serviços HTTP
Recomendação: Restrição de acesso somente aos servidores que necessitam prover serviços web e limitação de acesso somente a portas 80 e 443.

O HTTP, Hypertext Transfer Protocol, é utilizado para serviços de informação hypermidia distribuídos e reside na camada de aplicação do modelo OSI. Atualmente, grande parte das corporações possuem informações confidenciais em seus respectivos servidores web, rompendo as barreiras de uma presença somente institucional. Embora a porta default de um servidor web seja a porta TCP 80, o serviço de HTTP pode ser alocado para outras portas. O HTTP sob SSL para uso em ambientes que necessitam de criptografia para proteção adicional das informações que são trocadas entre o browser do usuário e o web server, roda na porta TCP 443. O HTTP pode estar presente em usos tradicionais em outras portas como a 8080, normalmente utilizado para serviços de requisição de acesso a Proxy Servers.

Limitar acesso somente aos servidores que necessitam prover serviços Internet previne possíveis invasões a servidores que não foram preparados ou devidamente configurados para exercer esta função.

Devemos ter em mente que os únicos servidores acessíveis através da Internet são aqueles servidores que executam serviços web e que foram previamente preparados através de procedimentos de segurança em seus respectivos sistemas operacionais. Compreende-se no universo de procedimentos de segurança em sistemas operacionais, a arte de não só "fechar" o sistema operacional através de configurações especificas para o mesmo, mas também cuidar para que seus serviços e aplicações estejam configurados de maneira correta. Nesta fase, deve-se atendar, por exemplo, para as configurações a serem executadas em servidores Microsoft IIS e Apache (os mais utilizados).

Outro aspecto importante é eliminar os servidores que "escutam" em portas altas. É muito importante para organização e controle do tráfego HTTP, que o serviço seja limitado as portas 80 e/ou 443. Esta medida tem o objetivo de previnir buracos abertos no Firewall através da abertura de portas chamadas efêmeras, ou portas altas (portas acima de 1024).

Importante frisar que o ato de limitar acesso as portas 80 e 443, assim como fixar o destino da conexão somente aos servidores web que estarão provendo serviços Internet, não previne o servidor de ser passível de ataques maliciosos ou de servir de ponte para "tunelar" outros tipos de serviços.

09. Small Services
Recomendação: Bloqueio do tráfego direcionado a portas abaixo das portas 20 tcp e 20 udp, assim como serviço TIME (37/tcp e 37/udp).

Muitos dos chamados "Small Services" podem levar um servidor ou equipamento de conectividade a morrer em um ataque Denial Of Service. Estão compreendidos no grupo "Small Services" os serviços echo, chargen, discard, e daytime.

O serviço Echo proporciona que o servidor envie de volta ao usuário um reply de tudo o que é digitado no terminal. O serviço Chargen é responsável por gerar um stream de dados ACSII. Dicard é responsável por dropar tudo o que é digitado. Daytime é um presente para os invasores, retorna a data e hora funcional de um sistema operacional. Os "Small Services" baseados em UDP incluem o echo, discard e chargen, que também possuem finalidades semelhantes aos seus gêmeos baseados em TCP.

O protocolo Time não deve ser aceito de uma origem não confiável, como um host na Internet. Se o sincronismo de horário é necessário, então este serviço necessita ser provido como um serviço interno, sem aproximação do perímetro da rede.

Um dos "Small Services", o Chargen (tcp/19), é responsável por gerar respostas de caracteres enviados através de uma soliticação na rede. Já o Echo (tcp/7) irá imprimir de volta os caracteres recebidos em uma conexão ao mesmo. É muito comum a utilização dos dois serviços que trabalham juntos para forçar a lentidão de uma máquina ou até um crash no sistema operacional da mesma. Através do spoofing de uma conexão chargen para um serviço echo, é possível combinar os dois serviços em um cenário de uma "conversa eterna", onde os caracteres enviados entrarão em looping toda vez que forem recebidos e impressos na tela pelo serviço Echo.

A afirmação em relação aos "Small Services" é que ninguém em vias normais utiliza os serviços e que eles existem somente para permitir aos invasores um canal para obtenção de informações adicionais para que uma invasão através da utilização de exploits seja possível.

10. TFTP - Tivial FTP
Recomendação: Bloqueio do tráfego direcionado à porta TFTP (69/udp).

Trivial File Transfer Protocol é uma implementação menos segura do FTP e foi desenvolvido, a princípio, para uso em máquinas que não dispunham de drive para o procedimento de boot (os chamados "diskless systems"). TFTP deve ser barrado e muitas de suas preocupações estão associadas as mesmas vulnerabilidades do FTP. Mas a grande dor de cabeça do serviço TFTP é que o mesmo não proporciona segurança, visto que não são necessários procedimentos de autenticação para transferência de informações.

TFTP utiliza protocolo UDP ao invés de TCP justamente com o objetivo de fazer com que a transferência de arquivos menores seja mais simples. Se incorretamente implementado, o TFTP permitirá que um usuário execute o download de qualquer arquivo de um determinado host. Muitos são os casos de arquivos inteiros de configurações importantes e até arquivos de senhas de sistemas Unix/Linux que são obtidos por invasores a partir da utilização do TFTP em ambientes onde o serviço encontra-se ativo e mal com figurado. Colocar a mão em um arquivo de senhas de um sistema Unix/Linux significa, na maioria das vezes, sucesso em quebrar o password.

11. FINGER
Recomendação: Bloqueio do tráfego direcionado a porta 79/tcp.

O serviço FINGER permite a obtenção de informações preciosas para invasores em um estudo inicial de um servidor ou ambiente de rede. Através do FINGER é possível identificar o nome real de usuários, respectivos números de telefone, home directory dos usuários, shell utilizado para o procedimento de login, tempo de conexão do usuário, data que o usuário leu o último e-mail, assim como host de procedência de conexão - informação muito útil para burlar, por exemplo, sistemas que utilizam TCP WRAPPER através de técnicas de spoofing. Em sistemas com este nível de proteção, descobrir os hosts de origem que são permitidos a executar telnet, ssh e outros serviços é uma informação importantíssima.

As informações obtidas com o FINGER possibilitam invasores a descobrir relações de confiança entre hosts e a rede alvo, obter nomes de usuários para tentativas de brute force e exploração de suas respectivas senhas, além de números de telefone visando ataques de Engenharia Social. O FINGER é um serviço estratégico aos invasores que desejam monitorar as atividades de um determinado sistema.

12. NNTP
Recomendação: Bloqueio do tráfego direcionado a porta 119/tcp.

O Network News Transport Protocol é utilizado para transferir notícias Usenet (newsgroups) através da Internet. Servidores de "News" abertos permitem postagem e leitura a partir de qualquer usuário e são utilizados em larga escala por hosts que já tiveram seus endereços IPs bloqueados na tentativa de postar, através de forma anônima, mensagens que caracterizam conteúdo SPAM.

NNTP utiliza listas de controle de acesso que são baseadas em hostnames. O protocolo é vulnerável a IP Spoofing. Um invasor pode ter acesso a um NNTP Server e verificar informações confidenciais postadas em listas de discussão específicas.

Outra característica do NNTP é o volume de tráfego abundante, que muitas vezes compromete sensivelmente o link Internet de uma instituição.

13. NTP
Recomendação: Bloqueio do tráfego direcionado a porta 123/tcp.

O Network Time Protocol é utilizado para sincronizar horários através da rede. Tráfego NTP através do firewall deve ser bloqueado pelo mesmo motivo da necessidade de bloqueio do serviço TIME. O tráfego NTP pode ser forjado e utilizado como técnica para tentativa de alteração da data e hora em um sistema antes de sua invasão. Desta maneira, os logs de acesso durante uma invasão indicariam informações com data e hora diferentes em relação ao tempo de ocorrência verdadeiro de um incidente, inviabilizando assim, a possibilidade de comparar os logs de um servidor invadido com outros logs de dispositivos de segurança espalhados pela rede.

NTP não foi projetado para resistir a ataques, e muitas versões podem ser comprometidas através de mudanças de data/hora no sistema operacional. Essas alterações podem surtir efeitos em serviços como autenticações baseadas em horários e time stamps.

14. LPD
Recomendação: Bloqueio do tráfego direcionado à porta 515/tcp.

LPD é o protocolo de impressão de sistemas Unix. É utilizado para prover serviços de impressão através da rede e sua utilização é controlada a partir de endereçamento IP (control lists). LPD é vulnerável a ataques de buffer overflow e a problemas similares a outros serviços que utilizam o stack TCP/IP, tais como IP spoofing e Denial Of Service através da simulação de jobs de impressão falsos.

15. SYSLOG
Recomendação: Bloqueio do tráfego direcionado à porta 514/udp

SYSLOG é um serviço que permite a máquinas ou dispositivos de conectividade diferentes, o envio de logs (eventos) para um host central. O serviço proporciona logging de serviços a partir de eventos e proporciona facilidade para centralização e gerência dos eventos de um ambiente de rede através da utilização de um ponto único de recebimento das informações.

Desde que a maioria dos servidores de SYSLOG aceite tráfego não autenticado, é possível a exploração de entradas falsas nos registros de log a partir de um invasor. Mensagens falsas podem ser utilizadas para gerar um ataque do tipo Denial Of Service. Outro ponto importante é que informações críticas de hosts podem ser obtidas a partir da análise do tráfego SYSLOG.

Versões antigas são conhecidas por seu longo histórico de vulnerabilidades, principalmente na fraqueza de serem exploradas por ataques do tipo Buffer Overflow. Por exemplo, versões do SYSLOG que rodam sob Sun Solaris podem ser comprometidas caso uma mensagem SYSLOG seja recebida a partir de um host sem cadastramento de reverso. Isso permitiria a um invasor iniciar seu procedimento de burlar os sistemas de segurança de um ambiente através da indisponibilidade dos recursos de auditoria que são reportados pelo SYSLOG.

16. SNMP
Recomendação: Bloqueio do tráfego SNMP - (portas 161/tcp, 161/udp, 162/tcp e 162/udp).

Simple Network Management Protocol é utilizado em grande escala para permitir um gerenciamento centralizado de recursos e elementos de rede. É um serviço muito comum de ser explorado e identificado por invasores.

Ao analisar o ambiente de rede, um dos protocolos que mais chamam a atenção de invasores é justamente o SNMP. Todo este interesse pelo serviço pode ser exemplificado pelo seu método de operação. O SNMP permite o gerenciamento remoto de equipamentos de rede. Estes equipamentos podem variar desde roteadores, impressoras e servidores. Todas as informações de configurações e peformance são armazenadas em um database que pode ser lido ou configurado através do SNMP.

É possível a leitura e escrita ao que chamamos de network devices MIB (Management Information Base). Estações de gerência podem ser utilizadas para solicitar informações a respeito de interfaces, assim como controlar funções específicas destas interfaces. Nesta implementação, a porta 161 é utilizada para comandos, enquanto a porta 162 é utilizada para alarmes de dispositivos de rede.

SNMP é primariamente utilizado para a tarefa de monitoração de um ambiente de rede. Uma vez instalando-se um pacote de produtos de gerência SNMP, é possível instruir o programa sobre quais subnets monitorar.

A maioria dos produtos fará uma checagem automática no ambiente e trará a listagem de todos os dispositivos disponíveis para um gerenciamento SNMP. O processo de descoberta funciona através da utilização da community string default, identificada como "public". Em uma arquitetura SNMP, a community string é o mecanismo primário de autenticação usando pelo serviço SNMP.

A maioria das implementações de SNMP em ambiente de rede utiliza a string "public" como mecanismo de autenticação de seus dispositivos. Isso permite conexão sem restrições de qualquer origem para administração. Para agravar ainda mais o problema, é preocupante o índice de servidores e dispositivos de conectividade que estão expostos na Internet com string "public", aumentando ainda mais o universo e possibilidades de ataques.

Tráfego SNMP é passível de sniffing e pode revelar informações a respeito da estrutura de um ambiente de rede, assim como de sistemas e dispositivos. Invasores utilizam essas informações para escolher alvos e planejar ataques. Através da exploração da community "public", os invasores podem reconfigurar e até desligar equipamentos.

17. BGP
Recomendação: Bloqueio do tráfego direcionado à porta 179/tcp

O Border Gateway Protocol, ou BGP, é um protocolo que pemite conexão de Autonomous Systems distintos em uma arquitetura a formar um mesmo ambiente de rede, utilizando-se para isso o que chamamos de "Exterior Gateway". O protocolo de roteamento é utilizado basicamente em backbones da Internet. Em ambientes de rede onde o roteador de borda não esteja conectado a uma infra-estrutura BGP, é aconselhável o bloqueio de tráfego BGP a partir do perímetro da rede, visto que o BGP é vulnerável a ataques do tipo SYN Flood e a ataques TCP com flag RST que tem como objetivo resetar conexões estabelecidas a servidores.

18. SOCKS
Recomendação: Bloqueio do tráfego direcionado à porta 1080/tcp

SOCKS é um protocolo utilizado para suportar tráfego TCP através de um proxy server. É utilizado por diferentes tipos de dados (FTP, Telnet, entre outros).

Como SOCKS é passível de vulnerabilidades que permitem ataques do tipo Denial of Service, assim como buffer overflows, caso seja necessária a utilização do mesmo é de extrema importância revisar as regras do sistema de Firewall para especificar explicitamente, o máximo possível, a origem e o destino de tráfego. É importante não permitir, por exemplo, acesso externo a servidores de Proxy.

19. ICMP
Recomendação: Bloqueio de incoming echo request (ping e Windows traceroute), bloqueio de outgoing echo replies, time exceeded, e mensagens unreachable.

Internet Control Message Protocol é utilizado para ajudar na assistência com mapeamento de ambientes de rede. Com o propósito primário de transmitir mensagens de status e erros (ex: host unreachable, redirect, e time exceeded). Ao invés da concepção de transportar dados, o protocolo pode ser utilizado por invasores para levantar informações do ambiente.

A mais conhecida aplicação ICMP com certeza trata-se do echo request e echo reply. O ICMP echo request é um dos métodos mais utilizados para mapeamento de redes. É de extrema importância restringir o echo request quando o mesmo é solicitado a partir da Internet com destino ao perímetro da rede.

O famoso ataque de fragmentação "Ping of Death", utiliza pacotes icmp fragmentados para causar ataque do tipo Denial Of Service através da técnica de criar pacotes IP que excedem a especificação de 65,535 bytes de dados. Este ataque resulta, muitas vezes, em crash ou congelamento do host. Além do Ping of Death, um invasor pode obter informações preciosas através da análise das mensagens ICMP e utilizar o protocolo para a técnica de ataques do tipo Smurf ou Loki..

Retornar Página Publicações


Autorizações para reprodução:

Portal IBEST Imasters
Portal Módulo Security Solutions
Revista CSO On-Line
IDG NOW!
PC Magazine
ComputerWorld
Universidade de São Paulo (USP)
Universidade Estadual de Campinas (UNICAMP)
Universidade Federal do Rio de Janeiro (URFRJ)
Universidade de São Carlos
Universidade Estácio de Sá
HOME  | CURRICULUM  | DOCÊNCIA  | PUBLICAÇÔES |  LIVROS |  PALESTRAS |  IMPRENSA |  PREMIOS
Copyright (c) 2007 MagicWeb Information Provider All rights reserved.