CHƢƠNG II: MƠ HÌNH PHÁT HIỆN MÃ ĐỘC
2.3.1 Trích chọn đặc trƣng dựa trên PE Header
Các file mã độc thường cĩ định dạng PE, đây là một định dạng riêng của Win32. Để cĩ thể thực thi trên máy tính, nội dung file PE được chia thành các thành phần và cĩ mối liên hệ mật thiết với nhau. Nắm rõ cấu trúc PE sẽ giúp hiểu được cơ chế thực thi của một chương trình, từ việc tổ chức tới việc load lên bộ nhớ, các tài nguyên sử dụng, …. Hơn nữa, khi muốn sửa đổi một file, ví dụ như thêm vào một số đoạn mã, chỉnh sửa một số thành phần nhưng vẫn muốn chương trình thực thi bình thường. Do đĩ, cần phải nắm rõ cấu trúc PE file, mối liên hệ giữa các thành phần trong file để cĩ thể nhanh chĩng thay đổi file và thoả mãn yêu cầu đề ra. Trong đĩ PE Header là phần chứa nhiều thơng tin quan trọng nhất của 1 file.
PE Header là cấu trúc IMAGE_NT_HEADERS bao gồm các thơng tin cần thiết cho quá trình loader load file lên bộ nhớ. Cấu trúc này gồm 3 phần được định nghĩa trong windows.inc:
● FileHeader: bao gồm 20 bytes tiếp theo của PE Header, phần này chứa thơng tin về sơ đồ bố trí vật lý và các đặc tính của file. Trong trường này chúng ta cần chú ý tới trường NumberOfSections, đây là trường chứa số section của file. Nếu muốn thêm/xố section trong PE file, ta cần thay đổi tương ứng trường này.
● OptionalHeader: bao gồm 224 bytes tiếp theo sau FileHeader. Cấu trúc này được định nghĩa trong windows.inc, đây là phần chứa thơng tin về sơ đồ logic trong PE file.
Như vậy việc trích xuất thơng tin của phần PE Header cĩ thể cho ta được cái nhìn tổng quan về định dạng, nhiệm vụ, logic thực thi của file. Đây cũng chính là các đặc trưng thường được trích xuất để phân loại một file bình thường hay file chứa mã độc. Tuy nhiên, các đặc trưng này cĩ nhược điểm là kể tấn cơng cĩ thể thay đổi thơng tin một file mã độc sao cho giống với file bình thường.