Tiếp cận máy học và hệ chuyên gia để nhận dạng, phát hiện virus máy tính

Giới thiệu đề tài 1.1.1. Lý do chọn đề tài Ngày nay công nghệ thông tin trở thành một lĩnh vực mũi nhọn trong công cuộc phát triển kinh tế xã hội. Cùng với công nghệ sinh học và năng lượng mới, công nghệ thông tin (CNTT) vừa là công cụ, vừa là động lực thúc đẩy quá trình công nghiệp hóa, hiện đại hóa đất nước. Trong giai đoạn hội nhập quốc tế, CNTT giữ vai trò đặc biệt quan trọng trong việc xử lý tính toán dữ liệu, kết nối thông tin liên lạc của các đơn vị tổ chức trong và ngoài nước. Bảo vệ an toàn dữ liệu cho các hệ thống tính toán, giữ vững an ninh mạng, đảm bảo liên lạc thông suốt, duy trì chất lượng phục vụ luôn là vấn đề quan tâm hàng đầu của các nhà quản trị hệ thống. Sự phát triển của Internet tạo điều kiện cho các loại hình xâm nhập luận lý trái phép vào các hệ thống CNTT cả chiều rộng (lây lan trên quy mô toàn thế giới) và chiều sâu (can thiệp vào hạt nhân hệ thống đích). Mỗi ngày các hệ thống mạng phải đối phó với hàng loạt đợt tấn công bằng mã độc (malicious, harmful code) của tin tặc, khiến nhiều hệ thống bị đình trệ, tắc nghẽn và tê liệt; gây thiệt hại không nhỏ. Dự án nghiên cứu về sự phát triển toàn cầu của Viện Hàn lâm Công nghệ Quốc gia Mỹ (National Academy of Engineering, USA - 2008) nhận định vấn đề an ninh thông tin và virus máy tính là một trong 14 thách thức công nghệ lớn nhất của thế kỷ 21 mà nếu giải quyết được, cuộc sống con người sẽ được cải thiện đáng kể [92]. Virus máy tính (từ đây gọi tắt là virus, phân biệt với từ “virút” trong y học) thực sự trở thành mối đe dọa thường xuyên và cấp bách của các hệ thống CNTT hiện nay. Trong bối cảnh đó, đề tài “Tiếp cận Máy học và Hệ chuyên gia để nhận dạng, phát hiện virus máy tính” được tiến hành nhằm góp phần giải quyết vấn đề bảo vệ an toàn dữ liệu cho các hệ thống CNTT ở Việt Nam. 1.1.2. Mục tiêu của đề tài Để phòng chống virus máy tính, các hệ thống CNTT sử dụng các phần mềm chống virus (anti-virus, gọi tắt là AV). Qua khảo sát, phần lớn các AV chỉ phát huy tác dụng trên các mẫu virus xác định, khả năng dự đoán virus mới còn hạn chế nên thường bị động khi có dịch virus bùng phát. Trên cơ sở xác định loại hình nghiên cứu của đề tài là nghiên cứu ứng dụng, mục tiêu của đề tài là tìm giải pháp cho bài toán nhận dạng virus máy tính và lựa chọn mô hình thích hợp để xây dựng Hệ Phòng chống virus máy tính hướng tiếp cận Máy học và Hệ chuyên gia MAVES - Machine Learning Approach to Anti-Virus Expert System (gọi tắt là MAV) với các chỉ tiêu cơ bản: - Nhận dạng nhanh, phát hiện chính xác các trường hợp lây nhiễm, tiềm ẩn của các virus đã biết trên hệ thống đích. - Có khả năng dự báo biến thể virus; ngăn chận kịp thời, chủ động phòng tránh các tình huống lây nhiễm khi hệ thống chưa cập nhật mẫu virus mới. MỤC LỤC DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH ẢNH vii KÝ HIỆU VÀ VIẾT TẮT ix CHƯƠNG 1 - MỞ ĐẦU 1 1.1. Giới thiệu đề tài 1 1.1.1. Lý do chọn đề tài 1 1.1.2. Mục tiêu của đề tài 2 1.1.3. Các giai đoạn thực hiện đề tài 2 1.2. Đối tượng, phạm vi nghiên cứu của đề tài 3 1.2.1. Virus máy tính và các hệ thống đích 3 1.2.2. Các hệ học và khám phá tri thức 3 1.2.3. Các hệ chuyên gia 4 1.3. Ý nghĩa khoa học và thực tiễn của đề tài 4 1.4. Cấu trúc của luận án 5 CHƯƠNG 2 – CÁC CƠ CHẾ CHẨN ĐOÁN VIRUS MÁY TÍNH VÀ MỘT SỐ VẤN ĐỀ LIÊN QUAN 7 2.1. Khảo sát virus máy tính 7 2.2. Các cơ chế chẩn đoán virus máy tính 9 2.2.1. Phát hiện virus dựa vào chuỗi nhận dạng 11 2.2.2. Phát hiện virus dựa vào hành vi 11 2.2.3. Phát hiện virus dựa vào ý định 12 2.3. Các hệ phòng chống virus máy tính 12 2.3.1. Các sản phẩm trong nước 12 2.3.2. Các sản phẩm nước ngoài 13 2.4. Tình hình nghiên cứu virus máy tính 13 2.4.1. Tình hình nghiên cứu, ứng dụng trong nước 14 2.4.2. Tình hình nghiên cứu, ứng dụng ở nước ngoài 15 2.4.3. Các vấn đề mở của công nghệ anti-virus 15 2.5. Hướng giải quyết của đề tài 16 2.5.1. Các luận điểm của đề tài 17 2.5.2. Giải pháp của đề tài 18 2.6. Các hệ cơ sở tri thức 19 2.6.1. Các Hệ chuyên gia 19 2.6.1.1. Cơ sở tri thức 20 2.6.1.2. Động cơ suy diễn 20 2.6.2. Các hệ Khám phá tri thức từ cơ sở dữ liệu 20 2.6.2.1. Giới thiệu 20 2.6.2.2. Tiến trình khám phá tri thức 21 2.6.3. Các Hệ học 22 2.6.3.1. Học giám sát 23 2.6.3.2. Học không giám sát 23 2.6.3.3. Các hình thức học 24 2.6.4. Các nghiên cứu máy học nhận dạng virus máy tính 25 2.6.5. Các nghiên cứu hệ chuyên gia nhận dạng virus máy tính 27 2.7. Tổng kết chương 29 CHƯƠNG 3 – CƠ CHẾ MÁY HỌC CHẨN ĐOÁN VIRUS MÁY TÍNH 30 3.1. Phân hoạch bài toán chẩn đoán virus máy tính 30 3.2. Các độ đo chất lượng chẩn đoán 31 3.3. Cơ chế máy học chẩn đoán virus máy tính 31 3.3.1. Bài toán 1: Chẩn đoán lớp virus C-class 31 3.3.1.1. Phát biểu bài toán 31 3.3.1.2. Tổ chức cơ sở dữ liệu và trích chọn đặc trưng 32 3.3.1.3. Thuật toán chẩn đoán lớp C-class 32 3.3.1.4. Phân tích, đánh giá thuật toán chẩn đoán lớp C-class 33 3.3.2. Bài toán 2: Chẩn đoán lớp virus D-class 34 3.3.2.1. Phát biểu bài toán 34 3.3.2.2. Tổ chức cơ sở dữ liệu 35 3.3.2.3. Tổ chức không gian tìm kiếm 36 3.3.2.4. Trích chọn đặc trưng 37 3.3.2.5. Luật nhận dạng virus lớp D-class 37 3.3.2.6. Thực nghiệm bài toán chẩn đoán lớp D-class 38 3.3.3. Bài toán 3: Chẩn đoán lớp virus B-class 39 3.3.3.1. Phát biểu bài toán 39 3.3.3.2. Tạo lập cơ sở tri thức 40 3.3.3.3. Tổ chức cơ sở dữ liệu 41 3.3.3.4. Trích chọn đặc trưng 41 3.3.3.5. Xây dựng không gian trạng thái 42 3.3.3.6. Cơ chế phân tích 43 3.3.3.7. Đánh giá độ phức tạp và kết quả thực nghiệm 44 3.3.4. Bài toán 4: Chẩn đoán lớp virus E-class 45 3.3.4.1. Phát biểu bài toán 45 3.3.4.2. Tổ chức cơ sở dữ liệu virus, trích chọn đặc trưng 45 3.3.4.3. Xây dựng cơ sở tri thức 46 3.3.4.4. Tổ chức cơ sở dữ liệu thông tin hệ thống 46 3.3.4.5. Thiết kế động cơ suy diễn 47 3.3.4.6. Giải thích thuật toán SID 47 3.3.4.7. Các tác tử hoạt động 49 3.3.4.8. Kết quả thực nghiệm 50 3.3.4.9. Đánh giá phương pháp chẩn đoán lớp virus E-class 51 3.3.5. Bài toán 5: Chẩn đoán lớp virus A-class 52 3.3.5.1. Lược sử vấn đề nhận dạng mã độc 52 3.3.5.2. Phát biểu bài toán 54 3.3.5.3. Tổ chức cơ sở dữ liệu virus 54 3.3.5.4. Biểu diễn dữ liệu virus bằng mô hình không gian vectơ 55 3.3.5.5. Rút trích đặc trưng 55 3.3.5.6. Ước lượng tỷ lệ mã độc 56 3.3.5.7. Ví dụ minh họa bài toán A-class 57 3.3.5.8. Kết quả thực nghiệm 59 3.3.5.9. Bàn luận về phương pháp chẩn đoán lớp A-class 59 3.4. Tổng kết chương 60 CHƯƠNG 4 – THIẾT KẾ XÂY DỰNG HỆ THỐNG VÀ THỰC NGHIỆM .62 4.1. Mô hình tổng quát của hệ 62 4.2. Tổ chức cơ sở tri thức 62 4.2.1. Mô tả đối tượng 62 4.2.2. Luật nhận dạng virus 64 4.3. Giai đoạn Học dữ liệu 65 4.3.1. Trích chọn dữ liệu 65 4.3.2. Phân cụm dữ liệu 65 4.3.2.1. Tổ chức cấu trúc dữ liệu 66 4.3.2.2. Thuật toán ACV gom cụm trên V-Tree 67 4.3.2.3. Đánh giá thuật toán ACV 71 4.3.3. Rút luật phân bố trị thuộc tính 73 4.3.3.1. Rút luật phân cụm trên V-Tree 73 4.3.3.2. Rút luật phân cụm trên ma trận dữ liệu 74 4.4. Giai đoạn Xử lý dữ liệu 76 4.4.1. Phân loại dữ liệu chẩn đoán 79 4.4.1.1. Phân loại đối tượng 79 4.4.1.2. So khớp luật phân nhóm 82 4.4.2. Chẩn đoán virus bằng kỹ thuật hợp nhất dữ liệu 83 4.4.2.1. Tinh chế dữ liệu trong tiến trình khám phá tri thức 83 4.4.2.2. Tinh chế dữ liệu NULL bằng kỹ thuật hợp nhất dữ liệu 83 4.4.2.3. Virus lạ và dữ liệu NULL 84 4.4.2.4. Dự báo virus lạ bằng kỹ thuật hợp nhất dữ liệu 86 4.4.2.5. Kết quả thực nghiệm 88 4.4.2.6. Bàn luận về kỹ thuật DF2RV 90 4.5. Kết quả thực nghiệm 90 4.5.1. Đánh giá hiệu quả nhận dạng virus của MAV 91 4.5.2. Đánh giá tốc độ thực thi của MAV 92 4.6. Tổng kết chương 94 CHƯƠNG 5 - KẾT LUẬN 95 5.1. Những đóng góp mới của đề tài 96 5.2. Hạn chế của đề tài, cách khắc phục 97 5.3. Hướng phát triển tương lai 98 5.4. Đề nghị về các nghiên cứu tiếp theo 99 CÔNG TRÌNH ĐÃ CÔNG BỐ 100 TÀI LIỆU THAM KHẢO 102 PHỤ LỤC 1 – KHẢO SÁT VIRUS MÁY TÍNH 108 PHỤ LỤC 2 – CÁC ĐỊNH DẠNG DỮ LIỆU NHIỄM VIRUS 117 PHỤ LỤC 3 – CÁC TÁC TỬ HOẠT ĐỘNG VÀ THUẬT TOÁN SID 128 PHỤ LỤC 4 - PHÂN TÍCH HỆ THỐNG PHẦN MỀM MAV 133 PHỤ LỤC 5 - PHÂN HỆ MÁY CHỦ MAVSR 137 PHỤ LỤC 6 - PHÂN HỆ MÁY TRẠM MAVCL 148

