Qualitative and Quantitative Evaluation of Software Packers

Qualitative and Quantitative Evaluation of Software Packers

Qualitative and Quantitative Evaluation of Software Packers Mar´ıa Bazus,´ Ricardo J. Rodr´ıguez, Jose´ Merseguer « All wrongs reversed [email protected] ¸ @RicardoJRdez ¸ www.ricardojrodriguez.es Department of Computer Science and Systems Engineering University of Zaragoza, Spain December 12, 2015 NoConName 2015 Barcelona (Spain) $whoami Ph.D. on Comp. Sci. (Univ. of Zaragoza, Spain) (2013) Assistant Professor at University of Zaragoza Performance analysis on critical, complex systems Secure Software Engineering Advance malware analysis RFID/NFC Security Not prosecuted ^¨ Speaker at NcN, HackLU, RootedCON, STIC CCN-CERT, HIP, MalCON, HITB. M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 2 / 39 Agenda 1 Introduction 2 Contributions and Related Work 3 Previous Concepts 4 Software Protection Taxonomy 5 Software Packers Under Study 6 Qualitative and Quantitative Evaluation Qualitative Evaluation Quantitative Evaluation 7 Conclusions and Future Work M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 3 / 39 Agenda 1 Introduction 2 Contributions and Related Work 3 Previous Concepts 4 Software Protection Taxonomy 5 Software Packers Under Study 6 Qualitative and Quantitative Evaluation Qualitative Evaluation Quantitative Evaluation 7 Conclusions and Future Work M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 4 / 39 RE uses: legitimate and illegitimate X Find software bugs X Get interoperability with legacy systems X Detect malicious software X Detect vulnerabilities to create/spread malware X Obtain (or avoid) software license duplication Introduction (I): Reverse Engineering WTF? To analyse a binary program with machine-code vision Types of analysis: Static analysis( + not executed, * all paths explored) Dynamic analysis( * truly executed, + but just one path explored!) M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 5 / 39 Introduction (I): Reverse Engineering WTF? To analyse a binary program with machine-code vision Types of analysis: Static analysis( + not executed, * all paths explored) Dynamic analysis( * truly executed, + but just one path explored!) RE uses: legitimate and illegitimate X Find software bugs X Get interoperability with legacy systems X Detect malicious software X Detect vulnerabilities to create/spread malware X Obtain (or avoid) software license duplication M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 5 / 39 Introduction (II): RE Tools Dynamic analysis Static analysis Debuggers Disassemblers Trace execution Breakpoints Decompilers View internal data Dumpers M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 6 / 39 They are used for. Binary protection before distribution (to keep the intellectual (?) property) Avoid a malware to be positively detected as malicious by an anti-virus Introduction (III): Anti-RE Techniques Definition, pros and cons of software packers Avoidance techniques for static and dynamic analysis into binaries Make RE tasks harder On the contrary, they have a strong impact on binary performance: execution time, memory consumption M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 7 / 39 Introduction (III): Anti-RE Techniques Definition, pros and cons of software packers Avoidance techniques for static and dynamic analysis into binaries Make RE tasks harder On the contrary, they have a strong impact on binary performance: execution time, memory consumption They are used for. Binary protection before distribution (to keep the intellectual (?) property) Avoid a malware to be positively detected as malicious by an anti-virus M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 7 / 39 Introduction (IV): Software Packers Software packer: What is it? Tools for binary protection (legitimately) Once upon a time. : just compressors They evolve to protectors, including anti-RE techniques Normally used in Windows environments M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 8 / 39 How are they reversed? Find unpacking routine end ) dump binary from memory to disk! Introduction (V): Software Packers How do they “protect” a binary? Packed executable = Original executable + unpacking routine Ejecutable Original Ejecutable Empacado Rutina desempacado Protector + (Rutina empacado) Ejecutable Original M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 9 / 39 Introduction (V): Software Packers How do they “protect” a binary? Packed executable = Original executable + unpacking routine Ejecutable Original Ejecutable Empacado Rutina desempacado Protector + (Rutina empacado) Ejecutable Original How are they reversed? Find unpacking routine end ) dump binary from memory to disk! M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 9 / 39 Introduction (VI): Main Goals Analysing a bunch of software packers for. Create a taxonomy of protection techniques Create a benchmark for testing Evaluate the selected packers: Qualitatively: protection strength Quantitatively: reliability and performance M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 10 / 39 Agenda 1 Introduction 2 Contributions and Related Work 3 Previous Concepts 4 Software Protection Taxonomy 5 Software Packers Under Study 6 Qualitative and Quantitative Evaluation Qualitative Evaluation Quantitative Evaluation 7 Conclusions and Future Work M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 11 / 39 Related Work @ comparative analysis of current software packers Automation of malware unpacking ([RHD+06], [KPY07], [MCJ07],[GFC08], [JCL+10]) Using DBI to analyse malware ([RAG16]) Closest work: performance of software packers in Linux embedded systems ([KLC+10]) Contributions Taxonomy of software packers Current software packers evaluation Qualitatively: protection strengths Quantitatively: reliability and performance (exec. time, memory consumption, binary size) M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 12 / 39 Agenda 1 Introduction 2 Contributions and Related Work 3 Previous Concepts 4 Software Protection Taxonomy 5 Software Packers Under Study 6 Qualitative and Quantitative Evaluation Qualitative Evaluation Quantitative Evaluation 7 Conclusions and Future Work M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 13 / 39 Previous Concepts (I): PE Header What is it? Windows standard format for binaries (.exe, .dll, .sys, . ) Header (characteristics) + Sections (data & code) Cabecera DOS MZ Cabecera PE Tabla de secciones DOS Header: Secciones e lfnew offset to PE Header PE Header: Sección 1 ImageBase … AddressOfEntryPoint DataDirectory[1] Sección n M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 14 / 39 Previous Concepts (II): Loading Process En9Memoria Cabecera9DOS9 Cabecera9PE Tab9de9secciones En9Disco Secciones Sección91 Cabecera9DOS9 RUTINA9DESEMPACADO Cabecera9PE … Tab9de9secciones Sección9 n Secciones Cabecera9DOS9 Cabecera9PE Sección91 RUTINA9DESEMPACADO Tab9de9secciones … Secciones Sección9 n AOABA8B9A4A3E857016B00CF19A50B Sección91 ……. 57016B00CF19A50BAOABA8B9A4A3A0 … Sección9 n M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 15 / 39 Previous Concepts (III): Import Address Table IMAGE_OPTIONAL_HEADERIMAGE_OPTIONAL_HEADER … En Memoria (Sobreescrito por el DataDirectory [1] Windows Loader) IMAGE_THUNK_DATA IMAGE_THUNK_DATA IMAGE_THUNK_DATA IMAGE_THUNK_DATA … IMAGE_IMPORT_DESCRIPTOR_0 En Disco (ntdll.dll) 000..000 000…000 IMAGE_IMPORT_DESCRIPTOR _1 OriginalFirstThunk ReadFile TimeDateStamp WriteFile ForwardedChain Name Kernel32.dll FirstThunk … 77E55A68 IMAGE_IMPORT_DESCRIPTOR_n 77E52B38 0 … 0 M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 16 / 39 Agenda 1 Introduction 2 Contributions and Related Work 3 Previous Concepts 4 Software Protection Taxonomy 5 Software Packers Under Study 6 Qualitative and Quantitative Evaluation Qualitative Evaluation Quantitative Evaluation 7 Conclusions and Future Work M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 17 / 39 Compression and Encryption Main aim: Avoid static analysis of code Techniques: to compress or to encrypt the original code (+ resource compression) Anti-disassembling Main aim: Make disassembling process quite harder Techniques: Add junk code, dummy code, or code permutations Software Protection (I): Static Analysis Copy protection Main aim: Avoid to illegitimately copy a software Techniques: License management, register keys, hardware dongles M. Bazus,´ R.J. Rodr´ıguez, J. Merseguer Qualitative and Quantitative Evaluation of Software Packers NcN 2015 18 / 39 Anti-disassembling Main aim: Make disassembling process quite harder Techniques: Add junk code, dummy code,

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    47 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us