Phân hoạch bài tốn chẩn đốn virus máy tính

Một phần của 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 (Trang 49)

Trong các bài tố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 tốn chẩn đốn virus máy tính được phân thành năm bài tốn con. Mỗi bài tốn cĩ tiếp cận khác nhau, dùng chẩn đố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 tốn 1: chẩn đốn lớp virus C-class lây trên lớp văn bản (7-bit ASCII text files) theo cơ chế học vẹt.

2. Bài tốn 2: chẩn đốn lớp virus D-class (lây trên lớp tư liệu MS Office,

Document files) theo cơ chế học tương tự.

3. Bài tốn 3: chẩn đốn lớp virus B-class (lây vào mẫu tin khởi động, Boot record) theo cơ chế học bằng chỉ dẫn.

4. Bài tốn 4: chẩn đốn lớp virus E-class (lây trên lớp thi hành, Executable files) theo cơ chế học tình huống.

5. Bài tốn 5: chẩn đốn lớp sâu trình, trojan horse A-class (lớp ứng dụng độc lập, Stand Alone program files) theo cơ chế học quy nạp.

Mỗi bài tốn sử dụng CSDL virus đặc thù của lớp:

S = {SA, SB, SC, SD, SE}

Trong đĩ các SA, SB, SC, SD SE 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, dObjecteObject là các điểm dữ liệu trong khơng gian chẩn đốn của mỗi bài tốn, theo thứ tựđĩ.

Bảng 3.1: Các lớp virus cơ bản

tt Ký hiệu Tên lớp Mơ tả Đặdc trữ liưệu ng 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 đốn

Đểđánh giá hiệu quả chẩn đố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) cĩ trong tập chẩn đố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 cĩ 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 đốn:

Reliability = (Detections+Proactions)/VirusesInDatatest

3.3. Cơ chế máy học chẩn đốn virus máy tính 3.3.1. Bài tốn 1: Chẩn đốn lớp virus C-class 3.3.1. Bài tốn 1: Chẩn đốn lớp virus C-class

3.3.1.1. Phát biểu bài tố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={w1, w2, …, wn} 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 đốn (cObject), V

là đối tượng lây, bài tốn chẩn đốn lớp virus C-class được phát biểu như sau: T = {ti∀ i ÷ 1..c; c ∈ N}; t = {ai’, cr; ∀ i’÷ 32..127}

- 32 -

Trong đĩ: ai’, bj’: tập ký tự ASCII 7 bit của TV

c, m: kích thước (số dịng) của TV

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 cơ sở dữ liệu và trích chọn đặc trưng

Mỗi mẫu tin virus trong CSDL SC cĩ dạng: (adsbygoogle = window.adsbygoogle || []).push({});

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 SC 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 tố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 đốn T sao cho T - W≠∅.

- Tổ chức ma trận vector chuỗi XC(p, k) k dịng, mỗi dịng cĩ tối đa p ký tự. - Ánh xạ các dịng dữ liệu của T vào ma trận XC.

3.3.1.3. Thuật tốn chẩn đốn lớp C-class

Thuật tố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 cĩ dạng SC = {V1, V2,…, Vn}. Với mỗi T, xác định:

Trường hợp 1: T ⊃Vi∀ (i =1 ..n), kết luận đối tượng T nhiễm virus Vi (tức là T = T0 ∪ V). Thực hiện các phép tốn:

- Xác định vật chủ T0 bằng phép hiệu T0 = CT(Vi) = T \ Vi

∀ CT(Vi) là phần bù của Vi trong T - Loại bỏ virus: Vi←∅

Trường hợp 2: T = Vi∀ (i =1..n), kết luận đối tượng T là sâu trình Vi. Do sâu trình khơng cĩ vật chủ nên thực hiện Vi←∅.

(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 tốn chẩn đốn lớp C-class

3.3.1.4. Phân tích, đánh giá thuật tốn chẩn đốn lớp C-class

Bản chất của bài tốn chẩn đố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 tố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 cĩ độ 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 tốn là O(n).

Quá trình đánh giá kết quả bài tố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 SC

- Trộn các mẫu virus vào tập Xđã cĩ 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 đố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 (adsbygoogle = window.adsbygoogle || []).push({});

• Đánh giá thuật tốn:

- Tính tố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 tốn chẩn đốn lớp virus C-class

Lần thSửố nghi virus ệm cSậốp nh virus ật phát hiSố virus ện cSảốnh báo virus Sbốỏ virus sĩt Độxác (%) chính báo (%) Độ dự cĐộậy (%) tin

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 tố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 tốn c-Diagnose khĩ đưa ra khẳng định dương khi chẩn đố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 tốn 2: Chẩn đốn lớp virus D-class 3.3.2.1. Phát biểu bài tốn 3.3.2.1. Phát biểu bài tố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 đố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

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 đố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 đố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 đố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 tố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

Cĩ macro Khơng macro

Chờ thi hành Tự chạy

Người dùng Virus macro

- 36 -

Khi xử lý đối tượng (là virus mẫu hay đối tượng chẩn đố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 đố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 đố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 đố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 (adsbygoogle = window.adsbygoogle || []).push({});

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

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 đố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 đố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 tố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 tố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 đố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 tố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 tốn trích chọn tập hành vi chẩn đố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 đố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 (adsbygoogle = window.adsbygoogle || []).push({});

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 đố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 tốn chẩn đốn lớp D-class

Áp dụng quy trình thực nghiệm nhưđối với bài tốn C-class, kết quả nhận được trình bày trong bảng 3.3.

Bảng 3.3: Kết quả thực nghiệm bài tốn chẩn đốn lớp virus D-class

Lần thSửố nghi virus ệm cSậốp nh virus ật phát hiSố virus ện cSảốnh báo virus Sbốỏ virus sĩt Độxác (%) chính báo (%) Độ dự cĐộậy (%) tin

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 tố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 tốn 3: Chẩn đốn lớp virus B-class 3.3.3.1. Phát biểu bài tốn 3.3.3.1. Phát biểu bài tố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 tốn chẩn

Một phần của 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 (Trang 49)