O código aberto está em constante revisão



Desenvolvimentos em código aberto, assim como os comerciais, tendem a conter uma brecha de segurança a cada mil linhas de código, segundo um programa para revisar e melhorar a segurança no código aberto, do Department of Homeland Security (órgão de segurança pública norte-americano).

Foram encontradas dezenas de vulnerabilidades em projetos populares como Samba, linguagens de programação PHP, Perl e Tcl, usadas para associar elementos de web sites, e o Amanda, software de backup e recuperação que roda em meio milhão de servidores.

Um total de 7,826 mil defeitos em projetos em código aberto foram corrigidos pela revisão do departamento, ou um a cada duas horas, desde que o programa foi lançado, em 2006, segundo David Maxwell, estrategista de código aberto da Coverity, fornecedora da ferramenta Prevent Software Quality System, que checa os códigos na revisão.

Ao mesmo tempo, projetos como o Samba foram habilitados ao ter as vulnerabilidades corrigidas, uma vez que foram identificadas. Foram encontrados 236 defeitos no Samba, um nível bem abaixo da média de 450 mil linhas de código. Dos 236 erros, 228 foram corrigidos, segundo Maxwell.

O Department of Homeland Security fechou um contrato de US$ 300 mil com a Coverity, em março de 2006, para revisar os códigos produzidos em 180 projetos em código aberto, muito dos quais são adotados frequentemente por desenvolvedores para aplicações e sites em projetos do governo norte-americano.

O Linux apresentou muito menos defeitos do que a média de projetos em código aberto. A versão 2.6 do kernel Linux tinha um nível de bugs de 127 por linhas de código. O mapeamento do kernel cobriu 3,63 milhões de linhas. Como as vulnerabilidades foram identificadas por repetidos mapeamentos, 452 defeitos foram corrigidos pelos desenvolvedores do kernel; 48 foram verificados mas ainda não estão corrigidos; outros 413 continuam a ser verificados e corrigidos, de acordo com os resultados publicados no site da Coverity.

O FreeBSD, citado eventualmente como uma alternativa ao Linux, foi mais lento ao responder ao mapeamento da Coverity. Em 1,582 milhões de linhas de código, nenhum foi corrigido, seis foram verificados e outros 605 estão na fila.

O servidor web Apache inclui quase 136 mil linhas de código, que apresentaram um nível de 14 bugs a cada mil linhas de código. Três foram corrigidos; sete foram verificados e 12 estão a espera.

O sistema de banco de dados PostgreSQL contém cerca de 900 mil linhas de código, com um nível de .041 defeitos. Foram corrigidos 53, nenhum foi verificado e 37 estão pendentes.

Alguns projetos em código aberto estão sendo mais rápidos em responder aos resultados da checagem da Coverity, segundo Maxwell. Cerca de 116 ou 180 projetos em revisão estão fazendo uso dos scans Prevent SQS e eliminando os bugs.

O projeto Firebird, por exemplo, está listado com 195 erros, sem nenhuma providencia a respeito. O Firefox, por outro lado, já corrigiu 370 bugs, verificou 56 e outros 246 já estão catalogados.

A biblioteca da Fundação do Software Livre, Gnu C Library, corrigiu 83 bugs e não deixou nenhum em aberto. Ela é utilizada por muitos programadores em código aberto que trabalham com Linux. É um dos poucos projetos que não apresentam erros em suas 588 mil linhas de código. Além disso, o projeto Amanda registra zero defeitos em suas 99 mil linhas, e também o courier-maildir, em 82 mil linhas.

As interfaces de usuários do Linux também passaram por uma revisão minuciosa. A interface KDE contém 4 milhões de linhas de código, já foram corrigidos 1,5 mil defeitos, verificados 25 e há apenas 65 para trabalhar. O Gnome contém 430 mil linhas de código, 357 arrumadas, 5 verificadas e 214 para corrigir.

O banco de dados em código aberto MySQL não foi incluído no mapeamento por razões que não ficaram claras.

A Open VPN, um modelo seguro de conexão com o escritório central, já teve verificado o único erro encontrado em suas quase 70 mil linhas de código, mas não foi corrigido ainda.

O OpenSSL corrigiu 24 bugs, verificou um e tem 24 sobrando em suas 221 mil linhas de código.

Saber o número de brechas de segurança encontradas em software populares não é incomum, afirma Maxwell. Os projetos em código aberto são diferentes dos produtos comerciais já que as companhias raramente revelam vulnerabilidades encontradas ou já corrigidas nos códigos. “Nossos clientes comerciais não gostariam muito se disséssemos os números de erros encontrados em seus códigos”, diz Maxwell, quando perguntado sobre os resultados dos mapeamentos de 400 linhas de produtos de clientes particulares da companhia.