Phương pháp phát hiện dựa trên mô phỏng (Simulation-based

Một phần của tài liệu Xây dựng hệ thống phát hiện, cảnh báo, ngăn chặn mã độc dựa trên hành vi (Trang 29 - 36)

verification)

1.4.2.1. Nội dung phương pháp

Phương pháp này phát hiện mã độc bằng cách thực thi một tập tin khả nghi trong môi trường được kiểm soát và quan sát hành vi của chương trình đó. Khác với phương pháp phát hiện mã độc dựa vào chữ ký xác định mã độc bằng cách thu thập các thông tin về chương trình đó như: thông tin giao tiếp mạng, tạo và ghi đè tập tin hệ thống ….Phương pháp phát hiện mã độc dựa trên hành vi quan sát trực tiếp và ghi lại tất cả các hành vi của chương trình và xác định xem hành vi đó có phải là hành vi gây hại không để có thể khẳng định đó là mã độc hay chương trình lành tính. Phương pháp này bám sát vào thực tế khái niệm mã độc: mã độc là chương trình có các hành vi gây hại cho hệ thống.

Ở các mục sau tác giả sẽ trình bày kỹ về các bước của phương pháp phát hiện mã độc dựa vào hành vi.

1.4.2.2. Phương pháp thu thập và diễn giải dữ liệu: giám sát động (dynamic monitoring)

Thu thập được hành vi của mã độc là bước đầu tiên và cũng là bước rất quan trọng để kiểm tra xem một chương trình đó có phải là mã độc được hay không. Để làm được điều này, mã độc đó sẽ được thực thi trên một môi trường mô phỏng. Bằng cách áp dụng những kỹ thuật giám sát trên môi trường mô phỏng có thể thu thập được những thông tin về hành vi của mã độc đó. Trên các hệ điều hành cũ, kỹ thuật được sử dụng là đánh chặn các nguồn thông tin đầu tiên về những tài nguyên được sử dụng bởi một chương trình. Trên hệ điều hành 32 bit và 64 bit, kỹ thuật khác được sử dụng là đánh chặn các cuộc gọi hàm hệ thống API. Để có thể thực hiện được một nhiệm vụ, bắt buộc các chương trình phải sử dụng các cuộc gọi hệ thống vì nếu không sử dụng thì hầu như chương trình đó không làm được gì. Một ví dụ về một cuộc gọi hệ thống được thể hiện qua đoạn nhật ký sau:

Để có thể thu thập được nhiều cuộc gọi hệ thống thì cần đánh chặn nhiều hàm hệ thống khác nhau. Dựa vào những điều kiện giám sát có thể phân loại thành các phương pháp thu thập dữ liệu như sau:

- Điều kiện giám sát thời gian thực: quá trình thực thi của các chương trình được quan sát trực tiếp trong môi trường mà không hạn chế thời gian. Để chặn các cuộc gọi hệ thống trong thời gian thực, các kỹ thuật chính được sử dụng là đánh chặn các hàm hệ thống. Một hạn chế của kỹ thuật này là có thể ảnh hưởng đến hiệu suất của hệ thống. Tuy nhiên, bằng cách chỉ đánh chặn những cuộc gọi hệ thống quan trọng có thể khắc phục được hạn chế này.

- Điều kiện thời gian thực với chức năng ghi lại: bằng cách ghi lại những cuộc gọi hệ thống chương trình được quan sát và ghi lại các trạng thái trung gian của môi trường giúp khôi phục môi trường về trạng thái ‘sạch’ngay khi có mối đe dọa được phát hiện.

- Hộp cát (Sandboxes): Mã độc được thực thi trong hộp cát sẽ ít gây ảnh hưởng tới hệ thống thật. Lợi thế của phương pháp này là cung cấp khả năng quan sát tốt hơn là quan sát trên thời gian thực. Để giảm tình trạng quá tải, chỉ có một số chương trình được quan sát. Tuy nhiên, hộp cát lại có một số hạn chế là: cung cấp không đầy đủ các dịch vụ như hệ thống thực và có thể dễ dàng bị phát hiện. Mã độc khi phát hiện được môi trường thực thi hộp cát thì thường thích ứng bằng cách thực hiện các hành vi lành tính. Một điểm hạn chế nữa mà hộp cát cũng không thực sự an toàn khi mã độc cũng có thể vượt qua được môi trường thực thi này và tác động vào hệ thống thực.

