CSC 471 Modern Malware Analysis

2023-Spring Course Website

Instructor: Si Chen

Course Logo

About Maleware and Malware Analysis

Malware, a term used to describe various types of malicious software, poses a significant threat to both personal privacy and computer security. This can include viruses, adware, spyware, browser hijacking software, and fake security software. When installed on a computer, these programs can relay personal information to third parties without user consent, and may also contain worms and viruses that cause significant damage. As a result, the ability to detect, analyze, understand, control, and eradicate malware is becoming a crucial issue in both economic and national security.

Course Description

This course aims to provide students with a comprehensive understanding of modern malware analysis techniques through lectures and hands-on interactive analysis of real-world samples. This includes exploring various recent attacks to develop a foundation and well-rounded view of cybersecurity research. Participants will also read and discuss research papers, and conduct an independent project on a topic related to cyber risk and malware analysis.
Upon completion of the course, students will be equipped with the skills to analyze advanced contemporary malware using both static and dynamic analysis methods. This knowledge will enable them to effectively detect, understand, and mitigate the impact of malware threats.

Expected Background

No prerequisite for graduate students, although sufficient security background is expected.
My expected demographic for Malware Analysis was students with zero reverse engineering experience. That said, to be able to take this course you will probably need at least the following skills.
  • Basic programming concepts
  • Knowledge with the C programming language, including pointers, arrays, loops, function calls, etc.
  • Familiar with Unix/Linux including the command-line shell and gdb
  • Familiar with Intel x86 assembly language and architecture
  • Familiar with web programming concepts (HTML, HTTP, TCP, network communications)

Textbook

No Textbook

Reference book:

  1. Monnappa K A, Learning Malware Analysis: Explore the concepts, tools, and techniques to analyze and investigate Windows malware , ISBN 978-1788392501
  2. Michael Sikorski, Andrew Honig, Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software, 1st Edition, ISBN 978-1593272906

Course Content

