Cyber Security: Malicious Code Analysis
Revision: TE3424_20110217
- Course Length:
- 5 Days
- Course Description:
- Malware, short for malicious software, is code designed to infiltrate and exploit a computer system or network without consent. This course provides students with a comprehensive study of the many types of Malware and their functions. The course stresses types of malware, global effects, Malware analysis and Incidence Response Plans. Lab exercises reinforce the lectures.
- Who Should Attend:
- This course will significantly benefit security officers, auditors, security professionals, site administrators, and anyone who is concerned about the integrity of their network infrastructure.
- Benefits of Attendance:
-
Upon completion of this course, students will be able to:
- Identify, classify, and organize malware
- Identify and correlate information regarding domains, hostnames, and IP addresses
- Analyze JavaScript, PDs, Office documents, and packet captures for signs of malicious activity
- Automate the execution of malware in VMware or VirtualBox virtual machines
- Build your own API monitor
- Detect rootkits and stealth malware using forensic tools
- Scan the file system and Registry for hidden data and bypass locked file restrictions and remove stubborn malware
- Use a debugger to analyze, control, and manipulate a malware sample's behaviors
- Create debugger plug-ins that monitor API calls, output HTML behavior reports, and automatically highlight suspicious activity
- Decode, decrypt, and unpack data that attackers intentionally try to hide
- Crack domain generation algorithms
- Analyze malware distributed as Dynamic Link Libraries (DLLs)
- Debug the kernel of a virtual machine infected with malware to understand its low-level functionality
- Create scripts for WinDbg, unpack kernel drivers, and leverage IDA Pro's debugger plug-ins
- Acquire memory samples from physical and virtual machines
- Install the Volatility advanced memory forensics platform and associated plug-ins
- Detect and extract code hiding in process memory
- Rebuild binaries, including user mode programs and kernel drivers, from memory samples
- Rebuild the import address tables (IAT) of packed malware based on information in the memory dump
- Detect various forms of rootkit activity, including the presence of IAT, EAT, Inline, driver IRP, IDT, and SSDT hooks on a system
- Identiy malware that hides in kernel memory without a loaded driver
- Locate system-wide notification routines
- Detect attempts to hide running Windows services
- Detect active connections, listening sockets, and the use of raw sockets and promiscuous mode network cards
- Extract volatile Registry Keys and values from memory
- Prerequisites:
- Students should have a basic understanding of Windows/ Linux operating systems, TCP/IP, and network security.
- Course Outline:
-
- Anonymizing Your Activities
- Conducting online investigations without exposing your own identity
- Honeypots
- Using honeypots to collect the malware being distributed by bots and worms
- Grabbing new variants of malware families from the wild, sharing them in real time with other researchers, analyzing attack patterns, or building a workflow to automatically analyze the samples
- Malware Classification
- Identifying, classifying, and organizing malware
- Detecting malicious files using custom anti-virus signatures
- Determining the relationship between samples
- Determining exactly what functionality attackers may have introduced into a new variant
- Sandboxes and Multi-AV Scanners
- Leveraging online virus scanners and public sandboxes
- Using scripts to control the behavior of your sample in the target sandbox
- Submitting samples on command line with Python scripts
- Storing results to a database
- Scanning for malicious artifacts based on sandbox results
- Researching Domains and IP Addresses
- Identifying and correlating information regarding domains, hostnames, and IP addresses
- Tracking fast flux domains
- Determining the alleged owner of a domain
- Locating other systems owned by the same group of attackers
- Creating static or interactive maps based on the geographical location of IP addresses
- Documents, Shellcode, and URLs
- Analyzing JavaScript, PDs, Office documents, and packet captures for signs of malicious activity
- Extracting shellcode from exploits and analyzing it within a debugger or in an emulated environment
- Malware Labs
- Building a safe, flexible, and inexpensive lab in which to execute and monitor malicious code
- Solutions involving virtual or physical machines and using real or simulated Internet
- Automation
- Automating the execution of malware in VMware or VirtualBox virtual machines
- Creating custom reports about the malware's behavior, including network traffic logs and artifacts created in physical memory
- Dynamic Analysis
- Building your own API monitor,
- Preventing certain evidence from being destroyed
- Logging file system and Registry activity in real time without using hooks
- Comparing changes to a process's handle table
- Logging commands that attackers send through backdoors
- Malware Forensics
- Scanning the file system and Registry for hidden data
- Bypassing locked file restrictions and removing stubborn malware
- Detecting HTML injection and investigating a new form of Registry "slack" space
- Debugging Malware
- Using a debugger to analyze, control, and manipulate a malware sample's behaviors
- Creating debugger plug-ins that monitor API calls, output HTML behavior reports, and automatically highlight suspicious activity
- De-obfuscation
- Reverse-engineering a malware sample that encrypts its network traffic
- Techniques to crack domain generation algorithms
- Working with DLLs
- Enumerating and examining a DLL's exported functions
- Running the DLL in a process of your choice (and bypass host process restrictions)
- Executing DLLs as a Windows service
- Converting DLLs to standalone executables
- Kernel Debugging
- Debugging the kernel of a virtual machine infected with malware
- Creating scripts for WinDbg
- Unpacking kernel drivers
- Leveraging IDA Pro's debugger plug-ins
- Memory Forensics with Volatility
- Acquiring memory samples from physical and virtual machines
- Installing the Volatility advanced memory forensics platform and associated plug-ins
- Beginning your analysis by detecting process context tricks and DKOM attacks
- Memory Forensics: Code Injection and Extraction
- Detecting and extracting code (unlinked DLLs, shellcode, and so on) hiding in process memory
- Rebuilding binaries, including user mode programs and kernel drivers
- Rebuilding the import address tables (IAT) of packed malware based on information in the memory dump
- Memory Forensics: Rootkits
- Detecting various forms of rootkit activity, including the presence of IAT, EAT, Inline, driver IRP, IDT, and SSDT hooks on a system
- Identifying malware that hides in kernel memory without a loaded driver
- Locating system-wide notification routines
- Detecting attempts to hide running Windows services
- Network and Registry
- Exploring the artifacts created on a system due to a malware sample's network activity
- Detecting active connections, listening sockets, and the use of raw sockets and promiscuous mode network cards
- Extracting volatile Registry Keys and values from memory
- Anonymizing Your Activities