- Máy ảo (Virtual machines): Sử dụng máy ảo có thể mô phỏng được toàn bộ môi trường mà không bị hạn chế như hộp cát, đồng thời thực thi mã độc trên máy ảo cũng hạn chế được tối thiểu các rủi do. Máy ảo có thể mô phỏng được bất kỳ tài nguyên nào như trên hệ thống thực. Tuy nhiên, sử dụng máy ảo chỉ phù hợp với quá trình phân tích mã độc mà không phù hợp với việc phát hiện mã độc trên các máy tính cá nhân. Máy ảo cũng có hạn chế như hộp cát là có thể dễ dàng bị phát hiện. Tuy nhiên, sử dụng máy ảo vẫn an toàn cho hệ thống thực vì hiện nay vẫn chưa thấy có kỹ thuật nào có thể vượt qua được môi trường thực thi máy ảo để tác động lên hệ thống thật.

1.4.2.3. Thuật toán xác định mã độc

Những dữ liệu được thu thập được khi giám sát mã độc thực thi trong môi trường mô phỏng mới chỉ là những dữ liệu thô, chưa thể xác định được hành vi độc hại của mã độc. Nội dung phần này trình bày một số thuật toán phát hiện mã độc dựa trên các dữ liệu thô đó.

a, Hệ chuyên gia (Matching algorithms and models: expert systems)

Sử dụng hệ chuyên gia là phương pháp đơn giản nhất và dễ thực hiện nhất. Hệ chuyên gia là một hệ thống hoạt động dựa trên một bộ luật được xây dựng từ việc mô hình hóa các kinh nghiệm và kiến thức chuyên môn của các nhà phân tích mã độc[15]. Ví dụ về một số luật được thể hiện qua đoạn mã sau:

Một quy tắc luôn luôn xác định một hành vi cụ thể như: đọc tập tin, ghi tập tin, mở tập tin…Quyết định được đưa ra có thể là cho phép hoặc từ chối

hành vi của chương trình đó. Nếu hành vi đó không được xác định bởi bất cứ luật nào thì hành vi có thể được mặc định cho phép. Mô hình hoạt động của hệ chuyên gia được thể hiện qua Hình 1.5 [5]:

Hình 1.5: Mô hình hệ chuyên gia ngăn chặn hành vi dựa trên các luật

Khi một hành vi bị từ chối thì một số quyết định được đưa ra để xử lý chương trình đó, chẳng hạn như là chấm dứt chương trình đó để đảm bảo an toàn cho hệ thống. Ưu điểm của hệ thống này là dễ thực hiện và thực hiện nhanh. Tuy nhiên, nhược điểm của hệ thống này là tỷ lệ dương tính giả cao. Vì các luật chỉ dựa vào một số ít thông tin để quyết định do vậy dễ bị nhầm lẫn giữa chương trình lành tính và mã độc.

b, Thuật toán heuristic

Hệ thống heuristic phát hiện mã độc dựa vào nhiều hành vi được thu thập từ một chương trình bị giám sát. Khác với hệ chuyên gia chỉ xem xét các hành vi một cách riêng biệt. Nhờ vậy, hệ thống này có thể phát hiện được mã độc với độ chính xác cao hơn hệ chuyên gia. Về cơ bản, hệ thống heuristic gồm ba thành phần:

- Thành phần 1: xây dựng cơ chế kết hợp (Association mechanism). Các

cơ chế kết hợp đưa ra quy tắc kết hợp một số mã lệnh thành một hành vi cơ bản. Ví dụ về cơ chế kết hợp được thể hiện qua như sau:

Những hành vi cơ bản này sẽ được ghi nhãn để thể hiện một chức năng tương ứng hoặc được đánh giá định lượng đánh giá mức độ của một chương trình bởi một ngưỡng được đặt ra. Ví dụ sau mô tả những hành vi cơ bản được gây nhãn:

- Cơ sở dữ liệu các luật: cơ sở dữ liệu này định nghĩa các tiêu chí phát

hiện. Trong trường hợp của các hệ thống dựa trên trọng lượng có một ngưỡng được đặt ra. Nếu các hành vi của một chương trình bất kỳ vượt quá ngưỡng này thì kết luận đó là chương trình độc hại. Còn trong trường hợp hệ thống ghi nhãn, quy tắc phát hiện bao gồm một chuỗi các nhãn được gọi là cây phát hiện.

- Phương pháp phát hiện (Detection strategy): Phương pháp phát hiện

ảnh hưởng đến quá trình phát hiện của các luật. Trong trường hợp hệ thống dựa trên trọng lượng, phương pháp phát hiện là tích lũy. Còn trong trường hợp hệ thống dựa trên ghi nhãn thì phương pháp phát hiện là các các thuật toán tìm kiếm cây. Phương pháp phát hiện rất quan trọng vì nó ảnh hưởng đến hiệu suất và tỷ lệ phát hiện mã độc chính xác của các hệ thống. Hình 1.6 mô tả hai phương pháp phát hiện mã độc dựa trên thuật toán tìm cây [5].

Hinh 1.6:Mô tả hai thuật toán phát hiện mã độc Greedy và Taboo dựa trên các nhãn đánh dấu các hành vi

c, Thuật toán phát hiện máy trạng thái (state machines)

Cũng giống như thuật toán heuristic, thuật toán máy trạng thái dựa trên mô hình tuần tự của các cuộc gọi hệ thống. Các cuộc gọi hệ thống của các chương trình bị giám sát được ghi lại. Sau đó, hệ thống tiến hành so sánh các cuộc gọi hệ thống này với các đồ thị biểu thị hành vi gây hại đã được xây dựng trước. Nếu kết quả tìm kiếm cho thấy hành vi của chương trình khớp với hành vi gây hại được định nghĩa trước thì chương trình đó là mã độc. Nếu không thì chương trình đó là lành tính. Hình 1.7 mô tả ví dụ hành vi gây hại được biểu diễn thành đồ thị[11]:

Phương pháp này cũng có thể được sử dụng để mô hình hóa các hành vi của các chương trình lành tính. Qua đó có thể xác định được các hành vi gây hại từ chương trình đó. Ví dụ là có thể xác định được các macro virus trên các tập tin của các phần mềm văn phòng. Tuy nhiên, một điều khó khăn là không thể

khái quát mô hình được cho tất cả các ứng dụng. Vì có rất nhiều ứng dụng được sử dụng bởi nhiều người dùng khác nhau.

Hình 1.7: Đồ thị mô tả hành vi lây nhiễm của mã độc d, Máy học

Là phương pháp phân tích và học tập dựa trên tập các chương trình lành tính và tập các mã độc. Có nhiều thuật toán học khác nhau, nhưng dữ liệu đầu vào thường là thông tin các cuộc gọi hệ thống. Hình 1.8 mô tả một hệ thống sử dụng phương pháp học để phát hiện mã độc [13]:

Một cách tiếp cận khác để học hành vi là xây dựng đồ thị hành vi trước khi học. Hình 1. 9 mô tả cách tiếp cận này[14]:

Hình 1.9. Phương pháp học phát hiện mã độc dựa trên hành vi sử dụng đồ thị

Phương pháp học thường có tỷ lệ phát hiện chính xác cao trên tập các mã độc được học. Tuy nhiên thường tỏ ra kém hiệu quả trong việc phát hiện mã độc mới và thời gian phát hiện mã độc muộn. Mã độc có thể thực hiện được nhiều hành vi độc hại trước khi đến một “ngưỡng” thì bị phát hiện.

Một phần của tài liệu Xây dựng hệ thống phát hiện, cảnh báo, ngăn chặn mã độc dựa trên hành vi (Trang 29 - 36)

Tải bản đầy đủ (PDF)

(79 trang)