Bài 1: Introduction to Malware Analysis

1. Mục tiêu của Phân tích Malware

Phân tích malware nhằm cung cấp thông tin cần thiết để phản ứng với các sự cố xâm nhập mạng. Các mục tiêu cụ thể bao gồm:

  • Xác định chính xác điều gì đã xảy ra và đảm bảo đã tìm ra tất cả máy/file bị nhiễm.
  • Xác định binary đáng ngờ có thể làm gì, cách phát hiện nó trên mạng, và cách đo lường/kiềm chế thiệt hại.
  • Phát triển signatures (chữ ký) để phát hiện nhiễm malware trên mạng.

Malware analysis tạo ra hai loại signature chính:

  • Phát hiện mã độc trên máy nạn nhân.
  • Nhận dạng file được tạo/chỉnh sửa bởi malware, hoặc thay đổi trong registry.
  • Tập trung vào hành vi của malware (những gì nó làm với hệ thống), không phải đặc điểm của malware.
  • Hiệu quả hơn trong việc phát hiện malware biến đổi hình dạng hoặc đã bị xóa khỏi ổ cứng.
  • Phát hiện mã độc bằng cách giám sát traffic mạng.
  • Có thể tạo mà không cần phân tích malware, nhưng khi kết hợp với phân tích malware thì:
    • Tỷ lệ phát hiện cao hơn.
    • Ít false positive hơn.

2. Tại sao Malware Analysis quan trọng?

  • Antivirus không thể tin tưởng hoàn toàn.
  • 50–97% các vụ breach có liên quan đến malware.
  • Khi xảy ra breach, có ba mức độ phản ứng:
Cơ bản:       Reimage máy bị nhiễm
Nâng cao:     Incident Response – phân tích log, network traffic, tiến trình lạ
              → Malware còn ở đâu nữa không? Nó vào từ đâu?
Trưởng thành: Thu thập Intelligence – đánh giá impact, rủi ro, động cơ tấn công
              (Tài chính? Hacktivism? Cơ hội? APT?)

3. Malware là gì?

Malware (Malicious Software) là phần mềm thực thi mà không có sự cho phép hoặc hiểu biết của người dùng.

Giống như phần mềm thông thường, malware cũng có:

  • Vấn đề tương thích
  • Bug
  • Hỗ trợ “khách hàng” (nạn nhân)
  • Quản lý phiên bản / cập nhật
  • Phát triển theo nhóm / kiểm soát source code

4. PE File (Portable Executable)

PE là định dạng file thực thi trên Windows (.exe, .dll, …). Cấu trúc gồm:

PE FILE (on disk)         MEMORY (khi load)
──────────────────        ──────────────────
MS-DOS Header      →      MS-DOS Header (0x00400000)
PE File Header     →      PE File Header
Optional Header    →      Optional Header
Section Header     →      Section Header
  .text            →        .text  (OEP – Original Entry Point)
  .rdata           →        .rdata
  .data            →        .data
  .rsrc            →        .rsrc

5. Packed/Unpacked Malware

5.1. Packing là gì?

Packing là kỹ thuật nén/mã hóa malware để che giấu mã thực sự, chống lại phân tích tĩnh và antivirus.

Normal PE File          Packed PE File
──────────────          ──────────────────────
PE Header               PE Header
.text (OEP)             Packed original section (nén/mã hóa)
.data                   Unpack stub (new OEP) ← chạy đầu tiên
.rsrc

5.2. Quy trình Unpacking

flowchart TD A[Chạy packed binary] --> B[Unpack stub thực thi] B --> C[Giải nén/giải mã payload vào memory] C --> D[Jump tới OEP thực sự] D --> E[Đặt breakpoint tại OEP] E --> F[Dump unpacked process từ memory] F --> G[Sửa lại IAT - Import Address Table] G --> H[Phân tích file đã unpack]

6. Phân loại Malware

6.1. Các loại chung

LoạiMô tả
VirusTự sao chép bằng cách gắn vào file khác
WormTự sao chép qua mạng mà không cần file host
TrojanGiả dạng phần mềm hợp lệ để đánh lừa người dùng
BotMáy bị nhiễm chờ lệnh từ C&C server
RootkitẨn sự tồn tại của mã độc khác trong hệ thống
RATRemote Access Trojan – kiểm soát từ xa

6.2. Các loại chuyên biệt

LoạiMô tả
BackdoorCho phép attacker điều khiển hệ thống bí mật
BotnetTập hợp máy bị nhiễm, nhận lệnh từ C&C server chung
DownloaderChỉ tồn tại để tải malware khác về – thường dùng khi mới xâm nhập
LauncherDùng để khởi chạy malware khác, thường có kỹ thuật stealth
Information StealerSniffer, keylogger, password hash grabber
ScarewareDọa người dùng để mua phần mềm giả mạo
SpywareThu thập thông tin bí mật
AdwareHiển thị quảng cáo không mong muốn
Spam-sending malwareAttacker cho thuê máy để gửi spam
Credential StealerĐánh cắp thông tin đăng nhập

6.3. Phần mềm độc hại khác

  • Builder: Công cụ tạo malware tùy chỉnh.
  • Exploit Kit: Bộ công cụ khai thác lỗ hổng tự động.
  • Packer/Crypter: Nén/mã hóa malware để tránh bị phát hiện.

7. Phân loại Payload độc hại

  • Tập hợp các instruction được inject vào chương trình bị khai thác và thực thi.
  • Thường là mã máy nhỏ gọn, không phụ thuộc vào môi trường cụ thể.
  • Sử dụng nhiều payload kết hợp để thực hiện nhiệm vụ mà một payload đơn không làm được.
  • Ví dụ: stager nhỏ → tải stage chính → thực thi.
  • Chứa tất cả mọi thứ cần thiết để thiết lập reverse shell trong một payload duy nhất.
  • Lớn hơn staged payload nhưng đơn giản hơn về triển khai.

8. Mass vs. Targeted Malware

Tiêu chíMass MalwareTargeted Malware
Mục tiêuLây nhiễm càng nhiều máy càng tốtNhắm vào mục tiêu cụ thể
Phổ biếnLoại phổ biến nhấtÍt phổ biến hơn
Khó phát hiệnThấp – trung bìnhRất cao
Phân tíchĐơn giản hơnYêu cầu phân tích nâng cao
Ví dụRansomware lan tràn, spam malwareAPT, malware gián điệp nhà nước

9. Các loại Phân tích Malware

flowchart LR A[Malware Sample] --> B[Static Analysis] A --> C[Dynamic Analysis] B --> D[Hybrid Analysis] C --> D D --> E[Memory Forensics]
  • Kiểm tra malware mà không chạy nó.
  • Ưu điểm: An toàn, phân tích sâu.
  • Nhược điểm: Chậm, cần kỹ thuật cao, malware có thể bị obfuscate.
  • Công cụ: VirusTotal, strings, IDA Pro, Ghidra.
  • Chạy malware và quan sát hành vi.
  • Ưu điểm: Nhanh, đơn giản.
  • Nhược điểm: Có thể bỏ sót hành vi ẩn, cần môi trường cô lập.
  • Công cụ: RegShot, Process Monitor, Process Hacker, CaptureBAT, Wireshark.
  • Kết hợp cả hai: tìm gợi ý từ disassembly, sau đó xác nhận khi chạy.
  • Thực tế, hầu hết phân tích là hybrid.
  • Memory Forensics: Mandiant Redline, Volatility.

10. Nguyên tắc chung khi phân tích Malware


11. Công cụ cơ bản

NhómCông cụ
System InternalsSysInternals Suite (Process Monitor, Autoruns, …)
Hex Editor010 Editor
PE ViewerCFF Explorer, PE Explorer, PE View, PE Studio
Disassembler / DebuggerIDA Pro, x64dbg, Ghidra, WinDbg, Hopper
Network MonitorWireshark, CaptureBAT
Process MonitorProcess Hacker, Process Monitor
RegistryRegShot
RAM AnalysisMandiant Redline, Volatility
Tiện íchCygwin (md5sum, strings, xxd), Notepad++, 7zip

12. One Minute Triage (Phân loại nhanh)

Quy trình phân loại nhanh một mẫu malware trong vài phút:

