Cơ chế máy học chẩn đoán virus máy tính

32 472 0
Cơ chế máy học chẩn đoán virus máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trong các bài toán nhận dạng mẫu, tri thức nguyên liệu của hệ có liên quan mật thiết với dạng thức dữ liệu (ví dụ dữ liệu thô ở mức bit) [8]. Dựa vào đặc trưng dữ liệu của các loại virus, bài toán chẩn đoán virus máy tính được phân thành năm bài toán con

chế máy học chẩn đoán virus máy tính 3.1. Phân hoạch bài toán chẩn đoán virus máy tính Trong các bài toán nhận dạng mẫu, tri thức nguyên liệu của hệ liên quan mật thiết với dạng thức dữ liệu (ví dụ dữ liệu thô ở mức bit) [8]. Dựa vào đặc trưng dữ liệu của các loại virus, bài toán chẩn đoán virus máy tính được phân thành năm bài toán con. Mỗi bài toán tiếp cận khác nhau, dùng chẩn đoán các lớp virus khác nhau (Bảng 3.1), trình bày theo cấp độ học từ đơn giả n đến phức tạp như sau: 1. Bài toán 1: chẩn đoán lớp virus C-class lây trên lớp văn bản (7-bit ASC II text files) theo chế học vẹt. 2. Bài toán 2: chẩn đoán lớp virus D-class (lây trên lớp tư liệu MS Office, D ocument files) theo chế học tương tự. 3. Bài toán 3: chẩn đoán lớp virus B-class (lây vào mẫu tin khởi động, B oot record) theo chế học bằng chỉ dẫn. 4. Bài toán 4: chẩn đoán lớp virus E-class (lây trên lớp thi hành, E xecutable files) theo chế học tình huống. 5. Bài toán 5: chẩn đoán lớp sâu trình, trojan horse A-class (lớp ứng dụng độc lập, Stand A lone program files) theo chế học quy nạp. Mỗi bài toán sử dụng CSDL virus đặc thù của lớp: S = {S A , S B , S C , S D , S E } Trong đó các S A , S B , S C , S D và S E là tập virus mẫu của các lớp A-class, B- class, C-class, D-class và E-class; aObject, bObject, cObject, dObject và eObject là các điểm dữ liệu trong không gian chẩn đoán của mỗi bài toán, theo thứ tự đó. Chương 3 - 31 - Bảng 3.1: Các lớp virus bản tt Ký hiệu Tên lớp Mô tả Đặc trưng dữ liệu Loại virus 1 A-class Stand Alone program Ứng dụng độc lập 16/32 bit Sâu, Trojan 2 B-class Boot record Mẫu tin khởi động 16 bit Boot virus 3 C-class ASCII text Văn bản 7 bit 7-bit ASCII text Sâu, File virus 4 D-class Document macro VBA Macro Mã lệnh VBA Macro virus 5 E-class Executable file Tập thi hành 16/32 bit File virus 3.2. Các độ đo chất lượng chẩn đoán Để đánh giá hiệu quả chẩn đoán, đề tài sử dụng các độ đo chất lượng: - Độ chính xác là tỷ lệ phát hiện chính xác virus (gọi đúng tên virus) trong tập chẩn đoán so với số mẫu virus tương ứng đã cập nhật trong CSDL: Malware detection = Detections/AssociatedVirusesInDatabase - Độ dự báo là khả năng cảnh báo virus trên tập kiểm tra (gọ i không đúng tên hoặc chưa xác định tên virus cụ thể), tính bằng tỷ số giữa số cảnh báo với hiệu của số virus thử nghiệm và số lượng virus được phát hiện chính xác: Proactive detection = Proactions/(VirusesInDatatest - Detections) - Độ tin cậy là tỷ số của số cảnh báo so với các mối nguy hiểm thật sự đang tiềm ẩn trên tập dữ liệu chẩn đoán: Reliability = ( Detections+Proactions)/VirusesInDatatest 3.3. chế máy học chẩn đoán virus máy tính 3.3.1. Bài toán 1: Chẩn đoán lớp virus C-class 3.3.1.1. Phát biểu bài toán Virus text lây nhiễm bằng cách chèn hoặc tạo mới các câu lệnh script vào đối tượng. Gọi N là tập số nguyên dương, W={w 1 , w 2 , …, w n } là tập từ khóa các ngôn ngữ kịch bản (script language) được HĐH hỗ trợ, T là điểm chẩn đoán (cObject), V là đối tượng lây, bài toán chẩn đoán lớp virus C-class được phát biểu như sau: T = {t i ∀ i ÷ 1 c; c ∈ N}; t = {a i’ , cr; ∀ i’÷ 32 127} V = {v j ∀ j ÷1 m; m ∈ N}; v = {b j’ , cr; ∀ j’÷ 32 127} - 32 - Trong đó: a i’ , b j’ : tập ký tự ASCII 7 bit của T và V c, m: kích thước (số dòng) của T và V cr = {#13, #10}: ký tự xuống dòng (crlf, carriage - line feed) Đối tượng T nhiễm virus V khi và chỉ khi V⊆ T. 3.3.1.2. Tổ chức sở dữ liệu và trích chọn đặc trưng Mỗi mẫu tin virus trong CSDL S C dạng: TextVirus = <Tên gọi, Kích thước, Ngày cập nhật, Phiên bản, Tập mã lệnh> Ý nghĩa các thuộc tính virus trong CSDL S C như sau: - Tên gọi: tên virus (do chuyên gia đặt) - Kích thước: độ dài mã lệnh virus - Ngày cập nhật: ngày bổ sung virus vào CSDL, cùng với thuộc tính Phiên bản dùng phân loại bệnh mới hay cũ trong mô hình AMKBD ở Bài toán 4. - Phiên bản: số hiệu phát hành CSDL - Tập mã lệnh: nội dung virus đã mật hóa, tránh các AV phát hiện nhầm [17] Quá trình trích chọn đặc trưng được thực hiện như sau: - Xác định đố i tượng chẩn đoán T sao cho T - W ≠ ∅. - Tổ chức ma trận vector chuỗi X C (p, k) k dòng, mỗi dòng tối đa p ký tự. - Ánh xạ các dòng dữ liệu của T vào ma trận X C . 3.3.1.3. Thuật toán chẩn đoán lớp C-class Thuật toán c-Diagnose (Hình 3.1) tìm và xử lý chuỗi con V trong chuỗi mẹ T trên không gian X. CSDL dạng S C = {V 1 , V 2 ,…, V n }. Với mỗi T, xác định: • Trường hợp 1: T ⊃V i ∀ (i =1 n), kết luận đối tượng T nhiễm virus V i (tức là T = T 0 ∪ V). Thực hiện các phép toán: - Xác định vật chủ T 0 bằng phép hiệu T 0 = C T (V i ) = T \ V i ∀ C T (V i ) là phần bù của V i trong T - Loại bỏ virus: V i ← ∅ • Trường hợp 2: T = V i ∀ (i =1 n), kết luận đối tượng T là sâu trình V i . Do sâu trình không vật chủ nên thực hiện V i ← ∅. - 33 - (1) i ←1 (2) found ← FALSE (3) WHILE (i <= k) AND (NOT found) DO (4) IF (X[i]= V) THEN found ← TRUE (5) ELSE i ← i +1 (6) IF found THEN //phát hiện virus (7) IF i=1 THEN Delete(T) //xóa sâu trình (8) ELSE Delete(T, i, m) //gỡ virus khỏi đối tượng Hình 3.1: Thuật toán chẩn đoán lớp C-class 3.3.1.4. Phân tích, đánh giá thuật toán chẩn đoán lớp C-class Bản chất của bài toán chẩn đoán C-class là học vẹt. Tri thức của hệ được chuyên gia cung cấp dưới dạng 〈Mẫu dữ liệu, Khẳng định virus〉. Các lệnh (1), (2), (3) và (6) nối tiếp nhau nên độ phức tạp của thuật toán là độ phức tạp lớn nhất của các lệ nh này. Do các lệnh (1), (2), (4), (6), (7) và (8) đều độ phức tạp O(1) nên độ phức tạp chủ yếu nằm ở vòng lặp while. Trường hợp xấu nhất, vòng lặp thực hiện k lần, như vậy độ phức tạp của thuật toán là O(n). Quá trình đánh giá kết quả bài toán C-class được thực hiện như sau: • Chuẩn bị dữ liệu: - Chọn ngẫu nhiên 2/3 mẫ u virus khác biệt từ tập virus thử nghiệm - Cập nhật các virus này vào CSDL S C - Trộn các mẫu virus vào tập X đã sẵn nhiều loại dữ liệu khác nhau • Tiến hành thực nghiệm: - Áp dụng thuật giải chẩn đoán C-class trên tập X - Ghi nhận số virus phát hiện chính xác, số mẫu cảnh báo, số virus bị bỏ sót - Thay số liệu, lập lại thí nghiệm nhiều lần • Đánh giá thuật toán: - Tính toán độ chính xác, độ d ự báo và độ tin 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 độ chính xác cao (99.05%). Tỷ lệ lỗi do các mẫu virus thử nghiệm 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 S C ). Khi tập mẫu virus text đủ lớn, 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 macro mới nguy 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 dạng: (X i = V i ) ^…^ (X k = V k ) Trong đó mỗi X j là các biến, V j là các giá trị thể của các biến này, các phép tuyển của những giá trị 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ị thể của nó trong một hàm nhận dạng - 35 - thì nó thể được lược bỏ. Một hàm nhận dạng 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 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 S D , hệ sẽ xây dựng các hàm nhận dạng R sao cho thể nhận dạng (và phân loại) các đối tượng nhiễm virus macro hay không. Nếu thì nhiễm virus macro đã biết nào (thuộc một trong các con V j nào của nút “Virus macro”). Nếu không xác định được giá trị V j cụ thể, 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 sở dữ liệu Mẫu virus macro trong CSDL S D của bài toán D-class được tổ chức như sau: MacroVirus = <Tên gọi, Ngày cập nhật, Phiên bản, Tập macro> 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 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 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 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ơ X D (idx, mCount, mList) như hình 3.3, trong đó: - idx: số thứ tự paragraph - mCount: số macro 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: tự thi hành hay không (true/false) - next: trỏ đến macro kế (macro cuối cùng, next = nil) idx mCount mList 1 Macro 1 mType next (…) MacroN mType nil … … … … … … … idx k mCount k mList k Macro k 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 X D 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 X D , 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) độ 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 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 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.Next<>nil) 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 - X 1 = Tư liệu MSOffice (True/False) X 2 = macro (True/False) X 3 = Macro tự chạy (True/False) X 4 = Nhiễm virus macro (True/False) X 5 = Macro 1 (True/False) X 6 = Macro 2 (True/False) (…) Hàm nhận dạng đối tượng dObject chứa virus macro đã biết (là một trong n virus macro đã cập nhật) dạng: R: (X 1 = true) ^ (X 2 =true) ^ (X 3 = true) ^ (X 4 =true) ^ (X 4+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 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 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 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). 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 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à 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 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 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. [...]... 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... 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ụ bản của bài toán chẩn đoán E-class 3.3.4.2 Tổ chức sở dữ liệu virus, trích chọn đặc trưng sở dữ liệu SE chứa các mẫu tin mô tả file virus dạng: FileVirus = . Cơ chế máy học chẩn đoán virus máy tính 3.1. Phân hoạch bài toán chẩn đoán virus máy tính Trong các bài toán nhận. liệu chẩn đoán: Reliability = ( Detections+Proactions)/VirusesInDatatest 3.3. Cơ chế máy học chẩn đoán virus máy tính 3.3.1. Bài toán 1: Chẩn đoán

Ngày đăng: 11/04/2013, 22:25

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan