Tải bản đầy đủ (.pdf) (32 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.21 MB, 32 trang )






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 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. Mỗi bài toán có 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 cơ 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 cơ 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 cơ 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 cơ 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 cơ 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 cơ 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) có 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 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 đ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 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 cơ sở dữ liệu và trích chọn đặc trưng
Mỗi mẫu tin virus trong CSDL S
C
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 có 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 có 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 có 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 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 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 đã 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 đ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 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 S
C
). 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:
(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ị 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 S
D
, 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 V
j
nào của nút “Virus macro”). Nếu không xác định được giá trị V
j
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 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
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ơ X
D
(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 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) 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.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
= Có 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 có chứa virus macro đã biết (là một trong n
virus macro đã cập nhật) có 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 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 p
1
AND
Hành vi p
2
AND
(…) AND

Hành vi p
n

THEN Hành vi/Kết luận Q
Trong đó p
i
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 S
B
có dạ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. 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 <Mã chỉ thị, Độ dài> để 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:

×