1. Lấy MD5 Hash của file (dùng MAP hoặc md5sum)
2. Tra cứu trên VirusTotal
   → Tên phổ biến của malware
   → Indicators of Compromise (IoC)
3. Chạy "strings" để xem chuỗi ký tự đáng ngờ
   (URL, IP, tên API, registry key,...)
4. Mở bằng Hex Editor để xem cấu trúc thô

13. Nguồn lấy mẫu Malware

NguồnGhi chú
Contagio Malware DumpMiễn phí, cần password
KernelMode.infoMiễn phí, cần đăng ký
VirusShareMiễn phí
MalwareBazaar (abuse.ch)Miễn phí, cập nhật thường xuyên
theZooMiễn phí
MalshareMiễn phí

14. Tài liệu tham khảo & Luyện tập

  • Sách: Practical Malware Analysis – Michael Sikorski, Andrew Honig
  • Sách: Virus Research and Defense – Peter Szor
  • Luyện tập RE: reversing.kr, tuts4you (Lena’s Reversing for Newbies)
  • Thư viện: MOSSE Institute Reverse Engineering Library

Câu hỏi Trắc nghiệm

Câu 1. Mục tiêu chính của malware analysis là gì?

  • A. Viết lại phần mềm bị nhiễm
  • B. Cung cấp thông tin để phản ứng với xâm nhập mạng và xác định toàn bộ máy/file bị nhiễm
  • C. Chỉ xóa malware khỏi hệ thống
  • D. Cài đặt lại hệ điều hành

Câu 2. Host-based signature khác network signature ở điểm nào?

  • A. Host-based signature chỉ dùng trên server
  • B. Host-based signature phát hiện malware dựa trên hành vi trên máy nạn nhân; network signature dựa trên traffic mạng
  • C. Network signature chính xác hơn host-based signature
  • D. Cả hai đều giống nhau

Câu 3. Tại sao host-based signature hiệu quả hơn antivirus signature thông thường?

  • A. Vì chúng nhanh hơn
  • B. Vì chúng dựa trên hành vi malware, không phải đặc điểm của file, nên vẫn phát hiện được malware đã biến đổi hoặc đã bị xóa
  • C. Vì chúng dùng AI
  • D. Vì chúng miễn phí

Câu 4. Theo Verizon Data Breach Report 2015, bao nhiêu phần trăm mẫu malware là duy nhất với từng tổ chức?

  • A. 10–20%
  • B. 30–50%
  • C. 70–90%
  • D. 100%

Câu 5. “Mature” (trưởng thành) trong phản ứng sự cố malware có nghĩa là gì?

  • A. Reimage máy bị nhiễm
  • B. Phân tích log và network traffic
  • C. Thu thập intelligence: đánh giá impact, rủi ro, động cơ tấn công
  • D. Cài thêm antivirus

Câu 6. PE file là gì?

  • A. Private Executable – định dạng file bí mật
  • B. Portable Executable – định dạng file thực thi chuẩn trên Windows
  • C. Packed Executable – file đã được nén
  • D. Protected Executable – file được mã hóa

Câu 7. OEP trong context của PE file và unpacking là gì?

  • A. Optional Entry Point
  • B. Original Entry Point – địa chỉ lệnh đầu tiên của chương trình gốc trước khi bị pack
  • C. Obfuscated Entry Point
  • D. Output Entry Point

Câu 8. Mục đích của Packing/Packer trong malware là gì?

  • A. Làm file nhỏ hơn để tiết kiệm băng thông
  • B. Nén/mã hóa malware để che giấu mã thực, qua mặt antivirus và chống phân tích tĩnh
  • C. Tăng tốc độ thực thi
  • D. Tương thích với nhiều hệ điều hành hơn

Câu 9. Sau khi dump unpacked process từ memory, bước tiếp theo cần làm là gì?

  • A. Chạy lại file dump ngay
  • B. Sửa lại IAT (Import Address Table)
  • C. Xóa file gốc
  • D. Tải lên VirusTotal

Câu 10. Loại malware nào tự sao chép qua mạng mà không cần gắn vào file host?

  • A. Virus
  • B. Trojan
  • C. Worm
  • D. Rootkit

Câu 11. Rootkit có chức năng chính là gì?

  • A. Mã hóa file của nạn nhân
  • B. Che giấu sự tồn tại của mã độc khác trong hệ thống
  • C. Đánh cắp thông tin đăng nhập
  • D. Gửi spam

Câu 12. Downloader malware thường được dùng khi nào?

  • A. Khi cần gửi spam
  • B. Khi attacker lần đầu tiên xâm nhập vào hệ thống, dùng để tải malware thực sự về
  • C. Khi cần mã hóa file
  • D. Khi cần khai thác lỗ hổng

Câu 13. Botnet hoạt động dựa trên mô hình nào?

  • A. Peer-to-peer giữa các máy bị nhiễm
  • B. Tất cả máy bị nhiễm nhận lệnh từ cùng một C&C (Command-and-Control) server
  • C. Mỗi máy tự hoạt động độc lập
  • D. Thông qua email

Câu 14. Scareware là loại malware nào?

  • A. Malware ẩn trong hệ thống
  • B. Malware dọa người dùng để ép mua phần mềm giả mạo
  • C. Malware theo dõi hoạt động người dùng
  • D. Malware gửi spam

Câu 15. Information-stealing malware bao gồm các loại công cụ nào?

  • A. Firewall, IDS, IPS
  • B. Sniffer, keylogger, password hash grabber
  • C. Packer, crypter, builder
  • D. Rootkit, backdoor, RAT

Câu 16. Sự khác biệt giữa Targeted Malware và Mass Malware là gì?

  • A. Targeted malware rẻ hơn để phát triển
  • B. Mass malware nhắm vào mục tiêu cụ thể; targeted malware lây lan rộng
  • C. Targeted malware được tùy chỉnh cho mục tiêu cụ thể và rất khó phát hiện; mass malware cố gắng lây nhiễm càng nhiều máy càng tốt
  • D. Không có sự khác biệt

Câu 17. Static Analysis là gì?

  • A. Phân tích malware trong khi nó đang chạy
  • B. Phân tích malware mà không thực thi nó – kiểm tra code, cấu trúc file
  • C. Phân tích log hệ thống sau khi nhiễm
  • D. Phân tích network traffic

Câu 18. Dynamic Analysis có ưu điểm và nhược điểm gì?

  • A. Ưu: an toàn tuyệt đối; Nhược: chậm
  • B. Ưu: nhanh, đơn giản; Nhược: có thể bỏ sót hành vi, cần môi trường cô lập
  • C. Ưu: không cần công cụ; Nhược: không chính xác
  • D. Ưu: phân tích sâu nhất; Nhược: đắt tiền

Câu 19. Hybrid Analysis là gì?

  • A. Phân tích trên cả Windows lẫn Linux
  • B. Kết hợp static và dynamic analysis – tìm manh mối từ disassembly rồi xác nhận khi chạy thực
  • C. Phân tích bằng hai người
  • D. Phân tích cả malware lẫn phần mềm hợp lệ

Câu 20. Volatility là công cụ dùng để làm gì?

  • A. Phân tích PE file
  • B. Phân tích RAM dump (memory forensics)
  • C. Theo dõi registry
  • D. Phân tích network traffic

Câu 21. Công cụ nào dưới đây dùng để so sánh trạng thái registry trước và sau khi chạy malware?

  • A. Wireshark
  • B. IDA Pro
  • C. RegShot
  • D. Ghidra

Câu 22. Shellcode được định nghĩa như thế nào?

  • A. Script shell dùng để quản lý hệ thống
  • B. Tập hợp các instruction được inject và thực thi bởi chương trình bị khai thác
  • C. Mã nguồn của rootkit
  • D. Payload mã hóa trong botnet

Câu 23. Sự khác biệt giữa Staged và Stageless payload là gì?

  • A. Staged lớn hơn; Stageless nhỏ hơn
  • B. Staged dùng nhiều payload kết hợp; Stageless chứa tất cả mọi thứ trong một payload duy nhất
  • C. Staged chỉ dùng cho Linux; Stageless chỉ dùng cho Windows
  • D. Không có sự khác biệt

Câu 24. IAT trong PE file là gì?

  • A. Internal Architecture Table
  • B. Import Address Table – bảng chứa địa chỉ các hàm được import từ DLL bên ngoài
  • C. Instruction Analysis Tool
  • D. Integrated Analysis Table

