Wednesday 9 June 2010

@Virus OSA.exe

Sorry nếu cách làm này của DC nếu ko thật là "phân tích" nhé (Hì hù, trình độ thấp kém nên DC chỉ có thể làm cách này thôi)

Nguyên tắc khi phân tích virus :
1. Không tìm cách xóa virus trong hệ thống. Có thể bạn ngạc nhiên về điều này, nhưng thực ra, cái chúng ta muốn thực hiện đó là dừng hoàn toàn virus làm việc, còn việc lưu trữ chúng hoàn toàn là không cần thiết.
2. Khi phân tích cố tìm các thông tin mà virus tạo ra trong hệ thống (Registry thường có vai trò đặc biệt quan trọng)
3. Sau khi có thông tìn, đừng mừng vội, hãy thử diệt và khởi động lại máy thậm chí đôi lúc phải làm việc thật lâu chúng ta mới có thể khẳng định virus đã “chết” hay chưa (Tùy vào từng kiểu khởi động của virus mà chúng ta có thể xác định điều này).
4. Nếu bạn chỉ muốn nghiên cứu virus thì bạn thậm chí chẳng cần xóa virus khỏi hệ thống (Hì hì, phân tích và dừng chúng làm việc là đủ). Nếu bạn muốn diệt chúng (Như sửa máy cho người khác) thì trong quá trình xác định virus làm gì, hãy cố ghi chép lại các thông tin hệ thống để phục hồi (Với các file virus tạo ra phải xóa chúng) để tạo sự an toàn cho người dùng.
5. DC mong rằng các bạn không nên rập khuôn cứng nhắc theo 1 “công thức” nào đó để làm việc này.


Hôm trước, ngẫu hứng DC mò trong kho Sample virus của mình (DC có thói quen sưu tập mẫu virus tạo kho virus riêng, hiện nay cũng có có vài ... chục mẫu).
“Khùng khùng”, đang chạy máy thực DC ấn kích hoạt virus OSA.exe.
Vài ngày sau DC mới viết bài nhỏ về ProcessXP thì DC mới nhớ ra là hôm trc DC có kích hoạt chú virus này mà quên thịt nó.
Tưởng chừng đơn giản, chỉ cần ProcessXP và Autoruns như “truyền thống”. DC bất ngờ nhận ra mặt dù ngắt virus rất đơn giản (Chỉ với 1 file tiến trình tạo ra với tên OSA.exe) nhưng cái cách virus được khởi động làm DC cảm thấy khó hiểu.
Lâu lắm mới lại gặp dạng virus hấp dẫn.
Cũng lâu lắm mới lại dùng tới các công cụ khác của Sysinternals (Trừ ProcessXP Autoruns là các phần mềm quá quen thuộc).
DC sử dụng Registry Moniter để tìm hiểu cách ghi thông tin khởi động của virus với suy nghĩ : Virus gần như chắc chắn phải tìm 1 cách khởi động bằng một key nào đó trong registry (Mà ngay cả Autoruns cũng ko cập nhật).

Okie. DC bắt đầu :

1.
Đầu tiên, vẫn sử dụng ProcessXP. DC sử dụng tính năng phân tích String từ các tiến trình đang hoạt động. Đáng tiếc, phân tích ngay trong file không mang lại thông tin nào đáng giá, DC sử dụng tiếp tính năng phân tích String từ memory.



Một thông tin khá đáng giá, đường dẫn C:\Windows\System32\Tapi32init.exe
Chưa có gì đảm bảo nó là của virus tạo ra.
DC dò theo path này để xác định.
Okie, chính xác. Trùng khớp về dung lượng với file virus nằm tại C:\Windows\OSA.exe . Okie, về nguyên tắc để nhận ra 2 file là giống nhau hay ko chúng ta cần so sánh đến từng byte, hay đơn giản là so sánh mã MD5, CRC, SHA... đủ thứ. Nhưng với thông thường, DC cứ so sánh dung lượng cho lẹ (Chứ lấy đâu Tool mà làm mấy vụ kia, còn nếu tự phân tích mà so sánh thì chỉ đau mắt thôi hà ).


