Quy trình phân tích mã độc và các tool sử dụng
KHÁI QUÁT VỀ QUÁ TRÌNH PHÂN TÍCH MÃ ĐỘC
1. Sử dụng sanbox để đánh giá ban đầu về mẫu https://zeltser.com/automated-malware-analysis/
2. Thiết lập môi trường máy ảo để kiểm soát, cô lập mã độc phục vụ quá trình phân tích https://zeltser.com/build-malware-analysis-toolkit/
3. Kiểm tra các thuộc tính file như: kích thước, version, chữ ký số... để có sơ loại và đưa ra các giả thuyết ban đầu
4. Thực hiện phân tích hành vi để kiểm tra các tác động vào môi trường của mẫu
5. Thực hiện phân tích tĩnh code để hiểu về các hành vi bên trong của mẫu
6. Thực hiện phân tích động để hiểu hơn về các khía cạnh khó hơn mà phân tích tĩnh không nhìn ra được
7. Nếu mẫu bị pack, nếu cầu thì anpack mẫu
8. Nghiên cứu memory để bổ sung các phát hiện khác https://digital-forensics.sans.org/media/Poster_Memory_Forensics.pdf
9. Lặp lại bước 4-8 có thể khác thứ tự đến khi đạt được mục tiêu phân tích
10. Viết tài liệu thật chi tiết, rõ ràng các hành vi, kỹ thuật của mẫu https://zeltser.com/malware-analysis-report/
PHÂN TÍCH HÀNH VI
- Trở lại các snapshot cần thiết của máy ảo
- Monitor hành vi(Process Explorer, Process Monitor, ProcDOT, Noriben).
- Phát hiện các tác động độc hại của mẫu (RegShot, Autoruns).
- Monitor mạng (Wireshark, Fiddler).
- Chuyển hướng mạng (fakedns, FakeNet-NG).
PHÂN TÍCH TĨNH - IDA PROC
PHÂN TÍCH ĐỘNG x64dbg/x32dbg hoặc OLLY
UNPACK CODE
- Xác định các trình pack (Detect It Easy, Exeinfo PE, Bytehist, peframe...)
- Thử anpack nhanh memory trên máy ảo(Scylla)
- Tìm OEP trong môi trường của debugger với OllyDumpEx.
- Để tìm OEP, dự đoán gần cuối của trình unpack và thiết lập breakpoint.
- Thiết lập thử một số breakpoint trong memory, stack để bắt được code clear
- Thử đặt breakpoint thử ở một số hàm hay dùng cho quá trình unpack như: VirtualAlloc, LoadLibrary...
- Thử đặt breakpoint thử ở một số hàm hay inject process như VirtualAllocEx, WriteProcessMemory....
- Fix bảng import Imports Fixer, UIF, pe_unmapper.
CÁC PHÂN TÍCH KHÁC
- Giải mã obfuscated sử dụng FLARE, xorsearch, Balbuzard
- Giải mã data trong quá trình phân tích động bằng các đặt breakpoint sau hàm giả mã để xem kết quả
- Vô hiệu hóa các chức năng antidebug
- Để ý vào các lệnh nhảy trong quá trình phân tích thông qua TLS, SEH, RET, CALL
- Nếu phân tích shell code dùng scdbg and jmp2it.
- Vô hiệu hóa ASLR thông qua setdllcharacteristics, CFF Explorer.
Nguồn https://zeltser.com/malware-analysis-cheat-sheet/
1. Sử dụng sanbox để đánh giá ban đầu về mẫu https://zeltser.com/automated-malware-analysis/
2. Thiết lập môi trường máy ảo để kiểm soát, cô lập mã độc phục vụ quá trình phân tích https://zeltser.com/build-malware-analysis-toolkit/
3. Kiểm tra các thuộc tính file như: kích thước, version, chữ ký số... để có sơ loại và đưa ra các giả thuyết ban đầu
4. Thực hiện phân tích hành vi để kiểm tra các tác động vào môi trường của mẫu
5. Thực hiện phân tích tĩnh code để hiểu về các hành vi bên trong của mẫu
6. Thực hiện phân tích động để hiểu hơn về các khía cạnh khó hơn mà phân tích tĩnh không nhìn ra được
7. Nếu mẫu bị pack, nếu cầu thì anpack mẫu
8. Nghiên cứu memory để bổ sung các phát hiện khác https://digital-forensics.sans.org/media/Poster_Memory_Forensics.pdf
9. Lặp lại bước 4-8 có thể khác thứ tự đến khi đạt được mục tiêu phân tích
10. Viết tài liệu thật chi tiết, rõ ràng các hành vi, kỹ thuật của mẫu https://zeltser.com/malware-analysis-report/
PHÂN TÍCH HÀNH VI
- Trở lại các snapshot cần thiết của máy ảo
- Monitor hành vi(Process Explorer, Process Monitor, ProcDOT, Noriben).
- Phát hiện các tác động độc hại của mẫu (RegShot, Autoruns).
- Monitor mạng (Wireshark, Fiddler).
- Chuyển hướng mạng (fakedns, FakeNet-NG).
PHÂN TÍCH TĨNH - IDA PROC
PHÂN TÍCH ĐỘNG x64dbg/x32dbg hoặc OLLY
UNPACK CODE
- Xác định các trình pack (Detect It Easy, Exeinfo PE, Bytehist, peframe...)
- Thử anpack nhanh memory trên máy ảo(Scylla)
- Tìm OEP trong môi trường của debugger với OllyDumpEx.
- Để tìm OEP, dự đoán gần cuối của trình unpack và thiết lập breakpoint.
- Thiết lập thử một số breakpoint trong memory, stack để bắt được code clear
- Thử đặt breakpoint thử ở một số hàm hay dùng cho quá trình unpack như: VirtualAlloc, LoadLibrary...
- Thử đặt breakpoint thử ở một số hàm hay inject process như VirtualAllocEx, WriteProcessMemory....
- Fix bảng import Imports Fixer, UIF, pe_unmapper.
CÁC PHÂN TÍCH KHÁC
- Giải mã obfuscated sử dụng FLARE, xorsearch, Balbuzard
- Giải mã data trong quá trình phân tích động bằng các đặt breakpoint sau hàm giả mã để xem kết quả
- Vô hiệu hóa các chức năng antidebug
- Để ý vào các lệnh nhảy trong quá trình phân tích thông qua TLS, SEH, RET, CALL
- Nếu phân tích shell code dùng scdbg and jmp2it.
- Vô hiệu hóa ASLR thông qua setdllcharacteristics, CFF Explorer.
Nguồn https://zeltser.com/malware-analysis-cheat-sheet/
Chỉnh sửa lần cuối bởi người điều hành: