sstic 2009
play

SSTIC 2009 Optimiser pour r egner La compilation dans tous ses - PowerPoint PPT Presentation

D esobfuscation automatique de binaires Et autres idyles bucoliques. . . Alexandre Gazet Yoann Guillot Sogeti / ESEC R&D Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com yoann.guillot(at)sogeti.com SSTIC 2009 Optimiser pour r


  1. D´ esobfuscation automatique de binaires Et autres idyles bucoliques. . . Alexandre Gazet Yoann Guillot Sogeti / ESEC R&D Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com yoann.guillot(at)sogeti.com SSTIC 2009

  2. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Plan La compilation dans tous ses ´ etats 1 Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s) D´ ecompilation 2 A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 2/26

  3. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Point de d´ epart N´ ecessit´ e d’automatisation Nous avons d´ ej` a : Processeur filtrant Parcours du graphe de contrˆ ole ( CFG ) Application de r` egles de r´ e´ ecriture Modification ` a la vol´ ee du CFG Analyse manuelle du code obfusqu´ e Recherche manuelle de motifs P´ enible Peu g´ en´ erique ´ Eventuellement inefficace : ex r´ esistance au polymorphisme A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 3/26

  4. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Nouvelle approche Besoins Conservation de la s´ emantique R´ e´ ecriture du code dans une forme plus simple ´ Elimination du code mort etc. Les compilateurs le font d´ ej` a : l’optimisation Notre crit` ere d’optimisation : la concision du code A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 4/26

  5. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Pr´ esentation de la cible La cible Une protection ` a base de virtualisation Massivement obfusqu´ ee (difficult´ e d’analyse + polymorphisme) Approche propos´ ee Greffe d’un module d’optimisation sur le module du parcours de graphes A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 5/26

  6. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Constant propagation cfh mov al , 12h cfh mov al , 12h 67h mov cl , 46h 67h mov cl , 46h 69h xor cl , a l 69h xor cl , 12h Fig. : Propagation de 12h ` a travers al . A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 6/26

  7. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Constant folding cfh mov al , 12h cfh mov al , 12h 67h mov cl , 46h 67h mov cl , 54h 69h xor cl , 12h Fig. : R´ eduction de cl . A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 7/26

  8. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Operation folding 4 fh add al , − 7fh 4 fh add al , 11h 51h add al , bl 51h add al , bl 53h add al , − 70h Fig. : R´ eduction de l’op´ eration add . A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 8/26

  9. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) D´ emo Optimisation d’un handler A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 9/26

  10. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Analyse s´ emantique des handlers M´ ethode code binding de l’objet disassembler Exemple de handler optimis´ e l od s d xor eax , ebx add eax , 859 f c f a e h sub ebx , eax push eax S´ emantique ( binding ) dword p t r [ esp ] := ( dword p t r [ e s i ]ˆ ebx )+859 f c f a e h eax := ( dword p t r [ e s i ]ˆ ebx )+859 f c f a e h ebx := ebx+ − (dword p t r [ e s i ]ˆ ebx ) − 859 f c f a e h e s i := e s i +4 esp := esp − 4 A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 10/26

  11. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Au commencement eme projection de Futamura 2 ` ´ Etant donnn´ es deux langages L a et L b , il est possible de trouver un compilateur de L b vers L a , si on connaˆ ıt un interpr´ eteur de L b ´ ecrit en L a Comment ? A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 11/26

  12. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Du statique au (presque) dynamique Binding contextualis´ e : dword p t r [ esp ] := 0 c0000001h eax := 0 c0000001h ebx := 4000 fd8ch e s i := 100167 c2h esp := esp − 4 Assembleur g´ en´ er´ e : push 0c0000001h Suivi du flot d’ex´ ecution du bytecode A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 12/26

  13. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) D´ emo Ex´ ecution symbolique et g´ en´ eration assembleur A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 13/26

  14. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Interpr´ etation du r´ esultat L’int´ egralit´ e du bytecode a ´ et´ e compil´ ee en asm Ia32 natif Des r´ ef´ erences au contexte de l’interpr´ eteur Proche d’un automate ` a pile ⇒ module d’optimisation + abstraction A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 14/26

  15. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Injection d’abstraction Extension du processeur Ia32 : : Reg . i t o s [ 3 2 ] . concat ( % w[ v i r t e a x ] ) Ia32 : : Reg . i t o s [ 1 6 ] . concat ( % w[ v i r t a x ] ) Ia32 : : Reg . i t o s [ 8 ] . concat ( % w[ v i r t a l ] ) Ia32 : : Reg . s t o i . c l e a r Ia32 : : Reg . i t o s . each { | sz , hh | hh . e a c h w i t h i n d e x { | r , i | Ia32 : : Reg . s t o i [ r ] = [ i , sz ] } } Ia32 : : Reg : : Sym . r e p l a c e Ia32 : : Reg . i t o s [ 3 2 ] . map { | s | s . to sym } A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 15/26

  16. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) D´ emo Chunk optimis´ e avec registres virtuels A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 16/26

  17. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Phase finale Injections des registres virtuels Optimisation Expression du code en registres virtuels uniquement Registres virtuels remapp´ es sur les registres natifs Compilation et ´ edition des liens A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 17/26

  18. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) D´ emo Code d´ evirtualis´ e, mapp´ e dans le binaire original A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 18/26

  19. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Conclusion(s) 1/2 M´ ethodes d’optimisation (r` egles de r´ e´ ecriture) Tr` es efficaces Implementation limit´ ee localit´ e des optimisations manque d’une repr´ esentation interm´ ediaire inadapt´ ee aux obfuscations du flot de contrˆ ole L’´ evaluation partielle ou sp´ ecialisation Pr´ e-calcul de tous les ´ el´ ements statiques : Mouvements de donn´ ees dans le code obfusqu´ e Application de l’interpr´ eteur au bytecode Approche g´ en´ erique Relativement coˆ uteux en temps de calcul A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 19/26

  20. Optimiser pour r´ egner La compilation dans tous ses ´ etats Les limites de la virtualisation D´ ecompilation Conclusion(s) Conclusion(s) 2/2 Int´ egration et r´ eutilisation du d´ esobfuscateur Le code actuel est ` a l’´ etat de prototype En cours d’int´ egration au framework sous forme d’un plugin propre Utilisable sur tout code x86 , avec des parties cross-platforme A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 20/26

  21. La compilation dans tous ses ´ etats D´ ecompilation Plan La compilation dans tous ses ´ etats 1 D´ ecompilation 2 A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 21/26

  22. La compilation dans tous ses ´ etats D´ ecompilation D´ ecompilation Interface arch-sp´ ecifique r´ eduite Meilleure expressivit´ e du code Repr´ esentation plus simple des boucles S´ emantique plus simple ` a manipuler A. Gazet, Y. Guillot D´ esobfuscation automatique de binaires 22/26

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend