Segurança em sistemas abertos e fechados

Uma discussão muito em voga nos últimos dias é a questão da abertura ou não do código fonte de sistemas e as implicações que isto tem sobre a segurança dos sistemas. Neste artigo abordaremos este assunto de forma multilateral, tentando abordar os dois lados da moeda.

[ Hits: 13.056 ]

Por: Willian Itiho amano em 09/10/2006 | Blog: http://underlinux.com.br


Artigo



Uma discussão muito em voga nos últimos dias é a questão da abertura ou não do código fonte de sistemas e as implicações que isto tem sobre a segurança dos sistemas. A comunidade que apóia a liberação do código, sobretudo os adeptos do sistemas operacional Linux, afirmam que o trabalho cooperativo e a possibilidade de leitura do código fonte facilita o encontro de erros e logo a implementação de uma correção. Por outro lado os adeptos dos sistemas proprietários afirmam que a abertura do código facilita sim, o encontro de erros, mas que isto permite que atacantes explorem estas falhas no intuito de ver e alterar os dados do sistema ou mesmo o próprio sistema.

Analisaremos de início as indagações da comunidade de software livre que acredita, entre outras coisas, que a abertura do código fonte dos sistemas facilita a sua implementação, testes e correção de erros. O ciclo de vida de um software apresenta diversas etapas tais como especificação, análise, design, implementação, testes e manutenção. A questão de segurança deve estar encravada neste processo desde a especificação dada pelo requisitor do sistema até o encontro de falhas e posterior correção. A comunidade "open source" afirma que as etapas de testes e correções é onde o sistema ganha confiabilidade, pois os testadores tem possibilidade e ler o código podendo assim encontrar as falhas com maior rapidez e assim implementar a solução ou no mínimo sugerí-la para o implementador designado.

Em contrapartida, empresas que acreditam que deva-se manter a sua propriedade intelectual sobre sigilo, mantendo o código de seus sistemas, ou mesmo os insumos por ele produzidos, fechados para o conhecimento público, tecem afirmações que a confiabilidade de seus sistemas é maior, pois o invasor não pode varrer o código atrás de brechas de segurança para poder explorá-las.

Quando tratamos de testes, englobamos tanto testes feitos em nível Alpha como em nível Beta. O nível Alpha despende menor trabalho, pois os testadores e/ou implementadores tem acesso ao código e este é executado antes do sistema entrar em produção. Os testes em fase Beta são feitos por técnicos sem a permissão de leitura de código, tendo assim, que todos os erros sejam reportados aos implementadores para que corrijam numa nova versão do software. O trabalho em fase Beta é muito mais complicado e engloba testes sucessivos para simular erros de usuários e análise de como o sistema se comportará nestes casos. Existe inclusive sistemas específicos, que sobre regras impostas, inserem dados e aplicam um regime intenso de testes sobre o software.

Agora quando o sistema em questão tem seu fonte aberto ao público, o usuário torna-se o testador Beta e pode reportar e sugerir alterações que melhorem o sistema como um todo, desde o seu desempenho até a implementação de novas funções antes não disponíveis. Essas sugestões também englobam a questão de segurança. Como a quantidade de usuários é extremamente superior que o número de testadores que uma empresa pode contratar, a diferença de velocidade que erros são encontrados torna-se bastante pertinente e também a discussão da comunidade sobre o assunto que torna a produção mais completa e satisfatória.

O fato é que nenhuma linha de código, open source ou mesmo proprietário, é 100% segura. Mas graças a seu processo liberal, em que há continuidade e revisão, o código aberto é menos suscetível a erros.

O argumento da "segurança pela obscuridade", usado por softwares fechados, não funciona, em grande parte pelo fato de o código proprietário ser obscuro apenas aos que buscam encontrar e solucionar problemas.

Atacantes mais sofisticados não precisam do código fonte para encontrar problemas de segurança. Estes podem observar o comportamento do programa, analisar seu binário e até rodar o programa em um descompilador para obter uma réplica razoável de seu código fonte, embora isto despenda um grande esforço computacional. Fechando o código fonte, perde-se a vantagem do fenômeno dos "muitos olhos", tornando mais difícil a análise do programa, diminuindo a probabilidade de aprimorar o produto. Graças à ininterrupta revisão, o software aberto passa por um processo de desenvolvimento continuado, com freqüentes atualizações. Ao contrário do que ocorre com fabricantes de software proprietário, os consumidores não precisam esperar por meses ou anos para o lançamento de uma nova versão e isso leva a um produto de maior qualidade e mais confiável.

De final, acabamos de estar em concordância aos dois pontos de vista, cada um do seu modo apresenta pontos positivos e pontos negativos, mas de maneira geral, o software livre apresenta uma evolução muito mais rápida, principalmente no quesito segurança, aumentando assim a confiabilidade do mesmo. Analisando a escalada da evolução do cenário computacional mundial, podemos prever a massificação do uso do software livre, até mesmo por empresas que antes eram adeptas de não disponibilizar seu código.

   

Páginas do artigo
   1. Artigo
Outros artigos deste autor

Gravando com cdrecord

Dicionário pt-BR no Firefox 2.0

Montando um servidor Linux com sshfs no SuSE

Desenvolvimento web no Linux

Balanceamento e alta disponibilidade com Bonding

Leitura recomendada

Mplayer e Mencoder com placa de TV

OpenAudit - Sistema de inventário

As vulnerabilidades do IRC

2FA-Auth - Gerando Códigos de Autenticação 2FA no seu Terminal

Monitorando automaticamente o Docker com Zabbix

  
Comentários
[1] Comentário enviado por aviram em 19/10/2006 - 11:25h

Discuto o mesmo assunto, mas com abordgem ligeiramente diferente no artigo em http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=5445 e http://avi.alkalay.net/2006/03/segurana-em-software-de-cdigo-aberto.html


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts