Barra Brasil

NoticiasLinux.com.br

Falhas de segurança alarmantes

2008-05-21 09h53min




Em maio de 2006, alguns programadores que trabalhavam num projeto de segurança de software de código-aberto cometeram um tremendo erro. Semana passada, o erro começou a repercutir nos profissionais de segurança ao redor do mundo.

Em termos técnicos, um erro de programação reduziu a quantidade de aleatoriedade usada para criar chaves criptográficas num pedaço do código da biblioteca OpenSSL, que é usada por programas como o servidor web Apache, o programa de acesso remoto SSH, a rede particular virtual (VPN) IPsec, programas de e-mail seguro, alguns programas usados para acessar a Internet anonimamente, e assim por diante.

Trocando em miúdos: depois de uma semana de análise, nós agora sabemos que duas linhas de código modificadas criaram vulnerabilidades de segurança profundas em pelo menos quatro sistemas operacionais de código-aberto diferentes, 25 aplicativos, e milhões de sistemas individuais de computadores na Internet. E mesmo com a vulnerabilidade descoberta em 13 de maio e uma correção distribuída, a instalação da correção não repara o dano nos sistemas comprometidos. O que é ainda mais alarmante é que alguns computadores podem estar comprometidos sem sequer rodarem o código suspeito.

O motivo pelo qual a correção não resolve o problema tem a ver com o erro de programação específico. Os sistemas de computador modernos empregam números grandes para gerar as chaves que são usadas para criptografar e descriptografar informações enviadas pela rede. Usuários autorizados sabem a chave certa, então não têm de advinhá-la. Invasores de má-fé não sabem a chave correta. Normalmente, simplesmente demoraria tempo demais para adivinhá-la tentando todas as possibilidades - cerca de centenas de bilhões de anos.

Mas a segurança deste sistema vira de ponta cabeça se o computador só puder usar um número limitado de milhões de chaves diferentes. Para o usuário autorizado, a chave parece boa - os dados são criptografados. Mas o software do vilão pode rapidamente gerar e tentar todas as chaves possíveis para um computador específico. O erro introduzido há dois anos torna as chaves criptográficas fáceis de advinhar.

O erro não dá a mesma chave criptográfica para todos os computadores - isso teria sido percebido antes. No entanto, ele reduz o número de chaves diferentes que os computadores Linux podem gerar para 32.767 chaves distintas, dependendo do tipo da arquitetura do processador do computador, do tamanho da chave e de seu tipo.

Menos de um dia depois da vulnerabilidade ser revelada, o hacker de computador HD Moore do projeto Metasploit lançou um conjunto de "brinquedos" para quebrar as chaves destes pobres computadores Linux e Ubuntu. O website de Moore oferece desde domingo arquivos para baixar com chaves pré-computadas, só para tornar mais fácil de identificar os sistemas de computador vulneráveis.

Diferentemente do comum erro de estouro de pilha, que pode ser corrigido atualizando-se o software, as chaves criadas com o software defeituoso não melhoram quando o computador é atualizado: ao invés disso, novas chaves devem ser geradas e instaladas. Um agravante é o fato de que as chaves também precisam ser certificadas e distribuídas: o processo consome tempo, é complexo e pode dar errado.

Ninguém sabe quantos sistemas são afetados por este problema, pois chaves criptográficas são transportáveis: chaves vulneráveis podem ter sido geradas num sistema Debian num escritório e depois instaladas num servidor rodando Windows noutro. O Debian é uma distribuição predileta de muitos profissionais de segurança, e o Ubuntu é uma das distribuições mais populares para uso geral, então o alcance do problema pode ser bem amplo.

Então como os programadores cometeram o erro em primeiro lugar? Ironicamente, eles utilizaram uma ferramenta automatizada projetada para detectar erros de programação que levam a vulnerabilidades de segurança. A ferramenta, chamada Valgrind, descobriu que a biblioteca OpenSSL estava usando um bloco de memória sem inicializar a memória a um estado conhecido - por exemplo, definindo todo o conteúdo do bloco como zero. Normalmente, é um erro usar memória sem deixá-la com um conteúdo conhecido. Mas neste caso, esse estado desconhecido era usado intencionalmente pela biblioteca OpenSSL para ajudar a gerar aleatoriedade.

