Dissertação

ROP chain generation: a semantic approach EVALUATED

Vulnerabilidades de corrupção de memória ainda existem no sofware dos dias de hoje. Embora a implementação de mitigações, como o DEP evitem a injeção de código, e ASLR, que randomiza o endereço base das regiões de memória, tenham tornado a sua exploitation mais desafiante, esta é ainda assim possível. ROP (Programação Orientada a Retorno) é a técnica de exploitation usada em todos os exploits hoje em dia, pois não requer injeção de código e pode, portanto, ultrapassar a maioria das mitigações existentes, incluindo o DEP. O ROP é baseado na reutilização de pequenos bocados de código chamados gadgets que estão já presentes na aplicação e terminam numa instrução 'ret'. Quando encadeados permitem criar uma rop-chain para obter execução do código no sistema que corre a aplicação vulnerável. No entanto, o desenvolvimento de rop-chains à mão pode por vezes ser um processo difícil e lento, devido a restrições na payload (por exemplo, payload sem null bytes, ou apenas com caracteres ASCII), uma quantidade baixa de gadgets valiosos disponíveis no binário, etc... Como tal existem ferramentas que tentam fazer isso automaticamente, mas em aplicações mais pequenas, com menos gadgets, muitas vezes falham. Nesta tese, propomos avaliar as melhores ferramentas existentes para geração de rop-chains e desenvolver uma nova solução que transforma o assembly numa representação intermédia comum (IR), extrai e classifica os gadgets e, fazendo pesquisas semânticas com o uso de um SMT solver, permitirá construir uma rop-chain baseada numa receita de exploitation predefinida ou uma fornecida pelo utilizador.
Segurança, Exploração de Binários, Return Oriented Programming, rop-chain

Junho 19, 2019, 10:30

Documentos da dissertação ainda não disponíveis publicamente

Orientação

ORIENTADOR

Pedro Miguel dos Santos Alves Madeira Adão

Departamento de Engenharia Informática (DEI)

Professor Auxiliar