Xây dựng hệ thống tự động phân tích mã độc hại
Bài báo này đề cập cách thức xây dựng một hệ thống phân tích mã độc thông thường và tự động dựa trên phương pháp quan sát hành vi (behavior analysis) sử dụng công nghệ máy ảo VMware.
Để xây dựng hệ thống tự động phân tích mã độc hại, người ta thường sử dụng VMware Server. Với VMware Server, có thể chạy nhiều hệ điều hành khách bên trong hệ điều hành chủ của mình. VMware Server hỗ trợ các hàm API giúp truyền lệnh dạng command line từ máy chủ vào hệ thống. Giao diện quản lý phát triển trên nền web tạo khả năng quản lý máy khách từ xa.
Ưu điểm lớn nhất của VMware đó là hỗ trợ tính năng Snapshot, đầy là tính năng giúp máy ảo có thể lưu trữ một trạng thái cần thiết ở thời điểm nào đó. Điều này giúp chúng ta luôn có một máy ảo sạch để tiến hành phân tích mã độc hại.
I. Hệ thống phân tích mã độc hại thông thường.
Hệ thống phân tích mã độc hại cơ bản thông thường bao gồm 2 máy tính (1 máy thật làm giả lập Internet, 1 máy ảo để phân tích). Trong đó, máy thật cài phần mềm InetSim để giả lập môi trường Internet (DNS, WebServer,IRC server...). Máy ảo để phân tích mã độc hại được cài các phần mềm sau:
- Sysanalyzer: Là một ứng dụng chạy thời gian thực tự động phân tích mã độc hại, sinh các log về các khía cạnh khác nhau của hệ thống, các tiến trình xảy ra... Nó được thiết kế để cho phép nhanh chóng tạo ra các báo cáo toàn diện về hành vi của mã độc hại lên hệ thống.
- Process Explorer: Là tiện ích theo dõi và kiểm tra hệ thống, có thể sử dụng như một công cụ gỡ rối cho các phần mềm cũng như các vấn đề phát sinh của hệ thống.
- Regshot: Là một tiện ích nhỏ để so sánh thông tin về registry trước và sau khi chạy mã độc hại. Nó sẽ ghi lại những thông tin nào bị thay đổi và thay đổi như thế nào.
- HijackThis: Là một tiện ích miễn phí dùng để quét những thay đổi của Windows do Spyware, Malware, hoặc những chương trình lạ tạo ra một cách nhanh chóng và chính xác.
- TCPView: Là một chương trình cho phép người dùng nhìn thấy các kết nối TCP và UDP trên máy của mình. Nó thể hiện cả địa chỉ cục bộ chính máy bạn và cả các địa chỉ IP khác, ngoài ra còn có thông tin về trạng thái kết nối TCP.
- Wireshark: Là chương trình bắt gói tin nổi tiếng giúp có thể nắm được hành động của Malware và theo dõi được các kết nối của nó với mạng như thế nào.
- Svchost Process Analyzer: Chương trình này sẽ liệt kê toàn bộ các thể hiện của tiến trình svchost.exe và kiểm tra các dịch vụ mà nó nắm giữ xem có chính xác không. Chương trình này được cung cấp miễn phí.
- Autoruns: Giúp quản lý một cách toàn diện vị trí mà các chương trình khởi động cùng với Windows và giúp người sử dụng toàn quyền xử lý chúng.
Các bước phân tích trong kỹ thuật quan sát hành vi
Bước 1. Bật chương trình Process Explorer.
Bước 2. Bật chương trình bắt gói tin Wireshark.
Bước 3. Khởi động chương trình SysAnalyzer.
Bước 4. Khởi động chương trình Regshot và chạy lấy thông tin registry hiện thời của hệ thống lần đầu tiên.
Bước 5. Load mã độc hại vào chương trình Sysanalyzer để chạy mã độc hại.
Bước 6. Chạy tiếp chương trình Regshot để so sánh thông tin registry đã thay đổi những gì.
Bước 7. Kiểm tra chương trình Process Explorer, Svchost Process Analyzer.
Bước 8. Kiểu tra chương trình Wireshark và TCPView để xem các thông tin về kết nối.
Sau toàn bộ các bước trên chúng ta sẽ thu được những thông tin về hành vi của mã độc hại như sau:
Thông tin sơ bộ mã độc hại:
- Có đúng file đó là mã độc hại hay không?
- Kích thước file.
- Thông tin về checksum (MD5, SHA1).
Về hành vi của mã độc hại: File này đã làm gì trên hệ thống thông qua kết quả của các thông báo và những gì ta đã quan sát được.
Quy trình phân tích trong phương pháp quan sát hành vi khá tốn thời gian, vì vậy quy trình này thường được tự động hóa.
II. Hệ thống phân tích mã độc hại tự động
Hệ thống phân tích mã độc hại này được xây dựng dựa trên hệ thống phân tích thông thường, tuy nhiên các bước phân tích ở trên được tự động hóa bằng các script kịch bản. Hệ thống hoạt động cụ thể các bước như sau (tham khảo tại http://malware.hocvienact.edu.vn):
Bước 1: Đầu tiên người dùng vào Website phân tích mã độc hại khai báo thông tin về email, thông tin sơ lược về mã độc hại, và upload file nghi ngờ là mã độc hại lên site.
Bước 2: Thông tin người dùng sẽ được gửi đến server và lưu lại, còn file nghi ngờ sẽ được đưa vào hàng đợi để chờ tới lượt xử lý. Có một môđun sẽ kiểm tra trạng thái và tiến trình của hệ thống, nếu tiến trình đang chạy thì sẽ chưa cho phép chạy file đó.
Bước 3: Khi file đưa vào trong hệ thống sẽ được đưa vào trong máy ảo, ở đó có cài các phần mềm tự động phân tích được điều khiển bởi 1 script viết bằng AutoIT, các hành vi của file này sẽ được ghi lại và sinh ra các log file để đưa ra ngoài máy ảo.
Bước 4: Các log file này sẽ được một môđun phân tích trích xuất thông tin thành dạng dễ đọc hiểu.
Bước 5: Thông tin được gửi trở lại website, lúc này sẽ có một môđun khác gửi kết quả phân tích file lên website.
Bước 6: Sau khi thực hiện xong hệ thống lại tự kiểm tra xem có file mẫu mã độc nào nằm trong hàng đợi không, nếu có lại tự động xử lý tiếp, quay lại từ bước 1. Quá trình cứ tiếp diễn như vậy (Hình 1).
Hình 1: Mô hình hoạt động của hệ thống phân tích mã đọc
Thành phần hệ thống
Hệ thống cho phép người dùng có thể gửi mẫu mã độc hại lên đến hệ thống. Mẫu mã độc sau khi được phân tích sẽ gửi trả kết quả lại cho người dùng qua website và email do người dùng khai báo. Vì vậy hệ thống sẽ gồm 2 thành phần chính.
+ Front- end (phần phía trước) là một website làm nhiệm vụ nhận các mẫu mã độc của người dùng gửi vào hệ thống, đưa kết quả đã phân tích lại cho người dùng.
Hệ thống sẽ phân tích lần lượt quét các hàng đợi dựa theo ưu tiên. Khi hết mẫu yêu cầu hệ điều hành ưu tiên sẽ chuyển sang các hệ điều hành khác. Khi hết mẫu cần phân tích hệ thống phân tích chuyển sang trạng thái nghỉ chờ mẫu của người dùng. Phần Webiste này được viết bằng PHP.
+ Back- end (phần phía sau) là phần hệ thống phía sau do nhà quản trị cấu hình với mục đích tự động phân tích mã độc hại, sau khi đã có kết quả phân tích của mẫu sẽ gửi kết quả lại cho người dùng bằng email cho người dùng đã khai báo và gửi thông tin công bố trên Website.
- Xây dựng hệ thống phía sau, phần này chịu trách nhiệm phân tích mẫu khi nhận được từ phía người dùng.
- Hệ thống xây dựng trên nền tảng Linux sử dụng distro Ubuntu. Để tiết kiệm chi phí hệ thống nên sử dụng công nghệ ảo hóa của VMware. VMware Server hỗ trợ việc quản trị thông tin quản trị trên nền web. Và VMware hỗ trợ các hàm API giúp chuyển được các lệnh điều khiển từ hệ thống tới các máy ảo.
- Trên nền VMware chúng ta xây dựng ba máy ảo là Windows XP, Windows 7, Windows Server 2003. Trên các máy ảo thiết lập các công cụ giám sát hệ thống phục vụ công việc phân tích mã độc (Hình 2).
Hình 2: Tiến hành phân tích mã độc hại
Chi tiết tiến trình hoạt động như sau:
Sử dụng một master - script Process.sh, script này sẽ chạy trên môi trường Linux và có trách nhiệm kiểm tra tiến trình hệ thống, nếu hệ thống rảnh rỗi thì sẽ tiến hành chọn mẫu thử chuẩn bị cho việc phân tích. Nó cũng chịu trách nhiệm phân biệt mẫu gửi sẽ cần được phân tích trên môi trường nào.
Sau đó master - script truyền lệnh tới script thứ 2 (Analysis.sh) trên môi trường Linux. Script này có trách nhiệm điều hành việc phân tích. Nó khởi động môi trường máy ảo và đưa mẫu thử vào trong môi trường và chờ lấy kết quả phân tích. Công việc còn lại trong môi trường Windows do 1 script viết trên nền AutoIT analysis.au3 đảm nhiệm. Nó tự động hóa quá trình phân tích, ghi log và tổng hợp kết quả cuối cùng.
Kết thúc chu trình kết quả được gửi lại lên Website và tiếp tục lại quá trình.
Triển khai ứng dụng:
Việc triển khai yêu cầu 1 máy tính có cấu hình cao bao gồm:
- Cài đặt Ubuntu 8.10 trên Hard disk.
- Cài đặt VMWare - Server trên Linux.
- Cấu hình network trên Linux và máy ảo Windows XP, Windows 2003,Windows 7 giao tiếp được với nhau.
- Sử dụng các công cụ cần thiết mô tả trong các đoạn script.
Cách sử dụng hệ thống
Người sử dụng truy cập vào website http://malware.hocvienact.edu.vn và vào phần gửi mẫu để gửi mẫu sau đó đợi khoảng 10 phút để nhận kết quả.
Giao diện tương tác người dùng
Giao diện kết quả phân tích
Đánh giá về hệ thống phân tích mã độc hại:
- Hệ thống xây dựng trên nền máy ảo nên khi ứng dụng có thể có những kết quả sai lệch. Một số mã độc hại có thể nhận biết môi trường ảo nên có thể không chạy.
- Xây dựng một môi trường đầy đủ để đoán nhận các hành vi của mã độc hại là công việc khó, vì thế sử dụng hệ thống này chưa thể kết luận hoàn toàn hành vi mã độc hại được.
- Hệ thống mới xuất ra dạng thô các thông báo về hành vi của mã độc hại, do vậy người sử dụng cần nắm được cách đọc log các công cụ quan sát.
- Hiện tại hệ thống mới hỗ trợ phân tích mã độc hại trên Windows XP SP2, Windows 7 và Windows Server 2003.
Hệ thống phân tích mã độc hại dựa trên công nghệ máy ảo VMware vẫn đang được xây dựng để ngày càng hoàn thiện. Người sử dụng có thể tải từ địa chỉ http://malware.hocvienact.edu.vn để tham khảo các đoạn mã