Ver Feed RSS

Notícias Sobre TI e Linux

Cuidado ao Utilizar a LDD System Tool

Avalie este Post de Blog
Em uma notícia que começou via Heise Online e se espalhou por vários blogs e portais especializados em segurança, todos alertam: Cuidado ao utilizar a LDD System Tool. Os bugs encontrados neste utilitário de sistema não são tão interessantes assim, se formos avaliar do ponto de vista da segurança do sistema. Mas se essa ferramenta for utilizada com uma certa freqüência para a obtenção de informação em programas suspeitos, a história já muda completamente.

E isso é exatamente o que a ldd faz. A ldd é uma ferramenta de sistema que resolve as dependências de bibliotecas dinâmicas e oferece um insight sobre o funcionamento de programas desconhecidos (ou suspeitos).

Código :
[1] $ ldd /bin/grep
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0xb7eca000)
        /lib/ld-linux.so.2 (0xb801e000)
 
[2] $ LD_TRACE_LOADED_OBJECTS=1 /bin/grep
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0xb7e30000)
        /lib/ld-linux.so.2 (0xb7f84000)
 
[3] $ LD_TRACE_LOADED_OBJECTS=1 /lib/ld-linux.so.2 /bin/grep
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0xb7f7c000)
        /lib/ld-linux.so.2 (0xb80d0000)

Três exemplos de como o ldd funciona, descritos no blog do Krumim.

A ldd é uma ferramenta padrão para administradores de sistemas e analistas forenses. Caso você possua interesse em conhecer mais sobre como a ldd funciona, visite o blog do Peteris Krumin. Inclusive , neste blog você pode saber como essa ferramenta pode ser explorada para a execução de código arbitrário.

O ldd é somente um script em shell. É esse script que chama o programa em questão a ser analisado. Ao fazer essa chamada, o ldd define uma variável de ambiente denominada LD_TRACE_LOADED_OBJECTS, que informa ao carregador para apenas mostrar suas dependências, sem executar o programa de fato. O truque que o krumin faz é obter seu próprio carregador de chamadas, ao invés do carregador do sistema. Ele é capaz de efetuar essa ação utilizando opções apropriadas no momento em que compila o programa. Como o seu próprio carregador já foi chamado, ele é capaz de executar código arbitrário quando alguém examina o binário usando o ldd.

Em seu blog, Krumin descreve como conseguir privilégios de administrador com esse truque, em um cenário montado por ele, ao reportar uma mensagem de erro detalhando uma biblioteca perdida. O administrador responderá com a execução da ldd para tentar resolver o problema. E o pior! Esse não é um problema novo, pois já foi reportado anteriormente.


Saiba Mais:

[1] Heise Online: http://www.h-online.com/security/new...ol-842734.html
[2] CatonMat: http://www.catonmat.net/blog/ldd-arb...ode-execution/
[3] Lostrealm: http://reverse.lostrealm.com/protect/ldd.html
[4] Linux Security: http://www.linuxsecurity.com/content/view/150486/2/
[6] RedTram: http://en.redtram.com/go/227359768/top100/
[7] Reddit: http://www.reddit.com/r/programming/...ode_execution/
[8] yCombinator: http://www.reddit.com/r/programming/...ode_execution/
Categorias
Noticias

Comentários


+ Enviar Comentário