pdf32 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2927 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Tiếp cận máy học và hệ chuyên gia để nhận dạng, phát hiện virus máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
in cậy sau mỗi lần thí nghiệm - Tính giá trị trung bình các độ đo chất lượng (Bảng 3.2) - 34 - Bảng 3.2: Kết quả thực nghiệm bài toán chẩn đoán lớp virus C-class Lần Số virus thử nghiệm Số virus cập nhật Số virus phát hiện Số virus cảnh báo Số virus bỏ sót Độ chính xác (%) Độ dự báo (%) Độ tin cậy (%) 1 1564 1042 1035 31 498 99.33 5.86 68.16 2 1452 968 958 23 471 98.97 4.66 67.56 3 1572 1048 1040 32 500 99.24 6.02 68.19 4 1315 877 868 19 428 99.01 4.25 67.45 5 1389 926 914 20 455 98.70 4.21 67.24 Trung bình: 99.05 5.00 67.72 Thuật toán có độ chính xác cao (99.05%). Tỷ lệ lỗi do các mẫu virus thử nghiệm có sự ghép nối mã lệnh (phát hiện virus thứ nhất trước khi truy vấn trọn vẹn virus thứ hai). Tuy nhiên với tỷ lệ dự báo 5% (chủ yếu là gọi sai tên virus), thuật toán c-Diagnose khó đưa ra khẳng định dương khi chẩn đoán các virus mới (là các mẫu virus chưa cập nhật trong CSDL SC). Khi tập mẫu virus text đủ lớn, có thể bổ sung các mô hình học tiên tiến khác trên lớp dữ liệu văn bản text. 3.3.2. Bài toán 2: Chẩn đoán lớp virus D-class 3.3.2.1. Phát biểu bài toán D-class là lớp các virus macro lây vào tư liệu Microsoft Office, loại virus lợi dụng tập mã lệnh VBA (Visual Basic Application) để thực hiện các hoạt động lây nhiễm trên môi trường ứng dụng MSOffice [66]. Thông thường, các macro thi hành khi người dùng kích hoạt bằng lệnh Run. Không đợi (và không bao giờ đợi) ra lệnh, các virus macro tự thi hành nhờ các trigger thực thi tự động (như AutoExec) khi người dùng mở tư liệu MS Office. Hình 3.2 phân loại các đối tượng chẩn đoán thuộc lớp tư liệu MSOffice. Phân loại này cho thấy chỉ đối tượng nào có macro mới có nguy cơ nhiễm virus macro. Trong mô hình học khám phá tương đồng, các hàm R nhận dạng có dạng: (Xi = Vi) ^…^ (Xk = Vk) Trong đó mỗi Xj là các biến, Vj là các giá trị có thể có của các biến này, các phép tuyển của những giá trị có thể có, hoặc tập của những giá trị này. Theo quy ước, khi một biến mang tất cả các giá trị có thể có của nó trong một hàm nhận dạng - 35 - thì nó có thể được lược bỏ. Một hàm nhận dạng có trị TRUE đối với đối tượng chẩn đoán dObject khi các giá trị của các biến của dObject là một trong những hàm đó. Lúc đó ta nói rằng hàm nhận dạng được đối tượng dObject. Nếu không nhận dạng được đối tượng (hàm trả về trị FALSE), ta nói rằng hàm loại bỏ đối tượng này. Trong không gian chẩn đoán N đối tượng, khi hàm R nhận dạng nhiều hơn một đối tượng, tập con của các giá trị mà nó nhận dạng gọi là được nhận dạng bởi R. Ngược lại, cho một tập con các đối tượng, ta có thể tạo một hàm nhận dạng được phát sinh bởi tập con này bằng cách lấy phép tuyển các giá trị của các biến của chúng [9]. Ứng với mỗi đối tượng chẩn đoán dObject trong không gian SD, hệ sẽ xây dựng các hàm nhận dạng R sao cho có thể nhận dạng (và phân loại) các đối tượng có nhiễm virus macro hay không. Nếu có thì nhiễm virus macro đã biết nào (thuộc một trong các con Vj nào của nút “Virus macro”). Nếu không xác định được giá trị Vj cụ thể, có thể kết luận dObject nhiễm một loại virus macro mới. Cuối cùng, rút luật nhận dạng để bổ sung vào CSDL và CSTT của hệ. 3.3.2.2. Tổ chức cơ sở dữ liệu Mẫu virus macro trong CSDL SD của bài toán D-class được tổ chức như sau: MacroVirus = Trong đó thuộc tính Tập macro chứa danh sách các macro của virus. Lấy ví dụ, tập macro của virus Concept là chuỗi các macro name dạng: “AutoOpen, PayLoad, Vclose, AutoExit” Tư liệu Office Có macro Không macro Chờ thi hành Tự chạy Người dùng Virus macro Hình 3.2: Phân loại tư liệu MSOffice - 36 - Khi xử lý đối tượng (là virus mẫu hay đối tượng chẩn đoán), hệ sẽ trích ra danh sách các macro name của đối tượng rồi cập nhật vào CSDL (đối với mẫu virus) hoặc phân tích và phát hiện mối nguy hiểm tiềm ẩn (đối với đối tượng cần chẩn đoán). Bằng cách này, quá trình tổ chức không gian tìm kiếm và trích chọn đặc trưng tập mẫu virus (trên máy chuyên gia ở giai đoạn học) và đối tượng chẩn đoán (trên máy người dùng ở giai đoạn xử lý) là như nhau. 3.3.2.3. Tổ chức không gian tìm kiếm Mục tiêu của quá trình trích chọn đặc trưng nhằm khẳng định các phát biểu “dObject là tư liệu MSOffice” và “dObject có macro tự chạy”. Đầu tiên, tiến hành phân loại đối tượng theo đặc trưng dữ liệu (DOC, XLS hay PPT) và xác định các định dạng con (sub-format) cho từng phiên bản MSOffice. Kế tiếp, đọc và phân tích danh sách macro cho từng khối (paragraph) dữ liệu 512-bytes của dObject (xem Phụ lục 2). Cuối cùng, ánh xạ các khối dữ liệu có macro vào không gian tìm kiếm. Với mỗi đối tượng chẩn đoán dObject, không gian tìm kiếm được tổ chức dưới dạng ma trận vectơ XD(idx, mCount, mList) như hình 3.3, trong đó: - idx: số thứ tự paragraph - mCount: số macro có trong paragraph (mCount>0) - mList: danh sách mCount macro của paragraph Danh sách liên kết các macro của mỗi paragraph được tổ chức như sau: - mName: tên macro - mType: có tự thi hành hay không (true/false) - next: trỏ đến macro kế (macro cuối cùng, next = nil) idx mCount mList1 Macro1 mType next (…) MacroN mType nil … … … … … … … idxk mCountk mListk Macrok mType nil Hình 3.3: Không gian chẩn đoán dữ liệu lớp D-class - 37 - 3.3.2.4. Trích chọn đặc trưng Tập hành vi macro là nguyên liệu xây dựng các hàm nhận dạng. Thuật giải trích chọn tập MacroSet của dObject từ không gian chẩn đoán XD như sau: • Khởi tạo tập MacroSet rỗng • Đối với mỗi phần tử thuộc ma trận chẩn đoán XD, thực hiện: - Duyệt mCount macro - Nếu macro hiện tại là mới, đưa vào danh sách MacroSet (Hình 3.4). Trong thuật toán trích chọn tập hành vi virus macro ở hình 3.4, các lệnh (1), (3) và (8) có độ phức tạp O(1). Độ phức tạp của thuật toán phụ thuộc vào các lệnh (2) và (4). Trung bình mỗi virus macro có khoảng 10 hành vi (và cũng từng ấy số hành vi nhiều nhất trong mỗi paragraph). Hơn nữa, kích thước của các đối tượng chẩn đoán có thể lên đến hàng trăm MB nên i>>j. Vì vậy, độ phức tạp của lệnh (4) xấp xỉ O(1). Do đó độ phức tạp của thuật toán là O(n). (1) MacroSet ← ∅ (2) FOR i = 1 TO SizeOf(X) DO (3) aMacro ← X[i].mList (4) FOR j = 1 TO X[i].mCount DO (5) IF (aMacro.Nextnil) AND (Pos(aMacro.Name, MacroSet)=0) (6) THEN Insert(MacroSet, aMacro.Name) (7) ENDIF (8) aMacro ← aMacro.Next (9) ENDFOR (10) ENDFOR Hình 3.4: Thuật toán trích chọn tập hành vi chẩn đoán lớp D-class 3.3.2.5. Luật nhận dạng virus lớp D-class Trong hệ MAV, các hàm R nhận dạng đối tượng chẩn đoán thuộc lớp tư liệu MSOffice được cài đặt như sau: - 38 - X1 = Tư liệu MSOffice (True/False) X2 = Có macro (True/False) X3 = Macro tự chạy (True/False) X4 = Nhiễm virus macro (True/False) X5 = Macro 1 (True/False) X6 = Macro 2 (True/False) (…) Hàm nhận dạng đối tượng dObject có chứa virus macro đã biết (là một trong n virus macro đã cập nhật) có dạng: R: (X1= true) ^ (X2=true) ^ (X3 = true) ^ (X4 =true) ^ (X4+i =true) ∀ i = 1..n Luật nhận dạng virus macro M được phát biểu như sau: Luật 1: IF dObject là tư liệu MSOffice AND dObject có macro AND Macro này thuộc loại tự chạy THEN dObject là nguy hiểm Luật 2: IF dObject là nguy hiểm AND Macro có tên là Macro i (i=1..n) THEN Đối tượng nhiễm virus macro M[i] Luật nhận dạng virus macro mới được phát biểu như sau: Luật 3: IF dObject là nguy hiểm AND dObject không chứa các macro tự tạo THEN dObject nhiễm virus macro mới Luật thực thi khi chẩn đoán đối tượng nhiễm virus macro như sau: Luật 4: IF dObject nhiễm virus macro M[i] OR dObject nhiễm virus macro mới AND Người dùng đồng ý xóa macro THEN Loại trừ macro của dObject 3.3.2.6. Thực nghiệm bài toán chẩn đoán lớp D-class Áp dụng quy trình thực nghiệm như đối với bài toán C-class, kết quả nhận được trình bày trong bảng 3.3. - 39 - Bảng 3.3: Kết quả thực nghiệm bài toán chẩn đoán lớp virus D-class Lần Số virus thử nghiệm Số virus cập nhật Số virus phát hiện Số virus cảnh báo Số virus bỏ sót Độ chính xác (%) Độ dự báo (%) Độ tin cậy (%) 1 4256 2837 2793 1378 85 98.45 94.19 98.00 2 4122 2748 2702 1325 95 98.33 93.31 97.70 3 3946 2631 2597 1286 63 98.72 95.33 98.40 4 3678 2452 2431 1185 62 99.14 95.03 98.31 5 4320 2880 2849 1411 60 98.92 95.92 98.61 Trung bình: 98.71 94.76 98.21 Kết quả này cho thấy mô hình học tương đồng của bài toán D-class dự báo được 94.76% mẫu virus macro trên tập dữ liệu thử nghiệm. Tỷ lệ thất bại do các mẫu dữ liệu có mật khẩu và các trường hợp macro virus chen vào các macro tự tạo. Hướng giải quyết là thiết lập bộ tinh chỉnh luật dưới dạng tùy chọn điều khiển trạng thái các mệnh đề “dObject không chứa các macro tự tạo” và “Đồng ý xóa macro”. 3.3.3. Bài toán 3: Chẩn đoán lớp virus B-class 3.3.3.1. Phát biểu bài toán Lớp B-class chứa các boot virus lây vào các MTKĐ trên sector đầu tiên của đĩa mềm khởi động (xem Phụ lục 1). Có hai vấn đề cần giải quyết là (i) nhận dạng các boot virus cũ và (ii) phát hiện các boot virus mới trên MTKĐ. Dù được định dạng (format) dưới bất kỳ HĐH nào, các MTKĐ trên đĩa đều có nhiệm vụ tìm và tải các mô-đun khởi động sơ cấp của HĐH vào bộ nhớ rồi trao quyền để máy tính tiếp tục quá trình khởi động. Nếu một MTKĐ nào thực hiện các tác vụ lạ, nó không phải là MTKĐ hợp lệ và có thể là boot virus mới. Bài toán chẩn đoán B-class được giải quyết theo hướng phân tích hành vi [12] như sau: • Tổ chức hai CSDL dữ liệu: CSDL thứ nhất chứa thông tin về các boot virus đã cập nhật. CSDL thứ hai chứa các MTKĐ sạch phổ biến của các hệ điều hành. • Cung cấp các tập miền (domain theory) mô tả hành vi đối tượng trong hai CSDL nói trên. Tập miền thứ nhất định nghĩa các hành vi cơ bản của boot virus. Tập miền thứ hai mô tả các tác vụ thực hiện chức năng cơ bản của MTKĐ của các HĐH. Các tập miền được biểu diễn dưới dạng luật. - 40 - • Tải đối tượng chẩn đoán bObject vào không gian quan sát đồ thị hóa. • Phân tích hành vi, phân loại đối tượng chẩn đoán bObject: - Áp dụng các thuật giải tìm kiếm và suy luận trên không gian quan sát. - Nếu dữ liệu phản ánh các mô tả của tập miền thứ nhất, thông báo tình trạng nhiễm virus của bObject, xử lý bệnh, báo cáo kết quả, kết thúc. - Nếu dữ liệu phản ánh các mô tả của tập miền thứ hai, kết luận về tình trạng an toàn của MTKĐ, kết thúc quá trình. - Ngoài ra, thông báo về tình trạng khác thường của bObject (virus mới, device driver, sector hỏng, định dạng lạ…) • Kết thúc quá trình, bổ sung thông tin đối tượng vào các CSDL tương ứng (boot virus lạ vào CSDL thứ nhất, MTKĐ sạch vào CSDL thứ hai). 3.3.3.2. 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). Tri thức chuyên gia được biểu diễn dưới dạng luật với ngữ nghĩa: IF Hành vi p1 AND Hành vi p2 AND (…) AND Hành vi pn THEN Hành vi/Kết luận Q 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 đó. Ở mức suy diễn cuối cùng, Q là kết luận về tình trạng của MTKĐ [62]. 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. Lấy ví dụ, khái niệm ‘Is a boot virus’ được định nghĩa qua các hành vi cơ bản: - Lấy kích thước bộ nhớ, và - Giảm kích thước bộ nhớ, và - 41 - - Đặt lại kích thước bộ nhớ cho hệ điều hành, và - 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… Tập tri thức hành vi boot virus được mô tả dưới dạng luật như sau: Boot virus ← GetMemSize, DecMemSize, SetMemSize, SetMemVi, MovViCode GetMemSize ← ReadMem, GetValue DecMemSize ← SetNewSize, WriteMem (…) 3.3.3.3. Tổ chức cơ sở dữ liệu 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). Các mẫu tin boot virus trong CSDL SB có dạng: BootVirus = 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. Do mỗi sector đĩa dài 512 byte nên lệnh nhảy đầu MTKĐ chỉ có thể là nhảy gần (jump short) dưới 128 byte (mã E8) hoặc trên 128 byte (mã E9). Địa chỉ offset phần mã kích hoạt được định vị ngay sau lệnh nhảy bằng cách cộng thêm 2 (đối với E8) hoặc 3 byte (đối với E9) vào byte thứ hai của mã nhảy (ví dụ mã nhảy E85890, offset mã kích hoạt là 5A). 3.3.3.4. Trích chọn đặc trưng Mục tiêu của bước này nhằm tái hiện các hành vi của đối tượng trong thế giới thực. Đầu tiên, sử dụng một bảng tra chỉ thị dạng để dịch ngược các lệnh thi hành từ Tập chỉ thị. Kế tiếp, phân tích nội dung mã lệnh của đối tượng để xây dựng tập các tiền đề trong luật. Cuối cùng, tổ chức tập luật kết quả cho bước phân tích hành vi tiếp theo. Bảng tra chỉ thị dùng để cung cấp thông tin thông dịch (interpreter) ý nghĩa mã lệnh và định vị offset mã lệnh tiếp theo trong chuỗi mã thi hành của đối tượng. Ví dụ luật GetMemSize mô tả hành vi Lấy kích thước bộ nhớ như sau: - 42 - NẾU Code = $8B //mã chỉ thị MOV Và NextCode = $07 //mã chỉ thị MOV AX,[BX] Và BX = $0413 //BX: index register Và DS = 0 //DS: segment register THÌ Lấy kích thước bộ nhớ 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ú. Trong ví dụ trên, luật này chỉ mới mô tả các hành vi: - Có sử dụng AX làm ValueRegister mà chưa xét các BX, CX, DX, SI, DI… - Có sử dụng BX làm IndexRegister mà chưa xét SI, DI, BP… - Có sử dụng DS làm SegmentRegister mà chưa xét ES, SS… 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. 3.3.3.5. Xây dựng không gian trạng thái Trong kiến trúc IBM-PC, MTKĐ được ROM-BIOS nạp vào địa chỉ (0000:$7C00) nên các địa chỉ tham chiếu trong MTKĐ đều được xác định tuyệt đối. Để phát hiện các hành vi của boot virus trong bộ nhớ ở chế độ thực, một máy ảo (virtual machine) [13] được sử dụng với các đặc tính kỹ thuật cơ bản như sau: • Bộ chỉ thị: bộ chỉ thị của máy ảo tương thích với bộ chỉ thị của máy PC dùng họ vi xử lý 80x86/Pentium trong chế độ thực (không gồm các chỉ thị ở mức hệ điều hành, vốn chưa sử dụng trong quá trình khởi động máy). • Bộ xử lý lệnh: tương thích với cơ chế lấy/phân tích lệnh của bộ vi xử lý Intel 80x86/Pentium trong chế độ thực. Các chỉ thị của bộ xử lý lệnh được chia làm hai nhóm: các lệnh tuần tự và các lệnh nhảy. Khi gặp lệnh nhảy, một hàm lượng giá đặc biệt sẽ được triệu gọi để lựa chọn hướng xử lý tiếp theo. • Bộ nhớ làm việc: bao gồm bộ nhớ cho trình và bộ nhớ dữ liệu. • Bộ nhớ cho trình là không gian trạng thái của môtơ suy diễn trên máy thực. Để bảo vệ máy thực, một hàm ánh xạ chuyển đổi địa chỉ tương đối trên máy ảo thành địa chỉ luận lý tương ứng trên máy thật. Bộ nhớ cho trình cũng chứa các biến bộ nhớ “thanh ghi” và “cờ hiệu” giống như cách tổ chức của CPU. - 43 - • Bộ nhớ dữ liệu được tổ chức dưới dạng ngăn xếp. 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. Không gian trạng thái được tổ chức dưới dạng cây nhị phân [14] như sau: - 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). 3.3.3.6. Cơ chế phân tích Dựa vào các tập luật mô tả hành vi để phát hiện các thao tác của boot virus, quá trình lần vết trên cây thực hiện theo phương pháp tìm kiếm với tri thức bổ sung [63]. Khi duyệt cây, hành vi của bObject được thu thập dần vào danh sách tác vụ. Mỗi lần cập nhật hành vi, bộ phân tích sẽ đánh giá danh sách này đã hội đủ các hành vi kết luận (đạt đến mức khái niệm) hay chưa để quyết định duyệt tiếp hay dừng. Khi duyệt đến nút (biến cố rẽ nhánh), bộ xử lý lệnh máy ảo sẽ gọi một hàm lượng giá “thanh ghi cờ” để quyết định hướng rẽ nhánh thực hiện (Hình 3.6). Nếu phát hiện virus mới, hệ sẽ tự trích chọn đặc trưng của MTKĐ nhiễm rồi bổ sung vào CSDL để chẩn đoán các MTKĐ khác trong tương lai. Begin Hình 3.5: Cây chỉ thị nhị phân tìm kiếm - 44 - 3.3.3.7. Đánh giá độ phức tạp và kết quả thực nghiệm Giả sử cây chỉ thị nhị phân có n nút. Do chỉ duyệt trên một nhánh nào đó của cây nhị phân nên mỗi lần duyệt, số nút giảm đi một nửa. Trong trường hợp xấu nhất, thuật giải tìm kiếm phải thực hiện i lần sao cho 2i = n, tức là i = logn. Do đó, độ phức tạp của thuật giải xử lý lệnh của máy ảo có độ phức tạp là O(logn). Trong thực nghiệm, máy ảo chẩn đoán B-class của MAV có: - Bộ nhớ làm việc 64 KB RAM - 256 vector ngắt 4-byte đặt tại địa chỉ 0000:0000 của máy ảo - 512 byte thông tin điều khiển của máy ảo, timer cục bộ… - Các biến nhớ đóng vai trò của các thanh ghi gồm cờ nhớ, AX, BX, CX, DX, CS, ES, DS, SS, SP, BP, DI, SI và IP. - Bộ chỉ thị và bộ xử lý lệnh tương thích CPU 80x86/Pentium Để máy ảo hoạt động trên HĐH Windows32, MAV xây dựng thêm một hàm ánh xạ địa chỉ bộ nhớ giữa hai cơ chế định vị địa chỉ tương đối (segment:offset) của MSDOS và định vị địa chỉ bộ nhớ phẳng (flat memory) của Windows 32. Bảng 3.4: Kết quả thực nghiệm bài toán chẩn đoán lớp virus B-class Lần Số virus thử nghiệm Số virus cập nhật Số virus phát hiện Số virus cảnh báo Số virus bỏ sót Độ chính xác (%) Độ dự báo (%) Độ tin cậy (%) 1 180 120 118 55 7 98.33 88.71 96.11 2 174 116 114 51 9 98.28 85.00 94.83 3 184 123 119 57 8 97.01 87.69 95.65 4 168 112 110 49 9 98.21 84.48 94.64 5 178 119 116 53 9 97.75 85.48 94.94 Trung bình: 97.92 86.27 95.24 Hình 3.6: Hàm bổ sung tri thức Heuristic function (1) (2) (3) - 45 - Kết quả thực nghiệm (bảng 3.4) cho thấy bài toán B-class có độ tin cậy trên 95%. 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. Tuy nhiên nhược điểm của phương pháp này là phức tạp trong cài đặt. 3.3.4. Bài toán 4: Chẩn đoán lớp virus E-class 3.3.4.1. Phát biểu bài toán Lớp E-class chứa các file virus lây vào tập thi hành (COM, EXE…)[5]. 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. 3.3.4.2. Tổ chức cơ sở dữ liệu virus, trích chọn đặc trưng Cơ sở dữ liệu SE chứa các mẫu tin mô tả file virus dạng: FileVirus = Trong đó thuộc tính Kích thước chứa độ dài phần mã lệnh virus ghép vào chủ thể, Tập hành vi chứa các độ dời kỹ thuật của virus và nội dung mã lệnh virus ở điểm vào lệnh IP (instruction pointer) của file EXE (Phụ lục 1). Độ dời kỹ thuật là khoảng cách tương đối của virus so với cuối file (đối với loại virus ghép đuôi), đầu file (đối với loại chèn đầu) hoặc cả hai (đối với loại định vị buffer). Điểm vào lệnh IP và chuỗi mã lệnh virus được tự động trích chọn nhờ các thủ tục phân tích header file thi hành trong giai đoạn học (xem Phụ lục 2, Các định dạng tập tin thi hành). - 46 - 3.3.4.3. Xây dựng cơ sở tri thức Ngoài CSDL virus SE sẵn có, thông tin ban đầu về đối tượng chẩn đoán là hoàn toàn trống rỗng. Vì vậy hệ phải tự sản sinh dữ liệu cung cấp cho quá trình chẩn đoán. Bài toán chẩn đoán E-class sử dụng hai tập luật cơ bản (Bảng 3.5): - Tập luật RS1: mô tả các biến cố phát sinh do hành vi của file virus - Tập luật RS2: giải thích sự thay đổi nội dung đối tượng dựa vào các dấu vết của file virus để lại tại “hiện trường”. Bảng 3.5: Các luật cơ bản chẩn đoán file virus lạ Lớp Luật Tiền đề Hệ quả R11 Nếu có tình huống mở file để ghi Thì file sẽ bị thay đổi R12 Nếu có tình huống đổi thuộc tính của file Thì file sẽ bị thay đổi R13 Nếu có tình huống đổi ngày tháng của file Thì file sẽ bị thay đổi R14 Nếu có tình huống đọc thuộc tính của file Và file không bị thay đổi Thì file đáng ngờ R15 Nếu có tình huống mở file Và file không bị thay đổi Thì file đáng ngờ RS1 R16 Nếu có tình huống đọc ngày tháng của file Và file không bị thay đổi Thì file đáng ngờ R21 Nếu thuộc tính file bị thay đổi Thì file đã thay đổi R22 Nếu ngày tháng file bị thay đổi Thì file đã thay đổi RS2 R23 Nếu kích thước file bị thay đổi Thì file đã thay đổi 3.3.4.4. Tổ chức cơ sở dữ liệu thông tin hệ thống Để cung cấp dữ liệu cho quá trình suy diễn, MAV sử dụng CSDL VerifyDB chứa thông tin đối tượng chẩn đoán với lược đồ quan hệ như sau: ĐỐITƯỢNG (ĐỐI_TƯỢNG, TÊN, ĐỊA_CHỈ, KIỂU, KÍCH_THƯỚC, THUỘC_TÍNH, NGÀY_THÁNG) PHIÊNBẢN(PHIÊN_BẢN, NGÀY_PHÁT_HÀNH, SỐ_VIRUS) LỊCHQUÉT(#PHIÊN_BẢN, #ĐỐI_TƯỢNG, NGÀY_QUÉT) Trong lược đồ quan hệ CSDL VerifyDB, ĐỐI_TƯỢNG, PHIÊN_BẢN là khóa chính của các quan hệ ĐỐITƯỢNG và PHIÊNBẢN. Bộ khóa ngoại PHIÊN_BẢN và ĐỐI_TƯỢNG tạo thành khóa chính của quan hệ LỊCHQUÉT (Hình 3.7). - 47 - 3.3.4.5. Thiết kế động cơ suy diễn Cơ chế Tìm kiếm – Suy diễn – Chẩn đoán (SID, Searching – Inferring – Diagnosing) dựa vào nguyên lý học tình huống như sau: - Đối với tập dữ liệu lạ, tiến hành kiểm tra chẩn đoán bệnh cũ, đồng thời ghi nhận tri thức về “cộng đồng dịch tể” mới tiếp xúc này. - Khi đã có “thông tin sức khỏe” (tri thức bệnh học), thường xuyên giám sát cộng đồng về mặt “vệ sinh dịch tể”. - Khi phát sinh tình huống cá thể lạ gia nhập cộng đồng, cần kiểm tra “sức khỏe” của đối tượng mới xuất hiện để hạn chế việc nhiễm bệnh từ bên ngoài. - Khi có dịch, không cần thực hiện toàn bộ các xét nghiệm bệnh lý mà chỉ cần kiểm tra từng cá thể xem có mắc bệnh mới hay không (Hình 3.8). 3.3.4.6. Giải thích thuật toán SID Phần đầu của thuật toán SID (xem Phụ lục 3) gồm các lệnh khởi tạo không gian tìm kiếm (dòng 1), tích hợp tri thức chẩn đoán cho CSTT (dòng 2) và phân lớp các điểm dữ liệu có thể nhiễm vào CLASS_1, các điểm sạch vào CLASS_2 (dòng 3). Phần thân chứa vòng lặp (dòng 4) quét các điểm dữ liệu trong CLASS_1. Ứng với mỗi điểm dữ liệu eObject, SID thực hiện các thao tác: - Tìm trong CSDL thông tin về đối tượng chẩn đoán (dòng 5). - Nếu không thấy (dòng 6), kiểm tra virus (dòng 8), xử lý bệnh (dòng 9) và báo cáo (dòng 10). Sau đó cập nhật CSDL chẩn đoán (dòng 12, 13). - Ngược lại, đây là đối tượng đã xử lý (dòng 11). Cần kiểm tra 3 trường hợp: Hình 3.7: Mô hình quan hệ cơ sở dữ liệu VerifyDB - 48 - Hình 3.8: Lưu đồ chẩn đoán đối tượng E-class Kiểm tra virus Kết thúc Đ S Dữ liệu không đổi kể từ lần kiểm tra gần đây với version cũ Dữ liệu đã thay đổi kể từ lần kiểm tra gần đây với version cũ Tìm eObject trong VerifyDB eObject ∈ VerifyDB ? Dữ liệu đã thay đổi kể từ lần kiểm tra gần nhất cùng version Bắt đầu eObject Do virus ? Chất vấn Do user ? Xử lý bệnh Cập nhật CSDL Cô lập eObject Phát hiện ? Xử lý bệnh Cập nhật CSDL Kiểm tra virus Phát hiện ? Do virus ? Chất vấn Do user ? Xử lý bệnh Cập nhật CSDL Cô lập eObject Báo cáo Đ S Đ S Đ S Đ Đ S S S Đ Đ S Đ S Đ Cập nhật CSDL S Kiểm tra virus Phát hiện ? Đ S - 49 - • Trường hợp 1: Dữ liệu đã thay đổi kể từ lần kiểm tra cùng version gần nhất (dòng 15). Cảnh báo (dòng 16). Tương tác hội thoại, thu nhận tri thức: - Do virus (dòng 17): xử lý bệnh, báo cáo, cập nhật, tăng trưởng CSTT - Do con người (dòng 22): cập nhật dữ liệu chẩn đoán - Chưa xác định (dòng 24): khóa đối tượng, báo cáo, tăng trưởng CSTT • Trường hợp 2: Dữ liệu không đổi kể từ lần kiểm tra gần đây với version cũ (dòng 30). Kiểm tra lại để phát hiện các virus mới cập nhật. Nếu phát hiện (dòng 32), xử lý virus và cập nhật lại thông tin chẩn đoán (dòng 36). • Trường hợp 3: Dữ liệu đã thay đổi kể từ lần kiểm tra gần đây với version cũ (dòng 39). Kiểm tra lại (dòng 41), nếu phát hiện virus xử lý giống như trường hợp 2. Ngược lại, xử lý như trường hợp 1 (dòng 46, 47 đến dòng 58). 3.3.4.7. Các tác tử hoạt động Các luật RS1 chỉ phát huy trong thời gian rất ngắn (khoảng vài miligiây của tiến trình xử lý), trong khi các luật RS2 có hiệu quả trong thời gian dài (từ vài giây đến hàng tháng, thậm chí hàng năm tùy theo tốc độ lây của virus và tần suất sử dụng hệ thống). Các tình huống phát sinh trong lớp luật RS1 thuộc loại “kiến thức tức thời” (instant knowledge), dễ bị phủ lấp bởi vô số các tình huống khác của hệ thống. Ngược lại, các thay đổi trên đối tượng thể hiện trong lớp luật RS2 thuộc loại “kiến thức dài lâu” (permanent knowledge) bền vững theo thời gian. Để thu thập thông tin cho CSDL VerifyDB, MAV sử dụng cơ chế đa tác tử (multi-agent mechanism) với hai tác tử VSA (Virus Scanning Agent) và VAA (Virus Autoprotect Agent) [56]. Hoạt động ở mức nền trước (foreground), VSA có nhiệm vụ quét virus, thu thập kiến thức dài lâu và giải thích các thay đổi của hệ thống dựa vào lớp luật RS2. Ở mức nền sau (background), VAA chạy thường trực [19] nhằm đón bắt các kiến thức tức thời (tình huống phát sinh trên đối tượng) dựa vào lớp luật RS1. Cả hai tác tử sử dụng chung động cơ suy diễn SID và tương tác nhau, tránh tranh chấp tiến trình hệ thống [37]. Ví dụ, trước khi VSA phát sinh tình huống WriteFile, nó gửi một thông điệp báo cho VAA yêu cầu bỏ qua tình huống này. Khi VAA xử lý xong một đối tượng, nó thông báo cho VSA không cần kiểm tra đối tượng đó (xem Phụ lục 3). - 50 - 3.3.4.8. Kết quả thực nghiệm Tập dữ liệu thực nghiệm X có 56100 mẫu thử với dung lượng tổng cộng 8.000.000 KB. Máy tính thử nghiệm sử dụng CPU Intel Celeron 2,4 GHz với 512 MB bộ nhớ, HĐH Windows XP Professional. Các bước thực hiện như sau: - Đo thời gian chạy MAV nhiều lần trên tập X không sử dụng SID. Lúc này hệ hoạt động như một AV thông thường, tạm gọi là PreMAV. - Đo thời gian chạy MAV nhiều lần trên tập X có sử dụng SID. - Đo thời gian chạy của các AV thử nghiệm nhiều lần trên cùng tập X. - Tổng hợp, phân tích số liệu, đối chiếu kết quả. Các anti-virus thử nghiệm gồm Norton Antivirus (Symantec, Mỹ) [89], ScanVirus (McAfee, Mỹ) [80] và BKAV (BKIS, Việt Nam) [93]. Phân tích số liệu phân bố chi phí thời gian thực hiện trên cùng bộ dữ liệu của các AV thử nghiệm (bảng 3.6 và biểu đồ ở hình 3.9), có thể thấy: - Ngoại trừ MAV, đường biểu diễn của các hệ thử nghiệm (kể cả PreMAV) gần như là các đường thẳng bất biến theo thời gian. Điều này chứng tỏ các hệ trên chưa có khả năng học (các AV tốn thời gian không cần thiết cho việc quét đi quét lại tập dữ liệu đã từng thao tác). - Đường biểu diễn của MAV giảm mạnh sau lần chạy đầu tiên. Ở các lần chạy sau, đường biểu diễn của hệ giảm chậm đến giá trị hằng số, chứng tỏ quá trình vận dụng kiến thức của MAV có xu hướng đạt đến trạng thái ổn định khi hệ đã tích lũy đủ kiến thức cần thiết. - Sử dụng SID, MAV phải tốn thời gian cho các lệnh select, insert và update để tìm kiếm và tích lũy kiến thức. Nỗ lực này tốn 838 – 772 = 66 giây (chiếm 8.55% thời gian so với không sử dụng SID). Tuy nhiên phí tổn này rất đáng giá vì nó giúp MAV tiết kiệm thời gian đến 12 lần ở các lần chạy sau so với không sử dụng SID: ( ) ( ) 273,1259 776 54 764 61 779 74 769 4 11 1 =⎟⎠ ⎞⎜⎝ ⎛ +++=∑ = N i i i MAVCost preMAVCost N - 51 - Bảng 3.6: Thời gian chạy của các hệ anti-virus thử nghiệm trên cùng tập mẫu Anti-virus Lần 1 Lần 2 Lần 3 Lần 4 Lần 5 BKAV 245 248 247 248 246 PreMAV 772 769 779 764 766 MAV 838 74 61 59 59 NAV 1365 1347 1315 1317 1320 SCAN 1506 1450 1462 1488 1475 3.3.4.9. Đánh giá phương pháp chẩn đoán lớp virus E-class Dựa vào nguyên lý nhận dạng hướng ý định (intention-based approach), bài toán E-class sử dụng thuật toán SID học tình huống trên tập dữ liệu quan sát bằng mô hình AMKBD. Công tác đánh giá bài toán được thực hiện theo quy trình sau: Đầu tiên, gỡ các mẫu F-virus trong CSDL SE của MAV. Tiếp theo, cho virus nhiễm vào máy ảo VMWare Workstation ver 5.5.3 đã cài sẵn MAV trong trạng thái vô hiệu tác tử. Sau đó kích hoạt MAV, quét hệ thống và ghi nhận số cảnh báo (chưa biết tên chính xác). Cuối cùng, phục hồi CSDL SE cho MAV, đếm số tập tin được phát hiện nhiễm (biết tên virus chính xác), đối chiếu với số tập tin thực nhiễm và tính toán kết quả thực nghiệm (Bảng 3.7). Hình 3.9: Biểu đồ so sánh chi phí thời gian của các hệ AV thử nghiệm - 52 - Bảng 3.7: Kết quả thực nghiệm bài toán chẩn đoán lớp virus E-class Lần Số tập tin thực nhiễm Số virus cập nhật Số virus phát hiện chính xác Số tập tin được cảnh báo Số tập nhiễm bị bỏ sót Độ chính xác (%) Độ dự báo (%) Độ tin cậy (%) 1 1792 112 107 1668 17 95.54 98.99 99.05 2 1578 108 100 1467 11 92.59 99.26 99.30 3 1625 100 95 1512 18 95.00 98.82 98.89 4 1723 110 105 1602 16 95.45 99.01 99.07 5 1682 105 98 1569 15 93.33 99.05 99.11 Trung bình: 94.38 99.03 99.09 Mặc dù có độ tin cậy cao nhưng phương pháp này cũng còn một số hạn chế: - 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. - Khi hệ thống thay đổi, AMKBD sẽ gây bối rối cho người dùng ít kinh nghiệm. - Hệ thống đã nhiễm một loại file virus lạ trước khi cài đặt MAV. Để khắc phục các hạn chế trên, có thể thực hiện các biện pháp sau: - Kết hợp bài toán E-class với bài toán chẩn đoán sâu trình. - Thiết kế tác tử canh phòng dạng dịch vụ (service) chạy thường trực - 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). 3.3.5. Bài toán 5: Chẩn đoán lớp virus A-class 3.3.5.1. Lược sử vấn đề nhận dạng mã độc Lớp A-class chứa các virus có định dạng ứng dụng (Phụ lục 1 và 2). 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] như germs, dropper, injector, rootkit, intruder, zombie…, kể cả các ứng dụng độc hại như adware, spyware, pornware…, gọi chung là phần mềm độc (malware). - 53 - Nhận dạng malware là vấn đề mở của các anti-virus hiện nay [33]. 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]. Ưu điểm của kỹ thuật này là không phụ thuộc vào thuật toán mã hóa/giải mã của công cụ nén. 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. Các sâu trình mật hóa sử dụng một thủ tục khởi tạo để giải mã phần lớn chương trình của nó [58]. 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. Do đó, ngoại trừ thủ tục khởi tạo (có kích thước rất nhỏ), phần lớn nội dung sâu trình đều được “đó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. - 54 - 3.3.5.2. Phát biểu bài toán Mục tiêu của bài toán chẩn đoán lớp A-class là (i) kiểm tra xem đối tượng aObject có phải là malware hay không. Nếu không, hệ phải (ii) đưa ra dự báo aObject có thể thuộc nhóm malware nào hay không, tỷ lệ mã độc là bao nhiêu. Gọi wRate∈(0,1] là tỷ lệ mã độc của aObject, λ∈[0,1] là hằng số ngưỡng an toàn cho trước, bài toán được phát biểu như sau: Vào: - Đối tượng chẩn đoán aObject - Cơ sở dữ liệu virus A-class (SA) - Quy luật phân nhóm virus trong CSDL SA Ra: - wRate = 1, kết luận aObject là known malware - wRate ≥ λ, dự báo aObject là unknown malware Ngoài CSDL virus SA, bài toán A-class còn sử dụng tập luật phân nhóm virus để phân hoạch trước các lớp dữ liệu khả dĩ mà aObject có thể thuộc về. Sau đó quá trình xử lý sẽ ước lượng độ đồng dạng dữ liệu của aObject so với từng virus trong các lớp dữ liệu đã phân hoạch để gán đối tượng vào một trong các lớp này. Phương pháp phân nhóm virus trong CSDL SA sẽ được trình bày trong Chương 4. 3.3.5.3. Tổ chức cơ sở dữ liệu virus Giống như bài toán E-class, đối tượng chẩn đoán của bài toán A-class là các tập tin thi hành. Do đó các mẫu virus trong CSDL SA sẽ có dạng: Malware = Trong MAV, CSDL SA là một bảng dữ liệu 300 cột. Bốn thuộc tính đầu có công dụng giống như các bài toán C, D và E (dùng cho mô hình AMKBD). Thuộc tính Tập đặc trưng được chia làm hai nhóm 40 cột và 256 cột. - 40 cột đầu (kiểu word/dword) chứa đặc trưng thi hành như FileSize, FileType, FileAttribute, MachineWord, NumberOfSections… (xem Phụ lục 2). Phần này dùng cho quá trình phân nhóm virus ở giai đoạn học (Chương 4). - 256 cột kế (kiểu word) chứa số lần xuất hiện của 256 từ máy 8-bit của virus: a0, a1, a2,…, a255. Phần này dùng cho bài toán A-class và Null hóa (Chương 4). - 55 - 3.3.5.4. Biểu diễn dữ liệu virus bằng mô hình không gian vectơ Mô hình không gian vectơ (KGVT) dùng phân loại văn bản do Gerard Salton và cộng sự đề xướng [30], về sau mở rộng cho phân loại ảnh [61][70]. Trong mô hình này, các từ phân biệt của văn bản được tổ chức thành các cột trên ma trận. Giá trị của các ô chứa số lần xuất hiện của từ tương ứng (gọi là tần suất của từ). Xét virus như một tập dữ liệu ‘văn bản’, bài toán A-class biểu diễn các ‘từ virus’, tìm độ tương đồng dữ liệu của đối tượng so với các nhóm virus, rồi ước lượng tỷ lệ xuất hiện từ virus trong đối tượng để dự báo virus mới. Đầu tiên, dữ liệu được tổ chức thành v từ phân biệt để có w = (w1, w2,…, wv). Kế tiếp, biểu diễn mỗi virus trong CSDL dưới dạng vectơ di = (wi1, wi2,…, wiv), trong đó wik là tần suất của từ thứ k trong bộ dữ liệu kiểm tra. Sau đó ánh xạ các vectơ virus vào ‘ma trận từ - tài liệu’ (word-document matrix) hai chiều. Mỗi hàng ứng với một bộ dữ liệu virus mẫu. Mỗi cột ứng với một từ duy nhất. Theo Gerard Salton, có thể chọn từ đơn (single term) hoặc phức hợp (complex entities) nhưng phương án từ đơn là tổng quát hơn. Như vậy có thể chọn từ virus theo byte, word hay dword. Khi số bit của từ máy (machine word) càng cao thì số cột ma trận càng nhiều (256, 65.536 hay 4.294.967.296 cột). MAV sử dụng từ 8 bit (256 trạng thái), kiểu word (có thể lưu tối đa 65.536 tần suất từ). 3.3.5.5. Rút trích đặc trưng Quá trình rút trích đặc trưng sử dụng nguyên lý Tần suất từ - Tần suất tài liệu nghịch đảo TF-IDF (Term Frequency-Inverse Document Frequency) [34]. Các từ phân biệt là các đặc trưng, TF-IDF là đại lượng đo lường sự xuất hiện của các từ này. Mục tiêu của bài toán là tính độ đồng dạng mã độc giữa đối tượng chẩn đoán aObject (ký hiệu M) và các nhóm virus f trong tập A. Đầu tiên, M được biểu diễn dưới dạng vectơ tần suất từ F(M), trong đó mỗi thành phần F(M,w) biểu diễn số lần (0..65536) từ w xuất hiện trong M. Tiếp theo, tính W(f,w) trọng số các từ trong từng tập f. Cuối cùng, chọn trong tập f (tập có tỷ lệ đồng dạng dữ liệu với M cao nhất) mẫu đại diện gần với M nhất, đối sánh hằng số ngưỡng λ để có kết luận cuối cùng. - 56 - Đại lượng FF(f,w) gọi là tần suất phân đoạn (fractional frequency) của từ w trong số các virus có trong tập f, là số lần xuất hiện của từ w trong tập f chia cho tổng số từ có trong f : ∑ ∈ = fw wfF wfFwfFF ' )',( ),(),( (3.1) Đại lượng tần suất từ TF (term frequency) được định nghĩa là: TF(f, w) = ),( ),( wAFF wfFF (3.2) Trong đó A ⊇ f (A là nhóm virus cha của f trong bài toán phân cụm CSDL virus), FF(A,w) là số lần từ w xuất hiện trong A. Gọi tần suất tài liệu (document frequency) DF(w) là đại lượng tính bằng số nhóm virus có từ w xuất hiện ít nhất 1 lần chia cho tổng số các tập dữ liệu (số con của A), trọng số W(f,w) của các từ trong tập f được tính theo công thức: W(f,w) = 2)( ),( wDF wfTF (3.3) 3.3.5.6. Ước lượng tỷ lệ mã độc Nguyên lý TF-IDF ước lượng độ đồng dạng dữ liệu (similarity measure) theo công thức: SIM(M, f) = ∑∑ ∑ ∈∈ ∈ MwMw Mw wfWwMF wfWwMF )),(),,(min( ),(),( (3.4) Tiếp theo, điểm chẩn đoán M sẽ được gán vào tập f có SIM lớn nhất. Sau đó tính tỷ lệ mã độc wRate của M so với các mẫu virus trong f để đối sánh ngưỡng và xác định virus có số từ giống với số từ của M nhất. Giá trị này được tính bằng tỷ số giữa số lần xuất hiện của từ w trong fk và tổng số từ của fk. Tức là: wRatei(M, vi) = FF(vi, w) ∀ vi là mẫu virus thứ i trong tập f (3.5) Cuối cùng, chọn wRatei lớn nhất. Nếu: - wRate = 1, kết luận M là mã độc - wRate ≥ λ, dự báo M chứa (wRate ×100) % mã độc của virus vi [3]. - 57 - 3.3.5.7. Ví dụ minh họa bài toán A-class Xét bài toán A-class áp dụng mô hình không gian vectơ như sau: - CSDL virus A chứa 12 mẫu virus đã được quá trình phân cụm (ở giai đoạn học) tách thành 3 nhóm f1, f2 và f3 (Bảng 3.8). - Ngưỡng an toàn cho trước λ = 0.85. - Mẫu dữ liệu M = 6E, 72, 0D, 0A, 79, 75, 76, 75, 65, 6C, 6E, 74, 62, 67, 6C, EB Yêu cầu đặt ra là xác định xem M có phải là virus mới không, nếu có thì thuộc nhóm nào (f1, f2 hay f3), độ tương đồng dữ liệu và tỷ lệ mã độc là bao nhiêu. Đầu tiên, căn cứ vào các từ sử dụng của M (13 từ), các mẫu virus trong CSDL được tổ chức thành các vector tần suất 13 từ. Sau đó ánh xạ các vectơ này vào ma trận từ-tài liệu như hình 3.10. Kế tiếp, tính tần suất tài liệu DF(w) của các từ w. Do có ba tập f nên các giá trị DF(w) là số tập f có từ w xuất hiện ít nhất một lần chia cho 3. Sau đó tính tần suất phân đoạn FF(f,w) của các từ w trong từng tập f, là số lần xuất hiện của từ w trong từng tập f chia cho tổng số từ có trong tập đó (số từ sử dụng của f1, f2 và f3 tương ứng là 19, 23 và 26). Tính tiếp các giá trị FF(A,w), là số lần xuất hiện w trong toàn bộ các mẫu. Sau đó tính trọng số W(f,w) của các từ w trên từng tập f , rồi tính các bộ giá trị tử số trong công thức (3.3) cho các từ w trong từng tập f (Bảng 3.9). Bảng 3.8: Các nhóm virus trong CSDL và mẫu dữ liệu chẩn đoán f stt a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 1 E9 96 00 00 00 0D 0A 76 75 75 76 65 6C 6E 74 63 2 E9 96 00 00 00 0D 0A 79 75 75 76 65 6C 6E 74 62 3 EB 72 0D 0A 79 75 75 76 65 6C 6E 74 62 67 66 6B 1 4 EB 4C 0D 0A 79 75 75 76 65 6C 6E 74 62 67 66 6B 5 68 60 10 40 00 9C 60 E8 00 00 00 00 5D 81 ED 0C 6 60 E8 01 00 00 00 E8 83 C4 04 E8 01 00 00 00 E9 7 60 E8 09 00 00 00 86 26 04 00 E9 06 02 00 00 33 2 8 60 E8 09 00 00 00 EC EB 00 00 E9 06 02 00 00 33 9 55 51 59 5B 56 EB 02 E8 84 57 5E 5E F7 D6 F7 D6 10 55 8B EC EB E9 00 00 00 00 00 EB 0C 00 00 00 00 11 55 8B EC 6A FF 68 58 A6 42 00 68 5A 5B 42 00 64 3 12 55 8B EC 6A FF 68 30 57 41 00 68 00 1E 41 00 64 ? M 6E 72 0D 0A 79 75 76 75 65 6C 6E 74 62 67 6C EB - 58 - 0A 0D 62 65 67 6C 6E 72 74 75 76 79 EB 1 1 0 1 0 1 1 0 1 2 2 0 0 1 1 1 1 0 1 1 0 1 2 1 1 0 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 0 1 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hình 3.10: Ma trận từ-tài liệu của CSDL virus mẫu Bảng 3.9: Số liệu tính toán trên ví dụ mẫu bài toán A-class w F (M,w) DF (w) DF (w)2 FF(f1,w) FF(f2,w) FF(f3,w) FF (A,w) W(f1,w) W(f2,w) W(f3,w) TSf1 TSf2 TSf3 0A 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 0D 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 62 1 1/3 0.111 3/19=0.1579 0/23=0 0/26=0 3 0.4737 0 0 0.4737 0 0 65 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 67 1 1/3 0.111 2/19=0.1053 0/23=0 0/26=0 2 0.4737 0 0 0.4737 0 0 6C 2 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.9474 0 0 6E 2 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.9474 0 0 72 1 1/3 0.111 1/19=0.0526 0/23=0 0/26=0 1 0.4737 0 0 0.4737 0 0 74 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 75 2 1/3 0.111 8/19=0.4211 0/23=0 0/26=0 8 0.4737 0 0 0.9474 0 0 76 1 1/3 0.111 5/19=0.2632 0/23=0 0/26=0 5 0.4737 0 0 0.4737 0 0 79 1 1/3 0.111 3/19=9.1579 0/23=0 0/26=0 3 0.4737 0 0 0.4737 0 0 EB 1 3/3 1.000 2/19=0.1053 1/23= 0.0435 3/26= 0.1875 6 0.0175 0.0072 0.0313 0.0175 0.007 0.0313 ∑F(M,w)=16 ∑W(f,w)= 5.7018 0.0072 0.0313 ∑F(M,w)W(f,w)= 7.123 0.0072 0.0313 Độ tương đồng dữ liệu của M so với các mẫu virus trong mỗi tập f là: SIM(M, f1) = 7.123 / min(16, 5.7018) = 1.2492 SIM(M, f2) = 0.0072 / min(16, 0.0072) = 1.0000 SIM(M, f3) = 0.0313 / min(16, 0.0313) = 1.0000 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ả. - 59 - 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 đó. Kết quả tính toán nhận được: - Mẫu 1 có 11 từ, sử dụng 8 từ của M nên wRate1(M, v1)= 8/11 = 0.727 - Mẫu 2 có 12 từ, sử dụng 10 từ của M nên wRate2(M, v2) = 10/12 = 0.833 - Mẫu 3 có 15 từ, sử dụng 13 từ của M nên wRate3(M, v3) = 13/15 = 0.866 - Mẫu 4 có 15 từ, sử dụng 12 từ của M nên wRate4(M, v4) = 12/15 = 0.8 Trong 4 mẫu virus thuộc nhóm f1, M gần với mẫu thứ ba nhất (có wRate lớn nhất). Đối chiếu với ngưỡng an toàn cho trước (λ= 85%), có thể kết luận M là biến thể của virus thứ ba trong CSDL với tỷ lệ mã độc là 86.6 %. 3.3.5.8. Kết quả thực nghiệm Với λ= 0.9, bảng 3.10 cho thấy mô hình KGVT khá phù hợp cho bài toán phân loại mã độc. Tỷ lệ thất bại thuộc về các điểm dữ liệu không thuộc nhóm virus nào. Vấn đề này sẽ được giải quyết bằng kỹ thuật hợp nhất dữ liệu ở Chương 4. Bảng 3.10: Kết quả thực nghiệm bài toán chẩn đoán lớp virus A-class Lần Số virus thử nghiệm Số virus cập nhật Số virus phát hiện Số virus cảnh báo Số virus bỏ sót Độ chính xác (%) Độ dự báo (%) Độ tin cậy (%) 1 1335 890 874 292 169 98.20 63.34 87.34 2 1238 825 801 276 161 97.00 63.10 86.96 3 1316 877 860 284 172 98.02 62.28 86.93 4 1298 865 852 278 168 98.50 62.38 87.08 5 1327 885 866 284 177 97.90 61.62 86.67 Trung bình: 97.92 62.54 87.00 3.3.5.9. Bàn luận về phương pháp chẩn đoán lớp A-class Trong mô hình KGVT, “từ” là phần tử cơ bản của văn bản. Tập hợp các từ mẫu dùng phân loại văn bản gọi là “túi từ” (bag-of-words) [23]. Trong các bài toán phân loại ảnh, khái niệm “từ” được cải biên cùng với thuật ngữ keyblock [44], “túi từ” trở thành “túi mảnh ảnh” (bag-of-keypoints) [29]. Quan niệm malware như một tập dữ liệu phi ngữ nghĩa các từ máy, thuật ngữ “túi từ” của mô hình KGVT trong bài toán A-class có thể hiểu là “túi từ máy” (bag-of-machine words). - 60 - Một trong những trở ngại của mô hình KGVT là chi phí tính toán. 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. 3.4. Tổng kết chương Cơ chế máy học chẩn đoán virus máy tính gồm năm bài toán: Bài toán thứ nhất chẩn đoán lớp virus C-class theo nguyên lý học vẹt cho các điểm dữ liệu ASCII-7bit, đối tượng lây của các loại sâu và file virus. Đây là mô hình kinh điển của các AV hướng chuỗi mã với thuật toán tìm kiếm tuần tự. Mặc dù khả năng dự báo không cao (5%) nhưng nhờ có độ chính xác rất cao (99.05%) nên kỹ thuật chuỗi mã vẫn được sử dụng để bổ khuyết cho các kỹ thuật khác. Bài toán thứ hai chẩn đoán lớp virus D-class theo nguyên lý học tương tự cho các điểm dữ liệu MSOffice, đối tượng lây của các loại virus macro. Đầu tiên, không gian chẩn đoán được tổ chức dưới dạng một vector động các con trỏ tham chiếu đến danh sách macro trong từng paragraph của đối tượng chẩn đoán. Tiếp theo một thuật giải duyệt mảng sẽ thu thập danh sách macro và phân tích tập hành vi các macro có trong danh sách. Cuối cùng, xây dựng các hàm nhận dạng hành vi macro và tiến hành chẩn đoán bệnh cho đối tượng. Bài toán thứ ba chẩn đoán lớp virus B-class theo nguyên lý học chỉ dẫn dựa vào tập miền định nghĩa khái niệm, áp dụng cho các MTKĐ là vật chủ của các loại - 61 - boot virus. Không gian tìm kiếm được tổ chức dưới dạng cây nhị phân cài đặt trên vùng nhớ ứng dụng của một máy ảo chẩn đoán có kiến trúc máy tính sử dụng CPU 80x86/Pentium. Một thuật giải tìm kiếm với tri thức bổ sung có nhiệm vụ thu thập và phân tích hành vi đối tượng trong ngăn xếp máy ảo để phát hiện boot virus Bài toán thứ tư chẩn đoán lớp virus E-class theo nguyên lý học tình huống dựa trên mô hình kết hợp CSDL và CSTT để phát hiện tình huống thay đổi trạng thái của đối tượng thi hành thông qua cơ chế đa tác tử. Chạy ở mức nền trước, tác tử duyệt quét VSA thu thập thông tin đối tượng lưu vào CSDL VerifyDB. Ở mức nền sau, tác tử canh phòng VAA liên tục giám sát hệ thống. Khi có tình huống truy xuất đối tượng, VAA sẽ thu thập thông tin, truy vấn trên CSDL VerifyDB, đối chiếu với tập luật nhận dạng và phát cảnh báo. Phân tích tri thức quyết định của người dùng, hệ sẽ phục hồi nội dung/trạng thái đối tượng theo hướng tiếp cận ý định. Bài toán thứ năm chẩn đoán lớp A-virus theo nguyên lý học quy nạp sử dụng mô hình không gian vector chẩn đoán các loại mã độc. Đầu tiên mẫu dữ liệu M được biểu diễn thành các từ phân biệt. Ứng với mỗi từ, biểu diễn các mẫu virus trong CSDL dưới dạng ma trận từ-tài liệu có n cột, p hàng. Tiếp theo, quá trình rút trích đặc trưng sử dụng nguyên lý TF-IDF để tính trọng số các từ trong các nhóm virus. Sau đó tính độ tương đồng dữ liệu SIM của điểm chẩn đoán M so với các nhóm rồi chọn nhóm có SIM cao nhất. Cuối cùng tính tỷ lệ mã độc của M so với các mẫu virus trong nhóm để chọn ra mẫu có giá trị wRate lớn nhất. Nếu wRate vượt quá ngưỡng λ, có thể kết luận M là biến thể của mẫu virus này (mẫu có số từ giống với số từ của M nhiều nhất), là virus gần với đối tượng chẩn đoán nhất. Dựa vào đặc điểm dữ liệu từng lớp virus, việc lựa chọn bài toán học cho các lớp hướng đến tính hiệu quả, phù hợp với thực tiễn sử dụng và bối cảnh nghiên cứu của đề tài. Khi có những thay đổi sâu sắc trên các lớp virus (ví dụ như các mô tả lớp, hành vi, đặc trưng dữ liệu…), có thể lựa chọn các bài toán học khác tốt hơn. Chương 4 tiếp theo sẽ trình bày phương pháp thiết kế hệ thống qua ba giai đoạn tương ứng với ba mức xử lý của một hệ chuyên gia. Trong đó, thành phần hạt nhân của hệ sẽ chứa năm lớp bài toán đã xây dựng trong chương này.

Các file đính kèm theo tài liệu này:

  • pdf6.pdf
  • pdf7.pdf
  • pdf8.pdf
  • pdf9.pdf
  • rarDo an TS May hoc va he chuyen gia Truong Minh Nhat Quang.part1.rar
Luận văn liên quan