3. Môi trường triển khai tại Công ty An ninh Mạng Bkav
1.2. Thành phần Analyzing
Như đã phân tích ở những phần trước, với những tính chất nguy hiểm của Botnet hiện nay, nếu chỉ tiến hành các bước “phân tích theo hành vi” (CWsandbox) như ở hệ thống Botnet tracking cũ có thể sẽ không thu thập được đủ thông tin hỗ trợ quá trình theo dõi. Để đảm bảo thông tin thu được là đầy đủ và đáp ứng được nhu cầu, đồ án đề xuất hai phương pháp phân tích, đó là phân tích theo hành vi và phân tích theo mã (còn có cách gọi khác là phân tích nhị phân):
.1.2.1. Phân tích theo hành vi
Phân tích theo hành vi là một phương pháp phân tích chú trọng đến yếu tố: kết quả và tốc độ phân tích. Các kết quả này thường là những thông tin có thể “quan sát” được thông qua các môi trường theo dõi, giám sát malware ví dụ như: nhật ký thay đổi, log hệ thống, các gói tin, thống kê thay đổi cấu hình hệ thống trước và sau khi thực hiện phân tích19. Mô hình chung của kiểu phân tích này là tiến hành giám sát (monitor), thống kê các thay đổi xảy ra khi một chương trình được chạy trong môi trường thực hiện theo dõi:
Hình 13: Theo dõi thay đổi trên môi trường máy ảo Windows Vista Ultimate giả lập bằng phần mềm Virtual PC.
(ảnh trích từ tài liệu tham khảo)
Các công cụ thường được sử dụng trong phương pháp này đó là các Sandbox20, các “máy ảo”21 được cài đặt kèm các công cụ hỗ trợ như WireShark, Sysinternal Suite, WinDiff …
Trong đó, phương pháp sử dụng Sandbox để phân tích đang được đẩy mạnh hiện thay vì khả năng tự động hóa, giảm thiểu nhân lực, dễ dàng thao tác … Điển hình có thể kể đến là các mô hình Sandbox trực tuyến nổi tiếng như Threatexpert, GFI SandBox , Norman v…v… hay phần mềm Sandbox trên nền Desktop Sandboxie … Ứng với môi trường triển khai tại công ty An ninh mạng Bkav, ngoài sử dụng các công cụ kể trên, còn có thể sử dụng các máy LAB – là những máy tính chuyên dụng, được các chuyên viên tại công ty nghiên cứu và xây dựng nhằm phục vụ riêng cho mục đích phân tích, theo dõi theo hành vi của các malware. Bên cạnh đó, là dự án Bkav Sandbox và công nghệ SafeRun đã được các bộ phận nghiên cứu và đang 20 Sandbox là môi trường hỗ trợ thực thi các chương trình có độ tin cậy không cao mà vẫn đảm bảo được an toàn cho hệ thống.
21 Các hệ điều hành được mô phỏng bằng cách phần mềm VMWare, VirtualBox, Virtual PC …
tiến hành kiểm thử, hứa hẹn khả năng hỗ trợ phân tích sau này. Đây chính là những thuận lợi cho việc triển khai phân tích theo hành vi phục vụ cho hệ thống Botnet Tracking sau này.
Hình 14: Các công cụ thường sử dụng trong quá trình phân tích theo hành vi
Dựa vào các thay đổi hệ thống do các phần mềm này thống kê, chúng ta có thể xác định được các hành vi của malware một cách dễ dàng và hiệu quả. Tuy nhiên, các hackers hiện nay liên tục cập nhật các hình thức tấn công mới kết hợp, với các phương pháp chống phá các hoạt động nghiên cứu phân tích thì phương pháp phân tích theo hành vi này dần lộ ra các yếu điểm và đòi hỏi một phương pháp phân tích “cao cấp” hơn, đó là phân tích mã (hay phân tích nhị phân).
Hình 15: Các mã thực thi được chuyển thành dạng disassembly
Phương pháp này đề cao tính chính xác và đầy đủ thông tin khi đi phân tích nên chi phí và công sức đòi hỏi cũng không nhỏ. Bằng việc sử dụng các kỹ thuật Reverse Engineering cùng các công cụ hỗ trợ dịch ngược và phân tích, phương pháp này thực hiện chuyển dạng mã thực thi của các chương trình thành dạng disassembly22 tương ứng, giúp các chuyên viên phân tích có thể dựa vào đó, xác định các thông tin hành vi của một chương trình một cách đầy đủ và chính xác nhất, đảm bảo đáp ứng được yêu cầu cho hệ thống theo dõi.
Phương pháp này có thể cho kết quả phân tích phân tích được kỳ vọng đạt xác suất cao nhất. Tuy nhiên, nhược điểm lớn nhất của phương pháp này là nguồn nhân lực và chi phí thời gian. Để có thể đạt được một kết quả phân tích đáp ứng được các yêu cầu, đôi khi phải mất tới vài ngày hay hàng tuần lễ. Do đó, khi ứng dụng vào hệ thống Botnet Tracking, phương pháp này cần được tính toán hợp lý để đáp ứng được bài toán theo dõi thực tế. Bảng sau đây cho ta kết quả so sánh hai phương pháp phân tích trên, có thể là sử dụng làm cơ sở cho việc xác định phương pháp phân tích phù hợp với từng trường hợp:
.1.2.3. So sánh hai phương pháp
Phân tích theo hành vi (Behavior Analyzing)
Phân tích nhị phân/theo mã (Binary/Code Analyzing)
22 Dạng mã của ngôn ngữ lập trình Assembly - Xem thêm Disassembly trong tài liệu trên wikipedia
Yêu cầu nhân lực
Có thể sử dụng các nhân lực có chuyên môn kỹ thuật không cao, việc này phụ thuộc vào sự hỗ trợ của công cụ.
Tuy nhiên, nguồn nhân lực này có thể đào tạo được trong một thời gian ngắn.
Chuyên viên phân tích: có kinh nghiệm và chuyên môn cao trong việc phân tích mẫu. Thời gian đào tạo: không nhỏ. Nguồn nhân lực đào tạo khan hiếm.
Thời gian cho kết quả
Nhanh, trong một phiên thời gian phân tích kéo dài khoảng từ 5 – 60 phút.
Phụ thuộc vào mẫu đầu vào. Có thể kéo dài hàng ngày hay hàng tuần.
Kết quả phân tích
Thông tin những hành vi có thể có thể “quan sát” được
(thay đổi cấu hình hệ thống, các gói tin giao tiếp).
Gần như tất cả các thông tin hành vi và gói tin giao tiếp kể cả những thông tin “ẩn” (chỉ được thực thi tại một số thời điểm, hoàn cảnh xác định)
Đánh giá
Nhanh, có khả năng tự động hóa cao. Kết quả đạt được tương đương với phương pháp còn lại trong các trường hợp mẫu đơn giản (không mã hóa, không có các hành vi chống phá).
Cho kết quả đầy đủ và chính xác.
Trong nhiều trường hợp là rất chậm.
Không thể tiến hành tự động hóa.
Trường hợp tệ nhất Các mẫu “ẩn” hành vi, cácmẫu mã hóa thông tin giao tiếp.
Các mẫu thực thi các hành vi chống phá phân tích (anti- reversing)23
Bảng 2: So sánh hai phương pháp phân tích theo hành vi và phân tích nhị phân
Như vậy, có thể thấy cả hai phương pháp trên đều có ưu và nhược điểm riêng và vẫn có những trường hợp không thành công ở phương pháp này nhưng vẫn có thể đạt được kết quả tốt ở phương pháp còn lại. Vì vậy, đề xuất hệ thống phân tích được đưa ra ở đây là sử dụng kết hợp cả hai phương pháp trên, trong đó, có ưu tiên phương pháp phân tích theo hành vi hơn vì phương pháp có nhiều ưu điểm về thời gian và chi phí.
23 trong trường hợp này thì sử dụng một số phương pháp phân tích theo hành vi lại có khả năng đáp ứng được yêu cầu cao hơn
Hình 16: Sử dụng kết hợp hai phương pháp phân tích
Trong đó:
(1) tương ứng với mẫu đầu vào.
(2) tương ứng với kết quả phân tích theo hành vi
(3) tương ứng với luồng ứng dụng các kết quả phân tích theo hành vi để giảm bớt thời gian cho quá trình phân tích nhị phân.
(4) tương ứng với kết quả phân tích cuối cùng của hệ thống. Tuy nhiên, trong rất nhiều trường hợp hiện nay, các kết quả phân tích này có thể sẽ là “thừa thông tin”, sử dụng toàn bộ các kết quả phân tích này có thể sẽ làm “mờ” đi những thông tin chúng ta cần theo dõi. Do đó, các kết quả này cần qua một số thao tác xử lý. Hai đề mục kế tiếp đề cập tới việc xử lý các kết quả phân tích này: