Nhận được nhiều phản hồi tích cực của bạn đọc về chuyên đề phân tích, phát hiện và gỡ bỏ mã độc Pratical Malware Analysis Lab12-01, bài viết này chuyên gia an ninh mạng SecurityBox sẽ tiếp tục gửi đến bạn đọc những Phân tích, phát hiện và gỡ bỏ mã độc Practical Malware Analysis Lab12-02.
Phân tích mã độc Lab12-02 trong cuốn sách Practical Malware Analysis
Practical Malware Analysis: https://nostarch.com/malware
Mẫu mã độc của Lab12-02 có thể tải về từ: https://github.com/mikesiko/PracticalMalwareAnalysis-Labs
Phân tích
Lab12-02.exe thực hiện các hành vi:
- Copy nội dung của resource section có tên UNICODE LOCALIZATION trong cấu trúc PE file của Lab12-02.exe vào một buffer. Phần nội dung này đã được mã hóa
- Tạo một tiến trình SystemDirectory\svchost.exe nhưng không khởi chạy tiến trình đó ngay. Đường dẫn SystemDirectory được trả về từ hàm WinAPI GetSystemDirectory
- Giải mã và ghi đè resource section UNICODE LOCALIZATION vào không gian nhớ của tiến trình svchost.exe vừa tạo theo đúng cấu trúc PE file.
- Thực thi tiến trình svchost.exe thông qua hàm ResumeThread. Như vậy, mã độc thực hiện thay thế tiến trình đối với svchost.exe vừa tạo bằng đoạn code trong resource section của mình
- Sau khi thực hiện các thao tác trên thành công, Lab12-02.exe sleep 1 giây và tự kết thúc tiến trình của mình, tiến trình con svchost.exe do nó tạo trước đó trở thành tiến trình mồ côi.
- Tiến trình mồ côi svchost.exe nhận working directory là thư mục chứa file thực thi Lab12-02.exe. svchost.exe thực hiện tạo một file với tên practicalmalwareanalysis.log và ghi lại tất cả dữ liệu nhập từ bàn phím vào file này. Dữ liệu keylog được chia theo đề mục là tên chương trình mà người dùng đang thao tác nhập dữ liệu trên đó.
- Mã độc chỉ ghi lại keylog, không có hoạt động mạng hoặc thực hiện chức năng persistence (autorun, autostart, privilege escalation,…), tức là sau mỗi lần khởi động lại hệ thống, mã độc không tự động chạy và nó cũng không gửi dữ liệu keylog về bất cứ C&C server nào.
Phát hiện
Lab12-02.exe có thể phát hiện bằng signature:
- 20 byte tính từ file offset 5384 (1508h), là đoạn đầu hàm thực hiện thay thế tiến trình svchost.exe
- 20 byte tính từ file offset 4957 (135Dh), là đoạn đầu hàm trích xuất resource section UNICODE LOCALIZATION
Gỡ bỏ
- Phát hiện Lab12-02.exe: Tìm và diệt tiến trình svchost.exe bị thay thế -> xóa file Lab12-02.exe -> tìm trong cùng thư mục và xóa file practicalmalwareanalysis.log.
- Tìm và diệt tiến trình svchost.exe bị thay thế: Tiến trình svchost.exe là tiến trình con của services.exe. Nếu ta tìm thấy một tiến trình svchost.exe không phải là con của services.exe thì đó là một svchost.exe được tạo bởi mã độc. Để gỡ bỏ svchost.exe giả mạo:
+ Lấy struct PROCESSENTRY32 cho services.exe và các svchost.exe trong hệ thống.
+ So sánh PROCESSENTRY32.th32ParentProcessID của mỗi svchost.exe với
PROCESSENTRY32.th32ProcessID của services.exe. Nếu không trùng khớp,
chứng tỏ svchost.exe đang được xét chính là tiến trình giả mạo. Sử dụng hàm
TerminateProcess để kill tiến trình này.
Tổng hợp chuyên đề phân tích mã độc =>> XEM TẠI ĐÂY