Câu 25. Công cụ nào được dùng để phân tích tĩnh PE file?

  • A. Wireshark
  • B. RegShot
  • C. CFF Explorer / PE Studio
  • D. Process Monitor

Câu 26. VirusTotal được dùng trong bước nào của phân tích malware?

  • A. Memory forensics
  • B. One Minute Triage – tra cứu hash để xem malware đã biết chưa và tên gọi phổ biến
  • C. Unpacking
  • D. Reverse engineering

Câu 27. IoC (Indicator of Compromise) là gì?

  • A. Mật khẩu hệ thống
  • B. Các dấu hiệu cho thấy hệ thống đã bị xâm phạm (IP độc hại, hash file, domain, registry key bất thường)
  • C. Tên file thực thi
  • D. Tên người dùng bị compromised

Câu 28. Tại sao cần dùng Virtual Machine khi phân tích malware động?

  • A. VM chạy nhanh hơn máy thật
  • B. Để cô lập malware, bảo vệ máy thật, và có thể snapshot/restore trạng thái
  • C. Vì malware chỉ chạy được trên VM
  • D. Để tiết kiệm điện

Câu 29. Công cụ nào dưới đây là disassembler/debugger?

  • A. RegShot
  • B. Process Monitor
  • C. IDA Pro
  • D. Wireshark

Câu 30. Lệnh strings được dùng để làm gì trong malware analysis?

  • A. Đọc PE header
  • B. Trích xuất chuỗi ký tự có thể đọc được từ file binary (URL, IP, tên hàm, registry key,…)
  • C. Phân tích network traffic
  • D. Dump memory

Câu 31. RAT là gì trong context malware?

  • A. Registry Analysis Tool
  • B. Remote Access Trojan – phần mềm cho phép attacker điều khiển máy từ xa
  • C. Rapid Attack Technique
  • D. Random Access Tracker

Câu 32. Exploit Kit là gì?

  • A. Bộ công cụ để viết malware
  • B. Bộ công cụ tự động khai thác lỗ hổng trên trình duyệt/plugin để lây nhiễm malware
  • C. Phần mềm diệt virus
  • D. Công cụ phân tích PE file

Câu 33. Nguyên tắc “malware analysis là trò chơi mèo vờn chuột” có nghĩa gì?

  • A. Analyst và attacker không bao giờ tương tác
  • B. Khi kỹ thuật phân tích mới phát triển, tác giả malware tạo kỹ thuật chống phân tích mới, và ngược lại
  • C. Malware analysis là trò chơi
  • D. Chỉ có một người thắng

Câu 34. APT là viết tắt của gì và đặc điểm là gì?

  • A. Automated Protection Technique – kỹ thuật bảo vệ tự động
  • B. Advanced Persistent Threat – mối đe dọa dai dẳng nâng cao, thường được nhà nước bảo trợ, nhắm mục tiêu cụ thể trong thời gian dài
  • C. Active Process Tracking – theo dõi tiến trình
  • D. Anti-Phishing Technology – công nghệ chống phishing

Câu 35. Section .text trong PE file chứa gì?

  • A. Dữ liệu người dùng
  • B. Tài nguyên (icon, string, dialog)
  • C. Code thực thi (machine code)
  • D. Import/Export table

Câu 36. Tại sao không nên quá tập trung vào chi tiết khi phân tích malware?

  • A. Vì chi tiết không quan trọng
  • B. Vì malware thường rất lớn và phức tạp, analyst cần tập trung vào tính năng chính để không bị sa lầy
  • C. Vì công cụ không đủ mạnh
  • D. Vì mất nhiều thời gian

Câu 37. Process Monitor trong SysInternals dùng để làm gì?

  • A. Giám sát network traffic
  • B. Giám sát hoạt động filesystem, registry, process/thread trong real-time
  • C. Phân tích PE file
  • D. Dump memory

Câu 38. MalwareBazaar (abuse.ch) là gì?

  • A. Chợ bán malware
  • B. Cơ sở dữ liệu malware miễn phí để nghiên cứu bảo mật
  • C. Công cụ phân tích động
  • D. Sandbox online

