Mục tiêu• Các bước phân tích sơ lược mã độc • Những kỹ thuật thường dùng • Một số công cụ dùng trong phân tích sơ lược... Phân tích thuộc tínhđối tượng mã độc • Đặc điểm file • Giá trị b
Trang 3Mục tiêu
• Các bước phân tích sơ lược mã độc
• Những kỹ thuật thường dùng
• Một số công cụ dùng trong phân tích sơ lược
Trang 4Các bước phân tích sơ lược
(Nguồn: JPCERT/CC)
Trang 5Phân tích thuộc tính
đối tượng (mã độc)
• Đặc điểm file
• Giá trị băm
• Các chuỗi ký tự
Trang 6Đặc điểm file
• File name
• File size
• Timestamp
• Thuộc tính file
• Công cụ có sẵn từ hệ điều hành
Explorer
Command: dir, attrib
Trang 7Xác định kiểu file
• Loại file
• Phần mở rộng
• Dấu hiệu nhận dạng
• Windows không có sẵn công cụ
• *nix command “file”
• Công cụ riêng: TrID (Windows, Linux)
Trang 8Loại file văn bản (text)
Mã nguồn
• Ngôn ngữ assembly
• Ngôn ngữ lập trình cao cấp (C, C++, Java, C# )
• Ngôn ngữ kịch bản (sh, Perl, Python, PHP…)
File cấu hình
• Cấu hình cho file thực thi, chương trình
• Có thể bị mã hóa
File tài liệu
• Readme, Changelog
• Có thể kèm theo hướng dẫn chạy hoặc biên dịch chương trình
File kết quả
• Log, danh sách, có thể chứa thông tin quan trọng
Trang 9Loại file nhị phân (binary)
• Microsoft Office (.doc(x), xls(x), ppt(x) )
• File PDF
• Zip, rar, tar, gz… (có thể chứa mã độc)
• Hình ảnh, âm thanh, video
Trang 10Loại file nhị phân thực thi
• IA32, x64, PowerPC, SPARC, ARM…
• PE Excutable, COFF, ELF
• Static/Dynamic
Trang 11Tính giá trị băm
file bằng cách sử dụng thuật toán băm 1 chiều
• SHA-1, SHA-2 (256, 384, 512)
• Windows: HashTab, MD5Summer
• *nix: md5sum, sha[1|224|245|384|512]sum
Trang 12Tìm kiếm chuỗi ký tự
• Tìm ra các chuỗi ký tự đọc được trong file
Kết quả tùy thuộc việc xác định đâu là chuỗi ký tự đọc được (có thể khác nhau theo công cụ)
• Nhiều khả năng tìm được thông tin hữu ích
Câu thông báo, đường dẫn, script,…
• Windows: BinText
• *nix: strings
Trang 13Phân tích chương trình bị nén
Trang 14Kiểm tra thông tin nén chương trình
• Xác định có bị nén hay không
• Xác định trình biên dịch
• Xác định công cụ đã dùng để nén
• PEiD
• Stud_PE
• CFF Explorer
Trang 15Giải nén chương trình
• Chỉ dùng công cụ tin cậy
• Chỉ dùng khi cần thiết
• Static: UPX, PE Explorer + Plugins
• Dynamic: IDA – Universal PE Unpacker Plugin
Trang 16Giải nén thủ công
• Tìm OEP (Original Entry Point)
• Dump memory image
• Tổ chức lại IAT (Import Address Table)
• Trước khi phân tích sơ lược
• Trước khi phân tích mã thực thi
Trang 17Phân tích so sánh kết quả
• Tự phân tích
Giá trị băm, Strings, Hành vi, chức năng mã độc
• Tìm kiếm kết quả đã có
Tên mã độc (Google, thông tin từ hãng anti-virus)
Giá trị băm (Google)
• Tuy nhiên có thể kết quả sai