Seguranca em Aberto
Uma dos assuntos que mais me interessa atualmente é a segurança em um processo de desenvolvimento. A realidade mostra que software seguro nunca é produzido por mágica ou por talento individual - se não existir um processo de desenvolvimento que leve segurança em consideração em todas as fases, o software produzido com certeza estará coalhado de vulnerabilidades. Vou voltar frequentemente a este ponto aqui no blog.
Algumas pessoas acreditam no entanto que, estando o código do produto aberto, magicamente esse software se tornaria mais seguro. Segundo esse ponto de vista educação/treinamento do desenvolvedor, modelagem de ameaças, práticas de codificação, testes de segurança, nada disso importa. Basta abrir o fonte e ele ficará mais seguro. No entanto a realidade, como veremos a seguir, é bem diferente.
Lembrei disso hoje ao ler a matéria "Seguranca em Aberto" no IDG Now. O autor, Gleicon Moraes, é um apaixonado pela idéia de que o modelo de desenvolvimento open source é inerentemente mais seguro que o modelo de desenvolvimento comercial. Mas não cita nenhum dado para corroborar esta afirmação - e pior, os que ele cita estão errados.
O artigo fala sobre um ataque feito ao site MySpace no mês passado, e menciona que "A vulnerabilidade utilizada já era conhecida desde Novembro de 2005 e a Microsoft forneceu um patch apenas em Janeiro de 2006, que segundo especialistas não corrige a falha, apenas pergunta se o usuário quer carregar o código malicioso ou não, sem mais explicações". Esta afirmação está completamente errada. A vulnerabilidade foi descoberta no dia 27 de Dezembro de 2005 (não em Novembro), e corrigida pela Microsoft no dia 5 de Janeiro de 2006 – em menos de 10 dias, e não em dois meses como o artigo dá a entender. E a correção corrige completamente a falha, sendo um absurdo dizer que ela apenas faz uma pergunta ao usuário.
Procurei também exaustivamente no artigo qualquer dado ou evidência que corroborasse a tese de que fornecedores de software livre corrigissem vulnerabilidades de segurança mais rapidamente, e não encontrei nada. Ao contrário, existem dados sólidos que mostram que por exemplo a Microsoft corrige vulnerabilidades em menos tempo do que todas as principais distribuições Linux. Um exemplo interessante está no próprio caso da vulnerabilidade citada pelo próprio Gleicon – por acaso o pacote WINE, de código aberto, tinha exatamente a mesma vulnerabilidade. Como vimos Microsoft divulgou a correção em menos de 10 dias, enquanto a correção para o WINE só foi divulgada após 20 dias(https://www.xatrix.org/advisory.php?s=7575), o dobro do tempo gasto pela Microsoft.
Este caso não é uma exceção. Um estudo independente feito pela Forrester Research acompanhou por um ano as vulnerabilidades divulgadas para a plataforma Microsoft e as principais distribuições Linux, e constatou que a Microsoft leva em média menos da metade do tempo gasto pelas mais eficientes distribuições (no caso, Red Hat e Debian). Este estudo está disponível em https://download.microsoft.com/download/9/c/7/9c793b76-9eec-4081-98ef-f1d0ebfffe9d/LinuxWindowsSecurity.pdf, e não foi financiado nem pela Microsoft nem por nenhuma distribuição Linux.
O artigo também traz um dado estarrecedor: "Entretanto, sabe-se que para cada vulnerabilidade divulgada antes dela ser aproveitada por hackers, pelo menos outras cinco já estão sendo exploradas sem conhecimento público. E cinco é um número modesto." Em dez anos trabalhando em segurança de informação eu juro que nunca vi este "modesto" número. Cinco? Por que não dez? Ou talvez três? Este é aquele tipo de estatística (provavelmente criada jogando 1d10*) que serve para causar medo em você, leitor, mas que não quer dizer rigorosamente nada.
Em resumo, Gleicon Moraes parece estar apaixonado pela idéia de que o código aberto faz com que correções sejam feitas mais rapidamente do que pela Microsoft, mas a realidade mostra um quadro completamente diferente. Eu acho que os leitores do IDG estariam melhor servidos se o assunto fosse tratado com base na realidade e não em paixão.
* Para os não-iniciados em jogos RPG, 1d10 equivale um dado de 10 faces.
Comments
- Anonymous
August 01, 2006
Concordo e tenho o mesmo interesse sobre SDLC Cima!
Uma grande evolução planejada é a integração do suite de desenvolvimento VSTS - Visual Studio Team System com a ferramente de Análise e Modelagem de Ameaças (Microsoft Threat Analysis & Modeling -http://www.microsoft.com/downloads/details.aspx?familyid=334AD466-8B53-4440-8FF0-6AC8142D9198&displaylang=en).
Algumas referências e conclusões, postei no meu blog:
http://blogs.vstsrocks.com.br/heliosa/archive/2006/04/19/109.aspx
Abraços