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