Scan theo string

Một phần của tài liệu VIRUS MÁY TÍNH (Trang 46 - 48)

Đây là cách cổ điển nhất và vẫn được sử dụng phổ biến trong hầu hết các AV hiện nay.

Tại vị trí offset nhất định:

2.1.3.1. Xét theo offset tĩnh hoàn toàn

Trong cách này thì chỉ đơn thuần xác định string nào, tại vị trí offset là bao nhiêu, ta sử dụng sign này để nhận dạng một file có phải là virus hay không. Nguyên tắc chọn string để nhận ra đâu là virus thường dựa vào tính đặc thù của từng virus mà string được chọn có thể khác nhau.

+Ưu điểm:

+ Nhược điểm:

Cách scan này khá bị động với họ virus, ví dụ nếu tìm cách chèn thêm hay xóa 1 byte trong file binary của virus (vẫn phải đảm bảo virus chạy được) mà byte này nằm ở trước phần offset sign thì tất yêu phương pháp này không thể nhận ra mẫu virus sau khi bị thay đổi.

2.1.3.2. Xét theo vị trí offset tương đối

Ở cách này địa chỉ offset được tính dựa vào một thành phần nào đó (như Entry Point, Section thứ mấy ..)

Việc xét như thế này có thể mở rộng ra như offset: Entry Point + Số nào đó.

Sau đây chúng ta xét một ví dụ với việc so sánh cấu trúc 2 biến thể khác nhau của dòng virus: w32.funnyIM.worm

Ban đầu chúng ta xác định địa chỉ Entry Point của 2 mẫu virus:

Chúng ta quan sát hình sau:

Chúng ta sẽ có 2 string tương đồng, nhưng ở 2 offset khác nhau (từ sau, mỗi khi nhắc đến các string từ file nhị phân, tôi sẽ viết dạng chuỗi các số hexan (thập lục phân) để tiện quan sát):

Nhìn 2 bảng số liệu trên chúng ta có thể tạo một mã nhận dạng chung cho cả 2 virus này là:

String: 64 75 6E 67 63 6F 69 00 Offset: Địa chỉ Entry Point + 60 + Ưu điểm:

Việc mở rộng như thế này sẽ làm mở rộng dải virus được nhận dạng. Ví dụ khi chỉnh sửa một số bytes như cách bên trên thực hiện nhưng nếu sau vị trí Entry point như cũ và vẫn còn tồn tại các byte như ban đầu thì vẫn có thể nhận ra bằng sign đã cập nhật theo cách này.

+ Nhược điểm:

Việc cập nhật đòi hỏi nhiều thông tin hơn phương pháp offset tĩnh

Scan engine phải có cơ chế làm việc phức tạp hơn để thích ứng với cơ chế scan này.

Do phương pháp này lấy vị trí offset dựa vào một phần thông tin nào đó của một định dạng file thích hợp nên bị giới hạn một số định dạng file.

Một phần của tài liệu VIRUS MÁY TÍNH (Trang 46 - 48)