Câu 39. Crypter khác Packer như thế nào?

  • A. Hoàn toàn giống nhau
  • B. Packer nén payload; Crypter mã hóa payload để ẩn hoàn toàn khỏi antivirus
  • C. Crypter chỉ dùng cho ransomware
  • D. Packer chỉ dùng cho rootkit

Câu 40. Backdoor khác RAT ở điểm nào?

  • A. Không khác gì
  • B. Backdoor chủ yếu tạo entry point bí mật để attacker vào lại; RAT cung cấp khả năng điều khiển toàn diện từ xa
  • C. RAT chỉ nhắm Windows; Backdoor nhắm Linux
  • D. Backdoor nguy hiểm hơn RAT

Câu 41. Ghidra là công cụ của tổ chức nào?

  • A. Microsoft
  • B. Google
  • C. NSA (National Security Agency) – mã nguồn mở
  • D. Kaspersky

Câu 42. Trong quy trình unpacking, tại sao cần đặt breakpoint tại OEP?

  • A. Để dừng malware
  • B. Để bắt đúng thời điểm toàn bộ payload đã được giải nén vào memory nhưng chưa thực thi, cho phép dump trạng thái sạch
  • C. Để ghi log
  • D. Để phân tích network

Câu 43. Phần mềm nào sau đây KHÔNG phải là PE viewer?

  • A. CFF Explorer
  • B. PE Studio
  • C. Wireshark
  • D. PE View

Câu 44. Launcher malware khác Downloader như thế nào?

  • A. Launcher tải malware về; Downloader khởi chạy malware
  • B. Downloader tải malware về; Launcher dùng kỹ thuật đặc biệt để khởi chạy malware khác (thường để đạt stealth hoặc leo thang đặc quyền)
  • C. Cả hai đều giống nhau
  • D. Launcher chỉ dùng cho virus; Downloader cho worm

Câu 45. Adware khác Spyware như thế nào?

  • A. Hoàn toàn giống nhau
  • B. Adware hiển thị quảng cáo không mong muốn; Spyware bí mật thu thập thông tin người dùng
  • C. Spyware hiển thị quảng cáo; Adware thu thập thông tin
  • D. Cả hai đều mã hóa file

Câu 46. Tại sao network signature tạo với sự hỗ trợ của malware analysis hiệu quả hơn?

  • A. Vì chúng miễn phí hơn
  • B. Vì analyst hiểu rõ giao thức C&C, traffic pattern thực sự → tỷ lệ phát hiện cao hơn, ít false positive hơn
  • C. Vì chúng nhỏ hơn
  • D. Vì chúng dễ viết hơn

Câu 47. Khi bị stuck khi phân tích một đoạn malware, nên làm gì?

  • A. Xóa malware và bỏ cuộc
  • B. Tiếp tục cố gắng mãi cho đến khi hiểu
  • C. Không dành quá nhiều thời gian vào một vấn đề, chuyển sang phần khác hoặc thử góc nhìn/công cụ khác
  • D. Nhờ antivirus xử lý

Câu 48. MS-DOS Header trong PE file có vai trò gì ngày nay?

  • A. Chứa code chính của chương trình
  • B. Chỉ còn là legacy – chứa stub nhỏ in thông báo “This program cannot be run in DOS mode” và pointer đến PE header thực sự
  • C. Chứa digital signature
  • D. Chứa icon chương trình

Câu 49. Tại sao Antivirus không thể hoàn toàn tin tưởng trong phát hiện malware?

  • A. Vì antivirus quá đắt
  • B. Vì hầu hết malware (70–90%) là unique với từng tổ chức, chưa có signature; malware mới và biến thể liên tục xuất hiện nhanh hơn khả năng cập nhật signature
  • C. Vì antivirus chạy chậm
  • D. Vì antivirus chiếm nhiều RAM

Câu 50. Cuốn sách nào được khuyến nghị cho việc học malware analysis trong bài giảng?

  • A. The Art of Computer Programming – Knuth
  • B. Practical Malware Analysis – Michael Sikorski & Andrew Honig
  • C. Clean Code – Robert Martin
  • D. Network Security Essentials – Stallings