Implementando Projetos de Segurança de Redes com o Software Livre Sandro Melo Diretor de Tecnologia - 4Linux [email protected] Abstract: Today when we talk in security, many times we think about solutions without the o less to imagine what we are really wanting in defending. The objective of this article is to demystify and to show that solutio in open standards can be option for corporations when conceived of concise and functional form and that the same one can be implemented, objectifying to have security with I begin in transparency for future auditorships through the open source. Resumo: Hoje quando falamos em segurança, muitas vezes pensamos em soluções sem ao menos imaginar do que realmente estamos querendo nos defender, ou seja, “segurança de olhos vendados”. O objetivo deste artigo é desmistificar e mostrar que soluções baseadas em padrões abertos podem ser a opção para corporações, desde que concebidas de forma concisa e funcional, e que podem ser implementadas objetivando ter segurança com princípio em transparência para auditorias futuras através do código aberto. 1. Introdução Inicialmente, quando a suite TCP/IP foi projetada, o cenário era de um conjunto de redes militares, em que cada uma era uma base militar e o roteamento se mostrava uma necessidade. A rede militar saiu da estrutura “teia” e subiu aos satélites, ficando a Internet disponível aos órgãos de pesquisa como o MIT e, doravante, à todo mundo. O problema de segurança de redes de computadores podia, inicialmente, ser resolvido com filtros de pacotes. Embora fosse simples, para a realidade da época era o suficiente, na maioria dos casos. Hoje, quando falamos sobre segurança, devemos ser cautelosos até mesmo ao formularmos as sentenças e nos preocuparmos com o que pode estar sendo ouvido. aberto, cujo princípio de segurança baseia-se em sua transparência totalmente auditável. 3. Estatísticas de ataques Vemos nos índices das estatísticas o grande volume de ataques e, na grande maioria dos casos, é a desconfiguração do site que faz a diferença. Não apenas a melhor solução de Firewall, e sim o profissional que está por trás dela: o peopleware é agora - como sempre foi - o diferencial. Não podemos assumir que a melhor ferramenta é tudo que se necessita para um projeto de segurança. Quando pensamos em segurança de sistemas, temos uma formula algébrica de recursos: “capacitação (técnicos, usuários) + metodologia (normas, planejamento) + ferramental = bom projeto de segurança”. Mas é importante que essa obra foque apenas o aspecto técnico da ferramenta, técnicas de intrusão de sistemas e vulnerabilidades. O fato é que o assunto segurança de informação precisa ser pensado e é extremamente necessário, afinal, ter o nome da empresa manchado com certeza não será agradável para nenhum acionista ou investidor, mas, infelizmente, como qualquer investimento em TI, não é tangível em um primeiro momento. 4. Consciência do risco 2. Paradigmas Sabemos que os invasores de sistemas que podem levar perigo à uma empresa não se contentam apenas em trocar sua Home Page, pois são capacitados e, na maioria das vezes, são ótimos programadores ou engenheiros de rede, quase sempre autodidatas. Para ser capaz de se defender, é necessário ter as mesmas armas, “o conhecimento” tanto das vantagens das ferramentas que são utilizadas, como também de suas limitações. Mas, o que fará a diferença é justamente ter o conhecimento das técnicas comumente utilizadas pelos invasores - que segundo os mesmos, são as técnicas não éticas Temos alguns paradigmas a optar no que tange à escolha de ferramentas. Podemos deixar a segurança de nossa empresa à mercê do melhor produto, baseado em soluções “Caixa Preta”, na qual toda a engenharia da tecnologia empregada na concepção da solução é apenas de conhecimento do fabricante e a segurança tem como princípio a obscuridade de sua criação. Por outro lado, podemos pensar em soluções baseadas em software livre e código É necessário ter a consciência de como o invasor pode atuar em nosso site. Já diz Sun Tzu: “... se conhece o inimigo e conhece a si mesmo, não precisa temer o resultado de cem batalhas” [4]. desse submundo conhecido como “Mundo Underground” - para que a elaboração de contramedidas seja concisa e verdadeiramente funcional. Nos programas convencionais, o código de programação é secreto e de propriedade da empresa que o desenvolveu, sendo quase impossível decifrar a programação. 5. O perfil do novo administrador de ambientes computacionais Um software só pode ser considerado como tal se proporcionar as quatro liberdades fundamentais: É notório que um bom administrador de ambientes computacionais dos novos tempos tem que conhecer bem o que faz, conhecer bem o protocolo TCP/IP e até suas limitações para que seja capaz de configurar de maneira eficaz um Firewall e um sistema de IDS, como também reconhecer uma assinatura de ataque. Por melhor que seja a ferramenta, sua capacitação será o diferencial, como também sua pró-atividade em busca de atualizações constantes e até, quando possível, testar as vulnerabilidades dos sistemas por ele utilizados, seja em busca de erros de configurações padrões ou mesmo submetê-lo a um teste de um possível exploit. Tudo isso baseado em metodologias coesas, fundamentas em normas como a BS1799 (Norma britânica de políticas para segurança de informação). 6. Pensando em Software de código aberto, pensando em Software Livre Não podemos deixar de citar que muitas das soluções de segurança “Open Source“ nascidas em ambiente acadêmicos são base para soluções proprietárias, provando que, em momento algum, o fato de não existir custo na aquisição da ferramenta siginfica que sua tecnologia seja inferior. Muitos sistemas de Firewall caixa preta rondam em cima de Kernel baseados em Linux e Unix BSD (Unix de código aberto oriundos da Universidade de Berkely). Ou ainda padrões abertos como IPSEC são base para soluções fechadas e abertas. 6.1 O que é Software Livre São programas de computador construídos de forma colaborativa via Internet por uma comunidade internacional de desenvolvedores independentes. São milhares de “hackers”, no verdadeiro sentido da palavra, ou seja, programadores especialistas que renegam sua associação com os “violadores de segurança”, tanto que a maioria prefere simplesmente se autodenominar “geek”. Esses programas são entregues à comunidade com o código fonte aberto e disponível, o que permite que a idéia original possa ser aperfeiçoada e devolvida novamente à comunidade. Utilização do programa com quaisquer propósitos[3]; Modificação e adaptação do programa às suas necessidades (para tornar essa liberdade efetiva, é necessário ter acesso ao código fonte, porque modificar um programa sem tê-lo é difícil) [3]; Redistribuição de cópias, tanto grátis como com taxa [3]; Distribuição de versões modificadas do programa, de tal modo que a comunidade possa beneficiar-se com as suas melhorias [3]. O exemplo mais conhecido de software que segue esse conceito é o sistema operacional Linux, alternativo ao Windows e utilizado por quase metade dos provedores de Internet do mundo, como por exemplo, pela NASA e pelo sistema de defesa norte-americano. Há ainda os sistemas Unix BSD, desenvolvidos por núcleos de pesquisas na Universidade de Berkely. O Linux é baseado em uma licença conhecida como GPL e os Unix BSD em uma licença denominada BSD, que em relação à primeira tem como grande diferença a não obrigatoriedade de manter o código aberto se o mesmo for usado em parte ou em totalidade na criação de uma nova ferramenta [3]. A partir deste cenário, podemos ter como referência o fato de um padrão ser aberto ou fechado não o tornar melhor ou inferior tecnologicamente. Por outro lado, padrões abertos acabam tornando-se mais praticáveis e auditáveis quando a veracidade de suas qualidades são questionáveis a qualquer momento. Assim sendo, tornam-se estrategicamente mais interessantes para um ambiente computacional cuja segurança tem como princípio a transparência da concepção da solução respectiva. 7. Segurança Corporativa com a Plataforma Software Livre'' Sabe-se que não há segurança 100%. Então, o que existe afinal? Existe a necessidade de equilibrar fatores, o que se pensa como implementação de segurança, ou seja, todo o aparato destinado a compor uma estrutura computacional que garanta a segurança do sistema em questão, equilibrando a flexibilidade dos usuários da organização e com o objetivo de diminuir o risco assumido pela empresa. Tendo, para isso, a capacitação como base e, como meio, políticas, normas e softwares específicos. 7.1. Ferramentas necessárias Quanto se pensa em softwares destinados a segurança de sistemas computacionais tem-se uma grande variedades de opções de fabricantes, mas surgem como alternativas as grandes corporações de softwares de código aberto que, em sua maioria, resultaram de pesquisas em centros acadêmicos. Encontramos ferramentas de várias categorias, entre elas: - Fornecimento de provas legais, no caso de processo contra os invasores; - Logs consistentes. Usando os Host Intrusion Detection Systems temos a possibilidade de avaliar até que ponto um sistema violado foi corrompido através de uma metodologia que consiste em criar uma base criptografada que faz um histórico do sistema e confronta essas informações com o sistema atual no momento de uma auditoria, dando condições de: - Detectar intrusos no sistema; - Verificar a integridade dos arquivos; - Sistema de Detecção de Intrusos - Identificar Backdoos; - Firewalls - Identicar trojans. - VPN 7.1.3. O uso de Proxy para conexão Web - Scan para análises de vulnerabilidades Permite o controle de conteúdo da Web acessado pelos funcionários da corporação. - Controle de Conteúdo da Web - Sistemas de IDS Lista negra com sites ou conteúdo não interessantes à corporação. - Monitoramento de Redes - Controle temporizado; - Sniffers - Controle por usuário, grupo e/ou máquina; 7.1.1 Firewall com Linux ou BSD - Definição de conteúdo em específico; Podemos ter Firewalls ativos implantados tanto em fronteira de redes com gateway como também em topologias departamentais em grandes corporações, sem onerar o projeto, apenas aumentando sua funcionalidade . - Relatório legível das atividades (html); - Cache de página para todos os usuários; - Controle de conteúdo acessado na Web. Há ainda a possibilidade de soluções de Firewall Bridge na fronteira da rede, sendo extremamente estratégico, pois não têm IP [1][2]. 7.1.4. Interligando filias com VPN 7.1.2. Quando pensamos em IDS temos opções de Sistemas de Detecção de Intrusos Através de várias soluções de código aberto pode-se ter VPNs baseadas em PPTP e IPSEC. E, com isso: Ao usar os Networks Intrusion Detection Systems temos a possibilidade de detectação de intrusos na rede, capturando pacotes e através de perfis denominados assinaturas: Permitir controle de acesso, integridade, confiabilidade, confidencialidade e autenticação no nível de rede através de criptografia forte. - Problemas com Switches; - Assinaturas de ataques; - Monitoramento das Conexões de Rede sobre atividades suspeitas; - Alerta em tempo hábil de possíveis ataques; Ao usar IPSEC padrão aberto proposto pelo IETF, podemos conceber VPN com suporte a X.509 certificate e compatibilidade com outras soluções de VPN como com Windows 2000, Check Point ou Cisco [2]. Solução de segurança fim-a-fim entre roteadores, Firewalls, estações de trabalho e servidores. A implementação de VPN usando Linux tem custo inferior a qualquer solução similar em outra plataforma, mas, em momento algum, é inferior tecnologicamente, uma vez que foram desenvolvidas tendo o mesmo padrão como referência. 7.1.5. Gerenciamento como continuidade da segurança apoio na Depois de implantar uma solução de segurança para gerenciamento de servidores Linux, FreeBSD e OpenBSD uma opção chamada webmin permite o uso SSL para a administração de servidores por completo de forma fácil e objetiva e com a segurança garantida por criptografia. Para o monitoramento dos serviços de toda rede temos a opção de usar o Nagios, que utiliza, entre outros recursos, o protocolo SNMP. 8. Conclusão No mundo do software de código aberto o conceito de segurança por obscuridade não é aceito, ao contrário, pois a segurança está na transparência do código fonte aberto. Além disso, o fato de ser aderente aos padrões internacionais e fundamentado em pesquisas acadêmicas, o torna, tecnologicamente, uma solução sustentável e confiável. Atualmente, toda corporação tem como alternativa em projetos de segurança de seus sistemas computacionais softwares de código aberto e podem usá-los confiando em sua qualidade e funcionalidade. 9. Referências Bibliográficas [1] RUFINO, Nelson Murilo. Segurança Nacional. Editora Novatec, 1 rd edition, 2001. [2] GUES, Paulo e NAKAMURA, Emilio. Segurança de Redes em ambientes cooperativos. Editora Berkely, 1 rd edition, 2002. [3] BRANCO, Marcelo D'Elia. Livres de Bill Gates. Disponível em: http://www.softwarelivre.rs.gov.br/artigos/Livresde BilGatescompleto.txt, em 01/2003. [4] CLAVELL, James. A Arte da Guerra Sun Tzu. Editora Record, 22 rd edition, 1999.