SOFTWARES PARA CRIAÇÃO DE MECANISMO DE SEGURANÇA BASEADO NA PLATAFORMA LINUX Leandro Rodrigo de Carvalho Silva1, Alexandre Paulino Sierra da Silva1 1 Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. Este artigo apresenta aplicações que podem ser utilizadas para a criação de um mecanismo de segurança baseado na plataforma Linux. Serão apresentados exemplos de ferramentas como servidor Proxy, Sistema de Detecção de Intrusão e Filtro de Pacotes. Serão citados objetivos, vantagens e forma de distribuição das ferramentas relacionadas. O objetivo do mecanismo de segurança baseado no conjunto destes softwares é proporcionar maior confiabilidade, segurança dos dados trafegados, proteção contra intrusão, agilidade, proporcionada pelo servidor Proxy, e filtro de acesso a conteúdo. 1. Introdução Atualmente a tecnologia está difundida em diversos setores, fazendo-se necessário o uso de soluções de segurança nos sistemas computacionais existentes. Visando o aumento da qualidade e velocidade das tarefas em virtude da competitividade e serviços online, como NFe, as empresas vêm se utilizando cada vez mais de sistemas computacionais interligados, tanto via rede interna quanto externa, ficando expostas a variados riscos e inseguranças, se sujeitando segundo Mendes [2000] a atividades de crackers, hackers e a insegurança natural da comunicação em redes e da internet. Os dados trafegados em uma rede percorrem um longo caminho até seu destino estando propensos à atividade não desejada pelo usuário. Decorrente destes fatos, é necessário garantir que a informação chegue ao seu destino de forma integra, sem alterações [Moreira, 2001]. Isto se aplica com políticas de segurança que definem os níveis de acesso a diferentes tipos de usuário, capacitando pessoas responsáveis para instalações, configurações, manutenções das informações, desta forma aumentando a segurança dos dados [Moreira, 2001]. Existem diversas ferramentas de segurança à informação disponíveis no mercado, como: firewalls, softwares de criptografia, antivírus, sistemas de detecção de invasão, etc. Porém, como dito anteriormente, somente estas aplicações não tornam o acesso à informação seguro [Moreira, 2001]. Entretanto segundo Moreira [2001] não basta ter um conjunto de ferramentas de segurança implantadas para se ter uma segurança aceitável. Para se obter um resultado realmente eficaz, é necessário se utilizar de um Plano de Segurança, elaborado pelos níveis estratégico, tático e operacional de uma empresa. Este trabalho consiste em uma revisão bibliográfica que tem como objetivo apresentar alguns softwares, que em conjunto, agem como um mecanismo de segurança baseado em ambiente operacional Linux, de modo a proporcionar maior confiabilidade, segurança dos dados trafegados em rede e proteção contra intrusão. 2. Conhecendo o Linux Antes de citar e explicar o funcionamento de algumas das ferramentas de segurança, é necessário determinar qual plataforma será utilizada para a implantação da segurança. O crescimento do Linux em servidores se deve pelas suas vantagens sobre o Windows. Assunção [2002] cita algumas dessas vantagens, como distribuição gratuita, criptografia de senhas inquebráveis (somente descobertas, através de várias tentativas e erros), possui melhores ferramentas de rede e faz melhor gerenciamento de permissões. Noyes [2010] também cita algumas vantagens, como maior estabilidade e segurança, não exige atualizações de hardware para suportar demandas crescentes, além de ser mais leve, consumir menos espaço de armazenamento, ser flexível, pode ser modificado de acordo com o perfil de uso e ser escalável. Por estas vantagens, é escolhida a plataforma Linux como base das ferramentas de segurança que serão demonstradas no decorrer do artigo. O Linux é disponibilizado por Licença Publica Geral, vários programadores adotaram e contribuíram para seu desenvolvimento. Apesar do Linux ser desenvolvido especialmente para computadores pessoais, devido ao modo que foi construído, foi possível criar versões para outras plataformas, por exemplo, “hoje em dia, o Linux roda em praticamente todo o tipo de sistemas: de PCs domésticos equipados com chips de 32 ou 64 bits, a equipamentos especializados, usados em maquinário industrial” [Morimoto, 2009], além de servir de base para novos sistemas, como o mais recente Android. Atualmente o sistema possui mais de 500 distribuições, porém quase a totalidade é derivada de versões já existentes. As suas principais versões são: Debian, Red Hat/Fedora, Mandriva, Ubuntu, Slackware, Gentoo, e outras [Morimoto, 2009]. O Debian é a distribuição mais utilizada dentre servidores, e a segunda mais utilizada dentre os desktops com Linux. Esta distribuição não recebe novas versões de maneira rápida e com cronograma definido. Desta forma, o sistema é desenvolvido com muito cuidado, utilizando-se de longo período de testes até ser lançada uma nova versão considerada estável [Hertzog, 2012]. 3. Servidores Proxy O Proxy é um servidor que processa pedidos de informação de clientes e busca seus resultados em outro servidor, isso se a informação não estiver disponível no próprio servidor Proxy. Essas informações requisitadas são conexões, sites da web, arquivos ou outros serviços [Rehem, 2010]. São mais utilizados com o intuito de filtrar conteúdo e assegurar a confidencialidade. Também se utiliza um Proxy para se restringir acesso, controlar velocidade de tráfego, implementar políticas de utilização, obter estatísticas de utilização, dentre outras funções. O Proxy pode trabalhar como cache, ou seja, ele intercepta a conexão e armazena a informação requisitada anteriormente. Desta forma, caso um usuário da rede requisitar a mesma informação, esta será disponibilizada de forma mais rápida [Rehem, 2010]. Segundo Bastos [2008] e Rehem [2010], os servidores Proxy possuem as seguintes características: Velocidade de acesso: Ganho de velocidade com armazenamento local, evitando novo tráfego externo; Disponibilidade: Deve estar a maior parte do tempo disponível. Em grandes organizações, deve-se extinguir falhas, e manter sempre em funcionamento, utilizando-se de redundância de servidores; Transparência e Ostensividade: Utiliza políticas de utilização, controle de acesso e recolhe informações sobre o tráfego de dados; Simplicidade: Servidor configurado de forma a facilitar sua administração, assim não dependendo de uma única pessoa para lidar com os problemas; Capacidade de trabalhar com redes heterogêneas: Devem funcionar em multiplataformas e atender bem os usuários de ambas. Um exemplo bastante utilizado de servidor Proxy disponível para a plataforma Linux é o Squid, sendo disponibilizado com licença de código aberto. Ele compartilha a conexão entre diversos clientes, sendo intermediário entre os clientes e a internet. Pode ser configurado de forma hierárquica ou mista para melhor aproveitamento da largura de banda [Bastos, 2008]. O Squid é constantemente aperfeiçoado, melhorando seu desempenho e adicionando novas funcionalidades. Ele se demonstra extremamente estável quando levado ao limite [Rehem, 2010]. É um servidor compatível com diversas plataformas e bem abastecido pela comunidade desenvolvedora com softwares que analisam logs, geram relatórios, melhoram o desempenho e adicionam segurança ao produto. O Sarg é um exemplo de software disponibilizado para trabalhar em conjunto com o Squid, e tem a função de visualizar os acessos às páginas e o horário do acesso a partir do log gerado pelo servidor [Rehem, 2010]. 4. Sistemas de Detecção de Intrusão Um sistema de detecção de intrusão, ou na sigla em inglês IDS, tem como finalidade analisar o tráfego de dados em uma rede com o objetivo de se detectar invasores que tentam explorar alguma vulnerabilidade ou acessar algum dado restrito [Oliveira, 2006]. Esse tipo de sistema funciona em segundo plano, notificando condutas suspeitas ou ilegais, não interferindo no tráfego da rede. Seu modo de funcionamento difere de um Firewall, que decide qual tráfego é permitido, pois ele rastreia e analisa os pacotes de dados. Os IDS mais atuais podem até bloquear conexões TCP suspeitas [Oliveira, 2006]. Os IDS também podem ser utilizados para detectar vulnerabilidades em dispositivos de proteção de uma rede, como Roteadores e Firewalls. Na atualidade, Firewalls não são suficientes para garantir a segurança no acesso aos dados, pois os problemas de segurança são variados, desde vulnerabilidades a problemas na política de segurança. Ademais, Firewalls não identificam se o que está trafegando em uma rede é invasivo ou não, pois o tráfego mal intencionado pode estar camuflado e pode ser aceito. Os Sistemas de Detecção de Intrusão podem detectar esse tráfego malicioso, [Oliva, 2001] apud [Oliveira, 2006]. Existem vários softwares que detectam intrusão, mas neste artigo vamos tratar do Fail2ban. O Fail2ban é um aplicativo, que monitora arquivos de log verificando a quantidade de tentativas de conexão sem sucesso. Ele bloqueia o endereço de IP suspeito, após um número de conexões sucessivas [Nascimento, 2011]. O aplicativo monitora a tentativa de acesso em diversos serviços, e bloqueia o possível ataque adicionando regras no Firewall instalado. Ele também bloqueia ataques de força bruta, comuns quando se tem conexão com a internet, de forma confiável, sem prejudicar usuários autênticos. O Fail2ban é desenvolvido em linguagem de programação Python, tornando o aplicativo compatível com qualquer sistema operacional [Nascimento, 2011]. 5. Filtro de Pacotes Um Firewall é um aplicativo que pode vir integrado em um sistema operacional ou pode ser instalado de um terceiro. Este aplicativo objetiva a filtragem de pacotes de dados e o bloqueio de acesso de aplicações a uma rede [Chicoli, 2008]. No sistema operacional Windows podemos encontrar um Firewall integrado, que pode funcionar em um computador isolado, como também em um gateway de rede. Porém o Firewall integrado ao sistema Windows não apresenta boa confiabilidade e desempenho para gerenciar redes de médio e grande porte, além de possuir inúmeras vulnerabilidades. Sendo assim, torna-se inviável a utilização de um filtro de pacotes em um sistema Windows como gateway de rede [Chicoli, 2008]. Todavia, utilizaremos a plataforma Linux. Sendo assim, será adotado o filtro de pacotes Iptables, aplicativo padrão em distribuições Linux para a construção de Firewalls.O Iptables é disponibilizado sob Licença Publica Geral e foi desenvolvido em sua maior parte pela equipe do núcleo Netfilter, mas recebeu contribuições de outros desenvolvedores [Netfilter, 2010]. 6. Metodologia Para este trabalho foram realizadas pesquisas em livros e artigos em sites. Com base na pesquisa realizada, obtiveram-se informações referentes a softwares que utilizam como base a plataforma Linux, e podem ser utilizados na criação de um mecanismo de segurança. Foram mencionados sobre estas aplicações, seus objetivos, algumas de suas vantagens e sua forma de distribuição. 7. Conclusão Mesmo sabendo que um conjunto de aplicações de segurança sozinho não pode garantir total segurança em um ambiente de rede, podemos salientar que é um passo de um trabalho árduo, onde devem também ser utilizadas políticas de segurança e um plano de conscientização de pessoal em todos os níveis de uma empresa. Os softwares citados possuem distribuição gratuita e podem garantir um bom nível de segurança. Salientando que, antes de utilizá-los, é necessário efetuar uma análise de risco e verificar a real necessidade da situação em questão. Referências ASSUNÇÃO, Marcos Flávio Araújo. Guia do Hacker Brasileiro. 1. ed. Florianópolis: Visual Books, 2002. BASTOS, Eri Ramos. Manual de Configuração do Squid. [S.I.: s.n.] [2008?] <http://www.oocities.org/br/dionata.nunes/Documentos/Apostilas/squid.pdf> Acesso em: 29/05/2013. CHICOLI, Milton. Curso Prático de Montagem e Manutenção de Redes. 1. ed. São Paulo: Digerati Books, 2008. HERTZOG, Raphaël; Mas, Roland. O Manual do Administrador Debian. 1. ed. La Talaudière, França: Freexian SARL, 2012. MENDES, Wayne Rocha. O submundo hacker do Linux: Ataques e defesas. 1. ed. Rio de Janeiro: Ciência Moderna Ltda., 2000. MOREIRA, Nilton Stringasci. Segurança Mínima – Uma Visão Corporativa da Segurança de Informações. 1. ed. Rio de Janeiro: Axcel Books do Brasil, 2001. MORIMOTO, Carlos E. Linux, Guia Prático. 1. ed. GDH Press e Sul Editores, 2009. NASCIMENTO, Ricardo B. do. Proteção utilizando fail2ban contra ataques dotipo "força bruta" or brute force. [S.I.: s.n.], 2011. <https://docs.google.com/file/d/0Byq-AAimoaXMmE4MzY0NjUtNTI4My00ZjZjLWE4MWMtNDIwOGU0NWRiMWVl/edit?hl=e n_US>. Acesso em: 18/03/2013. NETFILTER. The netfilter.org "iptables" project. 2010. Disponível <http://www.netfilter.org/projects/iptables/>. Acesso em: 18/03/2013. em: NOYES, Katherine. Veja porque o Linux está à frente do Windows em servidores. Disponível em: <http://pcworld.uol.com.br/noticias/2010/08/31/veja-porque-olinux-esta-a-frente-do-windows-em-servidores/>. Acesso em: 23/05/2013. OLIVEIRA, Raimundo Corrêa de; GUIMARÃES, Alexandre Guedes; LINS, Rafael Dueire. Segurança em Redes Privadas Virtuais – Vpns. 1. ed. Rio de Janeiro: Brasport, 2006. REHEM, Almerindo; BRANDÃO, Nicole Gonçalves; JUNIOR, Ubirajara de B. Cruz. Manual de Instalação de Servidor Squid baseado no Linux CENTOS 5.4. Artigo científico da disciplina Tecnologia de Sistemas para Internet ministrado na Universidade Tiradentes de Aracaju, 2010. <http://almerindo.devin.com.br/index.php?option=com_content&view=article&id=1 00:manual-do-squid&catid=43:trabalhos-de-alunos&Itemid=86> Acesso em 29/05/2013.