Version Completinha

palestra: CFI -- Garantindo a sanidade do fluxo de software

O sequestro do controle de fluxo de apliacações

Event large

O sequestro do controle de fluxo de apliacações é uma das formas mais eficazes para se realizar computação arbitrária durante ataques a sistemas computacionais. Apesar dos diversos esforços para se impedir este tipo de ataque, técnicas como return-oriented programming ainda se mostram efetivas na escrita de exploits, tendo motivado o desenvolvimento e uso de uma nova mitigação conhecida como "Control-Flow Integrity" (CFI). O objetivo desta apresentação é discutir as idéias por trás do CFI, seu recente suporte introduzido nos compiladores LLVM e GCC, suas limitações e a sua adoção em ambientes diversos, como sistemas operacionais. Por fim, a apresentação também introduzirá o kCFI, um framework open-source para suporte a CFI no kernel do Linux.

Diversas mitigações já foram criadas, propostas e aplicadas para solucionar ataques de sequestro de fluxo em ambientes computacionais, no entanto, técnicas avançadas como Return-Oriented Programming continuam sendo utilizadas com sucesso.

Já ha algum tempo a academia propôs uma idéia chamada Control-Flow Integrity (CFI), que baseia-se na computação prévia dos fluxos permitidos em um programa e posterior monitoramento de que sua execução não se desvia de tais fluxos.

Originalmente a proposta recebeu varias críticas, principalmente devido as heuristicas envolvidas, pois estas faziam-na parecer incompleta e, portanto, ineficiente.

Apesar da resistência inicial, a técnica foi adotada em diversos sistemas -- hoje sabe-se que a mesma é utilizada no browser chrome, ambientes windows, possui diferentes implementações para o kernel do linux e, inclusive, foi recentemente incorporada como feature dos compiladores gcc e llvm.

Nesta apresentacao, o objetivo é discutir os ataques ROP, incluindo uma descrição de porque estes são tão perigosos, junto com uma introdução ao CFI -- relevando as diferencas nas diversas implementações e como alguns casos se sobressaem sobre outros.

Sobre a apresentação: uma palestra similar foi apresentada pelo autor na Black Hat Asia em 2017. Estamos prestes a fazer o release da ferramenta apresentada na ocasião (que é open-source, claro), e por isso gostaríamos de apresentá-la na CryptoRave 2018.