# Date Topic Slides Supporting Materials
Class 1 Jan 24, 2023 Introduction ch01.pdf
  • Windows XP Environment Disclaimer
  • VirtualBox
  • [Video]
  • Class 2 Jan 26, 2023 Basic Concepts, DLL Injection (1) ch02.pdf
  • hack_dll.zip
  • hack_dll_src.zip
  • [Video]
  • Class 3 Jan 31, 2023 DLL Injection (2), Static Analysis ch03.pdf
  • How to connect to BadgerCTF
  • hack_dll.zip
  • flare-floss
  • samples.zip
  • notepad_xp.zip
  • [Video]
  • Lab 1
    (10 points)
    Jan 31, 2023 Lab1: OllyDbg and DLL Injection
    lab1.pdf
  • [Video]
  • Windows XP Environment Disclaimer
  • VirtualBox
  • hack_dll.zip
  • How to write a lab report
  • Class 4 Feb 7, 2023 IA32 Registers & Byte Ordering ch04.pdf
  • LittleEndian.exe
  • LittleEndian.cpp
  • [Video]
  • Class 5 Feb 9, 2023 X86 ASM ch05.pdf
  • abexcm1-voiees.exe
  • [Video]
  • Class 6 Feb 14, 2023 Stack and Stack Frame Ch06.pdf
  • Stack.exe
  • StackFrame.exe
  • StackFrame.cpp
  • Class 7 Feb 16, 2023 Dynamic Analysis, Hooks ch07.pdf
  • [Video]
  • Hook.zip password:infected
  • Lab 2
    (10 points)
    Feb 21, 2023 Lab2: Stack, Stack Frame & CrackMe
    lab2.pdf
  • lab2.exe
  • A reversing tutorial for newbies by lena151 part10.avi
  • Class 8 Feb 23, 2023 Message Hooks, API Hooks ch08.pdf
  • hookdbg.zip password:infected
  • hookdbg_src.zip password:infected
  • Class 9 Feb 28, 2023 Code Injection (1) ch09.pdf
  • MsgBox.zip password:infected
  • CodeInjection.zip password:infected
  • CodeInjection_src.zip (Source Code)
  • Class 10 Mar 2, 2023 Code Injection (2) ch09.pdf
  • codeInjection2_src.zip (Source Code)
  • codeInjection2.zip
  • Class 11 Mar 7, 2023 PE Structure (1) ch11.pdf
  • notepad_xp.zip
  • display_sections.py
  • enum_imports.py
  • enum_export.py
  • Class 12 Mar 21, 2023 PE Structure (2) and IDA Free ch11.pdf
  • notepad_xp.zip
  • display_sections.py
  • enum_imports.py
  • enum_export.py
  • Lab 3
    (10 points)
    Mar 21, 2023 Lab3: Build a heuristic malware detection system
    lab3.pdf
  • How to connect to BadgerCTF
  • How to write a lab report
  • malware.zip password:infected
  • enum_exports.py
  • pefile usage examples (Python)
  • Class 13 Mar 23, 2023 Stealth process (Rootkit) ch13.pdf
  • [Video]
  • StealthProcess1.zip password:infected
  • StealthProcess2.zip password:infected
  • Class 14 Mar 28, 2023 Kernel Rootkit (1): Introduction ch14.pdf
    Class 15 Mar 30, 2023 Kernel Rootkit (2): SSDT Hooking ch15.pdf
  • SSDTHook.zip password:infected
  • Lab 4
    (10 points)
    March 30, 2023 Lab4: SSDT Hooking
    lab4.pdf
  • lab4.zip
  • Class 16 April 4, 2023 Worms (1): CVE-2008-4250 (MS08-067) ch16.pdf
  • CVE-2008-4250.zip
  • Class 17 April 6, 2023 Worms (2): Conficker Worm ch17.pdf
  • CVE-2008-4250.zip
  • conflicker.zip password:infected
  • Class 18 Apr 11, 2023 Volatility, Stuxnet ch18.pdf
  • [Video]
  • stuxnet.vmem
  • Class 19 Apr 13, 2023 Worms (3): Countermeasures against Conficker Worm ch19.pdf
  • conflicker.zip password:infected
  • ms08_067_SMB.pcapng.zip
  • Lab 5
    (10 Points)
    Apr 13, 2023 Lab 5: Build a Dynamic Heuristic Analysis Tool for Detection of Unknown Malware
    lab5.pdf
  • ransomware.zip password:infected
  • Class 20 Apr 18, 2023 Anti-Debugging Techniques (1): Static Anti-Debugging, TEB, PEB ch20.pdf
  • StaAD_PEB.zip
  • Class 21 Apr 18, 2023 Anti-Debugging Techniques (2): Dynamic Anti-Debugging, SEH, RDTSC ch21.pdf
  • DynAD_SEH.zip
  • DynAD_RDTSC.zip
  • DynAD_SingleStep.zip
  • DynAD_Checksum.zip
  • Final Project
    (25 Points)
    Apr 25, 2023 Malware Analysis: Zeus
    FinalProject.pdf
  • zeus.vmem
  • zeus source code -- client side
  • Presentation Rubric (total 15%)

    Content (6%)

    • Accuracy: All content throughout the presentation is accurate, and there are no factual errors. (3%)
    • Relevance: The presentation covers the assigned topic comprehensively and relevantly. (3%)

    Presentation (6%)

    • Organization: The presentation is well-structured, with a clear introduction, body, and conclusion. (2%)
    • Technical clarity: Technical terms are well-defined and explained in a clear and concise manner. (2%)
    • Depth: The presentation demonstrates substance and depth, going beyond superficial explanations. (2%)

    Q&A Session (2%)

    • Knowledge: The student demonstrates full knowledge of the topic, answering questions confidently and accurately. (2%)

    Peer Engagement (1%)

    • Preparation: The student has prepared questions for other groups and shows a proactive engagement in the learning process. (1%)

    Tutorials and Supporting Materials