binsec a binary analysis platform
play

Binsec A Binary Analysis Platform BlackHoodie December, 07th 2019 - PowerPoint PPT Presentation

Binsec A Binary Analysis Platform BlackHoodie December, 07th 2019 Binsec team: Sbastien Bardin, Richard Bonichon, Lesly-Ann Daniel, Robin David, Adel Djoudi, Benjamin Farinier, Josselin Feist, Guillaume Girol, Matthieu Lemerre,


  1. Binsec – A Binary Analysis Platform BlackHoodie – December, 07th 2019 Binsec team: Sébastien Bardin, Richard Bonichon, Lesly-Ann Daniel, Robin David, Adel Djoudi, Benjamin Farinier, Josselin Feist, Guillaume Girol, Matthieu Lemerre, Grégoire Menguy, Manh-Dung Nguyen, Olivier Nicole, Mathilde Ollivier, Frédéric Recoules, Yaëlle Vinçont (Ella). https://binsec.github.io https://github.com/binsec/binsec

  2. Why Binary-Level Analysis? Need Code Analysis • Bug-Finding (e.g. find RTE) fun ( i n t i , j ){} void i n t i n t bat () { p r i n t f ( " Bat " ) ; } • Verif. (e.g. assert no RTE) i n t man() { p r i n t f ( "Man" ) ; } • Reverse-Engineering main () { i n t fun ( bat ( ) , man ( ) ) ; At Binary Level } • Source code is not available Result – closed-source library – legacy source code • clang-5.0 : “BatMan” – malware • gcc-5.1 : “ManBat” – CTF • Don’t trust compilers! 1/11

  3. Binary Code is Difficult to Analyze • No types (only registers and memory) • No high level CFG (no for or while loops) • Data dependencies are not explicit (memory operations) • Large code size Ñ Manual analysis is tedious! Binsec can help you! Goal: Automatic analysis of binary code based on formal methods. In this talk: focus on Symbolic Execution 2/11

  4. Binary-Analysis Symbolic Execution & Binsec

  5. Symbolic Execution • Scales better than other semantic binary-level analysis • Widely used in intensive testing and security analysis • Leading technique for BF • Precise (no false alarm) 3/11

  6. Symbolic Execution Store uint32_t magic = 24; x 0 ÞÑ λ x 1 ÞÑ x 0 ąą 1 x = x / 2 void foo ( uint32_t x ) { x 2 ÞÑ x 1 ` 3 x = x / 2 + 3; x = x + 3 i f ( x == magic ) p r i n t f ("Success!" ) ; x == magic e l s e p r i n t f ("Faillure!" ) ; x 2 “ 24 x 2 ‰ 24 return ; } Success! Faillure! How to reach “Success!”? Solver ✓ λ “ 42 ? p λ ąą 1 q ` 3 “ 24 λ “ 43 ✓ 4/11

  7. Symbolic Execution & Binsec More than just SE: Decoder for 50k lines of Disassember, DSE, x86, ARMv7, RISC-V. OCaml simplifications 5/11

  8. Use Case: Manticore CTF

  9. Manticore CTF Result buf[0] ^ 97 = 92 buf[0] = 1100001 ^ 1011100 buf[0] = 0111101 buf[0] = ’=’ https://blog.trailofbits.com/2017/05/15/magic-with-manticore/ 6/11

  10. Problem: I am a Lazy Person! Need to reverse all 11 characters We don’t have the source! 7/11

  11. Binsec Can Help Configuration file = manticore entrypoint = check reach = x08048807 #end of check cut = x080483C0 #exit solver = boolector Initial Memory esp := [xffff5000..xffff8000]; @[esp+4,4] := x 00060000 ; #buf[] 8/11

  12. Conclusion

  13. Binsec vs. Other Tools Other Tools : angr, triton, manticore, etc. Pros of Binsec : • Research tool, built with formal methods in mind • Principled and generic core engine. Cons of Binsec: • work in progress, • don’t look for doc! 9/11

  14. We Also Use Binsec to do Useful Stuff • Symbolic deobfuscation with and application to X-Tunnel malware (Robin), • Verification of absence of privilege escalation in an OS (Olivier), • Verification of constant-time cryptographic implementations (Lesly-Ann), • Automatic bug-finding using fuzzing guided by symbolic analysis (Yaëlle & Manh-Dung), • Certified decompilation (Frédéric). 10/11

  15. Conclusion • Binary analysis is important but difficult • Symbolic execution can automate the analysis • Symbolic Execution is you friend for solving CTFs :) • Can also be used for Bug-Finding & Verification 11/11

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