Este documento descreve a análise estática de um arquivo executável Linux desconhecido para determinar suas funcionalidades e efeitos. Ele identifica o arquivo como um ELF executável de 32 bits que realiza um loop infinito da função fork() da biblioteca, sobrecarregando o sistema e causando um ataque de negação de serviço. O documento também fornece detalhes sobre como o arquivo foi compilado e em qual ambiente.
3. introdução
cenário – incidente de segurança
descobrir:
qual o tipo do arquivo?
quais suas funcionalidades?
quais efeitos no sistema e na rede?
ambiente onde foi criado?
análise estática
distro utilizada: BackTrack Linux
8. dissecando o formato ELF
- como um executável é montado?
Código-fonte Compilador Object File
Alto-nível (humano)
p/ baixo-nível (máquina)
Executável Linker
gcc (compiler e linker)
gcc –c (compiler)
ld (linker) Libs
9. linking dinâmico X estático
dinâmico
- depende de bibliotecas compartilhadas
- requisitadas na execução (SO)
- binário menor e menos memória
estático
- todo o código para rodar o executável
está dentro do binário
- binário maior e mais memória
10. ldd
símbolos
- criados na compilação (compiler e linker)
- nomes, endereços e data types de
funções e variáveis
- informações para debug
- podem ser retirados (stripped)
16. .symtab: tabela de símbolos
.dynsym: símbolos de linking dinâmico
.comment: controle de versão
.text: instruções executáveis
.strtab: strings associadas com a
tabela de símbolos
readelf –p <section nr> (.comment)
17. Recapitulando...
- ELF Executável Linux 32 bits Intel 386
- Kernel 2.6.15
- Compilado com GCC 4.3.2 Ubuntu
- Usa somente o fork() da Libc
A função fork() cria um processo filho que difere
do processo pai apenas pelo seu PID. É duplicada
toda a estrutura de memória do processo pai.
fork() != clone()
20. conclusões
- qual o tipo do arquivo?
R: ELF Executável Linux 32 bits x86
- quais suas funcionalidades?
R: Realiza um loop infinito da função fork() da libc.
- quais efeitos no sistema e na rede?
R: Sobrecarrega o sistema esgotando seus recursos
impedindo-o de atender as demais requisições.
Ataque DoS. Não afeta a rede diretamente.
- ambiente onde foi criado?
R: Ubuntu based Kernel 2.6.15 GCC 4.3.2
21. obrigado!
Perguntas?
Contato:
Ronaldo P. Lima
crimesciberneticos@ymail.com
twitter.com/crimescibernet
www.crimesciberneticos.com