Đầu tiên tôi xin nhắc lại một số khái niệm cơ bản về mã độc và phân tích mã độc. Định nghĩa: Mã độc là chương trình được cố ý thiết kế để thực hiện trái phép một số hành động gây nguy hại cho hệ thống máy tính. Đi cùng với sự phát triển của internet trong những năm gần đây; mã độc đang nhanh chóng trở thành mối nguy hại tiềm tàng ảnh hưởng đến người sử dụng, các tổ chức hay chính phủ trên toàn thế giới. Phân loại: Nếu như trước đây mã độc tấn công qua virus, worms, trojan hay attack script có khả năng ngăn chặn hiệu quả từ phía nạn nhân thì hiện nay các cuộc tấn công của mã độc thông qua Java applets hay ActiveX nguy hiểm và khó ngăn chặn hơn nhiều.
- Virus: là một đoạn mã độc tồn tại trong một chương trình và lây nhiễm qua các file hoặc chương trình khác khi chương trình bị nhiễm khởi chạy.
- Worm: là một chương trình riêng biệt có khả năng nhân bản lây nhiễm tự động trong hệ thống mạng.
- Trojan House: thay vì chèn vào một chương trình như virus, trojan giả mạo toàn bộ chính chương trình đó để đánh lừa người sử dụng.
- Attack script: đoạn mã độc được viết tấn công thông qua những lỗ hổng bảo mật trong chương trình của người sử dụng. Kịch bản tấn công phổ biến là khai thác tràn bộ đệm buffer overflow.
- Java applet – ActiveX: đoạn mã độc được đặt sẵn trong các trang web trên mạng, lợi dụng lỗ hổng trong sử lý Java- ActiveX của trình duyệt để thực thi tự động.
- Malicious mobile code: Loại mã độc trên thiết bị di động, được tải xuống từ xa và thực thi mà gần như không chịu sự can thiệp của người dùng.
Các phương pháp phân tích mã độc
Đi cùng với sự phức tạp của thiết kế và hành vi thực thi của mã độc là các kỹ thuật ngăn chặn việc phân tích hoạt động của mã độc. Có thể chia việc phân tích mã độc ra làm 2 loại: phân tích tĩnh và phân tích động mã độc.
- Phân tích mã độc tĩnh dựa vào mã thực thi để hiểu chi tiết luồng thực thi và hành vi của mã độc.
- Ưu điểm của loại phân tích này là người phân tích có thể hiểu rõ từng bước hoạt động của mã độc.
- Nhược điểm: Đối với những loại mã độc phức tạp hiện nay và trong tương lai, việc đọc toàn bộ mã thực thi của mã độc là cả một thách thức.
- Phân tích mã độc động là dựa vào hành vi thực thi của mã độc để đưa ra đánh giá về ảnh hưởng của mã độc đối với hệ thống. Thông thường việc phân tích động mã độc thường thông qua hệ thống máy ảo sandbox.
- Ưu điểm của việc phân tích này cho phép cái nhìn nhanh chóng và tổng quát về mã độc được phân tích.
- Nhược điểm: Với những hành vi bất thường của mã độc thì việc phân tích này còn hạn chế.
Cơ chế anti-analysis để chống lại việc phân tích mã độc
Hiện nay, ở một số loại mã độc đã có cơ chế phát hiện thực thi trên máy ảo hay phát hiện phân tích chương trình. Ví dụ như Trojan Zeus năm 2010, nó có một cơ chế khóa cứng cho phép biến đổi trojan này khi lây nhiễm vào một hệ thống nào đó thì chỉ có khả năng thực thi trên hệ thống đó. Cơ chế này giúp cho mã độc Trojan Zues chống lại hiệu quả trước việc phát hiện thực thi qua sandbox của một số anti-virus. Một kỹ thuật obfuscation được sử dụng trong các malware hiện nay đó là “packing”. Khi sử dụng kỹ thuật này, các các packers làm cho các chương trình AV nhận diện packer code đó là bình thường mà không phát hiện được mã độc bên trong nó. Một trình AV sử dụng kỹ thuật heuristics để phát hiện hành vi bất thường gây nguy hiểm trên hệ thống – ví dụ như khi một chương trình sử dụng bộ nhớ tạo bởi chương trình khác và tạo một kết nối bên trong nó.Khi bị phát hiện,các trình AV sẽ đặt một cờ để nhận diện chương trình đó như là một chương trình độc hại. Các mã độc với mục đích phát tán rộng với mục đích ăn cắp hoặc spam thường phải có sử dụng một giải thuật packing để che dấu hành vi của chúng. Chính vì vậy, khi một trình AV phát hiện được các giải thuật packing của mã độc sẽ có thể tạo chữ ký và diệt chúng một cách dễ dàng. Bên cạnh đó có thể nhắc đến những kỹ thuật chống dịch ngược sử dụng các hàm mã hóa, các kỹ thuật obfuscation, các kỹ thuật phát hiện tool debugger… được nghiên cứu phát triển sử dụng với mục đích bản quyền phần mềm nhưng cũng xuất hiện trong các loại mã độc. Đối với loại mã độc thông qua web, kỹ thuật obfuscation cho phép che dấu mã nguồn có chứa mã độc mà có thể đọc được bởi người sử dụng.Tuy nhiên kỹ thuật này hiện nay trở nên hạn chế do một số trình duyệt hay trình anti-virus có cơ chế cảnh báo khi người sử dụng mở một site chứa obfuscated code. Việc thêm vào các cơ chế anti-analysis có thể giúp cho mã độc trở nên tàng hình hơn đối với các anti-virus hay hệ thống phân tích mã độc; tuy nhiên điều này cũng làm hạn chế khả năng lây lan rộng rãi của loại mã độc.