itprofes
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Các kỹ thuật nhận dạng virus

Go down

Các kỹ thuật nhận dạng virus Empty Các kỹ thuật nhận dạng virus

Bài gửi  admin 29/4/2010, 2:58 pm

Đây là vấn đề rất thiết yếu và lý thú khi bạn tìm hiểu về virus nói chung và AV nói riêng, vì kiến thức ít ỏi nên mong nhiều member cùng thảo luận.

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.itprofes.com/forum-f18/topic-t276.htm

|- 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.itprofes.com/forum-f12/topic-t284.htm

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:
Code:
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
Chúng ta có thể nhận ra, đây là đoạn code gửi mail truyền thống.
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:
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

Và trong file đó còn có string

Code:
Set reg = CreateObject("WScript.Shell")
reg.regwrite
"HKEY_LOCAL_MAHINE\Software\Microsoft\Windows\Curr entVersion\Run\Start
App.Path + "\" + App.EXEName + ".exe"
Thì file đó là virus gì gì đó
Okie, chúng ta dễ dàng nhận ra đoạn sign này sẽ chắc chắn hơn sign trên.

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
admin
admin
Thiếu Úy III
Thiếu Úy III

Tổng số bài gửi : 627
Diem : 6517
Thank : 4
Join date : 24/03/2010
Đến từ : Bỉm Sơn - Thanh hóa

https://itprofes.forumvi.com

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết