Trao đổi với tôi

http://www.buidao.com

7/29/09

[Virus] Những kiểu hình ẩn mình của malware

Link: http://www.tin247.com/nhung_kieu_hinh_an_minh_cua_malware-4-21323046.html
Bạn thực sự đã hiểu hết những kiểu hình của Malware? Những phương thức ẩn mình của malware thường rất phức tạp, bạn có chắc chắn sau một thời gian lâu sử dụng máy bạn không tồn tại kẻ gây hại nào đó? Sau đây sẽ là một số kiểu hình ẩn mình của malware khiến bạn rất khó phát hiện sự tồn tại của chúng trên máy mình.


DLL Inject

Hacker viết một DLL (có khả năng inject) với main là hàm DllMain (sẽ được tự động thực hiện đầu tiên khi load lên memory). Sau đó, malware inject dll này lên một hay nhiều các process đang chạy trên máy. Đặc biệt là inject vào các process mặc định của Windows, như winlogon.exe, explorer.exe... Khiến ta rất khó khăn trong việc tìm và tiêu diệt những “kí sinh trùng” nguy hiểm này. Điển hình trong số đó là virus W32.Kavo:

Sau khi bị nhiễm kavo, nó sẽ tạo ra 2 file là %SystemRoot%\System32\kavo.dll (hoặc một vài cái tên khác ) và %SystemRoot%\System32\kavo.exe.

Tiếp tới kavo sẽ tiến hành inject tệp kavo.dll vào process explorer.exe.

Kavo.dll sau khi được inject còn “nguy hiểm” hơn những tệp exe. Nó có khả năng thực thi các lệnh giống như một tiến trình độc lập và còn có thể che mặt bởi chính phương thức “kí sinh” của mình. Mặc dù bạn đã xóa tệp kavo.exe nhưng nó mau chóng lại mọc trở lại. Đối với những kiểu malware dạng này, bạn có thể sử dụng các công cụ như Task Explorer, LordPE... để xem những image được nạp vào tiến trình.

Rootkit

Rootkit thực chất là sử dụng một tệp driver (*.sys) có khả năng tác động sâu vào hệ thống, những tệp driver này được viết & sử dụng giống như DLL với mục đích và khả năng thực hiện cao hơn.
Đặc điểm nổi bật nhất là nó có khả năng khống chế window vào cấp cao nhất (ring0)
Nhiệm vụ của kẻ xâm nhập là tiến hành tạo service cho những driver này bằng cách ghi vào registry (đối với những loại malware có tính đeo bám dai dẳng). Driver sau khi được nạp lên services sẽ không lệ thuộc vào các process như phương thức dll inject, chúng ta chỉ có thể terminal service để khống chế nó khi đã xác định được chính xác đối tượng. Ví dụ trong số đó là Rootkit.Win32.Agent.pp, sau khi nhiễm, nó sẽ tạo ra một file ở %System%\drivers\ctl_w32.sys và tạo ra một khóa để có thể tự động nạp lên service:

[HKLM\System\CurrentControlSet\Services\ctl_w32]
"Start" = "dword:0x00000003"
"Type" = "dword:0x00000001"
"ImagePath" = "%System%\drivers\ctl_w32.sys"

Thường thì những driver này gây xung đột với system nên rất hay gây cho máy bạn hiện tượng dump (máy bị đơ cứng cục bộ với màn hình xanh thông báo có lỗi xảy ra). Vì khả năng can thiệp sâu của rootkit nên nó nhanh chóng được ưa chuộng. Những chức năng điển hình nhất của rootkit là: thiết lập backdoor (cửa sau), ẩn tiến trình (hiding process), can thiệp vào log (khi có mức quyền cao nhất)...

Đối với những loại hình malware này, để tiêu diệt yêu cần bạn phải có kiến thức cao về hệ thống & rootkit. Ngoài ra, bạn có thể sử dụng một số công cụ phát hiện rootkit miễn phí như Sophos Anti-Rootkit, RootkitRevealer, Panda Titanium, GMER hay IceSword...

Hide Process & hooking

Giống như rootkit, hide process là một dạng mạnh sử dụng sự kết hợp giữa hooking kernel mode và chạy tiến trình. Những phương thức “siêu ẩn mình” rất khó để nhận biết, mặc dù bạn đã sử dụng các trình view process khá mạnh, nhưng hooking là một bài toán muôn hình muôn vẻ, bạn không bao giờ có thể chắc chắn rằng không có process nào đang ẩn mình trên máy tính bạn...
Kết quả kiểm tra khi sử dụng Process Master để soi một process đã được “ẩn mình”

Infect PE

Mối nguy hiểm tiềm tàng khi một trong các ứng dụng quen thuộc của bạn bị nhiễm malware theo kiểu infect dynamic code. Nghĩa là kẻ tấn công sẽ chèn thêm một đoạn byte code vào trước OEP (Original Entry Point) hay thay đổi đoạn code nguyên bản của một tệp thực thi quen thuộc đang chạy trên máy, như YahooMessenger.exe, firefox.exe, UniKeyNT.exe & Vietkey.exe...


Ảnh minh họa
File nguyên bản (orginal)

Ảnh minh họa
File Infected (đã chèn thêm code)

Ảnh minh họa


Sau khi được thay đổi cấu trúc code ở entry point (điểm chạy code đầu của chương trình), mỗi khi khởi động unikey sẽ thực hiện một hộp thoại rồi mới nhảy tới cửa sổ chương trình chính. Đây chỉ là một ví dụ minh họa cách thức infect lên một pe file.

Những phương thức trên chỉ là một vài kiểu hình quen thuộc mà malware cấp cao có thể sử dụng để ẩn mình trên máy tính. Hi vọng nó sẽ góp phần giúp bạn hiểu thêm phần nào!

(Theo QTM)