Maikon Kenny Correa de Almeida O desenvolvimento do trabalho foi feito em conjunto, na divisão das tarefas fiquei responsável pela parte da fundamentação teórica e por realizar os testes. Mas em todas as etapas do trabalho tivemos o auxilio um do outro. Avaliação de um segundo fator de autenticação em Firewall UTM Fortinet Maikon Kenny Correa de Almeida, Rodolfo Castro Delgado Curso de Especialização em Redes e Segurança de Sistemas Pontifícia Universidade Católica do Paraná Curitiba, Janeiro de 2013 Resumo O Objetivo desse trabalho e mostrar a utilização do segundo fator de autenticação, será utilizado o firewall Fortigate (UTM da Fortinet). Descrevemos a configuração do equipamento para habilitar o segundo fator de autenticação, utilizamos o FortiToken Mobile, configurado em aparelhos celulares com o sistema operacional android. Realizamos testes para demostrar a facilidade de se descobrir os dados de acesso dos usuários, com base nos resultados obtidos e possível notar o aumento da segurança com a utilização do segundo fator de autenticação. 1. Introdução Hoje a maioria das empresas disponibiliza diversos recursos para os seus usuários, como e-mail, intranet, VPN, etc. Para utilizar esses recursos existe um processo para provar a sua identidade, que é conhecida como autenticação. A forma de autenticação mais comum é a utilizando um nome de usuário e uma senha. O problema dessa forma de autenticação e que um atacante precisa apenas obter esses dados para ter acesso as informações. Existe muitas formas do atacante descobrir esses dados, sendo via keylogger, sniffers, trojans, ou ate mesmo via tentativa e erro. Uma forma de autenticação mais forte e usar mais de um fator de autenticação. No qual você não só tem que saber algo como seu usuário e senha, mas tem que ter algo como um Token ou apresentar algo exclusivamente seu, como sua retina, impressão digital. Nosso objetivo nesse trabalho e mostrar um aumento na segurança, quando e utilizando um segundo fator de autenticação, nos testes realizados demostramos que mesmo que um atacante descubra seu usuário e senha ele não será capaz de conseguir o acesso, pois ele não vai conseguir sem ter acesso ao segundo fator. Vamos utilizar os equipamentos da Fortinet (Fortigate, FortiToken), para implementar o segundo fator. Na seção 3 você encontra uma descrição mais detalhada do hardware/software que foi utilizado e o cenário proposto para os testes. 2. Fundamentação Teórica Segurança da Informação Segundo a norma ISO/IEC 17799:2000, segurança da informação é a proteção contra os diversos tipos de ameaças ás informações, de forma a assegurar a continuidade do negócio, minimizando danos comerciais, maximizando o retorno dos investimentos e as oportunidades de negócio. A segurança de um ambiente é caracterizada pela preservação de três conceitos: a confidencialidade, a integridade e a disponibilidade das informações criticas. A preservação da confidencialidade é a garantia de acesso á informação somente por pessoas autorizadas. Limitando o acesso ás entidades autenticadas, sejam elas pessoas, maquinas ou processos. A preservação da integridade é a garantia de exatidão e completeza da informação, ou seja, garantir que toda vez que uma informação seja manipulada, ela esteja consistente e íntegra. A preservação da disponibilidade garante que o acesso autorizado á informação esteja disponível sempre que necessário. Esse controle visa garantir a informação disponível a quem dele precisa para fins de negocio, com acesso continuo, sem falhas, ininterrupto, constante e atemporal ás informações. [1] Fortinet / Fortigate A Fortinet é a empresa pioneira e líder de mercado no fornecimento de sistemas de gerenciamento unificado de ameaças, que são usados por corporações e fornecedores de serviços para aumentar a segurança enquanto reduzem o custo total de operação. As soluções da Fortinet foram desenvolvidas de forma a integrar múltiplos níveis de proteção fornecendo aos clientes um meio de se protegerem de múltiplas ameaças, assim como de ameaças combinadas. O Fortigate é a primeira gama de aplicações de alto rendimento para a proteção de redes em tempo real. Trata-se de uma plataforma que combina hardware e software para oferecer antivírus, filtragem de conteúdos web e de e-mail, Firewall de inspeção detalhada, IPSec VPN, SSL VPN, detecção e prevenção de intrusões e funções de prioridade de tráfego. Os appliances Fortigate possuem uma relação custo benefício extremamente atraente por ser uma solução de UTM completa, inovadora e líder de mercado. Além de consolidar soluções sofisticadas, o Fortigate possui opções para alta disponibilidade e virtualização completa do equipamento. [8][9] 3. Infraestrutura Para desenvolvimento desse trabalho utilizamos um Fortigate 110c com a ultima versão de firmware (5.1), dois celulares com o sistema operacional android com o aplicativo FortiToken Mobile para o token. Configuramos uma maquina com o serviço de terminal para testar os recursos da rede local. Como pode ser visto abaixo na figura 1. Figura 1: Desenho da Infraestrutura. 3.1. Configurações do Fortigate, FortiToken Mobile. As configurações realizadas nos equipamentos são descritas abaixo, como se pode notar, e necessário poucos passos para habilitar o um portal SSL VPN para acesso aos recursos da rede local e o segundo fator de autenticação. A instalação do software FortiToken mobile nos celulares e feito através da play store, loja de aplicativos do android. Passo 1: Configurar um servidor de e-mail para ativação do Token: No menu System – Config – Messaging Servers. Figura 2: Configuração do servidor de e-mail para a ativação dos Token. Passo 2: Cadastro do Token no Fortigate. No menu User & Device – Two-factor Authentication – FortiToken. Figura 3: Cadastro do Token. Passo 3: Associando um Token ao usuário: No Menu - User & Device – User Definition, selecione o usuário e atribua um token a ele. Marque a opção e-mail address e configure o e-mail que vai receber o código para ativação do token. O usuário vai receber um e-mail igual o da figura 5. Figura 4: Atribuindo um Token ao usuário. Figura 5: E-mail de ativação recebido. Passo 4: Cadastro do código do Token no aplicativo FortiToken mobile: Figura 6: Ativação do Token no Telefone. Passo 5: Configuração do SSLVPN, criação do grupo de usuários que vão ter acesso. No menu User & Device – User Group – Create New – Defina o nome para o grupo e adicione o usuário (necessário já ter os usuários criados), figura 8 mostra os grupos criados. Figura 7: Criação Grupo de usuários. Figura 8: Grupos criados Passo 6: Configuração SSL VPN, criação do portal: No menu VPN – SSL –Portal no botão + do lado direito você cria um novo portal. Nessa tela se define o nome do portal, e habilita as aplicações que vai ser acessível pela SSL VPN. Figura 9: Configuração do Portal SSL VPN Passo 7: Configuração politica de firewall: No menu Policy – Policy – Create New. Figura 10: Criação das politicas de firewall. Passo 8: Teste de conexão: em um navegador acesse o endereço externo do firewall http://rodolfo.fortiddns.com:10443 vai cair na tela de autenticação do portal, que vai ser solicitado usuário e senha (figura 11). O firewall conseguindo validar o usuário e senha ele vai solicitar o Token (figura 12). Após essa etapa de autenticação vai mostrar o portal SSL VPN (figura 13) com os acessos disponíveis á rede local. Figura 11: Tela de autenticação do portal. Figura 12: Tela de autenticação solicitando o Token. Figura 13: Tela do Portal SSL VPN 4. Testes realizados O objetivo dos testes realizados visa mostrar a facilidade de se conseguir os dados de acesso de um usuário (usuário + senha). Vamos utilizar as ferramentas que vem na distribuição Backtrack Linux (Distribuição Linux voltada para testes de segurança), Sniffers, e outras ferramentas que qualquer usuário consegue baixar da internet e executar sem nenhum conhecimento técnico. Figura 14: Desenho do ambiente de teste. 4.1. Teste de ataque Man-in-the-middle. Nesse teste estaremos fazendo um ataque conhecido como Man in the middle com arpspoof para atacar nosso servidor gateway, durante a execução do sslstrip. O Nosso Alvo vai ser o próprio appliance da Fortinet (Fortigate 110c) vamos tentar descobri o usuário e senha dele. A técnica Man-in-The-Middle, funciona de modo que o hacker engana o cliente e o servidor, engana o cliente se fazendo passar por um servidor de proxy e engana o servidor se passando pelo próprio cliente, desta forma os dados chegam até o hacker em texto puro, pois os dois pensam que o hacker é uma fonte confiável. [4], como e mostrado na figura 15. Figura 15: ataque Main in The Middle Arpspoof é uma técnica usada para tentar convencer o host que o MAC address dele é o MAC address do router. ARP é o protocolo de resolução de endereços que trabalha na camada 2 do modelo OSI. O que o ARPspoof faz basicamente e enviar pacotes ARP falsos na rede, com o objetivo de associar o endereço MAC do atacante com o do gateway da rede, com a intenção de enganar as máquinas ligadas ao segmento de rede. SSLstrip trabalha de uma forma bem simples, ele altera todos os GET's HTTPS por HTTP de uma página, e por meio de um ataque man int the middle, faz com que a vítima e o atacante se comuniquem via HTTP, quando na verdade o atacante e o servidor estão se comunicando via HTTPS. Configuração do ambiente: Utilizamos a distribuição Linux BackTrack 5 r3, na qual já vem instalado todas as ferramentas necessárias para realização do ataque. Passo 1: Ativar roteamento de pacotes: abra uma console e digite o seguinte comando: echo “1” > /proc/sys/net/ipv4/ip_forward Passo 2: Configuração do iptables para redirecionar todo tráfego HTTP para o sslstrip na porta 8080: iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –toport 8080 Passo 3: Identificação do gateway da rede, em uma console digite o comando netstat -nr como mostrado na figura 16. Figura 16: Identificação do gateway. Passo 4: Iniciando o ataque arpspoofing, execute o comando abaixo em uma console: arpspoof –i eth0 10.11.31.253. Figura 17: Ataque ArpSpoofing iniciado Passo 5: Iniciando o SSLSTRIP, em uma nova console execute o comando sslstrip -l 8080 Figura 18: sslstrip sendo executado Passo 6: Coletando os dados do ataque com o ambiente pronto, fazendo o arpspoof e o sslstrip capturando o trafego. Abra outra console para verificar o que esta passando: tail –f ssltstrip.log Figura 19: Ambiente do ataque sendo executado Passo 7: Testando a captura dos dados: a partir de uma maquina da rede, acessamos o endereço externo http://rodolfo.fortiddns.com (endereço do firewall) conseguimos ver no log o usuário e senha, que foi capturado. Foi também possível capturar o código do Token utilizado, como mostrado na figura 20. Figura 20: Tela com os dados capturados. Como pode ser visto na figura acima, foi possível capturar as informações que queríamos o usuário e senha, mas também foi possível capturar o código do token utilizado. Mas mesmo com essas informações o atacante não conseguira o acesso a pagina, pois o código do token só tem validade para uma utilização, é e gerado um novo código a cada 60s. 4.2. Ferramentas da Internet. Outra maneira de descobrir usuário e senha e através de ferramentas que vasculham o computador atrás de senhas salvas. Basta uma pesquisa simples no google.com.br como: senhas salvas pc como recuperar, que você vai encontrar varias ferramentas, na qual não é necessário nenhum conhecimento técnico para executar. Uma dessas ferramentas e o SpotAuditor, com ele e possível recuperar senhas salvas no navegador, conexão dial-up (VPN), msn, Gtalk etc. Figura 21: SpotAuditor rodando Essa forma de ataque, a pessoa precisa ter acesso a maquina, isso pode ocorrer de diversas formas, por exemplo, sair e deixar a maquina desbloqueada, levar a maquina para uma assistência técnica. 5. Conclusões Foram demonstradas duas formas de se conseguir os dados do usuário, mas existe enumeras formas de se obter os dados, pode se notar que são dois métodos fáceis de executar, mas que conseguem atingir seu objetivo. O que ocorre com muita frequência e o usuário utilizar o mesmo usuário e senha para vários sites, como e-mail, redes sociais, bancos etc. Uma pesquisa da securityweek [5] revela que 75% dos usuários usam a mesma senha de e-mail para redes sociais. Outro estudo revela que seis em cada 10 usuários usa os mesmos usuário e senhas para vários sites [6]. A partir dessas informações podemos deduzir que se descobrindo a combinação de usuário + senha de um usuário teremos grande chances de ter acesso a outras informações. Mas agora a utilização do segundo fator de autenticação, mesmo que essas informações de usuário e senha sendo descobertos não vai ser possível conseguir o acesso. Como mostrado no teste, por causa da validade do token, e a restrição de apenas uma utilização. Podemos concluir que se possível não utilizar mesmos usuário e senhas para vários serviços e uma boa pratica, e que se possível não salvar senha em navegadores, conexões dial-up e clientes de mensagem instantâneas. Consideramos que no futuro, todas as aplicacoes vao precisar integrar o segundo fator de autenticacao dentro do codigo delas, usando os APIs para integrar com os tokens. Para ter uma referencia, as aplicacoes ficariam similares ao que ja conhecemos nos sites dos bancos. Além de integrar os API’s os codigos dos tokens devem ser digitados fazendo click nos numeros e nao usando o teclado, isto para evitar a captura dos tokens como foi apresentado durante os testes. 6. REFERÊNCIAS BIBLIOGRÁFICAS [1] Siqueira, Marcelo Costa. Gestão estratégica da informação / Marcelo Costa Siqueira. – Rio de Janeiro: Brasport, 2005. [2] Cheswick. William R. Firewalls e segurança na Internet: repelindo o hacker ardiloso / William R. Cheswick. Steven M. Belovin e Aviel D. Rubin: tra. Edson Furmankiewicz – 2.ed. –Porto Alegre: Bookman, 2005. [3] Santos, Alfredo. Gerenciamento de identidade / Alfredo Santos. – Rio de Janeiro: Brasport, 2007. [4]A técnica man in the middle. http://www.securityhacker.org/artigos/item/a-tecnicaman-in-the-middle , acessando em 16/01/2013. [5]Estudo Revela 75% usa o mesmo usuário e senha para redes sociais e e-mail. http://www.securityweek.com/study-reveals-75-percent-individuals-use-samepassword-social-networking-and-email acessado em 16/01/2013. [6]6 em cada 10 internautas usam a mesma senha para vários sites, http://tecnologia.ig.com.br/2012-10-01/seis-em-cada-10-internautas-usam-mesmasenha-para-varios-sites-diz-estudo.html acessado em 16/01/2013. [7] http://kb.fortinet.com acessado em 10/01/2013. [8] http://www.brasiline.com.br/index.php?id=/fabricantes/materia.php&cd_matia=165 acessado em 04/01/2013. [9] http://forum.pfsense.org/index.php?topic=46063.0;wap2 acessado em 04/01/2013.