A memória não-inicializada não era a única fonte de aleatoriedade: o OpenSSL também obtém aleatoriedade de fontes como movimentos do mouse, tempo de pressionamento de teclas, chegada de pacotes na interface de rede, e até pequenas variações na velocidade do disco-rígido do computador. Mas quando os programadores viram os erros detectados pelo Valgrind, eles desativaram as linhas de código ofensivas - e removeram todas as fontes de aleatoriedade usadas para gerar chaves salvo uma, um inteiro chamado identificador do processo que pode variar de 0 a 32767.

"Nunca conserte um erro que você não compreende!" reclamou Ben Laurie, desenvolvedor do OpenSSL, em seu blog após o erro ter sido descoberto por completo. Laurie culpa os desenvolvedores do Debian por tentarem consertar o "bug" na versão do OpenSSL distribuída com os sistemas operacionais Debian e Ubuntu, ao invés de enviar a correção aos desenvolvedores do OpenSSL. "Se eles tivessem feito isto neste caso, " ele diz, "nós (a equipe do OpenSSL) teríamos morrido de rir, e uma vez recuperado o fôlego os avisaríamos que idéia terrível era essa. Mas não, parece que todo distribuidor quer 'valorizar' ficando entre o usuário do software e seu autor."

Talvez mais desconcertante ainda, no entanto, é o que essa história nos diz sobre a segurança do software de código-aberto - e talvez sobre segurança de software em geral. Um desenvolvedor (cujo nome não citarei) notou um problema, propôs uma solução, e obteve aprovação de sua solução por uma pequena quantidade de pessoas que não entendiam realmente as conseqüências do que estava sendo sugerido. O resultado: comunicações entre milhões de sistemas de computador ao redor do mundo que deveriam ser protegidas criptograficamente não estavam sendo protegidas de verdade. Há dois anos, Steve Gibson, um consultor de segurança altamente respeitado, alegou que um erro significativo encontrado em software Microsoft tinha mais a ver com um programador tentando criar uma "porta dos fundos" intencional do que com mais erros de programação da Microsoft.

O erro de aleatoriedade do Debian OpenSSL foi quase certamente um erro inocente. Mas e se um país estrangeiro quisesse intencionalmente introduzir vulnerabilidades secretas no nosso software de código-aberto? Bem ocultas, tais falhas poderiam permanecer secretas por anos.

Uma coisa é certa: há expectativa de encontrar mais dessas vulnerabilidades com o tempo.

Fonte: http://www.technologyreview.com/Infotech/20801/

Artigo por Simson Garfinkel, professor associado da escola de pós-graduação de Monterey, na Califórnia, EUA e membro do Centro de Pesquisa e Computação e Sociedade na Universidade de Harvard.

Postada por: Carlos Filipe Lombizani, cfilipe em linux.ime.usp.br







Comentários dos leitores:


Postado por _@201.6.xxx.xxx em 21/05/2008 11h58min:
Nossa, o Debian se queimou eternamente com essa. Nunca ninguém que leve segurança a sério vai voltar a usar Debian jamais...

O pior é que a má fama pode se espalhar para o software aberto em geral, e daí a coisa vai ser feia.

Quando é com a Microsoft, neguinho mete o pau. Agora quero ver o que vão dizer...



Postado por Anderson:.@200.102.xx.xx em 21/05/2008 12h29min:
_, Debian vai fazer o que esta no compromisso assumido com a comunidade (estatuto), em não esconder as falhas e publicar as devidas correções, o que já foi feito.

Quem utilizar a distro Debian ou derivadas deve fazer o que qualquer bom administrador faria nesse caso (operação padrão em qualquer sistema operacional), que é considerar a máquina comprometida, retirar da rede, aplicar as correções, realizar auditoria na máquina, regerar as chaves criptográficas e somente após todos os checks, recolocar novamente na rede. Se for o caso, optar por reinstalação do sistema, que embora seja uma atitude mais radical, é a mais correta.



Postado por _@201.6.xxx.xxx em 21/05/2008 15h11min:
Isso não interfere no que eu disse.

Não se trata do Debian, se trata da imagem passada.

Eu sei que o Debian tem um compromisso com a comunidade, mas confiança é como um vaso: é preciso muito tempo e esmero pra fazer, mas pra quebrar é muito fácil, e depois de quebrado é muito difícil consertar.

O erro foi causado por pura inépcia. Por mais comprometidos e bem intencionados que sejam não se pode confiar em programadores que façam isso.

Apesar de tudo, o erro de programação deles não é a pior parte. A pior parte é que eles esqueceram que software livre é feito em comunidade e ignoraram totalmente a equipe do OpenSSL.

Quem utilizar o Debian vai fazer tudo isso e, futuramente, migrar para outro sistema operacional. É simples assim. E o próximo sistema operacional provavelmente não será software livre...



Postado por Anderson:.@189.10.xxx.xxx em 21/05/2008 15h36min:
_, houve erro, houve. Foi falta de comunicação entre os projetos, foi. Houve má fé, não, não houve. Afora consertar o erro, resta aguardar como as futuras questões desta natureza serão tratadas com esta lição.

Migrar para um sistema não livre após este episódio, possível mas improvável. Tem muita gente que continua com um sistema proprietário cuja empresa omite os bugs (declarações feitas por engenheiro da empresa, que depois não sabe se explicar e fica em silêncio), faz misérias no mercado (e toma cada multa) e ainda assim seus usuários não trocaram de sistema.



Postado por snomonnov@189.103.x.xx [e-mail] em 21/05/2008 17h49min:
sinceramente, o erro é grave
é feio
é brutal
mas é o seguinte, pelo menos esses erros vem a tona e todos ficam sabendo, melhor que ter esses mesmos erros num código fechado onde ninguem tem acesso!



Postado por Voice of the real security .@201.0.xx.xxx [e-mail] em 21/05/2008 21h36min:
VEEENNHAAAMMM PARA O LADO SEGURO DA FORÇA!!!!

http://www.openbsd.org/



Postado por _@189.79.xx.xx em 22/05/2008 00h40min:
"Migrar para um sistema não livre após este episódio, possível mas improvável. Tem muita gente que continua com um sistema proprietário cuja empresa omite os bugs (declarações feitas por engenheiro da empresa, que depois não sabe se explicar e fica em silêncio), faz misérias no mercado (e toma cada multa) e ainda assim seus usuários não trocaram de sistema."

Eu acho o contrário. Essa gente que continua com sistemas proprietários pode ser sintetizada em dois grupos:

- Quem usa sistemas de legado
- Quem usa Windows

O primeiro grupo está gradualmente migrando para sistemas livres (a maior parte do mercado que o Linux vem conquistando é proveniente deste grupo).

O segundo grupo é resistente à migração porque a Microsoft fez um ótimo trabalho em fazer do Windows uma plataforma que gera dependência. Não usa padrões, não há documentação, os formatos e protocolos são todos proprietários e o software é monoplataforma.

Motivos para migrar do Windows não faltam para muitas empresas. Eu tenho clientes que são exemplo disso. Infelizmente eles estão presos à plataforma porque o custo de migrar é alto pois envolve redesenvolver sistemas de software, treinamento de usuários, etc.

Com o software livre isso não acontece pois a plataforma é aberta. A migração é rápida e quase indolor, portanto não tenho dúvidas de que isso vai acontecer bastante depois deste episódio.



