Argos Emulator Georgios Portokalidis Asia Slowinska Herbert Bos Vrije Universiteit Amsterdam.

Slides:



Advertisements
Similar presentations
Smashing the Stack for Fun and Profit
Advertisements

David Brumley Carnegie Mellon University Credit: Some slides from Ed Schwartz.
Introduction to Information Security ROP – Recitation 5 nirkrako at post.tau.ac.il itamarg at post.tau.ac.il.
Dec 5, 2007University of Virginia1 Efficient Dynamic Tainting using Multiple Cores Yan Huang University of Virginia Dec
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
Countermeasures 0x610~0x Seokmyung Hong.
CMSC 414 Computer and Network Security Lecture 22 Jonathan Katz.
Buffer Overflow Prevention ”\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e \x89\xe3\x50\x53\x50\x54\x53\xb0\x3b\x50\xcd\x80” Presented to CRAB April.
Framing Signals— A Return to Portable Shellcode
1 CHAPTER 8 BUFFER OVERFLOW. 2 Introduction One of the more advanced attack techniques is the buffer overflow attack Buffer Overflows occurs when software.
Instruction-Set Randomization “Countering Code-Injection Attacks With Instruction-Set Randomization” G. Kc, A. Keromytis, and V. Prevelakis CCS October.
TaintCheck and LockSet LBA Reading Group Presentation by Shimin Chen.
Buffer Overflow. Process Memory Organization.
LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan.
On Deriving Unknown Vulnerabilities from Zero-Day Polymorphic Worm Exploits.
Vigilante: End-to-End Containment of Internet Worms M. Costa et al. (MSR) SOSP 2005 Shimin Chen LBA Reading Group.
Andrea Bittau, Adam Belay, Ali Mashtizadeh, David Maziéres, Dan Boneh
1 RISE: Randomization Techniques for Software Security Dawn Song CMU Joint work with Monica Chew (UC Berkeley)
Vulnerability-Specific Execution Filtering (VSEF) for Exploit Prevention on Commodity Software Authors: James Newsome, James Newsome, David Brumley, David.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
Security Exploiting Overflows. Introduction r See the following link for more info: operating-systems-and-applications-in-
Web Application Access to Databases. Logistics Test 2: May 1 st (24 hours) Extra office hours: Friday 2:30 – 4:00 pm Tuesday May 5 th – you can review.
Survey “Intrusion Detection: Systems and Models” “A Stateful Intrusion Detection System for World-Wide Web Servers”
Lecture 6: Buffer Overflow CS 436/636/736 Spring 2014 Nitesh Saxena *Adopted from a previous lecture by Aleph One (Smashing the Stack for Fun and Profit)
Honeypot and Intrusion Detection System
BLENDED ATTACKS EXPLOITS, VULNERABILITIES AND BUFFER-OVERFLOW TECHNIQUES IN COMPUTER VIRUSES By: Eric Chien and Peter Szor Presented by: Jesus Morales.
KGuard: Lightweight Kernel Protection against Return-to-User Attacks Authors: Vasileios P. Kemerlis Georgios Portokalidis Angelos D. Keromytis Presenter:
Automatic Diagnosis and Response to Memory Corruption Vulnerabilities Authors: Jun Xu, Peng Ning, Chongkyung Kil, Yan Zhai, Chris Bookholt In ACM CCS’05.
Software attacks Lorenzo Dematté Software attacks Advanced buffer overflow: heap smashing.
Introduction: Exploiting Linux. Basic Concepts Vulnerability A flaw in a system that allows an attacker to do something the designer did not intend,
Mitigation of Buffer Overflow Attacks
CIS 450 – Network Security Chapter 7 – Buffer Overflow Attacks.
Saturday, May 17, 2008 Generating signatures for zero-day network attacks Pascal Gamper Daniela Brauckhoff Bernhard Tellenbach.
Vigilante: End-to-End Containment of Internet Worms Authors : M. Costa, J. Crowcroft, M. Castro, A. Rowstron, L. Zhou, L. Zhang, and P. Barham In Proceedings.
Presented by Spiros Antonatos Distributed Computing Systems Lab Institute of Computer Science FORTH.
Automatic Diagnosis and Response to Memory Corruption Vulnerabilities Presenter: Jianyong Dai Jun Xu, Peng Ning, Chongkyung Kil, Yan Zhai, Chris Bookhot.
CNIT 127: Exploit Development Ch 3: Shellcode. Topics Protection rings Syscalls Shellcode nasm Assembler ld GNU Linker objdump to see contents of object.
Exploitation possibilities of memory related vulnerabilities
Exploit Defenses: ASLR, W X, TaintCheck Brad Karp UCL Computer Science CS GZ03 / th December, 2007.
Overflows & Exploits. In the beginning 11/02/1988 Robert Morris, Jr., a graduate student in Computer Science at Cornell, wrote an experimental, self-replicating,
Lecture 8: Buffer Overflow CS 436/636/736 Spring 2013 Nitesh Saxena *Adopted from a previous lecture by Aleph One (Smashing the Stack for Fun and Profit)
Buffer Overflow Attack Proofing of Code Binary Gopal Gupta, Parag Doshi, R. Reghuramalingam, Doug Harris The University of Texas at Dallas.
Lecture 9: Buffer Ovefflows and ROP EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering Spring 2014,
CNIT 127: Exploit Development Ch 1: Before you begin.
An Integrated Framework for Dependable and Revivable Architecture Using Multicore Processors Weidong ShiMotorola Labs Hsien-Hsin “Sean” LeeGeorgia Tech.
Shellcode Development -Femi Oloyede -Pallavi Murudkar.
Introduction to Information Security ROP – Recitation 5.
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
Buffer Overflows Taught by Scott Coté.-. _ _.-. / \.-. ((___)).-. / \ /.ooM \ / \.-. [ x x ].-. / \ /.ooM \ -/ \ /-----\-----/---\--\ /--/---\-----/-----\ / \-
Information Security - 2. A Stack Frame. Pushed to stack on function CALL The return address is copied to the CPU Instruction Pointer when the function.
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures.
Vigilante: End-to-End Containment of Internet Worms Manuel Costa, Jon Crowcroft, Miguel Castro, Antony Rowstron, Lidong Zhou, Lintao Zhang and Paul Barham.
Exploiting & Defense Day 1 Recap
Introduction to Information Security
Mitigation against Buffer Overflow Attacks
Return Oriented Programming
Introduction to Information Security
Protecting Memory What is there to protect in memory?
Introduction to Information Security
Exploiting & Defense Day 2 Recap
CSC 495/583 Topics of Software Security Return-oriented programming
Summary by - Bo Zhang and Shuang Guo [Date: 03/31/2014]
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures
Honeypots Learning how attackers operate
Lecture 9: Buffer Overflow*
Lecture Topics: 11/1 General Operating System Concepts Processes
Week 2: Buffer Overflow Part 1.
Week 5 Computers are like Old Testament gods; lots of rules and no mercy. Joseph Campbell.
Computer Architecture and System Programming Laboratory
Return-to-libc Attacks
Presentation transcript:

