Software Analysis & Deobfuscation Engine. Page  2  Project Name: SADE  Project Members: Faiza Khalid, Komal Babar and Abdul Wahab  Project Supervisor.

Slides:



Advertisements
Similar presentations
Saumya Debray The University of Arizona Tucson, AZ
Advertisements

Sample chapter from Reverse Engineering Course.
Hydrological information systems Svein Taksdal Head of section, Section for Hydroinformatics Hydrology department Norwegian Water Resources and Energy.
Smita Thaker 1 Polymorphic & Metamorphic Viruses Presented By : Smita Thaker Dated : Nov 18, 2003.
E-Glue Application Merging executables in WIN32 environment By : Gil Arbeli, Ran Didi Instructor : Gal Badishi Softlab – June 2006.
Operating System Security : David Phillips A Study of Windows Rootkits.
Day anti-virus anti-virus 1 detecting a malicious file malware, detection, hiding, removing.
1 Detection of Injected, Dynamically Generated, and Obfuscated Malicious Code (DOME) Subha Ramanathan & Arun Krishnamurthy Nov 15, 2005.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
Malicious Logic What is malicious logic Types of malicious logic Defenses Computer Security: Art and Science © Matt Bishop.
Security strategy. What is security strategy? How an organisation plans to protect and respond to security attacks on their information technology assets.
SRE  Introduction 1 Software Reverse Engineering (SRE)
Client-Server collaborative scanning Dumitru Codreanu R&D, BitDefender.
What is it, how does it work, and why is it important?
Code Injection and Software Cracking’s Effect on Network Security Group 5 Jason Fritts Utsav Kanani Zener Bayudan ECE 4112 Fall 2007.
Jarhead Analysis and Detection of Malicious Java Applets Johannes Schlumberger, Christopher Kruegel, Giovanni Vigna University of California Annual Computer.
MutantX-S: Scalable Malware Clustering Based on Static Features Xin Hu, IBM T.J. Watson Research Center; Sandeep Bhatkar and Kent Griffin, Symantec Research.
Henric Johnson1 Chapter 10 Malicious Software Henric Johnson Blekinge Institute of Technology, Sweden
CAS: A FRAMEWORK OF ONLINE DETECTING ADVANCE MALWARE FAMILIES FOR CLOUD-BASED SECURITY From: First IEEE International Conference on Communications in China:
1GMS-VU : Module 2 Introduction to Information and Communication Technologies Module 2 Computer Software.
DroidKungFu and AnserverBot
1 Chap 10 Malicious Software. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on.
Trying to like a boss… REVERSE ENGINEERING. WHAT EVEN IS… REVERSE ENGINEERING?? Reverse engineering is the process of disassembling and analyzing a particular.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Application Security Tom Chothia Computer Security, Lecture 14.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 12 1 Microsoft Office Access 2003 Tutorial 12 – Managing and Securing a Database.
Paradyn Project Dyninst/MRNet Users’ Meeting Madison, Wisconsin August 7, 2014 The Evolution of Dyninst in Support of Cyber Security Emily Gember-Jacobson.
Behavior-based Spyware Detection By Engin Kirda and Christopher Kruegel Secure Systems Lab Technical University Vienna Greg Banks, Giovanni Vigna, and.
Structure Classifications &
Windows PE files Infections and Heuristic Detection Nicolas BRULEZ / Digital River PACSEC '04.
CHAPTER 14 Viruses, Trojan Horses and Worms. INTRODUCTION Viruses, Trojan Horses and worm are malicious programs that can cause damage to information.
1 Chap 10 Virus. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on an ever increasing.
Ether: Malware Analysis via Hardware Virtualization Extensions Author: Artem Dinaburg, Paul Royal, Monirul Sharif, Wenke Lee Presenter: Yi Yang Presenter:
Chapter 10 Malicious software. Viruses and ” Malicious Programs Computer “ Viruses ” and related programs have the ability to replicate themselves on.
EECS 354 Network Security Reverse Engineering. Introduction Preventing Reverse Engineering Reversing High Level Languages Reversing an ELF Executable.
ANTIVIRUS SOFTWARE.  Antivirus software is the most widespread mechanism for defending individual hosts against threats associated with malicious software,
Malware Analysis Jaimin Shah & Krunal Patel Vishal Patel & Shreyas Patel Georgia Institute of Technology School of Electrical and Computer Engineering.
Mathieu Castets October 17th,  What is a rootkit?  History  Uses  Types  Detection  Removal  References 2/11.
Executable Unpacking using Dynamic Binary Instrumentation Shubham Bansal (iN3O) Feb 2015 UndoPack 1.
Auther: Kevian A. Roudy and Barton P. Miller Speaker: Chun-Chih Wu Adviser: Pao, Hsing-Kuo.
Christopher Kruegel University of California Engin Kirda Institute Eurecom Clemens Kolbitsch Thorsten Holz Secure Systems Lab Vienna University of Technology.
1 OmniUmpack: Fast, Generic, and Safe Unpacking of Malware Authors: Lerenzo Martignoni, Mihai Christodorescu and Somesh Jha Computer Security Applications.
RIVERSIDE RESEARCH INSTITUTE Deobfuscator: An Automated Approach to the Identification and Removal of Code Obfuscation Eric Laspe, Reverse Engineer Jason.
CISC Machine Learning for Solving Systems Problems Presented by: Sandeep Dept of Computer & Information Sciences University of Delaware Detection.
Eureka: A Framework for Enabling Static Malware Analysis the 13 th European Symposium on Research in Computer Security (ESORICS) conference 2008 WANG Zhi.
Panda Anti-Rootkit & password storage tools
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
LOGOPolyUnpack: Automating the Hidden-Code Extraction of Unpack-Executing Malware Royal, P.; Halpin, M.; Dagon, D.; Edmonds, R.; Wenke Lee; Computer Security.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
A Generic Approach to Automatic Deobfuscation of Executable Code Paper by Babak Yadegari, Brian Johannesmeyer, Benjamin Whitely, Saumya Debray.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
n Just as a human virus is passed from person from person, a computer virus is passed from computer to computer. n A virus can be attached to any file.
Software mechanism of Genesis --- a cheating software for Warcraft3 Yang Chen Wen Sun.
Page 1 Viruses. Page 2 What Is a Virus A virus is basically a computer program that has been written to perform a specific set of tasks. Unfortunately,
Text2PTO: Modernizing Patent Application Filing A Proposal for Submitting Text Applications to the USPTO.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Cosc 4765 Antivirus Approaches. In a Perfect world The best solution to viruses and worms to prevent infected the system –Generally considered impossible.
Reverse Engineering Contemporary Countermeasures By: Joshua Schwartz.
Polymorphic Virus Analysis Nicolas BRULEZ Senior Virus Researcher Websense Security Labs IMPROVISED TALK MMMKAY?!
Malware Reverse Engineering Process
Chapter 1. Basic Static Techniques
Malware Reverse Engineering Process
Techniques, Tools, and Research Issues
Mcafee updates Mcafee antivirus uses a database of known virus definitions to identify malware and other threats on your computer system. So it is important.
Semantics-Aware Malware Detection
Unit# 9: Computer Program Development
Chap 10 Malicious Software.
Hardware Security – Highlevel Survey Review for Exam 4
Chap 10 Malicious Software.
CMSC 491/691 Malware Analysis
Presentation transcript:

Software Analysis & Deobfuscation Engine

Page  2  Project Name: SADE  Project Members: Faiza Khalid, Komal Babar and Abdul Wahab  Project Supervisor –Internal: Aisha Khalid –External: Dr. Fauzan Mirza Project Scope

Page  3 Scope Statement Development of a software analysis toolkit for windows executables that will bypass obfuscations to make actual code available for further analysis. The toolkit will be for security analysts and novice users with a little training.

Page  4 Obfuscation Problem  Malware analysis is necessary for information security: – Creating signatures – Understanding attacks  Malware authors use code obfuscation techniques to hide their malicious code  The time of security analysts is expensive. Individual samples can take hours to analyze. Obfuscation costs reverse-engineers time: –Complicates instruction sequences –Disrupts control flow –Makes algorithms difficult to understand  Manual obfuscation removal is a tedious and error-prone process  Need to automate the process of analysis to keep up.

Page  5 Deobfuscation Deobfuscated!

Page  6  The packing obfuscation is the process of compressing and/or encrypting a program and adding a runtime decryption routine to it, such that the behavior of the original program is preserved. Tools that perform packing are called packers.  Packing is applied on legitimate software to reduce the size of executable files and to protect the intellectual property that is distributed with the code.  Malware authors use packing to by-pass detection and thwart analysis –Packing hides the original malicious code –Packing hinders code analysis –Obfuscation hinders automation –Automation is key to rapid analysis Packing Obfuscation

Page  7 A Packed Malware Binary Address Space.loop lea eax, 0x4a0000 lea ebx, 0x load ecx, ptr [r1] xor ecx, 0xffffff store ptr[ecx], r2... jnz.x call ptr[edi].x add eax, 4 add ebx, 4 cmp eax, 0x4a1f88 jnz.loop jmp 0x Address Space Entry Point 7a 77 0e 20 e9 3d e0 09 e8 68 c0 45 be 79 5e c0 73 1c a d8 6a d0 56 4b fe af 40 0c b6 f f5 07 b c 85 a5 94 2b 20 fd 5b 95 e7 c a d9 83 a1 37 1b 2f b c 22 8e Unpacking Loop JUMP Original BinaryPacked Binary Payload program is mostly unchanged Anti-Debugger Code Timing checks of various granularities Control flow obfuscation Code created in unpacking phase Control transfer to unpacked code Unpacking loop Packed code initially compressed or encrypted A binary is packed if some portion of its code is not present until runtime

