Brecha de segurança no Ruby on Rails exige providência imediata
| Tweet |
|
Enviado por Jackson Laskoski (jacksonlaskoskiΘgmail·com):
A brecha existente na tecnologia permite a um invasor enviar dados especiais para uma página programada em Ruby on Rails para que ela interprete os dados como um documento YAML ou símbolo do Ruby, resultando em uma execução de código na página e levando à invasão do site.
A orientação para administradores de sistemas responsáveis por aplicações que fazem uso do Ruby on Rails é imediatamente instalar as atualizações disponibilizadas. As versões corrigidas são a 3.2.11, 3.1.10, 3.0.19, e a 2.3.15. Alguns desenvolvedores têm relatado problemas nas atualizações da versão 3, afirmando que elas causam erros nas funções de troca de dados via JSON.
Não há atualização para quem ainda utiliza a primeira versão do Ruby on Rails. A recomendação, nesses casos, é imediatamente realizar uma atualização para uma versão mais nova. O site do governo holandês “DigiD”, retirado do ar para aplicar as correções necessárias, deve retomar seu funcionamento normal na manhã de quinta-feira (10).” [referência: g1.globo.com]
| Tweet |
|
• Link direto para este post: http://br-l.org/!47904
• Siga no Twitter: @brlinuxblog e @augustocc
• Mais posts do mesmo tema: Administração

@brlinuxblog









Quero ver o pessoal que critica o java mandar o pessoal parar de usar ruby.
Senhoras/Senhores,
Antes de sair “desinstalando sistemas” ou recomendando alterações bruscas, entendam de fato o contexto do bug: http://blog.codeclimate.com/blog/2013/01/10/rails-remote-code-execution-vulnerability-explained/
Nada de pânico! ;-)
Abraços!
Jack
Alguém na comunidade Rails não estudou muita coisa sobre segurança básica na web. Talvez devessem ler alguma coisa do “apostilando”…
A descrição resumida dos passos:
Parse do xml sem qualquer validação prévia do Rails (exceto sintaxe).
Parse de uma tag com código Yaml.
O código Yaml (que veio do cliente) pode ocasionar execução de código arbitrário.
O código do Yaml pode ocasionar execução de código ERB
O código ERB pode executar código Ruby com as mesmas permissões do seu processo.
Seu servidor não é mais seu….
Permitir execução arbitrária de código com base no input de usuário é D+. Se tivessem menos preguiça de escrever código, usariam alguma biblioteca que não permite esse tipo de coisa.
Mais um motivo para nunca rodar os processos como root.
André Moraes, isto é uma feature para permitir deserialização de objetos direto do banco.
Como em ruby as classes são abertas vc pode alterar o código em execução, e assim voce pode alterar o objeto de request para ao inves de seguir o caminho normal, ele executar o que voce desejar.
Este bug só acontece se vc aceita um payload de xml sem validar ele. obvio conheço alguns lugares que isto pode a vir acontecer, mas eu mesmo quando fiz uma api em rails criei meu proprio validador para verificar os tipos do xml. fiz isto porque queria garantir.
Se acompanhar a thread no github eles estão discutindo sobre qual seria a melhor solução.
@Renato Elias
“André Moraes, isto é uma feature para permitir deserialização de objetos direto do banco.
Como em ruby as classes são abertas vc pode alterar o código em execução, e assim voce pode alterar o objeto de request para ao inves de seguir o caminho normal, ele executar o que voce desejar.”
Eu, pessoalmente, não chamaria isso de “feature”. Deserializar objetos direto da base é muito útil. Mas permitir execução de código durante a deserialização não me parece uma “feature” útil.
@Vitor
E o que você me fala sobre isso? http://idgnow.uol.com.br/internet/2013/01/11/falha-no-java-ameaca-usuarios-de-internet-banking-no-pais-alertam-experts/
Esse é o problema, aparecem 1000 tranqueiras no java e 1 no Ruby, Python ou PHP e nego vem se gabar.