Trong quy trình phân tích malware, một môi trường chuẩn là điều rất quan trọng. Bạn sẽ không thể làm theo kiểu thiếu công cụ gì thì lại tiếp tục tải các công cụ đó về để dùng được vì nó ảnh hưởng đến quá trình giám sát của các công cụ khác. Thay vào đó, chuẩn bị một môi trường chuẩn, đầy đủ các công cụ là điều rất quan trọng.

1. Môi trường host và phần cứng.

Chúng ta có hai lựa chọn. Một là host môi trường của chúng ta trên phần cứng, hai là trên phần mềm (vmWare, VirtualBox, QEMU, KVM, …).

Trên phần cứng, bạn chỉ cần thiết lập môi trường phân tích như thông thường và không cần phải quan tâm quá nhiều đến loại malware mà mình cần phân tích, tuy nhiên chi phí lắp đặt và vận hành lại không hề rẻ.

Trên phần mềm, bạn chạy môi trường phân tích trong một phần mềm ảo hóa, được sử dụng các thiết bị phần cứng ảo với số lượng vô tận và chi phí thấp. Hơn nữa chức năng Snapshot của các phần mềm ảo hóa cho phép bạn “Capture” lại một image của máy ảo với thời gian rất nhanh, bạn có thể trả máy ảo về thời điểm trước khi thực hiện một thao tác nào đó.

Ví dụ: Bạn có một mẫu malware có chức năng kết nối ra mạng, lần đầu tiên khởi động malware đó, bạn biết nó kết nối ra server “malware.org” với cổng 1604. Với địa chỉ cổng lạ và dưới 1000 thì bước đầu bạn có thể đánh giá nó là một phần mềm không thực hiện các chức năng mạng phổ biến. Sau khi thiết lập một server ảo có chức năng phân giải dns “malware.org” ra một địa chỉ server ảo khác. Bạn cần tái khởi động malware để biết nó gửi những gì ra ngoài, bạn sẽ phải restore lại bản snapshot đã tạo khi chưa khởi động malware. Sau đó để biết malware sẽ làm gì với những dữ liệu được trả về từ server, bạn lại tiếp tục đưa dữ liệu mẫu lên server ảo và kích hoạt malware lần nữa sau khi đã restore snapshot. Quá trình này cần càng ít thời gian càng tốt.

Dĩ nhiên phần cứng cũng có thể làm được điều này với một số chức năng như: Đóng băng ổ cứng, sử dụng Bootrom hay Ghost lại máy phân tích, tuy nhiên nó rất mất thời gian và khó có thể tạo nhiều snapshot như phần mềm.

2. Hệ điều hành.

Khi hỏi về hệ điều hành cho việc phân tích mã độc thì tôi tin chắc khoảng 95% số người trả lời sẽ chọn Windows XP SP3. Vì sao? Thứ nhất là vì Windows là hệ điều hành phổ biến của tất cả mọi loại mã độc (trừ mã độc dành cho mobile). Thứ hai là vì hệ điều hành chính là một huyền thoại về sự gọn nhẹ và đơn giản. Chỉ cần 512MB RAM là đã khá đủ cho việc phân tích các mẫu malware nhỏ đến vừa. Các dịch vụ trên XP cũng khá ít và đơn giản, không rắc rối và nhiều như các phiên bản sau của họ Windows. Và SP3 là phiên bản tốt nhất của hệ điều hành này. So với SP2, SP3 được phép cài đặt nhiều gói phần mềm từ Microsoft hơn.

Windows XP SP3 - Huyền thoại đến từ Microsoft
Windows XP SP3 – Huyền thoại đến từ Microsoft

Đương nhiên bạn sẽ cần tắt tất cả các dịch vụ ảnh hưởng đến mạng của Windows đi như Windows Update, Firewall, … để tránh cản trở malware hoặc các gói tin bị lẫn lộn vào các file network capture.

3. Mạng.

Đây là vấn đề bạn nên tự quyết định: Sử dụng hệ thống mạng ảo để phân tích hay cho phép malware kết nối ra mạng thật.

Nếu sử dụng hệ thống mạng ảo, bạn có thể gặp chút khó khăn trong việc tạo các dữ liệu mẫu lên server và phải vận hành một hệ thống có chi phí cao hơn, đổi lại việc phân tích sẽ diễn ra kín kẽ hơn.

Nếu cho phép malware kết nối ra hệ thống mạng thật, malware sẽ lấy về những dữ liệu thật và thực hiện những thao tác phá hoại thật. Bạn sẽ chỉ cần chạy một máy ảo (hoặc thêm một số máy để kiểm tra phương thức lây lan) để phân tích. Phương thức này chi phí thấp hơn nhưng việc phân tích có thể bị lộ và kẻ điều khiển malware sẽ lập tức “Deny” bạn theo nhiều cách. Đối với phương thức này, bạn nên sử dụng mạng NAT thay vì Bridge vì sẽ không bị lẫn các gói tin đi từ host machine vào các file capture.

3. Môi trường chạy ứng dụng.

Chỉ có hệ điều hành là chưa đủ để thực thi malware, một số loại malware được viết bằng .Net, Java, … nên bạn cần phải cài đặt các gói Net Framework (tất cả các bản từ 2.0 đến mới nhất) và Java Runtime Environment (nên dùng các bản cũ 32 bit vì tính tương thích), Adobe Flash Player, …

4. Các công cụ phân tích.

Dĩ nhiên đây cũng là một phần quan trọng bậc nhất. Một môi trường đầy đủ công cụ sẽ giúp cho việc phân tích diễn ra một cách nhanh chóng hơn.

  • Đầu tiên là các phần mềm giống như một người dùng thông thường hay cài đặt. Đó là trình duyệt, là phần mềm đọc file PDF, là bộ Office (nên dùng 2003 vì nó nhiều lỗi, malware dễ lợi dụng), … các phần mềm đọc file linh tinh.
  • Tiếp theo là bộ công cụ phân tích do chính Microsoft cung cấp: Sysintenals Suite. Bộ này bao gồm đầy đủ các công cụ để giám sát những gì đang diễn ra trong hệ điều hành Windows. Bạn có thể giám sát từ một máy tính thông thường đến một Active Directory. Cho phép giám sát tất tần tật mọi thứ. Các công cụ thường dùng: Process Explorer (procexp.exe), Process Monitor (procmon.exe), Strings, …
Sysinternals Suite
Sysinternals Suite

(Process Explorer cho phép bạn theo dõi mọi tiến trình trong hệ thống và cho phép bạn toàn quyền đối với các tiến trình đó. Một số chức năng tiêu biểu:

+ Cho phép xem danh sách các tiến trình dưới dạng tree, bạn sẽ thấy từng tiến trình và dịch vụ đang chạy dưới parent là tiến trình nào.

Process Explorer
Process Explorer

+ Xem đầy đủ các status và properties của các tiến trình. Như: thông tin file, hiệu suất sử dụng, Process ID, thông tin sử dụng disk và network, các string trên bộ nhớ và string trên đĩa, các kết nối TCP/IP đang sử dụng, các thread đã tạo, submit tiến trình lên Virustotal, …

Process Explorer
Process Explorer

+ Tìm kiếm thông tin trên bộ nhớ: chẳng hạn như những tiến trình nào đang sử dụng DLL này, tiến trình nào đang làm việc với file kia, …

Process Explorer
Process Explorer

Process Monitor cho phép bạn theo dõi mọi sự kiện trong hệ thống và thực hiện filter theo từng thông tin cần biết.

Process Monitor
Process Monitor
Process Monitor
Process Monitor

Trong suốt quá trình phân tích mã độc, đây chắc chắn là hai trong số các công cụ quan trọng nhất để phân tích malware.)

  • PEview: Công cụ phân tích header của file PE. Cho phép ta xem mọi thông tin có trong file PE như ngày giờ biến dịch, các section, các Import và Export Function.
  • Wireshark: Đương nhiên, công cụ không thể thiếu trong việc phân tích network, nó thay thế được cho gần như mọi công cụ phân tích network khác.
  • Regshot: Nếu như Process Monitor quá chi tiết và không quá xúc tích thì Regshot lại là kẻ thay thế trong việc theo dõi sự thay đổi của Registry. Chỉ cần trước khi kích hoạt malware bạn “chụp” lại Registry và “chụp” lại Registry lần nữa sau khi đã kích hoạt mẫu thì bạn sẽ có được thông tin về các giá trị bị thay đổi dưới dạng text dễ nhìn.
  • PEiD: Công cụ phân tích PE signature mạnh mẽ, cho phép bạn biết được file PE được tạo ra bằng ngôn ngữ gì, công cụ gì, version, và thông tin về packer đã được sử dụng. Dùng những thông tin này, bạn sẽ dễ dàng hơn trong việc phân tích file PE dựa vào các đặc trưng của từng ngôn ngữ lập trình. Ngoài ra PEiD còn hỗ trợ các plugin cho phép bạn thực hiện một số tính năng đặc biệt ngay trong cửa sổ chương trình như tìm OEP, view strings, calculate checksum, hoặc thậm chí là unpack.
PEiD
PEiD
  • w32Dasm, OllyDBG, IDA: Các công cụ dịch ngược file PE. w32Dasm từng được rất nhiều cracker sử dụng, tuy nhiên do hạn chế về tính năng nên phải chịu lép vế trước hai người bạn kia, tuy nhiên trong việc tìm kiếm một string nào đó tôi vẫn tích dùng nó hơn OllyDBG. Còn OllyDBG và IDA hiển nhiên đã quá nổi tiếng rồi. OllyDBG cũng đã gần chục năm không thay đổi gì nhưng lượng người dùng không bao giờ thuyên giảm.
  • Các công cụ unpack, trích xuất Resources như AspackDie, Reshack, …
  • Burp: Thường thì ta dùng nó làm proxy để thay đổi các gói tin ra vào.
  • ArpateDNS (tùy chọn): Chỉ dùng để theo dõi việc truy xuất DNS.
  • CheatEngine: Đôi khi ta cũng cần phải mò một thứ gì đó trên memory của process.
  • .Net Reflector: Công cụ dịch ngược mã nguồn .Net mạnh mẽ. Đôi khi nếu một file .Net không bị Obfuscated thì ta có thể dịch ngược chính xác mã nguồn của nó. Đây là điều tuyệt vời nhất ta có thể tưởng tượng ra.
  • Dependency Walker: Xem các hàm API và DLL được sử dụng.
  • VirusTotal.com: Công cụ quét và phân tích tự động hàng đầu. Đôi khi chỉ cần sử dụng VirusTotal là ta đã có được rất nhiều thông tin trong việc phân tích tĩnh, loại bỏ bớt số lượng công cụ cần dùng.
  • Malwr.com (sử dụng Cuckoo Sandbox): Sandbox rất mạnh cho việc phân tích động, đảm bảo bạn sẽ hài lòng khi sử dụng nó.

Đến đây thì cái môi trường của chúng ta đã khá đầy đủ, bạn có thể thêm một số công cụ khác hoặc loại bỏ bớt các công cụ mà bạn cảm thấy không cần thiết và Snapshot lại cái môi trường sạch này để sử dụng cho việc phân tích. Các bài hướng dẫn phân tích của AdminVietnam cũng sẽ chủ yếu dựa theo các công cụ này.

Đào Xuân Hưng – AdminVietnam.org