Argos Emulator Georgios Portokalidis Asia Slowinska Herbert Bos Vrije Universiteit Amsterdam

Georgios Portokalidis VU Amsterdam2 CERT/CC Reported Vulnerabilities Why? Too many vulnerabilities New worm attacks Human intervention too slow Current solutions are problematic –Time consuming –Inaccurate

Georgios Portokalidis VU Amsterdam3 Goals Platform for next generation honeypots Protect entire OS Detect most common attack vectors Accuracy

Georgios Portokalidis VU Amsterdam4 It Works! Apache chunked encoding overflow IIS ISAPI.printer host header overflow WebDav ntdll.dll overflow FrontPage Server Extensions Debug Overflow War-FTP overflow ASN.1 Library Bitstring Heap Overflow Windows Message Queueing Remote Overflow RPC DCOM Interface overflow LSASS Overflow Windows PnP Service Remote Overflow nbSMTP remote format string exploit WMF exploit

Georgios Portokalidis VU Amsterdam5 Argos Overview Argos Emulator Guest OS Host OS Applications Log Forensics Snitch Signature Post-Processing Sub-system

Georgios Portokalidis VU Amsterdam6 Network Data Tracking Register = network_readRegisters Reg. A = Reg. A + Reg. B Registers Memory Memory(A) = Reg. A Reg.B = Reg.A / Registers

Georgios Portokalidis VU Amsterdam7 Capturing Attacks Diverting control flow Executing arbitrary instructions Overwriting system call arguments JMP CALL RET Tagged Register Operands Tagged Memory SYSCALL

Georgios Portokalidis VU Amsterdam8 Forensics Registers RAM Argos Emulator Guest OS Applications Virtual Address Space Virtual Address Space Process name Linked Libraries Open Ports

Georgios Portokalidis VU Amsterdam9 Logged Network Flows Signature Generation Argos Memory LogCritical Exploit Bytes (e.g. value loaded on EIP) New Signature Similar Signatures Generalised Signature

Georgios Portokalidis VU Amsterdam10 Emulator Performance Overhead (y times slower)

Georgios Portokalidis VU Amsterdam11 Signature Generation Performance Tcpdump trace size(MB) Time to generate signature(sec)

Georgios Portokalidis VU Amsterdam12 Future Work Replaying attacks Integration with nepenthes honeypot Increase data tracking precision Protocol aware signature generation Generate self certifying alerts

Georgios Portokalidis VU Amsterdam13 On The Web

Georgios Portokalidis VU Amsterdam14 Network Data Tracking Tag network data as “tainted” EAXEBXECXEDX RAM Port I/O EBX

Georgios Portokalidis VU Amsterdam15 EBX Network Data Tracking Tag network data as “tainted” Track “tainted” data propagation –Arithmetic, logical operations –Memory operations EAXECXEDX RAM EAX A

Georgios Portokalidis VU Amsterdam16 EAXEBX Network Data Tracking Tag network data as “tainted” Track “tainted” data propagation –Arithmetic, logical operations –Memory operations Sanitise data –Floating point, SSE ECXEDX RAM A EAXEBX

Georgios Portokalidis VU Amsterdam17 Identifying Attacks Jumps Function calls Function returns System calls EAXEBXECXEDX RAM EBX JMP EAX CALL EAX RET JMP A INT 0x80

Georgios Portokalidis VU Amsterdam18 SweetBait Design

Georgios Portokalidis VU Amsterdam19 Logs Format TypeRIDFormatTimestamp Register values Register tags EIP value EIP origin EFLAGS FormatTainted FlagV. AddressP. AddressSize Memory Block Contents

Georgios Portokalidis VU Amsterdam20 Forensics Shellcode Injection Lookup process’s read-only pages Inject code at last text segment page Point EIP to shellcode.text Process Address Space (Windows PE, ELF, etc)

Georgios Portokalidis VU Amsterdam21 Forensics – The Snitch Pid = getpid() Rid [injected by Argos] Connect(localhost) Send(pid & rid) Listen() Accept() Read(pid & rid) Exec(Netstat or OpenPorts) Connect(argos host) Send(info)