How to Grow a TREE from CBASS Interactive Binary Analysis for Security Professionals
|
|
|
- Lenard Rodgers
- 9 years ago
- Views:
Transcription
1 How to Grow a TREE from CBASS Interactive Binary Analysis for Security Professionals Lixin (Nathan) Li, Xing Li, Loc Nguyen, James E. Just
2 Outline Background Interactive Binary Analysis with TREE and CBASS Demonstrations Conclusions
3 Interactive Binary Analysis Automated binary analyses useful for certain tasks (e.g., finding crashes) Many binary analyses can t be automated Expert experience and heuristics are still key to binary analyses
4 Benefits of Interactive Binary Analysis Applicable to many security problems Our tools increase productivity in: Finding vulnerabilities Analyzing root causes Exploitability and risk assessment
5 Interactive Analysis Like Connecting Dots What s in the dots?
6 Our Tools are Designed to Help Fix the Dots Connect the Dots Explore New Dots
7 What Do Our Tools Do? Fix the Dots Connect the Dots TREE Replay & Taint Analysis Tainted-enabled Reverse Engineering Environment Explore New Dots CBASS Symbolic Execution Cross-platform Binary Automated Symbolic execution System
8 Gaps between Research and Interactive Binary Analysis Existing research does not support interactive binary analysis No practical tools No uniform trace collection tools No unified Instruction Set Architecture(ISA) -independent analysis tools
9 Bringing Proven Research Techniques to Interactive Binary Analysis Our tools use dynamic, trace-based, offline analysis approach Interactive binary analysis [1] Dynamic taint analysis ([2][3][4]) Symbolic execution/ SMT solver ([2][5]) Trace replay ([6])
10 Simple Static Analyses Cyclomatic complexity Loop Detection IR Translation Making It Practical TREE integrates with IDA Pro now and other mainstream binary analysis environments (later) TREE leverages debugging infrastructure to support tracing on multiple platforms CBASS and TREE are separate components and work in a client/server architecture CBASS uses Intermediate Representation CBASS and TREE share native to IR mapping through IR Store (REIL [6][7])-based approach to support ISA-independent analysis
11 CBASS Supports Both Automated & Interactive Analysis TREE Interactive Analysis Automated Fuzzer Automated Analysis CBASS IR-based Symbolic Execution Engine TREE fills gaps for interactive analysis
12 Tools Support Interactive Binary Analyses Fix the Dots Connect the Dots TREE Replay Don t chase a moving target Taint Analysis Focus only on data and code that are relevant Explore New Dots CBASS Symbolic Execution Explore the unexplored path and code
13 Illustrative Dots in Vulnerability Analysis: A Running Example //INPUT ReadFile(hFile, sbigbuf, 16, &dwbytesread, NULL); //INPUT TRANSFORMATIONS //PATH CONDITIONS if(sbigbuf[0]=='b') icount++; if(sbigbuf[1]=='a') icount++; if(sbigbuf[2]=='d') icount++; if(sbigbuf[3]=='!') icount++; if(icount==4) // bad! StackOVflow(sBigBuf,dwBytesRead) else // Good printf( Good! ); //Vulnerable Function void StackOVflow(char *sbig,int num) { char sbuf[8]= {0}; for(int i=0;i<num;i++) //Overflow when num>8 { sbuf[i] = sbig[i]; } return; }
14 Our Tools Support Fixing the Dots (TREE)
15 Fix the Dots Reverse engineers don t like moving dots Why do the dots move? Concurrency (multi-thread/multi-core) brings non-deterministic behavior ASLR guarantees nothing will be the same
16 Fix the Dots How does TREE work? Generates the trace at runtime Replays it offline TREE trace Captures program state = {Instruction, Thread, Register, Memory} Fully automated generation TREE can collect traces from multiple platforms Windows/Linux/Mac OS User/Kernel and real devices (Android/ARM, Cisco routers/mips, PowePC)
17 TREE Taint-based Replay vs. Debug-based Replay Debug-replay lets you connect the dots Single step, stop at function boundary, Breakpoint TREE replay connects dots for you Deterministic replay with taint-point break
18 Our Tools Support Connecting the Dots (TREE)
19 Connecting Dots is Hard Basic elements complex in real programs Code size can be thousands (++) of lines Inputs can come from many places Transformations can be lengthy Paths grow exponentially Basic elements likely separated by millions of instructions, spatially and temporally Multiple protections built in
20 Techniques Help Connect the Dots Dynamic Taint Analysis Basic Definitions o Taint source o Taint Sink: o Taint Policy: Taint-based Dynamic Slicing Taint focused on data Slicing focused on relevant instructions and sequences
21 Connect the Dots TREE connects dots -- using taint analysis Taint Source:
22 Connect the Dots TREE connects dots -- using taint analysis Taint Source: Taint Sink:
23 Connect the Dots TREE connects dots -- using taint analysis Taint Source: Taint policy Taint Sink:
24 Connect the Dots TREE connects dots -- using taint analysis Taint Source: Taint policy Taint Sink: - Dynamic Slicing
25 Find the Dots and Slice that Matter In practice, most dots don t matter eliminate them quickly to focus on what matters
26 Connecting Dots in Running Example Taint Source: (Input) Taint policy (Data) Taint Sink: eip The Slice call ds:readfile movb (%eax), %dl movb %dl, -0x8(%ebp,%ecx,1) retl The Taint Graph
27 What You Connect is What You Get Dots can be connected in different ways Data dependency Address dependency Branch conditions Loop counter Connect dots in different taint policies
28 TAINT-ENABLED REVERSE ENGINEERING ENVIRONMENT
29 TREE Key Components TREE Replay IDA Plug-in Execution Trace Taint Analyzer & Slicing Taint Graph Taint Visualizer & Slice Navigator (IDA Native/Qt) Execution Tracer (Cross-platform Debugging)
30 Taint Graph TREE: The Front-end of Our Interactive Analysis System
31 Taint Table TREE: The Front-end of Our Interactive Analysis System
32 TREE: The Front-end of Our Interactive Analysis System Execution Trace Table
33 TREE: The Front-end of Our Interactive Analysis System Register/stack/ memory Views
34 TREE: The Front-end of Our Interactive Analysis System Replay is focal point of user interaction
35 Tree Demo Using TREE to Analyze a Crash
36 Our Tools Support Exploring New Dots
37 A Key Branch Point for a Duck Connects 16 ->17
38 The Path for a Reverse engineers don t just connect dots; they want to explore new dots: Connects 16 ->26
39 Explore New Dots How do you force the program to take a different path to lead to bad!? //INPUT ReadFile(hFile, sbigbuf, 16, &dwbytesread, NULL); //PATH CONDITION if(sbigbuf[0]=='b') icount++; if(sbigbuf[1]=='a') icount++; if(sbigbuf[2]=='d') icount++; if(sbigbuf[3]=='!') icount++; if(icount==4) // bad! path StackOVflow(sBigBuf,dwBytesRead)? Else // Good path printf( Good! );
40 Explore New Dots User wants execution to take different path at a branch point Y what input will make that happen? User: How to execute different path at branch Y? TREE: Input [0] must be b TREE TREE: Can we negate path condition at Y? CBASS: This byte must be b CBASS (symbolic execution)
41 Explore New Dots Demo IDA Plugin (Front End) 1 TREE Replay Execution Tracer (Cross-platform Debugging) Execution 3 Trace 8 Taint Analyzer & Slicing 4 Taint Graph 5 Taint Visualizer & Slice Navigator (IDA Native Qt) 2 New input Path constraints On-demand Symbolic Execution & Constraint Generation 6 7 SMT Solver Satisfiable input Path Selection CBASS (BACK End)
42 Task 1: Force the Program to Take bad! Path //INPUT ReadFile(hFile, sbigbuf, 16, &dwbytesread, NULL); //INPUT TRANSFORMATION //PATH CONDITION if(sbigbuf[0]=='b') icount++; if(sbigbuf[1]=='a') icount++; if(sbigbuf[2]=='d') icount++; if(sbigbuf[3]=='!') icount++; if(icount==4) // bad! path //Vulnerable Function StackOVflow(sBigBuf,dwBytesRead) else printf( Good! ); Branch Conditions In Disassembly
43 1 TREE Pin Trace PIN: A popular Dynamic Binary Instrumentation (DBI) Framework
44 2 TREE Console: Trace Generation PINAgent: Connects TREE with PIN tracer
45 3 TREE: Taint Analysis Configuration
46 4 TREE: Branch Taint Graph
47 5 Negate Tainted Path Condition to Exercise a New ( Bad ) Path Bad! Path Query CBASS (Cross-platform Symbolic Execution) Result b a d
48 On-demand Symbolic Execution (What Happens Behind the Scene) (set-logic QF_AUFBV) (declare-fun _IN_0x12ff6c_0x0_SEQ0 () (_ BitVec 8)) (declare-fun EXPR_0 () (_ BitVec 32)) (assert (= EXPR_0 (bvsub ((_ sign_extend 24) (bvxor _IN_0x12ff6c_0x0_SEQ0 (_ bv128 8))) (_ bv )))) (assert (= (ite (not (= (ite (not (= (bvand ((_ extract 63 0) (bvsub ((_ sign_extend 32) (bvand ((_ extract 31 0) EXPR_0) (_ bv ))) (_ bv98 64))) (_ bv )) (_ bv0 64))) ( _ bv1 32) ( _ bv0 32)) (_ bv0 32))) ( _ bv1 8) ( _ bv0 8)) (_ bv0 8))) (check-sat) (get-value (_IN_0x12ff6c_0x0_SEQ0)) 6 7 Satisfiable Input (0x62, b )
49 8 TREE: Re-execute with Satisfiable Input 7 Satisfiable Input 8
50 Task 2: Own the Execution Assume Payload at 0x401150
51 TREE Constraint Dialogue
52 Task 2: Own the Execution: From Crash to Exploit Symbolize Input and perform concrete-symbolic execution Sat: (_IN_0x12ff6c_0xd_SEQ0 #x11 _IN_0x12ff6c_0xc_SEQ0 #x50 _IN_0x12ff6c_0xe_SEQ0 #x40 _IN_0x12ff6c_0xf_SEQ0 #x00 Symbolic eip = (= expr_0 (concat (bvand (bvor _IN_0x12ff6c_0xd_SEQ0 (_ bv0 8)) (_ bv255 8)) (bvand (bvor _IN_0x12ff6c_0xc_SEQ0 (_ bv0 8)) (_ bv255 8)))) Query: get-value (_IN_0x12ff6c_0xd_SEQ0 _IN_0x12ff6c_0xc_SEQ0 _IN_0x12ff6c_0xe_SEQ0 _IN_0x12ff6c_0xf_SEQ0) SMT Solver
53 TREE/CBASS Demo Using CBASS/TREE to Explore Bad Paths and Refine Exploits
54 Real World Case Studies Target Vulnerability Vulnerability Name Target Application Mode Target OS CVE Windows WMF User Mode Windows CVE ANI Vulnerability User Mode Windows OSVDB-2939 CVE CVE Compression/ Decompression AudioCoder Vulnerability Win32k Kernel Null Pointer Dereference Sound exchange (SoX) WAV Multiple Buffer Overflow User Mode Kernel Mode User Mode Windows Windows Linux Zip on Android User Mode Real Device Trace Generation (In Progress)
55 Highlights from Real World Case Study: Windows WMF Vulnerability (CVE ) WMF SETABORTPROC Escape Vulnerability The Windows Graphical Device Interface library (GDI32.DLL) in Microsoft Windows allows remote attackers to execute arbitrary code via a Windows Metafile (WMF) format image with a crafted SETABORTPROC GDI Escape function call, related to the Windows Picture and Fax Viewer (SHIMGVW.DLL).
56 WMF Format [MS-WMF]: Windows Metafile Format A Simplified One: Overall WMF File Structure: Meta Header Meta Record 1 Meta Record 2 Meta Record 3 One type of record is escape record SETABORTPROC escape allow an application to register a hook function to handle spooler errors
57 WMF Crash The WMF SETABORTPROC Vulnerability rundll32.exe c:\windows\system32\shimgvw.dll,imageview_fullscreen C:\escape\escape.wmf Dynamic Facts: 229,679 instructions executed just to cause the crash
58 WMF Taint Graph Partial TREE Taint Graph Visualization (Taint Sources) Input Bytes 7th-10th (FileSize) Register taint node LOOP Counter Dependency (C) Memory taint node (Taint Sources) Initial Input Bytes 29th(0x1d)- 32th(0x20) (SHELLCODE) Data Dependency (Default) Security-Sensitive Locations (Taint Sinks) ALL Nodes are Clickable to Take User to IDA CFG
59 WMF File: The Fields & The Vulnerability Key Structures: typedef struct _WindowsMetaHeader { WORD FileType; /* Type of metafile (0=memory, 1=disk) */ WORD HeaderSize; /* Size of header in WORDS (always 9) */ WORD Version; /* Version of Microsoft Windows used */ DWORD FileSize; /* Total size of the metafile in WORDs */ WORD NumOfObjects; /* Number of objects in the file */ DWORD MaxRecordSize; /* The size of largest record in WORDs */ WORD NumOfParams; /* Not Used (always 0) */ } WMFHEAD; typedef struct _StandardMetaRecord { DWORD Size; /* Total size of the record in WORDs */ WORD Function; /* Function number (defined in WINDOWS.H) */ WORD Parameters[]; /* Parameter values passed to function */ } WMFRECORD; Shellcode Escape SetAbortProc
60 WMF Slicing (1) An Instruction Slice Traced Back from Crash Site to Input Each node uniquely trace back to one execution event through its sequence number 0x77f330a3 call eax 2 ffd0 0x0 0x3812f Reg( EAX=0xa8b94 ESP=0xb4fb88 EIP=0x77f330a3 ) W 4 b4fb88 0x77c472e3 rep movsd 2 f3a5 0x0 0xb142 Reg( EDI=0xa8804 eflags=0x10216 ESI=0xa9f8c ECX=0xa ) R 4 a9f8c cc_cc_cc_cc W 4 a8804 0x77f2e997 mov ecx, [ebp+arg_8] 3 8b4d10 0x0 0xc5c3 Reg( EBP=0xb4fbf8 ECX=0x7c809a20 ) R 4 b4fc08 44_0_0_0 0x77f2e983 mov [ebp+arg_8], eax x0 0xbd8c Reg( EAX=0x44 EBP=0xb4fbf8 ) W 4 b4fc08 0x77f2e97f add eax, eax 2 03c0 0x0 0xbd89 Reg( EAX=0x22 eflags=0x246 ) 0x77f2e949 mov eax, [edi+6] 3 8b4706 0x0 0xbd7d Reg( EAX=0xa8920 EDI=0xa87e8 ) R 4 a87ee 22_0_0_0 0x77c472e3 rep movsd 2 f3a5 0x0 0xb13c Reg( EDI=0xa87ec eflags=0x10216 ESI=0xa9f74 ECX=0x10 ) R 4 a9f74 0_3_22_0 W 4 a87ec
61 WMF Slicing (2) An Instruction Slice with Text Helps Put Instruction In Its Context Helps More Module: gdi32.dll Function: CommonEnumMetaFile text:77f330a3 call eax
62 WMF Slicing (3) An Instruction Slice with Text Helps a Little text:77f330a3 call eax More Context Helps More Module: gdi32.dll Function: CommonEnumMetaFile Call Graph: caller PlayMetaFile
63 WMF -- The Relevant Parts The WMF SETABORTPROC Vulnerability rundll32.exe c:\windows\system32\shimgvw.dll,imageview_fullscreen C:\escape\escape.wmf Dynamic Facts: Out of 229,679 instructions executed just to cause the crash ONLY 12 Unique Instructions Are Relevant to the CRASH
64 Conclusions Our tools support interactive binary analysis, with Replay, Dynamic Taint Analysis, and Symbolic Execution. TREE runs on top of IDA Pro and supports cross-platform trace collection, taint analysis and replay. CBASS (based on REIL) enables IR-based architecture-independent symbolic execution and can support both automated and interactive analysis. YOU drive the tools!
65 Where You Can Get TREE TREE is open source at: First version of TREE (Taint Analysis) is released Replay is in Progress CBASS is Following Contacts: Project Lead Developer Developer Program Manager
66 Acknowledgements Thanks to Ilfak Guilfanov and the IDA team for promptly fixing the bugs that we have reported to them and for their suggestions on the GUI integration. Thanks to Thomas Dullien and Tim Kornau of the Google Zynamics team for making their latest version of REIL available to us. Thanks to numerous reviewers at Battelle Memorial Institute for their feedback
67 References [1] L. Li and C. Wang., Dynamic analysis and debugging of binary code for security applications, (to appear) International Conference on Runtime Verification (RV'13). Rennes, France [2] Godefroid, P., Levin, M.Y., Molnar, D.A.: Automated whitebox fuzz testing. In: Network And Distributed System Security Symposium(2008) [3] Song, Dawn, et al. "BitBlaze: A new approach to computer security via binary analysis." Information systems security. Springer Berlin Heidelberg, [4] Clause, James, Wanchun Li, and Alessandro Orso. "Dytan: a generic dynamic taint analysis framework." Proceedings of the 2007 international symposium on Software testing and analysis. ACM, [5] Schwartz, Edward J., Thanassis Avgerinos, and David Brumley. "All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask)." In Security and Privacy (SP), 2010 IEEE Symposium on, pp IEEE, [6] Bhansali, Sanjay, et al. "Framework for instruction-level tracing and analysis of program executions." Proceedings of the 2nd international conference on Virtual execution environments. ACM, [7] Dullien, T., Porst, S.: REIL: A platform-independent intermediate representation of disassembled code for static code analysis. In:CanSecWest(2009) [8] REIL:URL: language.htm
Dongwoo Kim : Hyeon-jeong Lee s Husband
2/ 32 Who we are Dongwoo Kim : Hyeon-jeong Lee s Husband Ph.D. Candidate at Chungnam National University in South Korea Majoring in Computer Communications & Security Interested in mobile hacking, digital
Hotpatching and the Rise of Third-Party Patches
Hotpatching and the Rise of Third-Party Patches Alexander Sotirov [email protected] BlackHat USA 2006 Overview In the next one hour, we will cover: Third-party security patches _ recent developments
BARF: A multiplatform open source Binary Analysis and Reverse engineering Framework
BARF: A multiplatform open source Binary Analysis and Reverse engineering Framework Christian Heitman and Iván Arce Fundación Sadosky, {cnheitman,iarce}@fundacionsadosky.org.ar Abstract. The analysis of
Introduction. Figure 1 Schema of DarunGrim2
Reversing Microsoft patches to reveal vulnerable code Harsimran Walia Computer Security Enthusiast 2011 Abstract The paper would try to reveal the vulnerable code for a particular disclosed vulnerability,
Efficient Program Exploration by Input Fuzzing
Efficient Program Exploration by Input Fuzzing towards a new approach in malcious code detection Guillaume Bonfante Jean-Yves Marion Ta Thanh Dinh Université de Lorraine CNRS - INRIA Nancy First Botnet
Reverse Engineering and Computer Security
Reverse Engineering and Computer Security Alexander Sotirov [email protected] Introduction Security researcher at Determina, working on our LiveShield product Responsible for vulnerability analysis and
Format string exploitation on windows Using Immunity Debugger / Python. By Abysssec Inc WwW.Abysssec.Com
Format string exploitation on windows Using Immunity Debugger / Python By Abysssec Inc WwW.Abysssec.Com For real beneficiary this post you should have few assembly knowledge and you should know about classic
esrever gnireenigne tfosorcim seiranib
esrever gnireenigne tfosorcim seiranib Alexander Sotirov [email protected] CanSecWest / core06 Reverse Engineering Microsoft Binaries Alexander Sotirov [email protected] CanSecWest / core06 Overview
Attacking Obfuscated Code with IDA Pro. Chris Eagle
Attacking Obfuscated Code with IDA Pro Chris Eagle Outline Introduction Operation Demos Summary 2 First Order Of Business MOVE UP AND IN! There is plenty of room up front I can't increase the font size
Full System Emulation:
Full System Emulation: Achieving Successful Automated Dynamic Analysis of Evasive Malware Christopher Kruegel Lastline, Inc. [email protected] 1 Introduction Automated malware analysis systems (or sandboxes)
Windows XP SP3 Registry Handling Buffer Overflow
Windows XP SP3 Registry Handling Buffer Overflow by Matthew j00ru Jurczyk and Gynvael Coldwind Hispasec 1. Basic Information Name Windows XP SP3 Registry Handling Buffer Overflow Class Design Error Impact
Dynamic Behavior Analysis Using Binary Instrumentation
Dynamic Behavior Analysis Using Binary Instrumentation Jonathan Salwan [email protected] St'Hack Bordeaux France March 27 2015 Keywords: program analysis, DBI, DBA, Pin, concrete execution, symbolic
Platform-independent static binary code analysis using a metaassembly
Platform-independent static binary code analysis using a metaassembly language Thomas Dullien, Sebastian Porst zynamics GmbH CanSecWest 2009 Overview The REIL Language Abstract Interpretation MonoREIL
Exploiting nginx chunked overflow bug, the undisclosed attack vector
Exploiting nginx chunked overflow bug, the undisclosed attack vector Long Le [email protected] About VNSECURITY.NET CLGT CTF team 2 VNSECURITY.NET In this talk Nginx brief introduction Nginx chunked
Custom Penetration Testing
Custom Penetration Testing Compromising a Vulnerability through Discovery and Custom Exploitation Stephen Sims Advanced Penetration Testing - 2009 SANS 1 Objectives Penetration Testing Precompiled Tools
An Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
Software Vulnerabilities
Software Vulnerabilities -- stack overflow Code based security Code based security discusses typical vulnerabilities made by programmers that can be exploited by miscreants Implementing safe software in
Bypassing Memory Protections: The Future of Exploitation
Bypassing Memory Protections: The Future of Exploitation Alexander Sotirov [email protected] About me Exploit development since 1999 Research into reliable exploitation techniques: Heap Feng Shui in JavaScript
How To Trace
CS510 Software Engineering Dynamic Program Analysis Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Scott A. Carr Slides inspired by Xiangyu Zhang http://nebelwelt.net/teaching/15-cs510-se
Static Taint-Analysis on Binary Executables
Static Taint-Analysis on Binary Executables Sanjay Rawat, Laurent Mounier, Marie-Laure Potet VERIMAG University of Grenoble October 2011 Static Taint-Analysis on Binary Executables 1/29 Outline 1 Introduction
Bypassing Browser Memory Protections in Windows Vista
Bypassing Browser Memory Protections in Windows Vista Mark Dowd & Alexander Sotirov [email protected] [email protected] Setting back browser security by 10 years Part I: Introduction Thesis Introduction
CVE-2012-1535 Adobe Flash Player Integer Overflow Vulnerability Analysis
Your texte here. CVE-2012-1535 Adobe Flash Player Integer Overflow Vulnerability Analysis October 11 th, 2012 Brian MARIANI & Frédéric BOURLA A FEW WORDS ABOUT FLASH PLAYER Your Adobe texte Flash here
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Wiggins/Redstone: An On-line Program Specializer
Wiggins/Redstone: An On-line Program Specializer Dean Deaver Rick Gorton Norm Rubin {dean.deaver,rick.gorton,norm.rubin}@compaq.com Hot Chips 11 Wiggins/Redstone 1 W/R is a Software System That: u Makes
Automating Mimicry Attacks Using Static Binary Analysis
Automating Mimicry Attacks Using Static Binary Analysis Christopher Kruegel and Engin Kirda Technical University Vienna [email protected], [email protected] Darren Mutz, William Robertson,
Bruh! Do you even diff? Diffing Microsoft Patches to Find Vulnerabilities
SESSION ID: HT-T10 Bruh! Do you even diff? Diffing Microsoft Patches to Find Vulnerabilities Stephen Sims Security Researcher SANS Institute @Steph3nSims Part I Binary Diffing Binary Diffing Security patches
Regression Verification: Status Report
Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software
Exploiting Trustzone on Android
1 Introduction Exploiting Trustzone on Android Di Shen(@returnsme) [email protected] This paper tells a real story about exploiting TrustZone step by step. I target an implementation of Trusted Execution
Bug hunting. Vulnerability finding methods in Windows 32 environments compared. FX of Phenoelit
Bug hunting Vulnerability finding methods in Windows 32 environments compared FX of Phenoelit The goal: 0day What we are looking for: Handles network side input Runs on a remote system Is complex enough
Application-Specific Attacks: Leveraging the ActionScript Virtual Machine
IBM Global Technology Services April 2008 Application-Specific Attacks: Leveraging the ActionScript Virtual Machine By Mark Dowd X-Force Researcher IBM Internet Security Systems ([email protected])
Compilers and Tools for Software Stack Optimisation
Compilers and Tools for Software Stack Optimisation EJCP 2014 2014/06/20 [email protected] Outline Compilers for a Set-Top-Box Compilers Potential Auto Tuning Tools Dynamic Program instrumentation
Sequential Performance Analysis with Callgrind and KCachegrind
Sequential Performance Analysis with Callgrind and KCachegrind 2 nd Parallel Tools Workshop, HLRS, Stuttgart, July 7/8, 2008 Josef Weidendorfer Lehrstuhl für Rechnertechnik und Rechnerorganisation Institut
Whitebox Fuzzing for Security Testing
Article development led by queue.acm.org SAGE has had a remarkable impact at Microsoft. SAGE: Whitebox Fuzzing for Security Testing doi:10.1145/2093548.2093564 by Patrice Godefroid, Michael Y. Levin, and
Ivan Medvedev Principal Security Development Lead Microsoft Corporation
Ivan Medvedev Principal Security Development Lead Microsoft Corporation Session Objectives and Takeaways Session Objective(s): Give an overview of the Security Development Lifecycle Discuss the externally
Fast Arithmetic Coding (FastAC) Implementations
Fast Arithmetic Coding (FastAC) Implementations Amir Said 1 Introduction This document describes our fast implementations of arithmetic coding, which achieve optimal compression and higher throughput by
Debugging with TotalView
Tim Cramer 17.03.2015 IT Center der RWTH Aachen University Why to use a Debugger? If your program goes haywire, you may... ( wand (... buy a magic... read the source code again and again and...... enrich
WLSI Windows Local Shellcode Injection. Cesar Cerrudo Argeniss (www.argeniss.com)
WLSI Windows Local Shellcode Injection Cesar Cerrudo Argeniss (www.argeniss.com) Overview _ Introduction _ Establishing a LPC connection _ Creating a shared section _ The technique _ Building an exploit
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation. Mathias Payer, ETH Zurich
I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation Mathias Payer, ETH Zurich Motivation Applications often vulnerable to security exploits Solution: restrict application
Visualizing Information Flow through C Programs
Visualizing Information Flow through C Programs Joe Hurd, Aaron Tomb and David Burke Galois, Inc. {joe,atomb,davidb}@galois.com Systems Software Verification Workshop 7 October 2010 Joe Hurd, Aaron Tomb
Sequential Performance Analysis with Callgrind and KCachegrind
Sequential Performance Analysis with Callgrind and KCachegrind 4 th Parallel Tools Workshop, HLRS, Stuttgart, September 7/8, 2010 Josef Weidendorfer Lehrstuhl für Rechnertechnik und Rechnerorganisation
Intrusion Detection via Static Analysis
Intrusion Detection via Static Analysis IEEE Symposium on Security & Privacy 01 David Wagner Drew Dean Presented by Yongjian Hu Outline Introduction Motivation Models Trivial model Callgraph model Abstract
Database Application Developer Tools Using Static Analysis and Dynamic Profiling
Database Application Developer Tools Using Static Analysis and Dynamic Profiling Surajit Chaudhuri, Vivek Narasayya, Manoj Syamala Microsoft Research {surajitc,viveknar,manojsy}@microsoft.com Abstract
Hacking Techniques & Intrusion Detection. Ali Al-Shemery arabnix [at] gmail
Hacking Techniques & Intrusion Detection Ali Al-Shemery arabnix [at] gmail All materials is licensed under a Creative Commons Share Alike license http://creativecommonsorg/licenses/by-sa/30/ # whoami Ali
The Advantages of Block-Based Protocol Analysis for Security Testing
The Advantages of Block-Based Protocol Analysis for Security Testing Dave Aitel Immunity,Inc. 111 E. 7 th St. Suite 64, NY NY 10009, USA [email protected] February, 4 2002 Abstract. This paper describes
Software Vulnerability Detection using Backward Trace Analysis and Symbolic Execution
Software Vulnerability Detection using Backward Trace Analysis and Symbolic Execution Hongzhe Li, Taebeom Kim, Munkhbayar Bat-Erdene and Heejo Lee Div. of Computer and Communication Engineering Korea University
Penetration Testing with Kali Linux
Penetration Testing with Kali Linux PWK Copyright 2014 Offensive Security Ltd. All rights reserved. Page 1 of 11 All rights reserved to Offensive Security, 2014 No part of this publication, in whole or
Analysis of FileVault 2: Apple's full disk encryption. Omar Choudary Felix Grobert Joachim Metz
Analysis of FileVault 2: Apple's full disk encryption Omar Choudary Felix Grobert Joachim Metz FileVault 2 Project Overview Goal reverse engineer and analyse Apple's full disk encryption (aka File Vault)
Microsoft Patch Analysis
Microsoft Patch Analysis Patch Tuesday - Exploit Wednesday Yaniv Miron aka Lament 1 / About Me Yaniv Miron aka Lament Security Researcher and Consultant Found security vulnerabilities in IBM, Oracle, Microsoft
The Beast is Resting in Your Memory On Return-Oriented Programming Attacks and Mitigation Techniques To appear at USENIX Security & BlackHat USA, 2014
Intelligent Things, Vehicles and Factories: Intel Workshop on Cyberphysical and Mobile Security 2014, Darmstadt, June 11 The Beast is Resting in Your Memory On Return-Oriented Programming Attacks and Mitigation
Real-time Debugging using GDB Tracepoints and other Eclipse features
Real-time Debugging using GDB Tracepoints and other Eclipse features GCC Summit 2010 2010-010-26 [email protected] Summary Introduction Advanced debugging features Non-stop multi-threaded debugging
Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.
Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit
Modern Binary Exploitation Course Syllabus
Modern Binary Exploitation Course Syllabus Course Information Course Title: Modern Binary Exploitation Course Number: CSCI 4968 Credit Hours: 4 Semester / Year: Spring 2015 Meeting Days: Tuesday/Friday
Software Fingerprinting for Automated Malicious Code Analysis
Software Fingerprinting for Automated Malicious Code Analysis Philippe Charland Mission Critical Cyber Security Section October 25, 2012 Terms of Release: This document is approved for release to Defence
風 水. Heap Feng Shui in JavaScript. Alexander Sotirov. [email protected]
風 水 Heap Feng Shui in JavaScript Alexander Sotirov [email protected] Black Hat Europe 2007 Introduction What is Heap Feng Shui? the ancient art of arranging heap blocks in order to redirect the program
ASL IT SECURITY XTREME XPLOIT DEVELOPMENT
ASL IT SECURITY XTREME XPLOIT DEVELOPMENT V 2.0 A S L I T S e c u r i t y P v t L t d. Page 1 Overview: The most dangerous threat is the one which do not have a CVE. Until now developing reliable exploits
SOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
Practical taint analysis for protecting buggy binaries
Practical taint analysis for protecting buggy binaries So your exploit beats ASLR/DEP? I don't care Erik Bosman Traditional Stack Smashing buf[16] GET / HTTP/1.100baseretnarg1arg2 Traditional
REpsych. : psycholigical warfare in reverse engineering. def con 2015 // domas
REpsych : psycholigical warfare in reverse engineering { def con 2015 // domas Warning This serves no purpose Taking something apart to figure out how it works With software Interfacing Documentation Obsolescence
Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland
Software Testing & Analysis (F22ST3) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh Software Testing & Analysis (F22ST3): Static
telnetd exploit FreeBSD Telnetd Remote Exploit Für Compass Security AG Öffentliche Version 1.0 Januar 2012
telnetd exploit FreeBSD Telnetd Remote Exploit Für Compass Security AG Öffentliche Version 1.0 Januar 2012 Content Part I Info Bug Telnet Exploit Part II Advanced Exploitation Meta Information Disclosed
CS3235 - Computer Security Thirteenth topic: System attacks. defenses
Overflows... Security case studies CS3235 - Computer Security Thirteenth topic: System attacks and defenses Hugh Anderson National University of Singapore School of Computing March/April, 2016 Hugh Anderson
Automated Repair of Binary and Assembly Programs for Cooperating Embedded Devices
Automated Repair of Binary and Assembly Programs for Cooperating Embedded Devices Eric Schulte 1 Jonathan DiLorenzo 2 Westley Weimer 2 Stephanie Forrest 1 1 Department of Computer Science University of
Title: Bugger The Debugger - Pre Interaction Debugger Code Execution
White Paper Title: Bugger The Debugger Pre Interaction Debugger Code Execution Prepared by: Brett Moore Network Intrusion Specialist, CTO SecurityAssessment.com Date: April 2005 Abstract The use of debuggers
Transparent Monitoring of a Process Self in a Virtual Environment
Transparent Monitoring of a Process Self in a Virtual Environment PhD Lunchtime Seminar Università di Pisa 24 Giugno 2008 Outline Background Process Self Attacks Against the Self Dynamic and Static Analysis
For a 64-bit system. I - Presentation Of The Shellcode
#How To Create Your Own Shellcode On Arch Linux? #Author : N3td3v!l #Contact-mail : [email protected] #Website : Nopotm.ir #Spcial tnx to : C0nn3ct0r And All Honest Hackerz and Security Managers I - Presentation
Abysssec Research. 1) Advisory information. 2) Vulnerable version
Abysssec Research 1) Advisory information Title Version Discovery Vendor Impact Contact Twitter CVE : Apple QuickTime FlashPix NumberOfTiles Remote Code Execution Vulnerability : QuickTime player 7.6.5
BUG: unable to handle kernel NULL pointer dereference at virtual address 0000009c printing eip: c01e41ee *pde = 00000000 Oops: 0000 [#1] SMP Modules
BUG: unable to handle kernel NULL pointer dereference at virtual address 0000009c printing eip: c01e41ee *pde = 00000000 Oops: 0000 [#1] SMP Modules linked in: CPU: 0 EIP: 0060:[] Not tainted
MapReduce. MapReduce and SQL Injections. CS 3200 Final Lecture. Introduction. MapReduce. Programming Model. Example
MapReduce MapReduce and SQL Injections CS 3200 Final Lecture Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI'04: Sixth Symposium on Operating System Design
Peach Fuzzer Platform
Fuzzing is a software testing technique that introduces invalid, malformed, or random data to parts of a computer system, such as files, network packets, environment variables, or memory. How the tested
Fine-grained covert debugging using hypervisors and analysis via visualization
Reverse Engineering by Crayon: Game Changing Hypervisor and Visualization Analysis Fine-grained covert debugging using hypervisors and analysis via visualization Daniel A. Quist Lorie M. Liebrock Offensive
Applying Clang Static Analyzer to Linux Kernel
Applying Clang Static Analyzer to Linux Kernel 2012/6/7 FUJITSU COMPUTER TECHNOLOGIES LIMITED Hiroo MATSUMOTO 管 理 番 号 1154ka1 Copyright 2012 FUJITSU COMPUTER TECHNOLOGIES LIMITED Abstract Now there are
Integrated Open-Source Geophysical Processing and Visualization
Integrated Open-Source Geophysical Processing and Visualization Glenn Chubak* University of Saskatchewan, Saskatoon, Saskatchewan, Canada [email protected] and Igor Morozov University of Saskatchewan,
An Analysis of Address Space Layout Randomization on Windows Vista
ADVANCED THREAT RESEARCH 2007 Symantec Corporation 1 An Analysis of Address Space Layout Randomization on Windows Vista Ollie Whitehouse, Architect, Symantec Advanced Threat Research Abstract: Address
AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS
TKK Reports in Information and Computer Science Espoo 2009 TKK-ICS-R26 AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS Kari Kähkönen ABTEKNILLINEN KORKEAKOULU TEKNISKA HÖGSKOLAN HELSINKI UNIVERSITY OF
Korset: Code-based Intrusion Detection for Linux
Problem Korset Theory Implementation Evaluation Epilogue Korset: Code-based Intrusion Detection for Linux Ohad Ben-Cohen Avishai Wool Tel Aviv University Problem Korset Theory Implementation Evaluation
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Compromise-as-a-Service
ERNW GmbH Carl-Bosch-Str. 4 D-69115 Heidelberg 3/31/14 Compromise-as-a-Service Our PleAZURE Felix Wilhelm & Matthias Luft {fwilhelm, mluft}@ernw.de ERNW GmbH Carl-Bosch-Str. 4 D-69115 Heidelberg Agenda
Eliminate Memory Errors and Improve Program Stability
Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent
SCADA/HMI MOVICON TRAINING COURSE PROGRAM
SCADA/HMI MOVICON TRAINING COURSE PROGRAM The Movicon training program includes the following courses: Basic Training Course: 1 day course at Progea head offices or authorized center. On location at client
Off-by-One exploitation tutorial
Off-by-One exploitation tutorial By Saif El-Sherei www.elsherei.com Introduction: I decided to get a bit more into Linux exploitation, so I thought it would be nice if I document this as a good friend
All Your Code Belongs To Us Dismantling Android Secrets With CodeInspect. Steven Arzt. 04.10.2015 Secure Software Engineering Group Steven Arzt 1
All Your Code Belongs To Us Dismantling Android Secrets With CodeInspect Steven Arzt 04.10.2015 Secure Software Engineering Group Steven Arzt 1 04.10.2015 Secure Software Engineering Group Steven Arzt
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
Attacking x86 Windows Binaries by Jump Oriented Programming
Attacking x86 Windows Binaries by Jump Oriented Programming L. Erdődi * * Faculty of John von Neumann, Óbuda University, Budapest, Hungary [email protected] Abstract Jump oriented programming
Hydra. Advanced x86 polymorphic engine. Incorporates existing techniques and introduces new ones in one package. All but one feature OS-independent
Hydra Advanced x86 polymorphic engine Incorporates existing techniques and introduces new ones in one package All but one feature OS-independent Random register operations Different synonymous instructions
Moritz Jodeit [email protected] Twitter: @moritzj
Moritz Jodeit [email protected] Twitter: @moritzj Agenda Attack Surface Firmware Analysis Device Rooting System Architecture Vulndev Environment Remote H.323 Exploit Post Exploitation Who am I? From
Compilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: [email protected] Alfonso Ortega: alfonso.ortega@uam.
Compilers Spring term Mick O Donnell: [email protected] Alfonso Ortega: [email protected] Lecture 1 to Compilers 1 Topic 1: What is a Compiler? 3 What is a Compiler? A compiler is a computer
Research and Design of Universal and Open Software Development Platform for Digital Home
Research and Design of Universal and Open Software Development Platform for Digital Home CaiFeng Cao School of Computer Wuyi University, Jiangmen 529020, China [email protected] Abstract. With the development
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
Linux Kernel. Security Report
Linux Kernel Security Report September 25 Authors: Andy Chou, Bryan Fulton and Seth Hallem Coverity has combined two years of analysis work carried out in a commercial setting at Coverity with four years
x86 ISA Modifications to support Virtual Machines
x86 ISA Modifications to support Virtual Machines Douglas Beal Ashish Kumar Gupta CSE 548 Project Outline of the talk Review of Virtual Machines What complicates Virtualization Technique for Virtualization
How to use IBM HeapAnalyzer to diagnose Java heap issues
IBM Software Group How to use IBM HeapAnalyzer to diagnose Java heap issues Jinwoo Hwang ([email protected]) IBM HeapAnalyzer Architect/Developer WebSphere Support Technical Exchange Introduction Java
ERNW Newsletter 51 / September 2015
ERNW Newsletter 51 / September 2015 Playing With Fire: Attacking the FireEye MPS Date: 9/10/2015 Classification: Author(s): Public Felix Wilhelm TABLE OF CONTENT 1 MALWARE PROTECTION SYSTEM... 4 2 GAINING
Adobe Flash Player and Adobe AIR security
Adobe Flash Player and Adobe AIR security Both Adobe Flash Platform runtimes Flash Player and AIR include built-in security and privacy features to provide strong protection for your data and privacy,
Fighting malware on your own
Fighting malware on your own Vitaliy Kamlyuk Senior Virus Analyst Kaspersky Lab [email protected] Why fight malware on your own? 5 reasons: 1. Touch 100% of protection yourself 2. Be prepared
