Có 2 phương pháp phân tích mã độc chính đó là:
- Phân tích tĩnh: Code analysis và Gỡ rối (Debug)
- Phân tích động: Behavioral analysis và Điều tra hành vi của mã độc (malware forensics)
Cả 2 phương pháp phân tích mã độc này cùng có mục đích là giải thích cách hoạt động của mã độc, công cụ, tuy nhiên thời gian làm việc và kỹ năng cần có thì lại rất khác nhau. Phân tích tĩnh thường đòi hỏi người phân tích xem xét kỹ mã của virus (đã được chuyển sang dạng có thể hiểu được, như assembly, hay C), hiểu được luồng thực thi và các hành vi của nó thông qua mã đã dịch ngược. Phân tích động là phân tích cách hoạt động của virus khi nó được thực thi, nó kết nối đến đâu, lây lan như thế nào, cài đặt những gì vào hệ thống, thay đổi thành phần nào, hoạt động ra sao. Mỗi phương pháp đều có điểm mạnh, yếu riêng.
So sánh 2 phương pháp phân tích mã độc
Ví dụ như phương pháp tĩnh, với những loại virus phức tạp, thì để đọc hiểu được hết mã thực thi của nó là một việc rất khó; tuy nhiên phương pháp này cung cấp cho người phân tích cái nhìn hết sức chính xác về những gì mà nó làm. Phương pháp phân tích động, có ưu điểm là quá trình phân tích diễn ra nhanh hơn, dễ dàng hơn; tuy nhiên, không phải hành vi nào cũng phân tích được, đơn cử như những loại virus phát hiện ra công cụ phân tích thì nó sẽ không hoạt động nữa, hoặc virus chờ đến một lúc nào đó mới hoạt động. Vì thế, khi phân tích mã độc cần phải kết hợp cả 2 phương pháp trên để đạt được hiệu quả tốt nhất.
Công cụ sử dụng trong 2 phương pháp phân tích mã độc
Về công cụ, cả 2 phương pháp này cũng tương đổi khác nhau:
- Phân tích tĩnh được thực hiện dưới sự hỗ trợ của các công cụ debugger, disassembler, decompiler (như OllyDbg, IDA, WinDbg…).
- Trong khi phân tích động dựa vào các công cụ monitor hệ thống, mạng (như ProcessMon, network monitor, TcpView, Autoruns…).
Bài viết sau tôi sẽ tiếp tục giới thiệu một số công cụ hỗ trợ trong quá trình thực hành phân tích mã độc.