Ứng dụng cơ chế máy học trong chuẩn đoán virus máy tính

MỤC LỤC

Tạo lập cơ sở tri thức

Hành vi (act) là tập hợp các chỉ thị máy thực hiện một tác vụ, ví dụ đọc một cung đĩa chỉ định vào vùng nhớ ở địa chỉ xác định. Một cách đệ quy, hành vi được hình thành từ tập các hành vi khác (gọi là hành vi cơ bản – basic act). Trong đó pi là hành vi cơ bản thứ i, Q là hành vi ở mức tổng quát.

Trong một số trường hợp, Q là hành vi cơ bản của các hành vi tổng quát nào đó. Về mặt tổ chức, các hành vi cơ sở được xây dựng thành các lớp luật con. Các hành vi này là sự kiện trả lại giá trị luận lý, hoặc kết quả của biểu thức tính toán.

- Tách vùng nhớ chứa virus ra khỏi phạm vi kiểm soát của hệ thống, và - Chuyển mã lệnh virus vào vùng nhớ này…. Khác với các virus phổ biến lưu mã lệnh trong tổ chức file, boot virus chèn mã lệnh vào MTKĐ trên sector đầu tiên của đĩa (xem Phụ lục 2, Cấu trúc mẫu tin khởi động). BootVirus = <Tên gọi, Kích thước, Ngày cập nhật, Phiên bản, Tập chỉ thị>.

Thuộc tính Kích thước nhận các giá trị là bội số của độ dài sector (512 byte). Thuộc tính Tập chỉ thị chứa mã thi hành của boot virus, gồm hai phần mã nhảy 3- byte (nhảy ngang qua bảng thông số đĩa) và mã kích hoạt.

Trích chọn đặc trưng

Với cách tổ chức này, tập tri thức mô tả hành vi của boot virus là rất phong phú. Tương tự, một tập tri thức hành vi của các MTKĐ sạch cũng được xây dựng làm cơ sở đối chiếu cho quá trình chẩn đoán bObject.

Xây dựng không gian trạng thái

Dữ liệu của các chương trình con (địa chỉ lệnh đang thực hiện, địa chỉ trỏ đến lệnh sẽ thực thi, địa chỉ trở về…) sẽ được xếp chồng vào ngăn xếp của máy ảo theo nguyên tắc LIFO. - Nút gốc đặc tả sự kiện kích hoạt điểm vào lệnh đầu tiên - Nhánh đặc tả tình huống thực hiện các lệnh tuần tự. - Nút con đặc tả các biến cố rẽ hướng thực hiện của các lệnh nhảy.

- Nút lá đặc tả điểm dừng (khi kết thúc chẩn đoán hoặc phát hiện boot virus) Đối với các lệnh lặp, xử lý chu trình như một lệnh đơn tuần tự với cây nhị phân cục bộ trong lòng chu trình (Hình 3.5).

Đánh giá độ phức tạp và kết quả thực nghiệm

Các trường hợp nhầm tên do các virus sử dụng cùng tập lệnh khởi động nhưng điểm vào lệnh khác nhau. Các mẫu thất bại do virus sử dụng kỹ thuật mã hóa phức tạp (số vòng lặp giải mã lớn gây tràn ngăn xếp máy ảo). Chỉ sử dụng tập miền, bài toán B-class có thể dự báo boot virus không cần CSDL virus mẫu.

Với mỗi đối tượng eObject, nhiệm vụ của bài toán là (i) nhận dạng các file virus đã biết và (ii) dự báo khả năng eObject nhiễm một loại file virus lạ nào đó. Nhiệm vụ thứ nhất sử dụng mẫu nhận dạng virus do chuyên gia cập nhật thủ công [46]. Nhiệm vụ thứ hai được giải quyết bằng mô hình kết hợp CSDL (chứa thông tin đối tượng chẩn đoán) và CSTT (chứa tập luật nhận dạng virus).

Mô hình AMKBD (Association Model of Knowledge Base and Database) [55] cho phép phối hợp linh hoạt các phương pháp chẩn đoán truyền thống và chẩn đoán dựa trên luật để giải quyết đồng thời hai nhiệm vụ cơ bản của bài toán chẩn đoán E-class.

Giải thích thuật toán SID

Dữ liệu đã thay đổi kể từ lần kiểm tra gần đây với version cũ.

Hình 3.8: Lưu đồ chẩn đoán đối tượng E-class
Hình 3.8: Lưu đồ chẩn đoán đối tượng E-class

Đánh giá phương pháp chẩn đoán lớp virus E-class

- Một số F-virus tự kết xuất sâu trình ra hệ thống đích, khiến thủ tục SID không tìm thấy đối tượng mới trong CSDL VerifyDB nên bỏ sót mã độc. - Khi tác tử canh phòng bị vô hiệu (stop/disable), hệ sẽ không phát hiện được các virus sử dụng kỹ thuật buffering và khôi phục trạng thái file sau khi nhiễm. - Hướng dẫn người dùng cập nhật thông tin cho CSDL VerifyDB sau khi nâng cấp phần mềm (chỉ phù hợp cho người dùng am hiểu).

