Donncha O’Cearbhaill, um pesquisador de segurança irlandês, encontrou um bug de execução remota no Ubuntu. Esse buraco de segurança, que apareceu pela primeira vez no Ubuntu 12.10, torna possível que o código malicioso seja injetado em seu sistema quando você abre um arquivo preso. Isso pode ser usado para travar seu sistema ou executar malware. habilita ao invasores para se tornarem o usuário root.
O’Cearbhaill descobriu que o Ubuntu irá abrir qualquer arquivo desconhecido com o Apport se ele começa com “ProblemType:”. Apport é o manipulador de falhas padrão do Ubuntu e o programa de relatórios de falhas. Por enquanto, tudo bem.
Apport, por sua vez, gera um arquivo de falha com a extensão incomum “.crash” e uma seqüência de bytes mágicos. Os bytes mágicos são as seqüências únicas destinadas a identificar um arquivo. Por exemplo, um documento PDF sem uma extensão PDF ainda pode ser identificado como PDF por sua seqüência de byte mágico hexadecimal: “25 50 44 46.”
Bytes mágicos, é claro, podem ser abusivos e isso é em parte o que aconteceu aqui. Quando o Ubuntu é apresentado com um arquivo desconhecido, ele tentará primeiro combinar sua extensão Multipurpose Internet Mail Extensions (MIME). Se isso falhar, ele substituirá os bytes mágicos.
Assim, um invasor pode criar um arquivo com a identificação de bytes mágicos do Apport. Agora você não deveria abrir um arquivo com a extensão “.crash”, mas você pode abrir um arquivo sem uma extensão. Se o fizer, o Apport o abrirá e exibirá um prompt de relatório de falha mínimo. Se você optar por “Mostrar Detalhes”, você acabou de abrir-se para um ataque.
Isso ocorre porque dentro do falso arquivo de falha do Apport, um hacker pode usar o Apport Crash Report Format para esconder uma demanda para executar um programa Python listado no campo CrashDB. Este comando será então analisado e executado sem qualquer outra interação do usuário.
Em resumo, o Apport não sanitiza adequadamente os campos Package e SourcePackage em arquivos de falha antes de processá-los.
Outro bug, da família Path Traversal, permite que um invasor execute arquivos Python para causar ainda mais problemas. Na prática, isso significa que: “Um invasor pode servir para plantar um arquivo .py malicioso e um arquivo de falha no diretório de download de usuários para obter a execução de código.”
Pior ainda, se o usuário tiver um ID de usuário (UID) igual ou inferior a 500, o Apport usará o Polkit (anteriormente o PolicyKit) para solicitar ao usuário do desktop privilégios de root com uma mensagem genérica “System program detected detected”. Se você fizer isso, parabéns. Você acabou de conceder ao atacante a capacidade de executar comandos como root.
A boa notícia é que os problemas foram corrigidos. Então, agora que você está quase terminando de ler isso, corrija seu sistema já.
A má notícia é que ainda não há olhos suficientes olhando esses códigos abertos mais antigo para vulnerabilidades de segurança negligenciadas.
Pior ainda, como O’Cearbhaill aponta, “A indústria de segurança informática tem um sério conflito de interesses neste momento. Há grande motivação financeira para os pesquisadores a encontrar e divulgar vulnerabilidade para explorar os corretores. Muitos dos corretores estão no negócio de manter Problemas de execução de código são valiosos.Como um ponto de dados, um analista recebeu uma oferta de mais de 10.000 dólares de um vendedor de exploit para esses erros Apport.Estes motivadores financeiros só estão aumentando como software fica mais seguro e bugs se tornam mais difíceis de encontrar. ”
A resposta? Não basta esperar programadores para se trabalhar para o bem comum. Em vez disso, O’Cearbhaill acredita que as empresas devem apoiar programas de recompensa de vulnerabilidade, como o projeto Internet Bug Bounty.
Via: Zdnet