Page  8 Anti-virus Tool Evasion 8 of 19 Unpack loop 7a 77 0e 20 e9 3d e0 09 e8 68 c0 45 be 79 5e c0 Unpack loop 7a 77 0e 20 e9 3d e0 09 e8 68 c0 45 be 79 5e c0 Signature Anti-Virus Tool Anti-virus tools recognize and unpack payloads of common packer tools Existing packers are modified to evade anti- virus tools at the rate of per month [1] 80% of malware in the world is packed [2][3] Unpack loop 7a 77 0e 20 e9 3d e0 09 e8 68 c0 45 be 79 5e c0 Unpack loop 7a 77 0e 20 e9 3d e0 09 e8 68 c0 45 be 79 5e c0 Signature [1] Virus Bulletin p , A. Stepan, 2006 [2] Press Release, McAfee Avert Labs, Nov [3] Malware Formation Stats, Panda Research, 2007 Unpack loop 7a 77 0e 20 e9 3d e0 09 e8 68 c0 45 be 79 5e c0 Signature Unpack loop 7a 77 0e 20 e9 3d e0 09 e8 68 c0 45 be 79 5e c0 Signature Common Attacker Tactic: Take a known malware binary and pack it with 10 layers of potentially different or proprietary packers. Symantec knows about 1145 families of packers, each of which can have multiple versions and they claim they can recognize/unpack about 100 of them. Malware signature size keeps growing with no end in sight.

Page  9 Relevant Literature  “Renovo: A Hidden Code Extractor for Packed Executables”, presented at 5th ACM Workshop on Recurring Malcode (WORM 2007)  “Generic Unpacking How to handle modified or unknown PE Compression Engines” presented at Virus. Bulletin Conference  “OmniUnpack: Fast, Generic, and Safe Unpacking of Malware”, presented at 23rd ACSAC (Annual Computer Security Applications Conference) in Miami Beach FL USA (2007)  “PolyUnpack: Automating the Hidden-Code Extraction of Unpack- Executing Malware”, presented at 22nd ACSAC (2006)

Page  10 Justification for project  The problem to generically unpack malware executables has been solved commercially but the competitive nature of the anti-virus software industry refrains them from publishing a solution.  Lack of a publicly available generic unpackers that can handle obfuscated binaries without knowing the exact packer used to pack it.  The growing epidemic of malware and the need to have more freely available tools to help in analyzing malware.

Page  11 Objectives  Design and implementation of a technique to detect obfuscated windows executables and to dump their code without running the executable. –Objective measurable by testing the implemented technique on sample packed exes and comparing results with published statistics of existing unpackers.  Design and develop a user-friendly interface to analyze the recovered executable code, the whole of the code might not be recovered and the recovered code might not necessarily be executable. –Objective measurable by feedback of toolkit from beta testers.  Contribute to research in the domain of code obfuscation and malware analysis. –Objective measurable by publication of research.

Page  12 Scope of Project – Inclusions & Exclusions  We will not be developing an entire disassembler or a debugger but only a technique that can either attach itself to an already memory mapped process to uncover any hidden code or to load a process in memory and bypass any obfuscations to get to the hidden code once it is unpacked in memory.  The scope of the project only and only covers extracting the hidden code, any further analysis of the malware is future work left to security analysts.  This program can not in any way be deemed an equivalent of a debugger which has many complex functionalities, we need to perform only a small sub-task that debuggers performs i.e. to load executables and extract any hidden code, we won’t provide an environment to run or single step into the executable, just make the hidden code section available for analysis.  We intend to get the help of simple debugging tools and already published research in the field of obfuscated binaries and take a lead from already done work.

Page  13 A: Studying PE (Portable Executable file format) F: Algorithm design B: Implementing PE identifier (i.e. portable executable analyzer) G: implement modules C: Research already implemented generic Unpacking Techniques H: Test modules D: Manually unpack executables obfuscated with different packers I: Integrate modules E: Identify general trends in unpacking J: User manual Project Schedule – Gantt Chat

Page  14  Software Analysis toolkit: SADE  Documentation –Project Scope Statement –Requirements Model, Analysis Model and Design Model –WBS, project schedule, software development plan, software Implementation plan, software test plan –Software Implementation description –Final Project Report –User Manual Deliverables

Page  15 THANK YOU! Any questions