Automatic Hooking for Forensic Analysis of Document-based Code Injection Attacks
|
|
|
- Isabel Webster
- 10 years ago
- Views:
Transcription
1 Automatic Hooking for Forensic Analysis of Document-based Code Injection Attacks Techniques and Empirical Analyses Kevin Z. Snow Fabian Monrose University of North Carolina at Chapel Hill {kzsnow, Abstract Document-based code injection attacks, where-in malicious code (coined shellcode) is embedded in a document, have quickly replaced network-service based exploits as the preferred method of attack. In this paper, we present a new technique to aid in forensic and diagnostic analysis of malicious documents detected using dynamic code analysis techniques namely, automated API call hooking and simulation. Our approach provides an API call trace of a shellcode in a few milliseconds. We also present the results of a large empirical analysis of malicious PDFs collected in the wild over the last few years. To our surprise, we found that 90% of shellcode embedded in documents make no use of machine-code level polymorphism, in stark contrast to prior shellcode studies based on samples collected from network-service level attacks. We also observed a heavy-tailed distribution of API call sequences used by contemporary shellcode. Categories and Subject Descriptors Protection]: Invasive Software General Terms Keywords 1. Introduction K.6.5 [Security and Forensics, Security, Measurements Shellcode, Malicious Code, Hooking Dynamic code analysis has been proposed as an effective means for detecting the presence of shellcode in an arbitrary buffer of data [2, 10, 11, 14]. The general idea is to treat a buffer of data as code and simply execute its contents in a controlled environment, starting at each offset in the buffer (called an execution chain). The basic premise is that if the buffer contains only benign data, then the execu- Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. 5th European Workshop on System Security April 10, 2012, Bern, Switzerland. Copyright c 2012 ACM $10.00 tion would likely terminate with a fault. At that point, the execution state is reset and an execution attempt is made from the next position in the buffer, since a shellcode s location, if present, is not known a-priori. If, on the other hand, a particular execution chain within a buffer does in-fact represent shellcode, the instruction sequence executed by that shellcode will reliably generate tell-tale signs of malicious code. One of these tell-tale signs, for example, is accesses to specific fields within the Thread Environment Block (TEB) and Process Environment Block (PEB) to parse Windows API call address locations. Several profiles of these code execution sequences (called runtime heuristics) have been developed in the last few years [9 11, 13]. In this paper, we use a state-of-the-art dynamic code analysis framework called ShellOS [14] to find and analyze shellcode in documentbased code injection attacks. While dynamic code analysis has primarily been used to detect shellcode at the network packet level [11, 12], recent work has explored the application to document-based code injection attacks [14, 17] (also called malcode-bearing documents [7]). However, scanning documents for shellcode using dynamic code analysis creates an additional layer of complexity in that most document-based code injection attacks store shellcode under one or more layers of compression or encoding. These malicious documents often rely on the document reader itself to decompress the shellcode through its document parsing routines, or rely on the document reader to provide a means to dynamically decompress or decode shellcode through built-in scripting facilities (e.g. ActionScript, JavaScript, etc.). Two general approaches have been proposed for automatically decompressing and decoding buffers in a document that may contain shellcode document parsing [3, 6, 17], and document snapshotting [1, 14]). Document parsing attempts to manually implement lightweight document reader parsing routines and provide an environment for scripting languages to execute within. The primary difficulty with this approach is simply keeping up-to-date with all the features and nuances of a particular file format. Parsing does, however, have the advantage of precision control and greater
2 introspection of the decompression and/or decode routines. Document snapshotting, on the other hand, simply opens a document in its reader application and takes a snapshot of application memory after it has loaded. We use a document snapshotting approach. Beyond merely detecting shellcode and tracing the instructions executed using dynamic code analysis, the sequence of Windows API calls executed by shellcode, along with their parameters, are particularly useful to a network operator. A network operator could, for example, blacklist URLs found in shellcode, compare those URLs with network traffic to determine if a machine was actually compromised, or provide information to their forensic team such as the location of malicious binaries on the file system. While the ShellOS framework provides state-of-the-art dynamic code analysis for shellcode detection, the forensic and diagnostic capabilities for tracing Windows API calls are limited to a small set of handcrafted functions. Indeed, once deployed in the wild, we routinely encountered new API calls used by shellcode. We present an approach for analyzing previously unseen API sequences, and show that this extension significantly improved our diagnostic capabilities. 2. API Call Diagnostics Over the past several years, dynamic code analysis has proven to be an effective weapon in the fight against code injection attacks. However, allowing shellcode (once detected) to continue its execution and properly handle its sequence of Windows API calls is a difficult task for dynamic code analyzers, mainly due to the fact that the code runs in a simulated Windows environment. The libemu dynamic code analyzer, for example, loads a fixed set of DLLs to their default load addresses in memory and maintains a static list of Windows API call addresses that it simulates when the API address is loaded from within the instruction emulator. ShellOS takes a similar approach to libemu in that it simulates a fixed set API calls, but differs in that API calls are hooked by page-level memory traps (see the discussion in [14] or the notion of stealth breakpoints in [18] for a detailed overview), rather than comparing the PC to the set of simulated API call addresses at each single-stepped instruction. However, the fact remains that dynamic code analysis tools cannot easily support the simulation of the myriad of Windows API calls available, and additional third-party DLLs are often loaded by the application being analyzed. It is not uncommon, for example, that over 30,000 DLL functions are present in memory at any time. As an alternative to dynamic code analysis, we note that that simply executing the document reader application (given the malicious document) inside Windows, all the while tracing API calls, may be the most straightforward approach. In fact, this is exactly what tools like CWSandbox [19] do. Instead of detecting shellcode, these tools are based on detecting anomalies in API, system, and network traces. Unfortunately, many shellcode have adapted to evade API hooking techniques (called in-line code overwriting) used by tools like CWSandbox by simply jumping a few bytes into API calls. Furthermore, the resulting traces make it exceedingly difficult to separate application-generated events from shellcode-generated events. Fratantonio et al. [4] offer an alternative called Shellzer that focuses solely on recovering the Windows API call sequence of a given shellcode that has already been discovered and extracted by other means (e.g. using wepawet [3]). The approach they take is to compile the given shellcode into a standard Windows binary, then execute it in debug mode and single-step instructions until the PC jumps to an address in DLL-space. The API call is logged if the address is found in an external configuration file. The advantage here over typical dynamic code analysis is that Shellzer executes code in a real Windows OS environment allowing actual API calls and their associated kernel-level calls to complete. However, this comes at a price obviously the analysis must be run in Windows, the instruction single-stepping results in sub-par performance ( 15 second average analysis time), and wellknown malware anti-debugging tricks can be used to evade detection and possibly compromise the OS. To alleviate some of these problems, we developed a technique for automatically hooking all methods exported by DLLs, without the use of external DLL configuration files. We also provide a method for automatically generating code to simulate each API call, where possible. 2.1 Automated Hooking To tackle the problem of automatically hooking the tens of thousands of exported DLL functions found in a typical Windows application, we leverage ShellOS memory traps along with the application snapshot that accompanies an analysis with ShellOS. As described in detail in [14], ShellOS initializes its execution environment by exactly reconstructing the virtual memory layout and content of an actual Windows application through an application snapshot. These application snapshots, called minidumps, are created through the Windows DbgHelp API and may be configured to extract the entire process state, including the code segments of DLLs 1. The minidump provides ShellOS with the list of memory regions that correspond to DLLs. We use this information to set memory traps (a hardware supported page-level mechanism) on the entirety of each DLL region. These traps guarantee that any execution transfer to DLL-space is immediately caught by ShellOS, without any requirement of single-stepping each instruction to check the PC address. Once caught, we parse the export tables of each DLL loaded by the application snapshot to try and match the address that triggered the trap to one of the tens of thousands of DLL 1 desktop/ms679309(v=vs.85).aspx
3 functions. If the address does not match an exact API call address, we simply note the relation to the nearest API call entry point found the trapped address in the format: function + offset. In this way, we discover either the exact function called, or the offset into a specific function that was called. In cases where we already have a handler to simulate the API call, it may be called. 2.2 Automated Simulation Automated hooking alone can only reveal the last function that malicious code tried to call before our diagnostic analysis failed. This certainly helps with rapidly prototyping new API calls. However, we want to automatically support the simulation of new API calls to prevent, where possible, constantly updating ShellOS manually. One approach is to skip simulation altogether, for example, by simply allowing the API call code to execute as it normally would. Since ShellOS already maps the full process snapshot into memory, all the necessary DLL code is already present. Unfortunately, Windows API calls typically make use of kernel-level system calls. To support this without analyzing the shellcode in a real Windows environment would require simulating all of the Windows system calls a non-trivial task. Instead we generate a best-effort automated simulation of an API call on-the-fly. The idea is to simply return what is considered a valid result to the caller 2. Since shellcode does not often make use of extensive error checking, this technique enables analysis of shellcode using API calls not known a-priori to run to completion. The main complication with this approach, however, is the assembly-level function calling convention used by Windows API calls (the stdcall convention). The convention declares that the API call, not the caller, must clean up the function parameters pushed on the stack by the caller. Therefore, we cannot simply return to the calling instruction, which would result in a corrupted stack. Instead, we need to determine the size of the parameters pushed onto the stack for that specific function call. Unfortunately, this function parameter information is not readily available in any form within an application snapshot 3. However, the original DLL code for the function is accessible within the application snapshot, and this code must clean up the stack before returning. We leverage this by disassembling instructions, starting at the trapped address, until we encounter a ret instruction. The ret instruction optionally takes a 2-byte source operand that specifies the number of bytes to pop off the stack. We use this information to automatically adjust the stack, allowing shellcode to continue its execution. Obviously, the automated simulation would fail to work in cases where shell- 2 Windows API functions place their return value in the eax register, and in most cases indicate a success with a value 1 3 Function parameter information could be obtained from external sources, such as library definitions or debug symbols, but these may be impossible to obtain for proprietary third-party DLLs code actually requires an intelligent result (e.g. LoadLibrary must return a valid DLL load address). An astute attacker could therefore thwart diagnostic analysis by requiring specific results from one of these automatically simulated API calls. Our automated API hooking, however, would at least identify the offending API call. For cases where shellcode attempts to bypass in-line code overwriting-based function hooking by jumping a few bytes into an API call, we simply adjust the stack accordingly (as also noted by [4]), and either call the manually implemented function handler (if it exists), or do on-the-fly automated simulation as described above. 3. Malicious Document Analysis In what follows, we perform an indepth forensic analysis of the document based code injection attacks. We use our dynamic code analysis capabilities to exactly pinpoint noop sleds and shellcode for analysis, and then examine the structure of Windows API call sequences, as well as the overall behavior of the code injected into the document. Total for the Month (log scale) Date Malicious PDF was First Seen (as reported by VirusTotal) Figure 1. Timeline of PDFs used in our analysis. Our forensic analysis is based on nearly 10,000 distinct PDF documents collected from the wild and provided to us through several sources. Many of these were submitted directly to a submission server (running the ShellOS framework) available on our campus. All the documents used in this analysis had previously been labeled as malicious, so our subsequent analysis focuses on what we can learn about the malicious code, rather than whether the document is malicious or not; the detection capabilities of ShellOS is already covered in [14]. To get a sense of how varied these documents were (e.g., whether they come from different campaigns, use different exploits, use different obfuscation techniques, etc.), we performed a preliminary analysis using jsunpack [5] and VirusTotal 4. Figure 1 shows that the set of PDFs spans from 2008, shortly after the first emergence of malicious PDF documents in 2007, up to July of 2011, with about half of the data set from more recent months in Only 16 of these documents were unknown to VirusTotal when our queries were submitted in January of
4 . CVE CVE CVE CVE CVE CVE % 18.6% 18.4% 54.6% 0.26% 5.4% # of Exploits in a Single PDF % % % % % % of PDFs with Matching Signature (as reported by jsunpack) (a) Vulnerabilities Percentage of our Data Set (b) No. of Exploits Figure 2. Results from jsunpack showing (a) known vulnerabilities and (b) exploits per PDF Figure 2(a) shows the Common Vulnerabilities and Exposure (CVE) identifiers, as reported by jsunpack. The CVEs reported are, of course, only for those documents that jsunpack could successfully unpack and match signatures to the unpacked Javascript. The percentages here do not sum to 100% because most documents contain more than one exploit. Of the successfully labelled documents, 72% of them contain the original exploit that fueled the rise of malicious PDFs in 2007 namely, the collab.collect exploit (CVE ). As can be seen in Figure 2(b), most of the documents contained more than one exploit, with the second most popular exploit, getannots (CVE ), appearing in 54.6% of the documents. 3.1 Results Shellcode Polymorphism Polymorphism has long been used to uniquely obfuscate each instance of a shellcode to evade detection by anti-virus signatures [15, 16]. A polymorphic shellcode typically contains a few decoder instructions, followed by the encoded portion of the shellcode. The decoder code typically loops over the encoded portion, xor ing it with a unique key, then jumps to the decoded shellcode. A typical decoder loop might like: begin snippet call 0xfffffff1 ; GetPC setup pop ebx ; GetPC in ebx register xor ecx,ecx ; Clear counter register mov cx,0x180 ; Loop count = payload size... xor byte [ebx],0xef ; Xor key with a payload byte inc ebx ; Move to the next byte loop 0xfffffffc ; counter--, repeat until 0... xor byte [ebx],0xef ; Decode next position inc ebx ; loop 0xfffffffc ;... ; And so on... end snippet Our approach to analyzing polymorphism is to trace the execution of the first n instructions in each shellcode (we use n = 50 in our evaluation). In these n instructions, we can observe either a decode loop, or the immediate execution of non-polymorphic shellcode. ShellOS detects shellcode by executing from each position in a buffer, then triggering on a heuristic (such as the PEB heuristic [13]). However, since shellcode is often prepended by a no-op sled, tracing the first n instructions would usually only include execution of those sled instructions. Therefore, to isolate the no-op sled and actual shellcode portions of injected code, we execute each detected shellcode several times. The first execution simply detects the presence of shellcode and indicates the buffer offset of both the execution start position (e.g., most likely the start of the no-op sled) and the offset of the instruction where the heuristic was triggered (e.g., at some location inside the shellcode itself). We then try executing the buffer multiple times, starting at the offset the heuristic was originally triggered at and moving backwards until the heuristic successfully triggers again (of course, resetting the state after each execution). This new offset indicates the first instruction required by the shellcode to properly function, and we begin our n instruction trace from here. Count Unique Sequence of First 50 x86 Instructions/Operands of Shellcode Figure 3. Unique sequences observed. 93% of shellcode use 1 of the top 10 unique starting sequences observed. Figure 3 shows the number of shellcode found in each of the 220 unique starting sequences traced. Uniqueness, in this case is rather strict, and is determined by exactly matching instruction sequences (including opcodes). Notice the heavy-tailed distribution. Upon examining the actual instruc- 220
5 tion sequences in the tail, we found that the vast majority of these were indeed the same instruction sequence, but with varying opcode values, which is indicative of polymorphism. After re-binning the unique sequences by ignoring the opcode values, the distribution remains similar to that shown in Figure 3, but with only 108 unique starting sequences. To our surprise, however, 90% of shellcode we analyzed were completely non-polymorphic. This is in stark contrast to prior empirical studies of shellcode [8, 12, 20]. One plausible explanation of this difference may be that prior studies examined shellcode-on-the-wire (e.g. network service-level exploits). Network-level exploits typically operate in plainview of intrusion detection systems and therefore require obfuscation of the shellcode itself. Document-based exploits, such as those in our data set, have the benefit of using the document format itself (e.g. object compression) to obfuscate the shellcode, or the ability to pack the shellcode at the Javascript-level rather than machine code-level. The 10% of shellcode that are actually polymorphic represent most of the heavy tail in Figure 3. Of the shellcode in this set, 11% used the fstenv GetPC instruction. The remaining 89% used call as their GetPC instruction. Of the non-polymorphic sequences, 99.6% begin by looking up the address of the TEB with no attempt to obfuscate their actions. Only 7 shellcode try to be evasive in their TEB lookup; they first push the TEB offset to the stack, then pop it into a register via: push byte 0x30; pop ecx; mov eax,fs:[ecx]. Shellcode API Calls. To test the effectiveness of our automatic API call hooking and simulation, we allowed each shellcode in our data set to continue executing in ShellOS. The average analysis time, per shellcode API sequence traced, is 2 milliseconds. Overall, the automatic hooking identified a number of API calls that were originally unhandled. In those cases the shellcode would crash. The new diagnostic extensions now enable the shellcode to complete its sequence of API calls, for example: LoadLibraryA Get- ProcAddress URLDownloadToFile [FreeLibrary+0] WinExec ExitProcess. In this example, FreeLibrary is an API call that the ShellOS framework had no prior knowledge of how to handle. The automatic API hooking discovered the function name and that the function was directly called by shellcode, hence the +0 offset. Next, the automatic simulation disassembled the API code to find a ret, adjusted the stack appropriately, and set a valid return value. Our new API hooking techniques also identified a number of shellcode that attempt to bypass function hooks by jumping a few bytes into the API entry point. We found that the shellcode that make use of this technique usually only apply it to a small subset of their API calls. We observed hook bypassing for the following functions: VirtualProtect, CreateFileA, LoadLibraryA, and WinExec. In the following API call sequence, we automatically identified and handled hook bypassing in 2 API calls: GetFileSize 5 GetTickCount ReadFile GetTickCount GlobalAlloc GetTempPathA SetCurrentDirectoryA [Create- FileA+5] GlobalAlloc ReadFile WriteFile Close- Handle [WinExec+5] ExitProcess. In this case, the stacks were automatically adjusted to account for the +5 jump into the CreateFileA and WinExec API calls. After the stack adjustment, the API calls are handled as usual. Typically, an exploit will crash or silently terminate an exploited application. However, we observed more sophisticated shellcode that makes an effort to mask the fact that an exploit has occurred on the end-user s machine. Several API call sequences first load a secondary payload from the original document: GetFileSize VirtualAlloc GetTick- Count ReadFile. Then, assembly-level code decodes the payload (typically xor-based), and transfers control to the second payload, which goes through another round of decoding itself. The secondary payload then drops two files extracted from the original document to disk an executable and a PDF: GetTempPathA GetTempFileNameA CreateFileA [LocalAlloc+0] WriteFile CloseHandle WinExec CreateFileA WriteFile CloseHandle CloseHandle [GetModuleFileNameA+0] WinExec ExitProcess. The malicious executable is launched in the background, while the benign PDF is launched in the foreground via cmd.exe /c start. Overall, we found over 50 other unique sequences of API calls in our data set. Due to space constraints, Table 1 only shows the full API call sequences for the most frequent shellcode. As with our observations of the first n assemblylevel shellcode instructions, the call sequences have a heavytailed distribution. 4. Conclusions As code-injection attacks have solidified their position in the new frontier of rich-media client applications, such as document readers and web browsers, diagnosing the initial code injected by an exploit becomes more critical to understanding what transpired after an exploit. The automatic hooking and simulation techniques presented in this paper greatly aid in the analysis of both known and unknown shellcode. Our empirical analysis shows that the properties of networkservice level exploits and their associated shellcode, such as polymorphism, do not necessarily translate to documentbased code-injection attacks. Additionally, our API call sequence analysis has revealed diversity in todays shellcode, likely due to the multitude of exploit kits available further underscoring the usefulness of the improved shellcode diagnostics presented. 5 A custom handler is required for GetFileSize and ReadFile. Our handler reads the original document file to provide the correct file size and contents to the shellcode.
6 LoadLibraryA GetProcAddress GetTempPathA Table 1. Shellcode API Call Sequences GetSystemDirectory URLDownload ToFile URLDownload ToCacheFile Id Count CreateProcessA ShellExecuteA WinExec FreeLibrary DeleteFileA ExitThread TerminateProcess TerminateThread SetUnhandled ExceptionFilter ExitProcess Acknowledgments Thanks to Srinivas Krishnan, Teryl Taylor, and the anonymous reviewers for their insightful comments and suggestions. We also thank Bil Hayes for his help in setting up the networking infrastructure that supports our campus deployment of ShellOS. This work is supported by the National Science Foundation under award CNS and by a Google Research Award. References [1] C. Andrianakis, P. Seymer, and A. Stavrou. Scalable web object inspection and malfease collection. In USENIX Hot Topics in Security, pages 1 16, [2] P. Baecher and M. Koetter. Libemu - x86 shellcode emulation library. See [3] M. Cova, C. Kruegel, and V. Giovanni. Detection and analysis of drive-by-download attacks and malicious javascript code. In Intl. World Wide Web conf., pages , [4] Y. Fratantonio, C. Kruegel, and G. Vigna. Shellzer: a tool for the dynamic analysis of malicious shellcode. In RAID, Sept.. [5] B. Hartstein. Javascript unpacker (jsunpack-n). See http: //jsunpack.jeek.org/. [6] P. Laskov and N. Šrndić. Static detection of malicious javascript-bearing pdf documents. In ACSAC, pages , [7] W.-J. Li, S. Stolfo, A. Stavrou, E. Androulaki, and A. D. Keromytis. A study of malcode-bearing documents. In DIMVA, pages , [8] U. Payer, P. Teufl, S. Kraxberger, and M. Lamberger. Massive data mining for polymorphic code detection. In ACNS, volume 3685 of LNCS, pages Springer, [9] M. Polychronakis and A. D. Keromytis. ROP payload detection using speculative code execution. In MALWARE, [10] M. Polychronakis, K. G. Anagnostakis, and E. P. Markatos. Network-level Polymorphic Shellcode Detection using Emulation. In DIMVA, pages 54 73, [11] M. Polychronakis, K. G. Anagnostakis, and E. P. Markatos. Emulation-based Detection of Non-self-contained Polymorphic Shellcode. In RAID, [12] M. Polychronakis, K. G. Anagnostakis, and E. P. Markatos. An Empirical Study of Real-world Polymorphic Code Injection Attacks. In USENIX LEET Workshop, [13] M. Polychronakis, K. G. Anagnostakis, and E. P. Markatos. Comprehensive shellcode detection using runtime heuristics. In ACSAC, pages , [14] K. Z. Snow, S. Krishnan, F. Monrose, and N. Provos. Shellos: enabling fast detection and forensic analysis of code injection attacks. In USENIX Security Symposium, [15] Y. Song, M. Locasto, A. Stavrou, A. Keromytis, and S. Stolfo. On the infeasibility of modeling polymorphic shellcode. Machine Learning, 81: , [16] M. Talbi, M. Mejri, and A. Bouhoula. Specification and evaluation of polymorphic shellcode properties using a new temporal logic. Journal in Computer Virology, [17] Z. Tzermias, G. Sykiotakis, M. Polychronakis, and E. P. Markatos. Combining static and dynamic analysis for the detection of malicious documents. In Fourth European Workshop on System Security, [18] A. Vasudevan and R. Yerraballi. Stealth breakpoints. In ACSAC, pages , [19] C. Willems, T. Holz, and F. Freiling. Toward automated dynamic malware analysis using cwsandbox. IEEE Security and Privacy, 5:32 39, [20] Q. Zhang, D. S. Reeves, P. Ning, and S. P. Iyer. Analyzing Network Traffic to Detect Self-Decrypting Exploit Code. In ASIACCS, 2007.
LASTLINE WHITEPAPER. Large-Scale Detection of Malicious Web Pages
LASTLINE WHITEPAPER Large-Scale Detection of Malicious Web Pages Abstract Malicious web pages that host drive-by-download exploits have become a popular means for compromising hosts on the Internet and,
LASTLINE WHITEPAPER. In-Depth Analysis of Malware
LASTLINE WHITEPAPER In-Depth Analysis of Malware Abstract Malware analysis is the process of determining the purpose and functionality of a given malware sample (such as a virus, worm, or Trojan horse).
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
Attacking Host Intrusion Prevention Systems. Eugene Tsyrklevich [email protected]
Attacking Host Intrusion Prevention Systems Eugene Tsyrklevich [email protected] Agenda Introduction to HIPS Buffer Overflow Protection Operating System Protection Conclusions Demonstration
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
Sandy. The Malicious Exploit Analysis. http://exploit-analysis.com/ Static Analysis and Dynamic exploit analysis. Garage4Hackers
Sandy The Malicious Exploit Analysis. http://exploit-analysis.com/ Static Analysis and Dynamic exploit analysis About Me! I work as a Researcher for a Global Threat Research firm.! Spoke at the few security
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
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
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)
File Disinfection Framework (FDF) Striking back at polymorphic viruses
File Disinfection Framework (FDF) Striking back at polymorphic viruses 1 CONTENTS Introduction 3 File Disinfection Framework (FDF) 4 Disinfection solution development today 5 Goals 6 Target audience 6
LASTLINE WHITEPAPER. The Holy Grail: Automatically Identifying Command and Control Connections from Bot Traffic
LASTLINE WHITEPAPER The Holy Grail: Automatically Identifying Command and Control Connections from Bot Traffic Abstract A distinguishing characteristic of bots is their ability to establish a command and
Analyzing Network Traffic To Detect Self-Decrypting Exploit Code
Analyzing Network Traffic To Detect Self-Decrypting Exploit Code Qinghua Zhang, Douglas S. Reeves, Peng Ning, S. Purushothaman Iyer Cyber Defense Laboratory, Computer Science Department North Carolina
Stitching the Gadgets On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection
USENIX Security Symposium 2014, San Diego, CA, USA Stitching the Gadgets On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection Lucas Davi Intel Collaborative Research Institute for
Advanced Endpoint Protection Overview
Advanced Endpoint Protection Overview Advanced Endpoint Protection is a solution that prevents Advanced Persistent Threats (APTs) and Zero-Day attacks and enables protection of your endpoints by blocking
CAS : A FRAMEWORK OF ONLINE DETECTING ADVANCE MALWARE FAMILIES FOR CLOUD-BASED SECURITY
CAS : A FRAMEWORK OF ONLINE DETECTING ADVANCE MALWARE FAMILIES FOR CLOUD-BASED SECURITY ABHILASH SREERAMANENI DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SEOUL NATIONAL UNIVERSITY OF SCIENCE AND TECHNOLOGY
Intrusion Detection in AlienVault
Complete. Simple. Affordable Copyright 2014 AlienVault. All rights reserved. AlienVault, AlienVault Unified Security Management, AlienVault USM, AlienVault Open Threat Exchange, AlienVault OTX, Open Threat
Automating Linux Malware Analysis Using Limon Sandbox Monnappa K A [email protected]
Automating Linux Malware Analysis Using Limon Sandbox Monnappa K A [email protected] A number of devices are running Linux due to its flexibility and open source nature. This has made Linux platform
LASTLINE WHITEPAPER. Why Anti-Virus Solutions Based on Static Signatures Are Easy to Evade
LASTLINE WHITEPAPER Why Anti-Virus Solutions Based on Static Signatures Are Easy to Evade Abstract Malicious code is an increasingly important problem that threatens the security of computer systems. The
From Georgia, with Love Win32/Georbot. Is someone trying to spy on Georgians?
From Georgia, with Love Win32/Georbot Is someone trying to spy on Georgians? At the beginning of the year, a curious piece of malware came to our attention. An analyst in our virus laboratory noticed that
TitanMist: Your First Step to Reversing Nirvana TitanMist. mist.reversinglabs.com
TitanMist: Your First Step to Reversing Nirvana TitanMist mist.reversinglabs.com Contents Introduction to TitanEngine.. 3 Introduction to TitanMist 4 Creating an unpacker for TitanMist.. 5 References and
Check Point: Sandblast Zero-Day protection
Check Point: Sandblast Zero-Day protection Federico Orlandi Itway Support Engineer 2015 Check Point Software Technologies Ltd. 1 Check Point Threat Prevention SandBlast IPS Antivirus SandBlast stops zero-day
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
Cyber Security in Taiwan's Government Institutions: From APT To. Investigation Policies
Cyber Security in Taiwan's Government Institutions: From APT To Investigation Policies Ching-Yu, Hung Investigation Bureau, Ministry of Justice, Taiwan, R.O.C. Abstract In this article, we introduce some
Adi Hayon Tomer Teller
Adi Hayon Tomer Teller Why are we here? (one of many reasons) A malicious program: Allocates memory in a remote process (and write to it) Executes the code in that memory region Frees the code Memory dump
Getting Ahead of Malware
IT@Intel White Paper Intel Information Technology Security December 2009 Getting Ahead of Malware Executive Overview Since implementing our security event monitor and detection processes two years ago,
Detecting the One Percent: Advanced Targeted Malware Detection
Detecting the One Percent: Advanced Targeted Malware Detection Tomer Teller Check Point Software Technologies Session ID: SP02-T19 Session Classification: Intermediate Antivirus 20 th+ Anniversary The
Tracking Anti-Malware Protection 2015
Tracking Anti-Malware Protection 2015 A TIME-TO-PROTECT ANTI-MALWARE COMPARISON TEST Dennis Technology Labs www.dennistechnologylabs.com Follow @DennisTechLabs on Twitter.com This report aims to measure
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
EU FP6 LOBSTER. personal view on the future of ero-day Worm Containment. European Infrastructure for accurate network monitoring
EU FP6 LOBSTER European Infrastructure for accurate network monitoring personal view on the future of ero-day Worm Containment Herbert Bos Vrije Universiteit Amsterdam herbertb _AT_ cs.vu.nl 1 What is
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,
Storm Worm & Botnet Analysis
Storm Worm & Botnet Analysis Jun Zhang Security Researcher, Websense Security Labs June 2008 Introduction This month, we caught a new Worm/Trojan sample on ours labs. This worm uses email and various phishing
Shellshock. Oz Elisyan & Maxim Zavodchik
Shellshock By Oz Elisyan & Maxim Zavodchik INTRODUCTION Once a high profile vulnerability is released to the public, there will be a lot of people who will use the opportunity to take advantage on vulnerable
Networks and Security Lab. Network Forensics
Networks and Security Lab Network Forensics Network Forensics - continued We start off from the previous week s exercises and analyze each trace file in detail. Tools needed: Wireshark and your favorite
Comprehensive Malware Detection with SecurityCenter Continuous View and Nessus. February 3, 2015 (Revision 4)
Comprehensive Malware Detection with SecurityCenter Continuous View and Nessus February 3, 2015 (Revision 4) Table of Contents Overview... 3 Malware, Botnet Detection, and Anti-Virus Auditing... 3 Malware
Barracuda Intrusion Detection and Prevention System
Providing complete and comprehensive real-time network protection Today s networks are constantly under attack by an ever growing number of emerging exploits and attackers using advanced evasion techniques
Fighting Advanced Threats
Fighting Advanced Threats With FortiOS 5 Introduction In recent years, cybercriminals have repeatedly demonstrated the ability to circumvent network security and cause significant damages to enterprises.
Web Forensic Evidence of SQL Injection Analysis
International Journal of Science and Engineering Vol.5 No.1(2015):157-162 157 Web Forensic Evidence of SQL Injection Analysis 針 對 SQL Injection 攻 擊 鑑 識 之 分 析 Chinyang Henry Tseng 1 National Taipei University
Second-generation (GenII) honeypots
Second-generation (GenII) honeypots Bojan Zdrnja CompSci 725, University of Auckland, Oct 2004. [email protected] Abstract Honeypots are security resources which trap malicious activities, so they
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
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
RIA SECURITY TECHNOLOGY
RIA SECURITY TECHNOLOGY Ulysses Wang Security Researcher, Websense Hermes Li Security Researcher, Websense 2009 Websense, Inc. All rights reserved. Agenda RIA Introduction Flash Security Attack Vectors
LASTLINE WHITEPAPER. Using Passive DNS Analysis to Automatically Detect Malicious Domains
LASTLINE WHITEPAPER Using Passive DNS Analysis to Automatically Detect Malicious Domains Abstract The domain name service (DNS) plays an important role in the operation of the Internet, providing a two-way
Parasitics: The Next Generation. Vitaly Zaytsev Abhishek Karnik Joshua Phillips
Parasitics: The Next Generation. Vitaly Zaytsev Abhishek Karnik Joshua Phillips Agenda Overview W32/Xpaj analysis Overview of a virtual machine Software protection trends W32/Winemmem analysis W32/Induc
Analyzing and Detecting Malicious Flash Advertisements
Analyzing and Detecting Malicious Flash Advertisements Sean Ford, Marco Cova, Christopher Kruegel, and Giovanni Vigna Department of Computer Science University of California, Santa Barbara Santa Barbara,
RSA Enterprise Compromise Assessment Tool (ECAT) Date: January 2014 Authors: Jon Oltsik, Senior Principal Analyst and Tony Palmer, Senior Lab Analyst
ESG Lab Review RSA Enterprise Compromise Assessment Tool (ECAT) Date: January 2014 Authors: Jon Oltsik, Senior Principal Analyst and Tony Palmer, Senior Lab Analyst Abstract: This ESG Lab review documents
DRIVE-BY DOWNLOAD WHAT IS DRIVE-BY DOWNLOAD? A Typical Attack Scenario
DRIVE-BY DOWNLOAD WHAT IS DRIVE-BY DOWNLOAD? Drive-by Downloads are a common technique used by attackers to silently install malware on a victim s computer. Once a target website has been weaponized with
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
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
Introducing IBM s Advanced Threat Protection Platform
Introducing IBM s Advanced Threat Protection Platform Introducing IBM s Extensible Approach to Threat Prevention Paul Kaspian Senior Product Marketing Manager IBM Security Systems 1 IBM NDA 2012 Only IBM
WildFire. Preparing for Modern Network Attacks
WildFire WildFire automatically protects your networks from new and customized malware across a wide range of applications, including malware hidden within SSL-encrypted traffic. WildFire easily extends
Fighting Advanced Persistent Threats (APT) with Open Source Tools
Fighting Advanced Persistent Threats (APT) with Open Source Tools What is APT? The US Air Force invented the term in 2006 APT refers to advanced techniques used to gain access to an intelligence objective
Google Apps Engine. G-Jacking AppEngine-based applications. Presented 30/05/2014. For HITB 2014 By Nicolas Collignon and Samir Megueddem
Google Apps Engine G-Jacking AppEngine-based applications Presented 30/05/2014 For HITB 2014 By Nicolas Collignon and Samir Megueddem Introduction to GAE G-Jacking The code The infrastructure The sandbox
Lecture 26: Obfuscation
Lecture 26: Obfuscation 15411: Compiler Design Robbie Harwood and Maxime Serrano 21 November 2013 1 Introduction We have previously (lecture 20) considered the problem of doing compilation backwards (i.e.,
White Paper. No Signature Required: The Power of Emulation in Preventing Malware
No Signature Required: The Power of Emulation in Preventing Malware Table of Contents Emerging Threats Require a New Approach to Protection....3 Real-Time Behavior Emulation of Web Content...3 Use Case
Security Intelligence Services. Cybersecurity training. www.kaspersky.com
Kaspersky Security Intelligence Services. Cybersecurity training www.kaspersky.com CYBERSECURITY TRAINING Leverage Kaspersky Lab s cybersecurity knowledge, experience and intelligence through these innovative
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
Cisco IPS Tuning Overview
Cisco IPS Tuning Overview Overview Increasingly sophisticated attacks on business networks can impede business productivity, obstruct access to applications and resources, and significantly disrupt communications.
Advanced Threat Protection with Dell SecureWorks Security Services
Advanced Threat Protection with Dell SecureWorks Security Services Table of Contents Summary... 2 What are Advanced Threats?... 3 How do advanced threat actors operate?... 3 Addressing the Threat... 5
CORPORATE AV / EPP COMPARATIVE ANALYSIS
CORPORATE AV / EPP COMPARATIVE ANALYSIS Exploit Evasion Defenses 2013 Randy Abrams, Dipti Ghimire, Joshua Smith Tested Vendors AVG, ESET, F- Secure, Kaspersky, McAfee, Microsoft, Norman, Panda, Sophos,
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
CHAPTER 3 : INCIDENT RESPONSE FIVE KEY RECOMMENDATIONS GLOBAL THREAT INTELLIGENCE REPORT 2015 :: COPYRIGHT 2015 NTT INNOVATION INSTITUTE 1 LLC
: INCIDENT RESPONSE FIVE KEY RECOMMENDATIONS 1 FIVE KEY RECOMMENDATIONS During 2014, NTT Group supported response efforts for a variety of incidents. Review of these engagements revealed some observations
ADVANCED THREATS IN THE ENTERPRISE. Finding an Evil in the Haystack with RSA ECAT. White Paper
ADVANCED THREATS IN THE ENTERPRISE Finding an Evil in the Haystack with RSA ECAT White Paper With thousands of workstations and servers under management, most enterprises have no way to effectively make
IBM Protocol Analysis Module
IBM Protocol Analysis Module The protection engine inside the IBM Security Intrusion Prevention System technologies. Highlights Stops threats before they impact your network and the assets on your network
CS 356 Lecture 25 and 26 Operating System Security. Spring 2013
CS 356 Lecture 25 and 26 Operating System Security Spring 2013 Review Chapter 1: Basic Concepts and Terminology Chapter 2: Basic Cryptographic Tools Chapter 3 User Authentication Chapter 4 Access Control
The Value of Physical Memory for Incident Response
The Value of Physical Memory for Incident Response MCSI 3604 Fair Oaks Blvd Suite 250 Sacramento, CA 95864 www.mcsi.mantech.com 2003-2015 ManTech Cyber Solutions International, All Rights Reserved. Physical
Self Protection Techniques in Malware
DSIE 10 5 th Doctoral lsymposium on Informatics Engineering i January 28 29, 2010 Porto, Portugal Self Protection Techniques in Malware Tiago Santos Overview Introduction Malware Types Why Self Protection?
Automatic Network Protocol Analysis
Gilbert Wondracek, Paolo M ilani C omparetti, C hristopher Kruegel and E ngin Kirda {gilbert,pmilani}@ seclab.tuwien.ac.at chris@ cs.ucsb.edu engin.kirda@ eurecom.fr Reverse Engineering Network Protocols
2. From a control perspective, the PRIMARY objective of classifying information assets is to:
MIS5206 Week 13 Your Name Date 1. When conducting a penetration test of an organization's internal network, which of the following approaches would BEST enable the conductor of the test to remain undetected
AGENDA. Background. The Attack Surface. Case Studies. Binary Protections. Bypasses. Conclusions
MOBILE APPLICATIONS AGENDA Background The Attack Surface Case Studies Binary Protections Bypasses Conclusions BACKGROUND Mobile apps for everything == lots of interesting data Banking financial Social
[state of the internet] / SEO Attacks. Threat Advisory: Continuous Uptick in SEO Attacks
TLP: GREEN Issue Date: 1.12.16 Threat Advisory: Continuous Uptick in SEO Attacks Risk Factor High The Akamai Threat Research Team has identified a highly sophisticated Search Engine Optimization (SEO)
Practical Threat Intelligence. with Bromium LAVA
Practical Threat Intelligence with Bromium LAVA Practical Threat Intelligence Executive Summary Threat intelligence today is costly and time consuming and does not always result in a reduction of successful
Web Browsing Quality of Experience Score
Web Browsing Quality of Experience Score A Sandvine Technology Showcase Contents Executive Summary... 1 Introduction to Web QoE... 2 Sandvine s Web Browsing QoE Metric... 3 Maintaining a Web Page Library...
International Journal of Enterprise Computing and Business Systems ISSN (Online) : 2230-8849
WINDOWS-BASED APPLICATION AWARE NETWORK INTERCEPTOR Ms. Shalvi Dave [1], Mr. Jimit Mahadevia [2], Prof. Bhushan Trivedi [3] [1] Asst.Prof., MCA Department, IITE, Ahmedabad, INDIA [2] Chief Architect, Elitecore
Anti-exploit tools: The next wave of enterprise security
Anti-exploit tools: The next wave of enterprise security Intro From malware and ransomware to increasingly common state-sponsored attacks, organizations across industries are struggling to stay ahead of
Chapter 14 Analyzing Network Traffic. Ed Crowley
Chapter 14 Analyzing Network Traffic Ed Crowley 10 Topics Finding Network Based Evidence Network Analysis Tools Ethereal Reassembling Sessions Using Wireshark Network Monitoring Intro Once full content
International Journal of Computer Science and Network (IJCSN) Volume 1, Issue 5, October 2012 www.ijcsn.org ISSN 2277-5420. Bhopal, M.P.
Prevention of Buffer overflow Attack Blocker Using IDS 1 Pankaj B. Pawar, 2 Malti Nagle, 3 Pankaj K. Kawadkar Abstract 1 PIES Bhopal, RGPV University, 2 PIES Bhopal, RGPV University, 3 PIES Bhopal, RGPV
Can Consumer AV Products Protect Against Critical Microsoft Vulnerabilities?
ANALYST BRIEF Can Consumer AV Products Protect Against Critical Microsoft Vulnerabilities? Author Randy Abrams Tested Products Avast Internet Security 7 AVG Internet Security 2012 Avira Internet Security
Post-Access Cyber Defense
Post-Access Cyber Defense Dr. Vipin Swarup Chief Scientist, Cyber Security The MITRE Corporation November 2015 Approved for Public Release; Distribution Unlimited. 15-3647. 2 Cyber Security Technical Center
ThreatSpike Dome: A New Approach To Security Monitoring
ThreatSpike Dome: A New Approach To Security Monitoring 2015 ThreatSpike Labs Limited The problem with SIEM Hacking, insider and advanced persistent threats can be difficult to detect with existing product
McAfee Global Threat Intelligence File Reputation Service. Best Practices Guide for McAfee VirusScan Enterprise Software
McAfee Global Threat Intelligence File Reputation Service Best Practices Guide for McAfee VirusScan Enterprise Software Table of Contents McAfee Global Threat Intelligence File Reputation Service McAfee
A very short history of networking
A New vision for network architecture David Clark M.I.T. Laboratory for Computer Science September, 2002 V3.0 Abstract This is a proposal for a long-term program in network research, consistent with the
API Monitoring System for Defeating Worms and Exploits in MS-Windows System
API Monitoring System for Defeating Worms and Exploits in MS-Windows System Hung-Min Sun, Yue-Hsun Lin, and Ming-Fung Wu Department of Computer Science National Tsing-Hua University Hsinchu, Taiwan 30013
Securing Secure Browsers
Securing Secure Browsers SESSION ID: TRM-T11 Prashant Kumar Verma Sr. Consultant & Head (Security Testing) Paladion Networks @prashantverma21 Agenda Browser Threats Secure Browsers to address threats Secure
Penetration Testing Using The Kill Chain Methodology
Penetration Testing Using The Kill Chain Methodology Presented by: Rupert Edwards This course is intended for a technically astute audience.this course is 98% hands on.the attendee should have some basic
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
CS 558 Internet Systems and Technologies
CS 558 Internet Systems and Technologies Dimitris Deyannis [email protected] 881 Heat seeking Honeypots: Design and Experience Abstract Compromised Web servers are used to perform many malicious activities.
co Characterizing and Tracing Packet Floods Using Cisco R
co Characterizing and Tracing Packet Floods Using Cisco R Table of Contents Characterizing and Tracing Packet Floods Using Cisco Routers...1 Introduction...1 Before You Begin...1 Conventions...1 Prerequisites...1
Unified Security, ATP and more
SYMANTEC Unified Security, ATP and more TAKE THE NEXT STEP Martin Werner PreSales Consultant, Symantec Switzerland AG MEET SWISS INFOSEC! 27.01.2016 Unified Security 2 Symantec Enterprise Security Users
SIPAC. Signals and Data Identification, Processing, Analysis, and Classification
SIPAC Signals and Data Identification, Processing, Analysis, and Classification Framework for Mass Data Processing with Modules for Data Storage, Production and Configuration SIPAC key features SIPAC is
Banking Security using Honeypot
Banking Security using Honeypot Sandeep Chaware D.J.Sanghvi College of Engineering, Mumbai [email protected] Abstract New threats are constantly emerging to the security of organization s information
Melde- und Analysestelle Informationssicherung MELANI Torpig/Mebroot Reverse Code Engineering (RCE)
Melde- und Analysestelle Informationssicherung MELANI Torpig/Mebroot Reverse Code Engineering (RCE) Andreas Greulich, MELANI Swiss Cyber Storm, 18 April 2009 Agenda Part 1: Introduction (~5 ) Infection
NEXPOSE ENTERPRISE METASPLOIT PRO. Effective Vulnerability Management and validation. March 2015
NEXPOSE ENTERPRISE METASPLOIT PRO Effective Vulnerability Management and validation March 2015 KEY SECURITY CHALLENGES Common Challenges Organizations Experience Key Security Challenges Visibility gaps
