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 → .rsrc5. 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
.rsrc5.2. Quy trình Unpacking
6. Phân loại Malware
6.1. Các loại chung
| Loại | Mô tả |
|---|---|
| Virus | Tự sao chép bằng cách gắn vào file khác |
| Worm | Tự sao chép qua mạng mà không cần file host |
| Trojan | Giả dạng phần mềm hợp lệ để đánh lừa người dùng |
| Bot | Má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 |
| RAT | Remote Access Trojan – kiểm soát từ xa |
6.2. Các loại chuyên biệt
| Loại | Mô tả |
|---|---|
| Backdoor | Cho phép attacker điều khiển hệ thống bí mật |
| Botnet | Tập hợp máy bị nhiễm, nhận lệnh từ C&C server chung |
| Downloader | Chỉ tồn tại để tải malware khác về – thường dùng khi mới xâm nhập |
| Launcher | Dùng để khởi chạy malware khác, thường có kỹ thuật stealth |
| Information Stealer | Sniffer, keylogger, password hash grabber |
| Scareware | Dọa người dùng để mua phần mềm giả mạo |
| Spyware | Thu thập thông tin bí mật |
| Adware | Hiển thị quảng cáo không mong muốn |
| Spam-sending malware | Attacker 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 Malware | Targeted Malware |
|---|---|---|
| Mục tiêu | Lây nhiễm càng nhiều máy càng tốt | Nhắm vào mục tiêu cụ thể |
| Phổ biến | Loại phổ biến nhất | Ít phổ biến hơn |
| Khó phát hiện | Thấp – trung bình | Rất cao |
| Phân tích | Đơn giản hơn | Yêu cầu phân tích nâng cao |
| Ví dụ | Ransomware lan tràn, spam malware | APT, malware gián điệp nhà nước |
9. Các loại Phân tích Malware
- 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óm | Công cụ |
|---|---|
| System Internals | SysInternals Suite (Process Monitor, Autoruns, …) |
| Hex Editor | 010 Editor |
| PE Viewer | CFF Explorer, PE Explorer, PE View, PE Studio |
| Disassembler / Debugger | IDA Pro, x64dbg, Ghidra, WinDbg, Hopper |
| Network Monitor | Wireshark, CaptureBAT |
| Process Monitor | Process Hacker, Process Monitor |
| Registry | RegShot |
| RAM Analysis | Mandiant Redline, Volatility |
| Tiện ích | Cygwin (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ồn | Ghi chú |
|---|---|
| Contagio Malware Dump | Miễn phí, cần password |
| KernelMode.info | Miễn phí, cần đăng ký |
| VirusShare | Miễn phí |
| MalwareBazaar (abuse.ch) | Miễn phí, cập nhật thường xuyên |
| theZoo | Miễn phí |
| Malshare | Miễ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