Trao đổi với tôi

http://www.buidao.com

5/31/10

[Anti Virus] Demo phương pháp nhận dạng virus giả dạng thư mục

RefLink: http://virusvn.com/forum/showthread.php?p=14529#post14529

Posted by DungCoi:

Dựa trên code cũ mình sử dụng trong project QuickVK, lần này mình chỉnh lại một số yếu tố :
- Chỉnh lại kích thước icon : Icon cũ 48x48 pixel, icon mới dùng 32x32 pixel
- Chỉnh lại một số tham số
- Chỉnh lại cái giao diện cho bớt rối


Không quá nhiều thay đổi. Số lượng icon sử dụng để nhận dạng là 1 icon duy nhất.
Sau đây là kết quả thực nghiệm :


(1) : Số mẫu virus giả dạng thư mục
(2) : Số các icon khác nhau trong các mẫu Virus giả dạng thư mục (Nhiều dòng virus có thể dùng chung 1 icon)

Sau đây là hình ảnh demo


Scan : C:\


Scan : …\Sample\FakeFolder

Bạn có thể tải chương trình demo trong file đính kèm

Cùng nhau test để xem nó nhầm nào

Posted by Gianghoplus:


Thank dungcoi. Scan với đống sample của mình thì nó detect được hơn 70%, tuy nhiên cách quét khá chậm

Mình cũng mạo muội xin chia sẻ 1 số "mánh" của mình để detect những mẫu virus này. Nói chung là rất hiệu quả nếu quét USB (chưa thấy trường hợp nhầm)

Ở đây mình có viết 3 hàm:
- bool IsHiddenFile()
- int SameFolderIcon() -> (trả về % tỉ lệ giống với icon folder)
- bool PathIsRemovableDisk()

Nhập cuộc:

Scan File:

Heuristic 1 (Ex: Z:\Image\ & Z:\Image\Image.exe)
Mô tả điều kiện:
+ Có 1 tập tin .exe giống tên với thư mục cha chứa nó

Điều kiện bổ sung:
+ SameFolderIcon() > 50%
+ Có ít nhất 2 bản sao của file này dính Heur bất kì

Heuristic 2 (Ex: Z:\Image.exe & Z:\Image\)
Mô tả điều kiện:
+ Có 1 tập tin .exe giống tên với 1 thư mục cùng mức
+ Thư mục đó bị ẩn.

Điều kiện bổ sung:
+ SameFolderIcon() > 75%
+ Có ít nhất 2 bản sao của file này dính Heur bất kì

Heuristic 3
Mô tả điều kiện:
+ SameFolderIcon() > 90%
+ Có ít nhất 3 bản sao của file này dính Heur bất kì

Heuristic 4 (Ex: Folder shortcut A, B, C, ... => Hidden file )
Mô tả điều kiện:
+ Có nhiều shortcut (nằm cùng mức) cùng trỏ về 1 tập tin .exe
+ Icon hiển thị của shortcut đó có thuộc tính SameFolderIcon() > 50%
+ Tập tin .exe được trỏ về có thuộc tính IsHiddenFile() == true

Heuristic 5 (Executable files hidden on USB)
Mô tả điều kiện:
+ Trong RemovableDisk có tập tin thực thi có thuộc tính ẩn
+ PathIsRemovableDisk() == true
+ IsHiddenFile() == true

Điều kiện bổ sung:
+ SameFolderIcon() > 40%

Heuristic 6 (Ex: Z:\autorun.inf & Z:\autorun.exe)
Mô tả điều kiện:
+ Tồn tại 1 tập tin autorun.inf nằm trong RemovableDisk hoặc HardDisk
+ Trỏ tới 1 file .exe, .pif, .src, .bat .... có thể thực thi

Scan Memory

Heuristic 1
Mô tả điều kiện:
+ Tập tin thực thi của tiến trình dính bất cứ Heur nào ở trên

Heuristic 2
Mô tả điều kiện:
+ Tập tin thực thi của tiến trình có thuộc tính IsHiddenFile() == true

Điều kiện bổ sung:
+ SameFolderIcon > 50%

Heuristic 3
Mô tả điều kiện:
+ SameFolderIcon() > 90%

Real-time detect

Heuristic 1 (Detecting action)
Mô tả điều kiện:
+ Tiến trình có hành động tạo file autorun.inf hoặc tự sao chép mình vào RemovableDisk.

Một số kĩ thuật của Heur này:
+ Checksum & Compare
+ Hook API (Ex: CreateFile, CopyFile, ...) sau đó dựa vào GetCurrentThreadId() hoặc GetCurrentProcessId() để xử lý tùy vào trường hợp

Heuristic 2 (Detecting action)
Mô tả điều kiện:
+ Có hành động sửa đổi giá trị một số vùng nhạy cảm của Registry (Ex: UserInit, Show/Hide file of Folder Option, ...)

Một số kĩ thuật của Heur này:
+ Hook API (Ex: RegSetValueEx ...) sau đó dựa vào GetCurrentThreadId() hoặc GetCurrentProcessId() để xử lý tùy vào trường hợp


Tạm thời post chừng đó đã, đến giờ cơm trưa rồi

Những "ngu kiến" nhận dạng Heur trên là do gianghoplus tự tổng hợp và suy luận được trong thời gian nghiên cứu về dòng virus autorun này. Có thể nó ko hoàn toàn chính xác hoặc có nhiều điểm chưa hợp lý, mong các bác chân thành đóng góp ý kiến hoặc bổ sung

Thân !

@Dungcoi: Share cho mình đống sample fake folder của cậu nhá


Posted by DungCoi:

Chỉnh lại thêm một tý.
Tỷ lệ nhận dạng là : 47/48 (1 icon có hình thù hơi mới mẻ )
Vẫn chưa thấy trường hợp nhầm trong máy mình.

Lại nhờ các bạn test tiếp
GiangHo test dùm xem có lên được % nào không

Mình vừa nhận được 20 sample từ GiangHo.
GiangHo chịu khó xem lại chút, nếu nhiều sample có thuộc tính System thì tất nhiên app phải có quyền Admin mới xử lý lấy icon được thì phải.

Mình vừa thử 2 cách :
1. Cho app chạy quyền Admin
2. Bỏ thuộc tính System trong các sample


Kết quả của 48 mẫu của mình + 20 mẫu từ GiangHo = 68 mẫu



Vẫn bỏ xót một mẫu có kiểu hình icon khác so với icon mình dùng để detect (Nếu giảm các tham số truyền vào cũng được nhưng như vậy sẽ mất tính an toàn)


PS : Do chương trình viết bằng VB6 chạy vài thứ liên quan tới đồ họa không tương thích ổn với Win7 + Vista nên để chương trình chạy ổn định bạn làm 2 thao tác sau
1. Chuột phải vào chương trình chọn Properties -> Chọn thẻ Compatibity -> Nhấn dấu chọn Disable desktop composition
2. Cho chương trình chạy quyền admin (Chuột phải chọn Run as Administrator)


Dowload: http://megashare.vn/dl.php/1230789