Softwares: Obsolescência e Vulnerabilidades

----------------------------------------------------------------------------
Softwares: Obsolescência e Vulnerabilidades
Ademar de Souza Reis Jr. <ademar@conectiva.com.br>
https://www.ademar.org
----------------------------------------------------------------------------

Texto originalmente publicado na revista Tema, Ano XXVII, Número 163, página
53, Set/Out 2002 - http://www.serpro.gov.br/

Todo software um dia se torna obsoleto. Após um determinado tempo ou número
de versões, o software é abandonado, ou seja, deixa de ser suportado. Até a
chegada desse dia, cabe a seu distribudor, fabricante ou autor, manter fazer
sua manutenção, principalmente no que diz respeito à segurança, de modo a
manter seu funcionamento satisfatório.

O custo dessa manutenção, em geral, é alto e tende a aumentar com o tempo, o
que leva a definição de uma "política de manutenção", que define como e
quando correções e atualizações serão lançadas e por quanto tempo
determinadas versões serão suportadas.

Softwares cuja licença seja fechada (softwares comerciais em geral, onde
o código fonte não é disponibilizado e a redistribuição não permitida)
apresentam, de um modo geral, um tempo de vida maior, com uma menor
quantidade de novas versões e um suporte mais longo. Já softwares de licença
livre (softwares cujo código fonte é disponibilizado e a redistribuição
garantida - como os disponibilizados sob a licença GPL) sofrem atualizações
em períodos menores e acabam tendo um suporte menos duradouro por parte dos
desenvolvedores oficiais em relação às versões antigas.

A principal razão dessa diferença reside no fato de que nos softwares
livres não há custo diretamente associado à atualização para novas versões,
enquanto que nos softwares fechados, essas são lançadas como novos produtos
e comercializados.

No modelo de software fechado o usuários precisa impreterivelmente estar
utilizando uma versão suportada pelo fornecedor se quiser receber
atualizações para as vulnerabilidades que eventualmente venham a aparecer.
Isso significa adquirir regularmente novas versões do sistema e nunca estar
livre de gastos.. Quanto mais atrasado o usuário estiver em relação às
últimas versões, mais cara sairá uma atualização (que pode exigir novo
hardware, treinamento e outras adaptações). Com o surgimento de uma
vulnerabilidade o usuário de um software obsoleto precisa escolher entre
permanecer com um software inseguro ou gaster uma considerável quantia
com a atualização.

Com a utilização de softwares livres, as atualizações, em termo de custo de
licenças, são gratuitas. Em cenário onde uma vulnerabilidade é
encontrada em uma versão já não suportada, basta o usuário fazer a
atualização para uma das últimas versões que estará seguro.

Uma boa e consolidada política de manutenção de sistemas computacionais
é "evitar alterar aquilo que está funcionando". Se determinada versão de um
programa está suprindo as necessidades do usuário, por quê instalar a
última versão disponível? Esse cenário é extremamente comum em grandes
corporações e é onde pode-se notar mais uma grande vantagem do software
livre: uma vez que o código fonte está disponível, usuários nesta situação
podem simplesmente fazer as alterações por conta própria, conseguir ajuda
junto à comunidade desenvolvedora ou mesmo contratar um
serviço terceirizado para a manutenção do sistema. Já o softwares
fechados torna-se esquecido, sem suporte, sem atualizações e,
inevitavelmente, com problemas de segurança.