26
SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend @ Hack.lu 2017 - Luxembourg [email protected] barbieauglend

SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

SMT Solvers in IT Security -Deobfuscating binary code

with logic

barbieauglend @ Hack.lu 2017 - LuxembourgR [email protected] • 7 barbieauglend

Page 2: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

DISCLAIMER

This research was accomplished by Thaı́s Moreira Hamasaki inher personal capacity. The opinions and views expressed in

this talk and article are the author’s own and do not necessarilyreflect the official policy or view of her employer.

Page 3: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

WHO AM I?

Page 4: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Overview:

• Introduction to Constraint Logic Programming• Applications of CLP in IT Security• Binary Obfuscation• Malware deobfuscation using CLP

Page 5: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

CONSTRAINTS

Page 6: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

”Constraint programming represents one of the closestapproaches computer science has yet made to the Holy Grail ofprogramming: the user states the problem, the computer solves

it.”

Eugene C. Freuder, Constraints, April 1997

Page 7: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend
Page 8: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Automated Theorem Proving

• Hardware and Software→ Large-scale verification

• Languages specification and Computing proof obligations

Page 9: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

SYMBOLIC EXECUTION

Page 10: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

APPLICATIONS

Page 11: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Bug Hunting

• Fuzzing

• Verification

• Analysis

Page 12: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Exploit Generation

• Automatic Exploit Generation

• Proof of Concept

• Automatic Payload Generation

Page 13: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Malware Analysis

• Obfuscation

• Garbage-code elimination

• Compilation

• Packing

• Anti-debugging

• Crypto analysis

Page 14: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

BINARY OBFUSCATION

Page 15: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Malware Obfuscation

SW Property Protection

Page 16: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

HOW DOES IT WORK?

Page 17: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

• Compiled

• Packed

• Obfuscated

• Anti-debugging

Page 18: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Garbage Code

• Unnecessary instructions• Jumps that are never taken

Page 19: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

The exclusive or operation

Page 20: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Packers

• UPX, NSIS• self implemented

Page 21: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

Malware Analysis• Practical:

Techniques tothwart analysis

• Theoretical:Rice’s Theorem

Page 22: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend
Page 23: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

• Symbols as arguments⇒ any feasible path

• Program states• Symbolic values for memory

locations• Path conditions

Page 24: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend
Page 25: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

CONCLUSION

Page 26: SMT Solvers in IT Security - Deobfuscating binary code ...archive.hack.lu/2017/barbie_slides.pdf · SMT Solvers in IT Security - Deobfuscating binary code with logic barbieauglend

THANK YOU!