Reverse engineering through full system simulations

Slides:



Advertisements
Similar presentations
COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Advertisements

RIVERSIDE RESEARCH INSTITUTE Helikaon Linux Debugger: A Stealthy Custom Debugger For Linux Jason Raber, Team Lead - Reverse Engineer.
ITE PC v4.0 Chapter 1 1 Operating Systems Computer Networks– 2.
Phones OFF Please Operating System Introduction Parminder Singh Kang Home:
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Installing software on personal computer
Week 6 Operating Systems.
ICMetrics Experimental Platform Jenya Kovalchuk University of Essex 27 January 2012 Ecole Centrale of Lille 1 Part-financed by the European Regional Development.
Operating Systems Operating System
Fundamentals of Networking Discovery 1, Chapter 2 Operating Systems.
1 The SpaceWire Internet Tunnel and the Advantages It Provides For Spacecraft Integration Stuart Mills, Steve Parkes Space Technology Centre University.
Hands-On Microsoft Windows Server 2008
All Your Droid Are Belong To Us: A Survey of Current Android Attacks 단국대학교 컴퓨터 보안 및 OS 연구실 김낙영
systemhound © Raxco Software Belgium systemhound PC inventory software.
Laface Operating System Design Booting a PC to run a kernel from Low memory VGA display.
Introduction: Exploiting Linux. Basic Concepts Vulnerability A flaw in a system that allows an attacker to do something the designer did not intend,
(1) A Beginner’s Quick Start to SIMICS. (2) Disclaimer This is a quick start document to help users get set up quickly Does not replace the user guide.
Guide to Linux Installation and Administration, 2e1 Chapter 10 Managing System Resources.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Lab 10 Department of Computer Science and Information Engineering National Taiwan University Lab10 – Debugging II 2014/12/2 1 /16.
Shellcode Development -Femi Oloyede -Pallavi Murudkar.
Full and Para Virtualization
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Linux Kernel Programming (LKP). LKP New sub-course New sub-course We will learn together We will learn together Evaluation of this part of course will.
Unit 1: Computing Fundamentals. Computer Tour-There are 7 major components inside a computer  Write down each major component as it is discussed.  Watch.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
2: Operating Systems Networking for Home & Small Business.
Embedded Real-Time Systems Introduction to embedded software development Lecturer Department University.
CT101: Computing Systems Introduction to Operating Systems.
 1- Definition  2- Helpdesk  3- Asset management  4- Analytics  5- Tools.
Introduction to Operating Systems Concepts
Computers: Tools for an Information Age
Homework Reading Machine Projects Labs
Operating System & Application Software
SLC/VER1.0/OS CONCEPTS/OCT'99
Introduction to Operating Systems
ARM Intro.
Chapter Objectives In this chapter, you will learn:
Current Generation Hypervisor Type 1 Type 2.
Operating System.
Chapter 5: Using System Software
Lesson Objectives Aims Key Words
Linux Operating System Architecture
Process Management Presented By Aditya Gupta Assistant Professor
Process Realization In OS
Virtualization overview
Processes in Unix, Linux, and Windows
KERNEL ARCHITECTURE.
CSI 400/500 Operating Systems Spring 2009
CIT 480: Securing Computer Systems
Chapter 2 Objectives Identify Windows 7 Hardware Requirements.
OS Virtualization.
Networking for Home and Small Businesses – Chapter 2
Introduction to Operating Systems
Booting Up 15-Nov-18 boot.ppt.
Starting the computer. Every day we are using an operating system and most specifically a Windows operating system but most of us are not aware of the.
HC Hyper-V Module GUI Portal VPS Templates Web Console
Intro. To Operating Systems
Chapter 2: The Linux System Part 1
Lecture Topics: 11/1 General Operating System Concepts Processes
Networking for Home and Small Businesses – Chapter 2
Modern PC operating systems
Operating Systems Networking for Home and Small Businesses – Chapter 2 – Introduction To Networking.
Processes in Unix, Linux, and Windows
Chapter 2: Operating-System Structures
Implementing Processes, Threads, and Resources
Processes in Unix and Windows
OS Boot Sequence and File System
COMP755 Advanced Operating Systems
OS Boot Sequence and File System
Presentation transcript:

Reverse engineering through full system simulations

What runs on these computers?

? Simplifying assumptions: Linux on 32 bit x86 x86 platform Applications ? DISK Bootable disk image Linux Kernel x86 platform

Without installing software or getting a shell: What Runs on These Computers? Without installing software or getting a shell: Identify running processes as created and destroyed What files are accessed? Communications between the processes & computers Interact with selected processes using a debugger What if you could see all memory & registers? Access to memory/registers from some other system Ability to pause all the computers & peripherals via breakpoints Instrument memory such that access generates callbacks

If you could view RAM, what would you see? 0x1 Applications 0x2 0x3 ... DISK Bootable disk image ... Linux Kernel x86 platform 0xffffffff

RAM 0x1 0x2 0x3 ... ... 0xc0000000 Kernel code & data structures 0xffffffff

Linux kernel internals Task records current_task PID COMM

Other interesting memory locations Entry points of system calls, e.g., “open” New programs loaded with “execve” Libraries linked via open & mmap Exits from kernel back to user space Page tables Application code – disassemble / decompile

Replace hardware with a software simulation Cannot externally view memory on real systems Replace hardware with a software simulation Simulate processors, memory, peripherals Take disk image from real system & boot it! Simulated processor executes code from bios Starts executing boot block from disk image Loads OS… software is now running on simulated HW This is Simics, an expensive product from Intel Supports “reverse execution” E.g., “Run backwards and break on previous write to address”

Processor & Device models DISK Linux Kernel Applications ? Simulated x86 platform Processor & Device models

Processor & Device models The simulator lets you view RAM & registers RAM 0x1 Applications 0x2 0x3 ... DISK Bootable disk image ... Linux Kernel Simulated x86 platform Processor & Device models 0xffffffff

RESim builds on Simics to dynamically analyze systems Derived from tool built for DARPA’s Cyber Grand Challenge High fidelity models of processors and peripherals NPS developed as software vetting and analysis platform for CGC exploits System execution traces Which programs execute as part of which processes? What other processes and computers do they interact with? Lists of IP addresses connected to & listened to Interactive disassembler / debugger integrated with simulation Attach and drive programs as they exist in their native environment “Reverse execution” functions, e.g., run backwards until memory write IDA Pro disassembler debugger with custom plugins 12

Reverse engineering parts of a system Engineering enclave for Maritime Systems (at ECE) What programs run? Network traffic consumed? Inter-process communication? Sensors Radar Sensors Sensors Fixed Recording Unit Voyage Data Recorder Floating Recording Unit Linux 13

Breakpoints & callbacks Full system simulation Process inventory Simics models of Processors and devices System call trace Simulated memory Processor state Disk image RESim Breakpoints & callbacks Interactive analysis 14

Why dynamic analyses of the system? You obtained an exploit proof-of-concept against a target What is the vulnerability? The people / process that created the POC may not know Exploiting a flaw does not imply an understanding of the flaw RESim used to analyze all successful CGC exploits Of 20 exploited services, half the exploits were not as intended Authors of exploited services had poor grasp of their own flaws Competitors that proved vulnerabilities did not patch them (generics) 15

Current Status Current support for 32-bix Linux on x86 (64-bit) Add 64-bit Linux support (build on CGC experience) Introduce ARM, PowerPC, etc. &load with images from the testbed Integrate software vulnerability analysis features Data tracking (forward and backward) Fuzzing of selected programs Direct injection of data when network receive detected Make the RESim platform available as a network service NPS has large blade servers licensed for this Simics product Remote access by analysts having local copies of IDA Pro 16

Questions?