Postado por Cr0n0s@200.232.xxx.xxx [e-mail] em 22/05/2008 11h03min:
Olha gente, o caso é grave SIM. Principalemnte por vir do todo poderoso e onipotente DEBIAN. Em segundo, vcs vão me desculpar, mas usar ferramenta pra apontar erros no código de uma biblioteca do calibre do OPENSSL e simplesmente clicar em "continuar", isso é horrível e mancha a imagem do Debian sim.

Fazer correções "OFICIAIS" sem comunicar com o autor do software é outro ponto grave da história.

Este epsódio vai trazer repercusão ruim sim, principalmente se a M$ usar isto em suas campanhas. Eu só espero que o "Software Livre" não seja afetado, pois foi uma atitude isolada de uma distribuição.

Quanto ao "manifesto" de debian, ele não vale nada se o software não for seguro.



Postado por Alan@201.8.xxx.xxx em 22/05/2008 16h22min:
Isso não afeta RedHat!? "Maior mercado corporativo!"
O mais engraçado e que muita gente tem o debian como a distro mais opensource! a mesma não se da o trabalho de interagir com a comunidade! tomara que a mesma aprenda com este erro, diferente da MS!



Postado por Anunakin@189.82.xxx.xxx [site] [e-mail] em 22/05/2008 22h05min:
Por isso meus servidores são Gentoo!!!



Postado por Voice of secure programming .@201.0.xx.xx [e-mail] em 22/05/2008 22h16min:
http://www.linuxisforbitches.com/bsdvlinux.php

Por isso meus Servidores são FreeBSD e meus proxies/firewalls OpenBSD.



Postado por Fabiano@200.140.xxx.xxx em 22/05/2008 22h45min:
Por isso meus servidores são Gentoo!!!
[2]



Postado por Cr0n0s@200.232.xxx.xxx [e-mail] em 22/05/2008 23h54min:
Por isso estou substituindo Linux por Solaris em servidores e nas ET de desenvolvimento de software. Eu mesmo ja uso OpenSolaris no meu notebook.

Agora Gentoo.... e sem duvida nehuma a essencia do poder do Linux.



Postado por _@200.140.xxx.xx [e-mail] em 23/05/2008 08h51min:
Eh Gentoo pra ca, Solaris pra la, bla bla bla... Eh nessas horas que cada um vende seu peixe sem saber qual estah mais estragado, depois dessa bomba! ... ahuehaahuh


"Agora Gentoo... e sem duvida nenhuma a essencia do poder do Linux"... Ahuahuaheuae, faz-me rir! xD



Postado por diegovilela01@189.52.xx.xx [e-mail] em 23/05/2008 08h57min:
Isso vai ser uma bomba em geral, encontraram o primeiro agora, vamos ver depois.



Postado por Vagner Silva@200.168.x.xxx [site] [e-mail] em 23/05/2008 10h12min:
Eu nunca havia usado Debian com muita profundidade. Passei a usá-lo no trabalho por ser o padrão da empresa. Durante os últimos quatro anos, eu pude constatar que algumas coisas simples de se usar (por exemplo, o lilo, o sarg e outros programas que não me lembro), apresentam diferenças de funcionamento/configuração em relação a outras distribuições não-Debian.

Isso sempre me incomodou, pois eu sempre ficava pensando "por que no Debian tem que ser diferente" ou "por que eles não usam o programa do modo como ele é distribuído".

Bom, só posso concluir uma coisa: Eles estão colhendo o que plantaram.

Eu não quero defender distro nenhuma, mas a resposta do desenvolvedor do OpenSSL,

"Nunca conserte um erro que você não compreende!"

diz tudo e eu sinceramente espero que os responsáveis por esse tipo de comportamento da equipe do Debian tenham aprendido a lição.



Postado por _@189.79.xx.xxx em 23/05/2008 12h03min:
"Eh Gentoo pra ca, Solaris pra la, bla bla bla... Eh nessas horas que cada um vende seu peixe sem saber qual estah mais estragado, depois dessa bomba! ... ahuehaahuh"

Eu posso vender meu peixe seguro de não estar estragado:

http://www.openbsd.org/



Postado por rbenatti@200.152.xx.xx [e-mail] em 23/05/2008 16h36min:
todo software irá sempre possuir falhas na implemntação. Alguém postou sobre a intenção, de "embutir" alguma falha - porta - dentro do SL. E dentro do soft proprietário ?? qquer software poderá conter " segredos ". Importante sempre será, além de todo critério na codificação, que auditorias sejam feitas.



Postado por Anderson II .@200.158.xxx.xxx [e-mail] em 23/05/2008 16h41min:
"Eu posso vender meu peixe seguro de não estar estragado:"

"VEEENNHAAAMMM PARA O LADO SEGURO DA FORÇA!!!!
"

http://www.openbsd.org/



Postado por Otavio@64.231.xx.xx em 23/05/2008 18h10min:
Na real pouca gente usa OpenBSD, por isso os bugs ainda não vieram à tona :)



Postado por _@189.79.xx.xxx em 23/05/2008 18h42min:
"Na real pouca gente usa OpenBSD, por isso os bugs ainda não vieram à tona"

Errado. O OpenBSD é diferente dos outros sistemas operacionais porque nele os bugs vêm à tona logo. Os bugs não ficam lá sentados durante, pasmem, dois anos. Isso porque os desenvolvedores tomam uma postura pró-ativa em relação a correção do código. Exemplo disso é o OpenSSH, implementação do protocolos SSH usada em praticamente todos os Unix modernos (inclusive o Linux).

Além do mais, a sua lógica não segue. Se seguisse, eu poderia dizer isto:

"Na real pouca gente usa Linux, por isso os bugs ainda não vieram à tona."

Da mesma forma, pois o Linux é muitíssimo menos usado do que o Windows. No entanto, sabemos que, pelo modelo de desenvolvimento usado pela Microsoft, a qualidade do Windows é bem pior que a do Linux (não há mais bugs apenas por ser mais usado, e sim por ser pior mesmo).


Voltando ao tópico, o problema é sério mesmo pessoal. Vejam como estão veiculando na mídia lá fora:

http://www.dailytech.com/Huge+[...]ns+Vulnerable/article11869.htm

Uma imagem do Tux chorando ao lado de um queijo suiço, como se o sistema fosse cheio de furos.

Especial atenção para o último parágrafo do texto:


"[...]And this problem is clearly illustrative that unless a more comprehensive methodology of security development is adopted, these problems will only persist and multiply with time."

Tradução:
E este problema claramente ilustra que, a menos que uma metodologia de desenvolvimento de segurança mais compreensiva seja adotada, estes problemas apenas persistirão e se multiplicarão com o tempo.

Adotar uma metodologia pró-ativa é uma coisa que o projeto OpenBSD já faz. É uma coisa que a Microsoft está aprendendo a fazer. É só ver o histórico de segurança do Vista e comparar com os das versões anteriores do Windows. Alguns chegam a dizer que o Windows Vista tem se saído melhor até do que o Mac OS X Leopard.

Neste passo, se o Linux não fizer algo logo, vai ficar para trás, queimado, sendo lembrado como um mito.



Postado por Voice of secure programming .@201.0.xx.xx [e-mail] em 23/05/2008 19h47min:
Vejam só o quê um tipico Linuxer acha de um BSD, prestem atenção na cara desse Linuxer membro do NyLug:

http://www.nylug.org/images/st[...]_images/david_understands2.jpg

O cara não troca o pingüim por nada. :D



Postado por Otavio@99.249.xx.xx em 24/05/2008 00h48min:
hehe! _ , dá pra ver a qualidade desse DailyTech... só pra lá da metade que dizem que é no Debian hahaha
No mínimo é coisa patrocinada pela MS :)
Claro, aí o pessoal lê o início, se acha informado e pronto.



Postado por _@189.79.xx.xxx em 24/05/2008 01h22min:
Não é patrocinado pela MS, há algumas semanas os caras meteram o pau na Microsoft por causa dos problemas no Windows Home Server que podem causar perda de dados.