Ngoại trừ file virus đã được tách ra xử lý riêng trong bài toán E-class, lớp này chứa các đối tượng thực thi độc lập (stand alone program) thuộc các loại trojan horse/worm [67]. Khác với file virus khi lây nhiễm luôn để lại dấu vết trên vật chủ, malware là tập thi hành độc lập nên rất khó phân biệt với các ứng dụng hợp thức. Để nhận dạng malware, các tiếp cận truyền thống thường dịch ngược (disassembe) mã đích (target code) để phân tích hành vi [43].

Tuy nhiên nếu đối tượng được mật hóa (encrypted) bằng các công cụ nén ứng dụng như Petite, Aspack, Pklite hoặc UPX (Ultimate Packer for eXecutables), việc nhận dạng mã độc sẽ rất khó khăn và phức tạp [65]. Thay vì phân tích thủ công từng chỉ thị mã độc, tiếp cận mô tả đặc điểm tổng quát hướng heuristic (heuristic-based generic description) [50] sử dụng máy ảo để giám sát quá trình thi hành mẫu chẩn đoán và ‘tóm lấy’ (capture) đoạn mã nhận dạng của virus khi quá trình tự giải mã (decryption) hoàn tất [69]. Tuy nhiên do cài đặt phức tạp, tiêu hao tài nguyên và chạy chậm nên kỹ thuật chẩn đoán sâu trình bằng máy ảo chỉ thích hợp cho các hệ thống có cấu hình đủ mạnh.

Việc mã hóa và giải mã có thể trải qua nhiều giai đoạn gối nhau: dữ liệu ở giai đoạn này là mã lệnh giải mã ở các giai đoạn sau. “đóng gói” dưới dạng dữ liệu mật hóa nhằm làm nản lòng các chuyên viên phân tích virus của các hãng bảo mật. Trong bối cảnh các loại mã độc được sản xuất ồ ạt, cùng với sự xuất hiện ngày càng nhiều các phần mềm mật hóa phức tạp, việc phân tích ngữ nghĩa tập chỉ thị không còn hiệu quả.

Trong các nghiên cứu gần đây, một số tác giả đề xuất hướng giải quyết bài toán nhận dạng malware bằng mô hình ‘epsilon-gamma-pi’ (exploit–. data control–payload). Đầu tiên, phân tích sâu trình thành ba bộ phận có chức năng xác định [35], sau đó tách phần giống nhau cơ bản của các sâu trình (epsilon và pi) rồi tập trung xử lý phần gamma khác biệt (chiếm khối lượng lớn nhất của sâu trình). Trong luận án này, ý tưởng xử lý mã độc như các luồng dữ liệu nguy hiểm còn được vận dụng trong mô hình không gian véctơ, được trình bày ngay sau đây.

Bảng 3.7: Kết quả thực nghiệm bài toán chẩn đoán lớp virus E-class
Bảng 3.7: Kết quả thực nghiệm bài toán chẩn đoán lớp virus E-class

Ví dụ minh họa bài toán A-class

Kết quả cho thấy M cần được gán vào f1, nhóm có độ tương đồng dữ liệu cao nhất so với hai nhóm còn lại. Công việc tiếp theo là tính tỷ lệ mã độc của M so với các mẫu virus trong f1, đối sánh ngưỡng an toàn λ và thông báo kết quả. Theo công thức 3.5, wRatei là tỷ số giữa số lần xuất hiện của từ w trong mẫu virus thứ i và tổng số từ có trong mẫu đó.

Hình 3.10: Ma trận từ-tài liệu của CSDL virus mẫu
Hình 3.10: Ma trận từ-tài liệu của CSDL virus mẫu

Bàn luận về phương pháp chẩn đoán lớp A-class

Dễ nhận thấy rằng khi wRate = 1, bài toán A-class quay về bài toán chuỗi mã. Do đó để giảm tải quá trình xử lý ma trận dữ liệu, có thể loại bớt các trường hợp chắc chắc nhiễm bằng kỹ thuật chuỗi mã trước khi áp dụng bài toán A-class. Chi phí của mô hình KGVT gồm (i) chi phí tính toán (đếm số từ của M xuất hiện trong các lớp) và (ii) chi phí cập nhật ma trận dữ liệu.

Thứ nhất, do tần suất từ của các mẫu virus trong CSDL đã được tính ở giai đoạn học (trên máy chủ) nên chỉ cần chuyển số liệu này cho giai đoạn xử lý (trên máy trạm). Thứ hai, ma trận từ-tài liệu có 256 cột kiểu word nên chi phí cập nhật hàng ma trận chỉ tương đương với chi phí thao tác append một chuỗi unicode vào mảng string16 dài 512 byte của các ngôn ngữ lập trình. Hơn nữa, khi kết hợp mô hình KGVT với mô hình AMKBD theo nguyên tắc ‘không học lại những gì đã biết’, bài toán A-class chỉ tốn chi phí cho thao tác cập nhật ma trận dữ liệu vào lần chạy đầu tiên trên máy trạm.