O
software de código aberto teve seu modelo de desenvolvimento
e distribuição originado na época em que o software desenvolvido,
dentro do ambiente universitário, era compartilhado livremente.
Já o termo “software livre” foi popularizado num seminário,
organizado pela Free Software Foundation 1984, apresentado
por Richard Stallman, um pesquisador do MIT e fervoroso defensor
do software livre. A idéia era desenvolver sistema operacional,
ferramentas de software, tais como compiladores, editores
e assim por diante e distribuí-los livremente.
O código fonte do software é visto como uma forma de
conhecimento científico. Então, da mesma forma que cientistas
divulgam resultado de suas pesquisas para que outros cientistas
possam desenvolver novas pesquisas em cima dos resultados
obtidos por outros, o código fonte de software deve fomentar
a inovação de maneira continuada. Entretanto, para que um
desenvolvedor possa fazer uso do código fonte de um software
desenvolvido por um outro desenvolvedor, torna-se necessário
concordar com os termos contratuais de licenciamento. Esse
contrato de licenciamento é denominado de “copyleft”.
Visando defender ainda mais tal concepção, em 1997,
houve uma iniciativa (Open Source Initiative) de um grupo
de profissionais da comunidade de software livre fazendo uso
de bases pragmáticas como confiabilidade, custo e estratégia
de negócios para justificar a adoção de software de código
aberto (termo esse adotado a partir desta data por eles).
O software de código aberto envolve uma variedade de licenciamento
que contém critérios para distribuição conforme licença certificada
OSI (veja mais detalhes em opensource.org/osd.html)
Hoje em dia, observa-se o desenvolvimento de software
de código aberto em escala global, destacando-se o sistema
operacional Linux o qual tem sido utilizado em mais de 30%
de servidores de Internet conforme pesquisa realizada pela
Internet Operating System Counter (leb.net/hzo/ioscount/).
Embora seja notório o crescimento da base de usuários
de software de código aberto, um dos problemas que com o qual
a indústria de computadores depara-se atualmente é a segurança
de sistemas e de redes de computadores. Dados do CERT Coordination
Center (www.cert.org) relatam que o número
de vulnerabilidades descobertas continuam mais do que dobrar
a cada ano conforme ilustrado na figura abaixo.

Percebe-se
um crescimento exponencial de 1998 até 2002 e isto requer
dos administradores de sistemas uma atualização constante
dos sistemas instalados objetivando corrigir pontos de vulnerabilidades.
Em razão dessa preocupação, um crescente número de usuários
estão analisando mais detidamente software de código aberto
a fim de melhor avaliar os prós e os contras quanto ao uso
de ferramentas de seguranca de código aberto.
Atualmente, aproximadamente 3% do software de segurança
utilizado em sistemas é representado por ferramentas de segurança
de código aberto. Existe uma expectativa que esse percentual
possa crescer nos anos seguintes. Com o crescimento da adoção
do sistema operacional Linux e aplicativos compatíveis,
o fator segurança é de suma importância para prover proteção
a sistemas e redes de computadores.
Ferramentas de segurança de sistemas de código aberto
têm sido usadas cada vez mais visando proteger sistemas, evitando
assim a vulnerabilidade dos mesmos. Um dos principais benefícios
dessas ferramentas é o custo significativamente mais baixo.
Em geral, tais ferramentas são gratuitas ou têm baixo custo
(com taxas de licenciamento com valores bem mais baixos do
que os produtos proprietários).
Adicionalmente, as ferramentas de segurança de sistemas
de código aberto têm qualidade similar e, às vezes, melhor
do que os produtos proprietários. Por exemplo, o Nessus (www.nessus.org) é um verificador
de vulnerabilidades que permite a realização de auditoria
remota da segurança de sites da Web. O Nessus oferece distribuição
de processamento, escalonamento e executabilidade remota melhor
do que os produtos similares comercializados. Além do Nessus,
existe vários outros projetos de ferramentas de segurança
com código aberto. Dentre elas, destacam-se:
Kerberos – Trata-se de uma ferramenta de autenticação e criptografia
desenvolvida no MIT (Massachussetts Institute of Technology.
Kerberos (www.mit.edu/kerberos/www) possui versões de código aberto disponíveis
para Unix, Windows e Macintosh.
Snort – É uma ferramenta de detecção de intrusão em redes
de computadores e também é capaz de realizar análise de tráfego
de redes IP em tempo real (www.snort.org). Snort ajuda a detectar potenciais intrusões
através da análise de protocolo de pacotes.
Netfilter e iptables – Netfilter (www.netfilter.org)
permite os usuários fazerem o rastreamento de funções de chamada
associadas com instrusão em redes e, portanto, reconhecer
a ocorrência de um ataque. iptables (www.iptables.org)
permite os usuários definirem ações que o sistema deveria
tomar quando um ataque é detectado.
Outras ferramentas incluem Tripwire (www.tripwire.com)
Saint (www.saintcorporation.com) e T.Rex (www.opensourcefirewall.com).
Apesar da qualidade apresentada e do baixo custo (quando
existe), algumas companhias e usuários ainda relutam em adotar
software de segurança de código aberto visto que ele não é
desenvolvido de forma privada nem dispõe de suporte quando
comparado aos produtos proprietários. A principal questão
é que desde que o código fonte está disponível, algumas companhias
têm receio que hackers possam encontrar ‘brechas’ ou
pontos vulneráveis no código de tais ferramentas de segurança
de código aberto e, assim, permitir o acesso não autorizado
ao sistema. Este é, na realidade, o grande fator que impede
uma maior adoção dessas ferramentas.
O software de código aberto como qualquer ferramenta
de software que adote essa abordagem e, mais especificamente,
as ferramentas de segurança de código aberto têm as vantagens
de qualidade e baixo custo quando comparadas a produtos similares
proprietários. Todavia, considero difícil haver um crescimento
na adoção dessa abordagem pelas companhias uma vez que o software
de código aberto permite não apenas extensões visando otimizar
o código, mas também pode deixar brechas ou pontos vulneráveis
que reluz aos olhos dos hackers os quais podem explorar
tais brechas a fim de efetuar ataques.