Ngoài thông tin giá trị này, DC còn nhận ra các hàm API mà virus sài. Hix hix, do trình độ yếu kém nên rốt cuộc DC chưa thể sử dụng các thông tin về hàm API này để làm gì.
Đọc các phần tiếp theo, bạn sẽ thấy thông tin chúng ta mới vừa nhận ra chỉ có tác dụng kiểm chứng mà thôi.

2.

Chúng ta cần hiểu một điều, bất kỳ kẻ viết virus “cẩn thận” nào luôn cố gắng các thông tin trong hệ thống được thiết lập chắc chắn để virus hoạt động ngon lành (Nói dễ hiểu là các thông tin trong registry để virus khởi động chẳng hạn).
Hì hì, vâng. DC cũng đã từng viết chúng, DC nghĩ kẻ khác cũng làm vậy.
Chúng ta phải làm sao ?
Sử dụng Registry Monitor để nhận ra chú virus làm gì với Registry của chúng ta.
Tuy nhiên bạn cần hiểu rằng, ko phải cứ kích hoạt virus là lập tức nó liên tục ghi vào các thông tin trong registry. Việc đó chỉ gây tốn kém nghiêm trọng các tài nguyên hệ thống mà thôi. Thường sau 1 thời gian nhất định thì virus mới làm việc ấy
=> Việc tìm thông tin này giống như mấy chú phóng viên chờ để chộp thông tin vậy.


Còn một điều mà bạn nên chú ý, nếu bạn dùng Registry Monitor bạn sẽ dễ dàng thấy các thao tác tạo thông tin của virus. Nó gần như là những thay đổi có tính “chiến lượt” của virus, với những thông tin ghi vào chứa đường dẫn nào đó thì bạn cần đặc biệt chú ý nó nhé. Hì hì. Bạn sẽ hiểu ngay trong lần “thực nghiệm” này của DC.
À, còn điều này nữa. Một số virus rất thận trong, chúng đọc các thông tin tại những điểm chúng định ghi vào. Nếu đã có dữ liệu cần ghi có sẵn thì chúng lại chẳng ghi vào. Hì hì, trong trường hợp OSA.exe, chúng ko làm vậy nhưng DC cần nhắc để các bạn thận trọng (Ko chỉ các thao tác tạo khóa mới quan trọng nhé).
-----------------------------------
DC ngắt phiên làm việc của virus bằng ProcessXP, kiểm tra lại các tiến trình có bị thư viện lạ Inject hay ko. Check RootKit.

Okie. Nó ko Inject, ko RootKit gì cả.
Chúng ta tiếp tục.

Phục hồi lại các thông tin về hệ thống (OSA khóa trình soạn thảo Registry...). DC sử dụng VNFix (Hì hì, thank MariotVN của BenhVienTinHoc nhé, bác đã ko chê trách em khi em viết virus, rồi em lại mang ơn bác khi liên tục phải sài Tool bác viết ).

Okie. Xong phần chuẩn bị.
DC kích hoạt lại virus (C:\Windows\OSA.exe).


Hì hì, Registry Monitor đã “chầu chực” theo dõi OSA.exe.
Các thông tin giá trị đã xuất hiện :



Okie. Một key nhé.
Key mà virus tạo ra, với giá trị chính là giá trị C:\Windows\System32\Tapi32init.exe , he he, DC gần như chắc chắn rằng đây chính là key khởi động của virus cùng hệ thống (Tuy nhiên chưa có gì là hoàn toàn chắc chắn nhé, chúng ta còn cần vài thao tác thử nghiệm để kết luận điều này).

Giờ sao nhỉ ? Hì hì
Lại Kill tiến trình virus và dùng VNFix nào.
He he, khởi động Registry lên và thử xóa key này.



Khởi động lại máy tính, nhìn vào process và ko thấy “chú em” OSA.exe.

Okie, tàn rồi 1 chú.

DC đi đến kết luận rằng virus OSA sử dụng key vừa rồi để khởi động và viết bài viết này.

THe End !

Nguồn: http://virusvn.com/forum/showthread.php?t=46

No comments:

Post a Comment