Controlando o Acesso à Rede com IPsec e 802.1x
Um dos sonhos dourados de toda equipe de segurança é o de poder controlar que computadores podem se plugar em sua rede. Esse controle mitigaria uma grande quantidade de riscos associados por exemplo a computadores de terceiros inadvertidamente introduzindo worms na organização, ou a pessoas intencionalmente usar a rede interna para realizar ataques.
Ok, mas como fazer isso? Além da forma mais óbvia (segurança física) e das formas que não funcionam (usar IP estático, controlar endereço MAC), existem duas tecnologias viáveis para este controle: usar autenticação nas portas de rede através do protocolo 802.1x, ou isolar os computadores da empresa usando IPsec. Ambas são padrões abertos e ambas tem amplo suporte nos mais diversos sistemas, mas cada uma usa uma abordagem diferente para controlar esse acesso e por isso apresentam vantagens e desvantagens uma em relação a outra. Uma boa coisa no entanto é que ambas podem funcionar juntas e de certa forma se complementam.
802.1x
A solução com 802.1x é conceitualmente mais simples de se entender: ela exige que cada dispositivo se autentique antes de poder se conectar à rede. O equipamento de rede (normalmente um switch) vai obter do dispositivo suas credenciais, e somente após validá-las a porta de rede é habilitada e passa a permitir a comunicação. Esta autenticação é normalmente feita usando senhas ou certificados digitais, e a validação realizada em um servidor RADIUS.
Apesar do conceito ser simples, a implementação raramente é. Já toquei em alguns pontos que complicam a implementação de 802.1x, notadamente em redes com fio, mas mesmo uma implementação perfeita não evitará as seguintes fragilidades:
¦ A autenticação e o controle de acesso são feitos pelo equipamento de rede, que passa a ser o responsável por garantir a segurança contra dispositivos indesejáveis (não supreende portanto a preferência dos técnicos de rede e dos fabricantes de equipamentos por essa tecnologia). Mas isso implica em que qualquer falha ou vulnerabilidade nestes equipamentos podem ser usados para burlar a solução. A segurança do seu servidor agora depende também da segurança do seu switch!
¦ Todas as portas de acesso a rede precisam ser autenticadas para garantir a proteção, ou colocando de outra forma qualquer porta de rede que não requeira autenticação é um potencial furo de segurança. A primeira implicação disso é todo o equipamento de rede talvez tenha que ser trocado. A segunda é que qualquer porta que tenha que ser definida sem autenticação, como por exemplo para uma impressora de rede que não suporte 802.1x, vai ter que ser isolada em uma VLAN a parte e protegida por um firewall. Ou seja, uma rede que era simples vai provavelmente ficar muito mais complexa com muitas VLANs e alguns firewalls internos (para a alegria de alguns técnicos de rede, e para a tristeza de todo o resto da empresa).
¦ Por ser uma solução em camada 2, a proteção do 802.1x vai até o momento em que o dispositivo foi autenticado pela rede. 802.1x não oferece proteção contra ataques do tipo man in the middle, nem garante a confidencialidade ou a integridade das comunicações. Também não protege contra um computador estar compartilhando a conexão de rede com outros. Em resumo, 802.1x só garante que a porta de rede foi habilitada para um dispositivo autenticado.
IPsec
A solução de isolamento de domínios trabalha de forma diferente. Ela utiliza IPsec para autenticar o tráfego de rede, de forma que os computadores da empresa somente aceitam receber conexões autenticadas. Um equipamento estranho pode até se plugar na rede, usando qualquer que seja a forma, mas não conseguirá se comunicar com os equipamentos da empresa.
Não se trata de criar VPNs ou "túneis" entre os computadores, e nem é criada nenhuma interface de rede adicional. O protocolo IPsec é utilizado em modo de transporte, preservando o cabeçalho IP original e simplesmente incluindo um cabeçalho adicional com a assinatura dos dados. Como isso é feita em camada 3, isso acontece de forma transparente para todas as aplicações e para o próprio usuário, e de forma independente da infraestrutura de rede (hubs, switches, wireless, etc).
Note que a configuração normal é exigir autenticação somente que as conexões recebidas pelo sistema sejam autenticadas. Nas conexões iniciadas pelo sistema se solicita IPsec mas a comunicação é feita mesmo que ele não seja usado (o chamado "fallback to clear"). Isso permite por exemplo que a empresa possa ter impressoras que não suportem IPsec sem problemas em sua rede - afinal não é a impressora que inicia a conexão com os computadores, e sim o contrário.
Pela sua forma de funcionamento, o isolamento de domínios com IPsec tem algumas vantagens sobre o uso de 802.1x:
¦ Ele não requer qualquer mudança nos equipamentos de rede da organização.
¦ A segurança contra conexões não-autenticadas é feita pelo próprio sistema, e não depende da infraestrutura de rede nem da segurança de algum switch - o computador vai estar protegido onde quer que ele esteja.
¦ Como existe a autenticação mútua e cada pacote de rede é assinado digitalmente, IPsec garante a integridade do tráfego e impede ataques do tipo man in the middle.
¦ Opcionalmente o tráfego pode ser encriptado - excelente se a sua aplicação não implementa criptografia ou para servidores que tenham informação classificada como de alto impacto no negócio. Ou se você tem que atender a alguma exigência regulatória de encriptar determinada informação. De novo, transparente para a aplicação e para o usuário.
A implementação IPsec do Windows também inclui autorização além de autenticação, e permite que configurar por exemplo que sistemas podem ter acesso a um determinado grupo de servidor. Por exemplo, os servidores de código fonte somente são acessíveis para as máquinas dos desenvolvedores; ou computadores da área de consultoria da empresa não podem acessar sistemas da área de auditoria. Isso é feito usando somente políticas de grupo do Active Directory - muito mais simples de configurar e muito mais segura do que a abordagem "tradicional" de usar firewalls e VLANs.
Mas o que talvez seja a maior vantagem do isolamento de domínios com IPsec é que a sua organização provavelmente já adquiriu ela. O suporte a IPsec está em todos os Windows desde o Windows 2000, e a configuração é toda feita via políticas de grupo do Active Directory. A solução já está comprada e instalada, você só precisa configurar. Não dá para ser muito melhor do que isso.
IPsec tem também suas próprias limitações. Ele não impede ataques de "denial of service" onde uma máquina sature de tráfego a rede ou um determinado link - somente uma solução em camada 2 como 802.1x impediria isso. IPsec somente autentica computadores e não usuários (isso vai mudar no Windows Vista). Ele não protege o tráfego entre os sistemas e os controladores de domínio (isso também muda no Vista), e pode aumentar o tempo de failover para clusters.
Qual delas usar então?
Todas as duas tecnologias tem valor, e acredito que ambas vão ser de uso comum em todas as redes em poucos anos. Mas acredito que hoje para a maior parte das empresas faça mais sentido implementar isolamento de domínios usando IPsec para controlar a entrada de sistemas na rede. Os custos são menores, a implementação é mais rápida (veja o caso da UVV em Vitória, que fez tudo em menos de uma semana) e a segurança é maior. A exceção seriam os segmentos de rede Wireless - nesse caso 802.1x já tem um nível de maturidade muito maior e o seu uso é praticamente obrigatório.
Parte dessa escolha vem também da minha opinião que cada sistema deve ser capaz de se defender, onde quer que ele esteja, onde quer ele esteja conectado. Depender de um firewall ou de um switch para garantir a segurança é introduzir mais um ponto de falha, e pior um que nem sempre está sob seu controle. 802.1x é uma forma excelente de se proteger a própria infraestrutura de rede, contra flood e outros ataques, mas IPsec me parece ser uma forma superior de proteger os próprios sistemas.
Aqui na Microsoft usamos isolamento de domínios com IPsec em toda a rede corporativa, que tem mais de 300 mil dispositivos conectados, e 802.1x para a rede Wireless. Siga os links para ver em muito detalhe como a implementação foi feita, os problemas encontrados e os benefícios obtidos com essas tecnologias. E neste link você pode ouvir uma palestra sobre isolamento de domínios feita por mim no TechEd do ano passado.
Comments
Anonymous
January 01, 2003
Oi Marcos, obrigado pelo comentário. Sem dúvida atualmente um dos maiores impedimentos para implementar 802.1x em redes cabeadas é a ausência de gerenciamento via AD ou scripts, e apontei este problema neste outro comentário (http://blogs.technet.com/fcima/archive/2006/10/30/o-que-voc-precisa-saber-antes-de-implementar-802-1x-em-redes-com-fio.aspx) que deve te interessar. Isso felizmente foi resolvido agora com o Windows Vista, mas segue sendo um impedimento para 2000/XP/2003. Eu não conheço nenhum caso deste porte com 802.1x cabeado. Aqui na Microsoft somente usamos 802.1x em wireless.Anonymous
January 01, 2003
Oi Alexandre, Estou totalmente de acordo que as tecnologias são complementares, porque existem riscos que somente uma elimina e riscos que só a outra elimina. Como você citou, alguns tipos de DoS contra a própria infraestrutura de rede só são protegidos com uso de 802.1x. Qualquer organização provavelmente vai estar melhor servida implementando as duas tecnologias. Eu só não estou de acordo com alguns pontos que você menciona. O IPsec protege justamente a rede contra as máquinas fora do domínio (acho que você quis dizer que o IPsec não protege as máquinas fora do domínio, apesar de existirem formas de fazer isso). O IPec permite mudar as políticas de forma automática, o que eu acho até que é uma de sas das grandes vantages. Mudou a política de grupo, pronto, a política foi alterada. E com muito mais flexibilidade que em 802.1x, pois um computador só faz parte de uma VLAN, mas pode fazer parte de n grupos no AD. O IPsec é uma das formas de controle recomendadas para o NAP, e diria até que é que mais recomendamos (se você for a nossa página do NAP em www.microsoft.com/nap vai ver IPsec sendo citado dezenas de vezes). O que não quer dizer que a Microsoft não esteja também apostando no 802.1x, e o Vista traz várias melhorias neste ponto incluindo as benditas políticas para configurar 802.1x em interfaces wired. Ao final de contas o debate entre ambas as tecnologias está dentro do contexto entre colocar os controles na infraestrutura de rede x host, entre camada 2 x camada 3. Eu acho que o mundo caminha para um modelo de comoditização da infraestrutura de rede, e por isso proteger o host (com IPsec) é a melhor estratégia a longo prazo. Eu escrevi um pouco sobre isso em http://blogs.technet.com/fcima/archive/2007/06/09/deperimetriza-o-e-externaliza-o.aspx. Obrigado pelo comentário, e eu o editei para tirar o seu endereço de e-mail e evitar spam. Eu já sofro aqui com dezenas de spams de comentário por dia e não quero o mesmo destino para você ;) Abracos, - Fernando CimaAnonymous
November 07, 2006
Acredito que um dos principais problemas do 802.1x em redes cabeadas é a inexistência de facilidades de gerenciamento no AD para configurações do 802.1x. Há casos de grandes empresas (mais de 6.000 máquinas) que tenham conseguido implementar o 802.1x em rede cabeada ?Anonymous
June 29, 2007
Eu sou obrigado a discordar da visão passada neste artigo técnico, pois não foi citado os benefícios do IEEE 802.1x sobre o IPSEC, dando uma visão um pouco distorcida da tecnologia. No meu ponto de vista, estas tecnologias não são concorrentes mais sim complementares, pois o próprio IPSEC não atende a todas as necessidades das redes corporativas, como por exemplo, aos itens abaixo:
- O IPSEC não protege a rede contra ataques DOS;
- O IPSEC não protege a rede contra máquinas fora do domínio;
- O IPSEC não permite o rastreamento físico dos usuários (localização) na infra-estrutura de rede, elemento este muito recomendado no draft da norma ISO 27002;
- O IPSEC não permite a mudança das políticas e segmentação da rede de forma automática, como o IEEE 802.1x permite. Somado aos parágrafos em epigrafe, eu também questiono porque o IPSEC não é recomendado ou citado dentro da nova arquitetura NAP da Microsoft? Porque o IEEE 802.1x é citado! Para finalizar o meu comentário, quero garantir que existem sites muito grande utilizando IEEE 802.1x em sua plenitude, no caso mais de 20.000 pontos de rede. Vale relembrar que o processo de maturação de qualquer padrão não é rápido, pois depende de uma disseminação da informação técnica e tratando-se do IEEE 802.1x – 2001, podemos afirmar que ele evoluiu muito em um curto período de tempo.
- Anonymous
July 02, 2007
Fernando, eu continuo acreditando que esta discussão não pode ser polarizada entre o IEEE 802.1x de um lado contra o IPSEC do outro ou hosts versus network; porque existe um contexto muito mais abrangente do que o universo que estamos discutindo. Citando um exemplo, eu posso adicionar a chegada do IPv6 (AH e ESP embutidos), onde todas as implementações de IEEE 802.1x nada sofreriam, prevalecendo a independência das camadas de rede e facilitando muito o upgrade tecnológico. Contudo, eu acredito que não podemos defender o mesmo para redes IPv4 com IPSEC implementado, correto? De fato, eu concordo e defendo os benefícios citados por você a respeito do IPv4, mas acredito que não precisamos estender muito mais a discussão sobre o IEEE 802.1x, pois de uma forma ou de outra estamos visando o mesmo objetivo, ou seja, mobilidade com segurança na rede. Sucesso e obrigado pela discussão de alto nível!