Sau đây là khung để xuất về các kỹ thuật (Sẽ tiếp tục bổ xung theo thảo luận) :
AntiVirus
|I. Scan
|--I.1. Các mã nhận dạng MD5, SHA, CRC..
|--I.2. Scan theo string
------
Anh em tiếp tục bổ xung :
Sau đây em xin khơi mào phần scan
|I. Scan
|--I.1 Các mã nhận dạng MD5, SHA, CRC..
Scan bằng cách đối chiếu MD5
- MD5 toàn file. Cách này thì ít dùng, nhưng khá lợi thế vì thực tế rất nhiều hash MD5 nguyên mẫu virus trên mạng.
- Một số dùng MD5 một vùng nhỏ chứa thông tin quan trọng, như cấu trúc PE chẳng hạn.
|--I.2 Scan theo string
Đây là cách cổ điển nhất và cũng là thông dụng nhất hiện này. Theo cá nhân mình nghĩ phương pháp này tương ứng như sau :
I.2.1 Tại vị trí offset nhất định :
|- 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 1 file có phải là virus hay không.
Tác dụng thực tế : Cách scan này khá bị động với họ virus. Ví dụ nếu DungCoi 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 sẽ bất lực nhìn mẫu virus sau chỉnh sửa tươi cười
Bạn có thể coi ví dụ ở đây : http://www.virusvn.com/forum/showthread.php?t=1161
|- Theo vị trí offset tương đối : Ở cách này, địa chỉ offset sẽ được tính dựa vào một thành phần nào đó (Như Entry Point, Section thứ mấy ...)
Bạn có thể coi ví dụ scan dựa vào offset tương đối theo Entry Point tại đây : http://www.virusvn.com/forum/showthr...newpost&t=1846
Việc xét như thế này có thể mở rộng ra như offset : Entry Point + Số nào đó
Tác dụng thực tế : Việc mở rộng như thế này sẽ làm mở rộng dải virus có thể được nhận dạng. Ví dụ nếu bạn có chỉnh sửa một số byte 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ể bị nhận ra bằng 1 sign đã cập nhật theo cách này
I.2.2 Nhận dạng virus theo Heuristic một với một số string nhất định
|- Cũng bằng nguyên tắc scan string. Tuy nhiên với nguyên tắc nhận dạng 1 đoạn string nào đó (Bản chất với file thực thi là loạt các opcode) thường virus sử dụng để nhận dạng
Như ví dụ với một đoạn Script VBS sau :
Quote:
Set go = CreateObject(fgo) Set St = CreateObject(“Outlook.Application”) Set out = Wscript.CreateObject(“Outlook.Application”) Set MAPI = out.GetNameSpace(“MAPI”) Set a = MAPI.AddressLists(1) For X = 1 To a.AddressEntries.Count Set Mail = St.CreateItem(0) Mail.To = St.GetNameSpace(“MAPI”).AddressLists(1).AddressEnt ries(X) Mail.Subject = “Tên nội dung Mail” ‘Ví dụ : This is card Valentine Mail.Body = “Nội dung email” ‘Ví dụ : This is my lover Mail.Attachments.Add = AppVirus ‘Đây là phần file đính kèm Mail.Send Next |
Gỉa sử DungCoi có 1 file .vbs có bất kỳ, có đoạn code này nằm tại vị trí bất kỳ trong file thì DungCoi cũng có quyền "nghi ngờ" nó chính là một con worm chuyên gửi mail.
Vấn đề không đơn giản với một file dạng thực thi thường (.exe ...), nhưng chúng ta cũng có thể ngầm hiểu cách thức là tương tự ở đây.
Mở rộng một tý :
Rõ ràng với nguyên tác này khá mập mờ, không thể nhìn 1 đoạn code gửi mail kia mà quy kết virus được, như vậy quá nguy hiểm.
Như vậy chúng ta có thể dùng các toán tử HỢP (VÀ) , HOẶC để gia tăng sự chính xác trong phán đoán :
Ví dụ DungCoi dùng sign theo câu câu văn như sau :
Quote:
Nếu 1 file .vbs có string : Quote:
Quote:
|
Tác dụng thực tế : Phụ thuộc phương pháp tạo sign từ phía AV, kỹ thuật heuristic mang lại hiệu quả khác nhau, nhưng nhìn chung đây là một kỹ thuật mạnh
anh em tiếp tục nào
Link: http://virusvn.com/forum/showthread.php?p=10919#post10919