Os caras é que são sensacionalistas mesmo (pra variar).



Postado por Eddie@200.162.xxx.xxx [e-mail] em 25/05/2008 04h14min:
o OpenBSD não tem bugs, digita ai OpenBSD e quero ver se não aparece muitos.
http://nvd.nist.gov/nvd.cfm


Todo programa tem bug de segurança, esse bug pode ser descoberto rápido tipo um mes, ou em 1 ou 2 anos, ou um dia, até la, se alguém sabia desse bug, pode usalo até que ele fosse resolvido, até ai não a diferença nesse problema.

Ouve um erro, não sei bem o que aconteceu, mas se aprende com erros para não cometelos, com esse erro se aprendeu muitas coisas, e outros viram, o importante é aprender com isso, e assim não repetir novamente.

Graças a abertura e transparência sabemos de erros, pois uma empresa de codigo fechado poderia nunca informar isso.

http://blog.orebokech.com/2008[...]g-distro-patches-not-just.html
http://planet.debian.net/

Erros acontecem, como se lida com eles é que é diferente.
E quanto se preocupa a não acontecer de novo, um bom modo e tornar o erro publico, pois força discussão e faz o sistema ficar cada vez melhor.



Postado por Voice of real secure systems .@201.0.xx.xx [e-mail] em 25/05/2008 12h06min:
Eddie. Nenhum *BSD teve como ocorrências bugs tão desastrosos como esse do OpenSSL, ou ainda "lame bugs" como o fork bomb.
BSD's não são sistemas perfeitos, são apenas técnicamente superior ao Linux.



Postado por _@189.79.xx.xxx em 25/05/2008 12h37min:
Você é um idiota que não sabe nem conjugar o verbo haver, que dirá discutir comigo...

Primeiro que ninguém falou que o OpenBSD não tem bugs. Você tirou isso da sua cabeça de jaca. Pelo contrário, o que eu falei é que os bugs no OpenBSD são descobertos cedo e eliminados pró-ativamente.

Segundo que, como até mesmo você foi inteligente o suficiente para perceber, o que interessa é como se lida com os erros. E o projeto OpenBSD é campeão neste quesito, pois cada erro encontrado no código gera uma auditoria atrás de mais erros parecidos.

Sem contar que o OpenBSD não é feito por imbecis que usam de bengala uma ferramenta automatizada para "procurar bugs". O OpenBSD é feito por programadores que sabem na verdade o que estão fazendo. Isto faz toda a diferença.

Como o Voice disse, nunca houve um bug do tipo "fork bomb" ou "rlogin -froot" num sistema BSD.

Apesar de vocês acharem que não, entender do assunto faz diferença sim.



Postado por Eddie@200.162.xxx.xxx em 26/05/2008 03h12min:
Apenas explicando.

fork bomb em português.
http://tocadoelfo.blogspot.com[...]-bomb-no-faam-isso-em-ksa.html

rlogin -froot
http://www.networkscanning.com/rlogin--froot-VSS_10161.html

OpenBSD wikipedia
http://en.wikipedia.org/wiki/OpenBSD

ninguém disse que entender do assunto não faz diferença, acho difícil não fazer.



Postado por Anderson II .@200.158.xxx.xxx [e-mail] em 26/05/2008 14h54min:
É muito engraçado ver que nós usuarios de BSD,
conhecemos o Linux melhor do que os Linuxers.



Postado por _@189.79.xx.xx em 26/05/2008 20h13min:
Por isso que nós usamos BSD.



Postado por Gilson Castro@152.92.x.xxx [site] [e-mail] em 02/07/2008 15h23min:
É verdade que esse problema só atinge quem utiliza a Versão 0.9.8c do OpenSSL em diante????



Postar seu comentário no site:
Nome:

E-mail:

Site:

Comentários (Não use tags HTML):

Caracteres digitados: 0
Limite de caracteres: 3000.
Manter meu nome e e-mail para futuros comentários.

Digite os números da imagem:
Verificação de Segurança