ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TRƯƠNG MINH NHẬT QUANG 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 CHUYÊN NGÀNH: ĐẢM BẢO TOÁN HỌC CHO MÁY TÍNH VÀ HỆ THỐNG TÍNH TOÁN MÃ SỐ: 1.01.10 LUẬN ÁN TIẾN SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: 1. GS. TSKH. HOÀNG KIẾM 2. PGS. TS. NGUYỄN THANH THỦY TP. HỒ CHÍ MINH - 2009
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
TRƯƠNG MINH NHẬT QUANG
TIẾP CẬN MÁY HỌC VÀ HỆ CHUYÊN GIA ĐỂ NHẬN DẠNG, PHÁT HIỆN
lập, Stand Alone 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 = {SA, SB, SC, SD, SE}
Trong đó các SA, SB, SC, SD và 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, 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:
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 đ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 = {ti ∀ i ÷ 1..c; c ∈ N}; t = {ai’, cr; ∀ i’÷ 32..127}
V = {vj ∀ j ÷1..m; m ∈ N}; v = {bj’, cr; ∀ j’÷ 32..127}
- 32 -
Trong đó: ai’, bj’: 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 SC 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 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 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 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 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 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 toá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 ← ∅.
- 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 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 đ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
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 = <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ơ 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.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
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
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 = <Tên gọi, Kích thước, Ngày cập nhật, Phiên bản, Tập hành vi>
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:
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
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.
Thiết kế xây dựng hệ thống và thực nghiệm
4.1. Mô hình tổng quát của hệ
Hệ MAV được triển khai trên mạng cục bộ [16] qua ba giai đoạn (i) Học dữ
liệu, (ii) Xử lý dữ liệu và (iii) Báo cáo. Giai đoạn 1 cài đặt trên máy chủ dành cho
chuyên gia: đầu vào là tập mẫu và tri thức chuyên gia, đầu ra là CSDL và CSTT.
Giai đoạn 2 và 3 cài đặt trên máy khách. Giai đoạn 2 chứa phần lõi của hệ gồm hai
bước tiền xử lý và xử lý dữ liệu. Tiền xử lý có nhiệm vụ phân lớp dữ liệu và nhận
dạng sơ khởi để loại bớt các trường hợp chắc chắn nhiễm. Tiếp theo, bước xử lý sẽ
áp dụng các thuật giải nhận dạng virus dựa trên luật để phát hiện virus mới. Mọi kết
quả nhận dạng, suy diễn, lập luận sẽ được kết xuất sang giai đoạn Báo cáo. Phân
tích kết quả chẩn đoán, hệ sẽ đặt một số câu hỏi và giải thích nhằm tham vấn, xác
nhận quyết định người dùng để có cách giải quyết thích hợp. Cuối cùng, thông báo
kết quả chẩn đoán (Hình 4.1).
4.2. Tổ chức cơ sở tri thức
CSTT chứa các mô tả đối tượng - virus máy tính và các luật nhận dạng.
4.2.1. Mô tả đối tượng
Có nhiều loại virus máy tính với nhiều kỹ thuật lây nhiễm (xem Phụ lục 1 -
Khảo sát virus máy tính) trên các định dạng dữ liệu khác nhau (xem Phụ lục 2 - Các
định dạng dữ liệu). Đối với loại đối tượng có dữ liệu không đồng nhất, mô hình lớp
(class) là kiểu biểu diễn tri thức thuận tiện nhất. Mỗi lớp đối tượng sẽ chứa các
virus có cùng đặc tính dữ liệu (mã thi hành, dữ liệu byte hay ký tự).
Chương 4
- 63 -
Hình 4.1. Mô hình tổng quát của 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 MAV
- Trích chọn đặc trưng- Phân cụm dữ liệu - Rút luật phân cụm
Tiếp nhận tri thức
Giai đoạn Xử lý dữ liệu(máy trạm)
Giai đoạn Học dữ liệu (máy chủ + chuyên gia)
Giai đoạn Báo cáo (máy trạm + người dùng)
CSDLCSTT
- Tổ chức không gian - Phân lớp dữ liệu - Hợp nhất dữ liệu - Chẩn đoán truyền thống
Tiền xử lý dữ liệu
- Chẩn đoán dựa trên luật - Các thuật giải tìm kiếm - Phân tích, suy diễn, lập luận
Động cơ suy diễn
Báo cáo kết quả
Dữ liệu chẩn đoán
- Hội thoại - Tham vấn
Giải thích
Dữ liệu chẩn đoán CSDL
- 64 -
Mô hình lớp thích hợp cho việc phân loại các virus đa hình (lây nhiễm vào
nhiều đối tượng thi hành thuộc nhiều môi trường, hệ điều hành khác nhau), hoặc
virus lai tạp (sử dụng nhiều kỹ thuật của nhiều loại virus khác nhau). Như vậy, mỗi
virus có thể thuộc về nhiều lớp. Tổng quát, lớp virus chuẩn (tiền bối của tất cả các
lớp) được định nghĩa hướng đối tượng như sau [41]:
Đối tượng: Định danh virus Thuộc tính: Tập thuộc tính/hành vi cơ sở Phương thức: Tập điều trị, hướng xử lý
Mặc dù các virus thuộc lớp A-class và E-class có định dạng như nhau, nhưng
có tập thuộc tính khác nhau (E-class chứa các virus ký sinh vật chủ, trong khi A-
class chứa các sâu trình và trojan hoạt động độc lập). Tương ứng với năm lớp virus
(Chương 3, Bảng 3.1), MAV định nghĩa bốn lớp dữ liệu có khả năng nhiễm virus
gồm lớp Application, lớp Document, lớp Boot record và lớp Text theo mô hình:
Đối tượng: Tên lớp dữ liệu Thuộc tính: Tập định dạng của lớp Phương thức: Phép trích chọn dữ liệu của lớp
Mỗi lớp dữ liệu lại được tổ chức thành các lớp con. Ví dụ lớp Application có
hai lớp con là COM và EXE. Lớp EXE có bốn lớp con DOS-EXE, NE-EXE, PE-
EXE và LE-EXE (xem Phụ lục 2, hình P2.2). Mỗi lớp dữ liệu có quan hệ với một
lớp virus (ví dụ lớp Document có quan hệ 1-1 với lớp D-class) hoặc với nhiều lớp
virus (ví dụ lớp Application có quan hệ 1-n với các lớp A-class và E-class).
4.2.2. Luật nhận dạng virus
Dạng tri thức thứ hai được mô tả trong CSTT là tập luật nhận dạng. Để nhận
dạng virus, hệ sử dụng một thư viện mô tả đặc trưng virus (ID-virus library) tổ chức
dưới dạng tập các vector VK= {v1, v2, …, vk}. Chẩn đoán virus là quá trình truy vấn
các vector vi trong tập dữ liệu S theo các luật dẫn xuất (production rule) dạng:
R: p1^ p2 ^…^ pn → q (4.1)
trong đó pi là các phát biểu mô tả hành vi virus, q là kết luận của quá trình suy diễn.
- 65 -
Dạng luật này phù hợp cho cả chiến lược nhận dạng truyền thống lẫn nhận
dạng dựa trên luật ở giai đoạn xử lý. Trong giai đoạn học, ngoài tập các luật nhận
dạng virus, CSTT còn chứa luật phân cụm virus (sẽ mô tả sau).
4.3. Giai đoạn Học dữ liệu
Giai đoạn Học dữ liệu được thiết kế dành riêng cho chuyên gia (cài đặt trên
máy chủ). Giai đoạn này có nhiệm vụ tiếp nhận tri thức chuyên gia, phân tích và rút
ra các quy luật phân bố dữ liệu trong CSDL virus. Tập luật này sau đó dùng nhận
dạng virus ở giai đoạn xử lý (cài đặt trên máy khách). Các tác vụ chính trong giai
đoạn Học dữ liệu là trích chọn dữ liệu, phân cụm dữ liệu và rút luật trên tập mẫu.
4.3.1. Trích chọn dữ liệu
Dữ liệu đầu vào của giai đoạn này là tập mẫu virus. Tập mẫu dương này đã
được chuyên gia giải mã, phân tích kỹ thuật và phân loại theo các lớp virus đã định
nghĩa (boot virus, file virus, text virus, macro virus hay worm-trojan). Gọi V là tập
mẫu của một lớp virus xác định, hàm trích chọn dữ liệu tổng quát có dạng:
f(vi) = {aj | j ÷1..m; m∈N*}
Trong đó: vi là mẫu virus thứ i thuộc lớp virus V (v∈V)
aj là tập dữ liệu đặc trưng của virus vi (j ÷1..m; m∈N*)
Hàm này sẽ trích chọn tự động các đoạn mã đặc trưng của virus trong các tổ
chức thi hành. Ở giai đoạn xử lý, hàm này cũng được dùng để trích chọn mẫu dữ
liệu đặc trưng tương ứng với các lớp virus cần chẩn đoán (xem Bảng 4.1).
4.3.2. Phân cụm dữ liệu
Mục tiêu của bước này nhằm phát hiện sự giống nhau giữa các mẫu virus để
gom chúng thành từng nhóm có cùng đặc điểm. Quy luật phân bố nhóm dùng trong
giai đoạn Xử lý dữ liệu nhằm ước lượng đối tượng chẩn đoán có thuộc một trong
các nhóm virus đã phân hoạch hay không để quyết định các bước kiểm tra tiếp theo.
Có thể thực hiện việc này bằng phân cụm dữ liệu, kỹ thuật phân loại dữ liệu phổ
biến trong các hệ học không giám sát.
- 66 -
Bảng 4.1: Trích chọn dữ liệu đặc trưng từ các định dạng cơ bản
Stt Lớp dữ liệu Lớp virus Vật chủ Nội dung trích chọn 1 Văn bản C-class Văn bản 7-bit Toàn bộ nội dung
Dữ liệu byte < 64KB Tập tin thi hành 2 Chương trình A-class
E-class Tập tin thư viện
Từ điểm vào lệnh (IP-Instruction Pointer) của chương trình
Tập tin tư liệu Tập tin bảng tính 3 Tư liệu MS Office D-class Tập tin trình diễn
Tên và nội dung macro
Mẫu tin khởi động hệ điều hành đĩa mềm Mẫu tin khởi động hệ điều hành đĩa cứng 4 Mẫu tin khởi động B-class
Mẫu tin khởi tạo phân khu đĩa cứng
Từ điểm vào lệnh IP của mẫu tin khởi động
Có nhiều kỹ thuật phân cụm: phân hoạch, phân cấp, dựa trên mật độ, dựa
trên mô hình hoặc trên lưới. Đề tài này sử dụng phân cụm phân cấp (hierarchical
clustering). Đặc điểm của kỹ thuật này là không cần xác định số cụm ngay từ đầu
(khi thuật giải kết thúc mới biết được số cụm). Phân cấp cụm thường được biểu diễn
dưới dạng đồ thị cây các cụm (dendogram): nút lá biểu diễn các đối tượng riêng lẻ,
nút trung gian biểu diễn các cụm. Có hai kỹ thuật phân cụm phân cấp là (i) xuất
phát từ các đối tượng đơn lẻ, gộp các điểm dữ liệu đủ gần vào các cụm hoặc (ii)
xuất phát từ một cụm duy nhất (toàn bộ không gian), tách các điểm dữ liệu có độ
phân biệt cao nhất vào các cụm con [6] (Hình 4.2). Trong đề tài này, do bắt đầu từ
tập mẫu virus nên phân cụm tách nhóm sẽ được vận dụng để phân loại các mẫu thử.
4.3.2.1. Tổ chức cấu trúc dữ liệu
Để phân cụm virus, MAV sử dụng ma trận dữ liệu (p cột-thuộc tính, k dòng-
đối tượng) như hình 4.3 [51]. Không gian phân cụm sử dụng cấu trúc dữ liệu Cây
giá trị (Value Tree, ký hiệu là V-Tree).
Là mô hình thích hợp để lưu trữ dữ liệu vector dài, V-Tree có cấu trúc giống
B-Tree và được xem là biến thể của R-Tree. Khác với R-Tree, V-Tree không quan
tâm đến việc tối thiểu các chữ nhật chồng lấp như R-Tree.
- 67 -
Cho các số nguyên m>1, n>1, cây m-phân V-Tree bậc (m,n) là một cây có:
- Tất cả các nút lá đều có số mức như nhau. - Mỗi nút lá chứa các điểm có giá trị từ n/2 đến n. - Mỗi nút trung gian có m/2 đến m nút con, trừ nút gốc có từ 2 đến m con. - Đối với mỗi nút con M của một nút trung gian N, nút N chứa danh sách
các con trỏ đến M [48]. 4.3.2.2. Thuật toán ACV gom cụm trên V-Tree
Ma trận dữ liệu X(p, k) có p cột k dòng (mỗi đối tượng có p thuộc tính, có tất
cả k đối tượng). Mỗi nút trên cây V-Tree dùng biểu diễn các cụm, mỗi nút có ba
trường gồm Label (nhãn nút chứa trị thuộc tính), Points_list (danh sách các đối
tượng trong cụm) và Childs_list (danh sách các nút con). Thuật giải ACV
(Algorithm of Clustering by V-tree) dựng cây phân cụm bằng V-tree như sau:
x11 x21 x31 … xp1
x12 x22 x32 … xp2
… … … … …
x1k x2k x3k … xpk
Hình 4.3: Ma trận dữ liệu
a,b,c,d,e
a
b
c
e
a,b
d d,e
c,d,e
Gộp
Tách
Hình 4.2: Hai phương pháp phân cấp cụm
- 68 -
- Khởi tạo nút gốc
- Đối với mỗi điểm dữ liệu thứ j của X, thực hiện:
- Chọn nút gốc là Nút hiện hành
- Đối với mỗi thuộc tính thứ i của điểm đang xét, thực hiện:
- Nếu Nút hiện hành chưa có nút con x(i,j) thì
- Tạo nút mới, nhãn nút là x(i,j)
- Cho nút mới tạo làm con của Nút hiện hành
- Đặt nút con x(i,j) của Nút hiện hành làm Nút hiện hành
- Bổ sung mẫu tin thứ j vào danh sách Point_list của Nút hiện hành
Hình 4.4 mô tả thuật toán ACV phân cụm CSDL bằng V-Tree.
MakeNew(Root, ‘Root’, Nil, Nil) FOR j=1 TO k DO
Current_Node ← Root FOR i=1 TO p DO
IF Pos(x[i, j], Current_Node.Child_list)= 0 THEN MakeNew(Node, x[i,j],nil, nil)
Trong ví dụ trên, số nút duyệt để rút được 6 luật là (3 cột +1)×6 luật = 24 nút
Về mặt trực quan, 6 luật trên có dạng tổng quát:
ClusterNum ← Type, Hooking, Host
Trong đó: ClusterNum ∈ {Cluster_1, Cluster2, …, Cluster_6} = q Type ∈ {DLL, EXE} = p1 Hooking ∈ {Registry, Startup, WinFile} = p2 Host ∈ {Application, Service} = p3 Rõ ràng, dạng tri thức này phù hợp với luật (4.1), công cụ lập luận chủ đạo
xây dựng các phát biểu IF-THEN cho quá trình lập luận và suy diễn của hệ. Phần
tiếp theo sẽ trình bày phương án rút luật phân cụm không sử dụng V-Tree.
4.3.3.2. Rút luật phân cụm trên ma trận dữ liệu
Rút luật trên cây V-Tree có ưu điểm là khai thác được các trường hợp dữ liệu
tốt (cây ít nhánh) và cung cấp hình ảnh trực quan. Nhược điểm của phương pháp
này là tốn không gian biểu diễn cây. Có thể khắc phục hạn chế này bằng cách:
• Định nghĩa một danh sách luật cấp phát động. Mỗi mẫu tin trên danh sách có
hai trường. Trường đầu (header) chứa danh sách các phần tử thuộc cụm,
trường thứ hai (body) chứa luật phân cụm.
• Sử dụng thuật toán ARCRD (Algorithm to Retrieve Clustering Rules from
Database) duyệt ma trận dữ liệu, rút luật phân cụm đưa vào danh sách luật.
Các bước thực hiện thuật toán ARCRD như sau:
- Khởi tạo danh sách luật (rỗng) - Đối với mỗi mẫu tin trong CSDL, thực hiện:
- 75 -
- Khởi tạo một luật ứng viên Rv (rỗng) - Đối với mỗi thuộc tính, bổ sung từng trực kiện (trị thuộc tính) vào Rv - Nếu Rv không có trong danh sách luật, bổ sung Rv vào RuleSet - Bổ sung số hiệu mẫu tin vào phần đầu (header) của luật đang xét RuleSet ← ∅ //khởi tạo danh sách luật FOR j=1 TO k DO //duyệt từng mẫu tin trong CSDL
Rj ← ∅ //khởi tạo luật ứng viên Rj FOR i=1 TO p DO Rj ← Rj + x[i, j] //tạo tiền đề cho luật ứng viên Rj idx ← Pos(Rj, RuleSet) //tìm Rj trong danh sách luật IF idx = 0 THEN //nếu tìm không thấy
Append(Rj, RuleSet) //bổ sung Rj vào danh sách luật idx ← SizeOf(RuleSet) //cập nhật con trỏ chỉ số luật
ENDIF RuleSet[idx].header ← Ruleset[idx].header + j //cập nhật header
ENDFOR
Hình 4.8: Thuật toán ARCRD rút luật phân cụm trực tiếp trên CSDL
Sau đây là phần minh họa ARCRD trên CSDL ví dụ. Đầu tiên, khởi tạo tập
luật RuleSet rỗng. Khi duyệt mẫu tin thứ nhất, R1=DLL ^ Registry ^ Application. Do
chưa có luật nào trong RuleSet nên R1 được đưa ngay vào tập luật:
1 DLL ^ Registry ^ Application
Khi duyệt mẫu tin thứ hai, R2 = EXE ^ Startup ^ Application. Luật này chưa
ARCRD cho kết quả khớp với tập luật rút trên V-Tree bằng R2LTA. Tuy đơn
giản và ít tốn bộ nhớ, nhưng ARCRD cần chi phí cho thao tác tìm luật ứng viên và
không cung cấp thông tin của các nút trung gian trên cây V-Tree. Nếu chỉ quan tâm
đến tập luật kết quả, ARCRD là lựa chọn tốt hơn so với R2LTA.
4.4. Giai đoạn Xử lý dữ liệu
Giai đoạn Xử lý dữ liệu được thiết kế ở mức người sử dụng, có nhiệm vụ
chẩn đoán virus dựa vào CSDL và CSTT được cung cấp ở giai đoạn trước.
Đầu tiên, đối tượng chẩn đoán được đưa vào phân hệ Phân loại dữ liệu để
loại bớt các trường hợp chắc chắn sạch. Sau đó dữ liệu sẽ được phân tích thuộc tính
để đánh giá đối tượng có thuộc nhóm (cluster) virus đã biết nào hay không. Nếu
phát hiện một trong các nhóm virus đã biết, đối tượng sẽ được chuyển sang phân hệ
Nhận dạng truyền thống. Ngược lại, phân hệ này sẽ áp dụng kỹ thuật Hợp nhất dữ
liệu nhận dạng virus mới trước khi chuyển sang các bước xử lý tiếp theo (Hình 4.9).
Phân hệ Nhận dạng truyền thống chẩn đoán đối tượng bằng kỹ thuật truy vấn
chuỗi mã. Nếu có virus, xuất báo cáo, cập nhật CSDL và CSTT. Nếu không, chuyển
đối tượng sang phân hệ Nhận dạng dựa trên luật. Áp dụng năm bài toán học, phân
hệ Nhận dạng dựa trên luật sẽ tiến hành chẩn đoán virus lạ cho các lớp dữ liệu
tương ứng. Cuối cùng, phân hệ Hội thoại sẽ phân tích kết quả, tạo các hộp thoại
giao tiếp, kết xuất báo biểu (xem sơ đồ hình 4.10, lưu đồ xử lý hình 4.11).
- 77 -
1. Tổ chức không gian quan sát: • Phân loại đối tượng vào 1 trong 2 lớp (Có thể nhiễm, Chắc chắn sạch) • Loại bỏ Lớp 2 để tinh giản không gian quan sát.
2. Đối với mỗi điểm dữ liệu x thuộc Lớp 1, thực hiện: • Bước 2.1: Phân tích đặc trưng
- Phân tích luật Rv phân bố trị thuộc tính của x - Nếu Rv∈ RuleSet, chuyển sang bước 2.2 - Ngược lại, nhận dạng virus mới bằng kỹ thuật Hợp nhất dữ liệu - Chuyển đến bước 2.3
• Bước 2.2: Chẩn đoán virus hướng tiếp cận chuỗi mã - Áp dụng các kỹ thuật nhận dạng truyền thống - Nếu không phát hiện virus, chuyển sang bước 2.3 - Nếu phát hiện virus: điều trị, thông báo, chuyển sang bước 2.4.
• Bước 2.3: Chẩn đoán dựa theo luật - Vận dụng các bài toán nhận dạng virus dựa trên luật - Nếu có dấu hiệu nghi ngờ: giải thích, hội thoại, tham vấn - Cập nhật cơ sở dữ liệu, tăng trưởng cơ sở tri thức
• Bước 2.4: Lặp lại bước 2 cho các điểm dữ liệu kế tiếp 3. Thông báo kết quả, kết thúc quá trình
Hình 4.10: Tiến trình xử lý của giai đoạn Xử lý dữ liệu
Hình 4.9: Mô hình giai đoạn Xử lý dữ liệu của hệ MAV
Cơ sở dữ liệu
Cơ sở tri thức
Đối tượng chẩn đoán
Phân loại dữ liệu Hợp nhất dữ liệu
Đối tượng chẩn đoán
Đối tượng chẩn đoán
Nhận dạng truyền thống
Đối tượng chẩn đoán
Nhận dạng dựa trên luật
Đối tượng chẩn đoán
Hội thoại Tham vấn
Đối tượng chẩn đoán
Kết quả Kết quả
Cơ sở tri thức
Kết quả Kết quả
- 78 -
Hình 4.11: Lưu đồ xử lý của giai đoạn Xử lý dữ liệu
Phân lớp, Tinh giản không gian quan sát
Còn điểm chẩn đoán ?
Phân tích điểm chẩn đoán
Rv(x)∈ RuleSet ?
Truy vấn CSDL Chẩn đoán hướng truyền thống
Không phát hiện virus ?
Chẩn đoán dựa theo luật
Nghi ngờ virus ?
Phân tích, suy diễn, lập luận
Giải thích, hội thoại
Cập nhật CSDL Tăng trưởng CSTT
Chẩn đoán hướng hợp nhất dữ liệu
Kết thúc
Đ
S
Đ
S
Đ
S
Đ
S
Bắt đầu
Tập chẩn đoán
Cập nhật CSDL Tăng trưởng CSTT
- 79 -
4.4.1. Phân loại dữ liệu chẩn đoán
Do virus máy tính chỉ lây vào các đối tượng chứa mã thi hành nên không
phải đối tượng nào cũng nhiễm virus. Nói cách khác, chỉ một số đối tượng là có
nguy cơ nhiễm (+), phần còn lại chắc chắn sạch (-). Ngay cả trong số đối tượng
nguy cơ, không phải đối tượng nào cũng nhiễm virus. Công tác phân loại thực hiện
hai nhiệm vụ: (i) giữ lại các điểm (+), loại bớt các điểm (-) an toàn khỏi không gian
quan sát và (ii) ước lượng nhóm (cluster) virus mà mỗi điểm (+) có thể thuộc về,
nhằm hạn chế các truy vấn không cần thiết trên các mẫu virus không liên quan.
Hình 4.12 minh họa chiến lược phân loại dữ liệu chẩn đoán giúp cải thiện tốc
độ thực thi của hệ nhờ giảm thiểu không gian quan sát và không gian truy vấn.
4.4.1.1. Phân loại đối tượng
Mục tiêu của giai đoạn này là phân tích các đặc trưng giống nhau của x với
các phần tử trong tập S để gán chúng vào một trong các lớp. Khi tất cả các điểm dữ
liệu đã được gán nhãn, dữ liệu sạch (không thuộc các lớp có nguy cơ) được loại
khỏi không gian quan sát trước khi chuyển hệ sang các giai đoạn tiếp theo.
Hình 4.12: Chiến lược phân loại dữ liệu chẩn đoán
+
+
+
+
+ +
+
-
- - -
- - -
-
+
+
+
++
+
+
- -
Truy vấn luật phân nhóm Phân lớp Không gian quan sát
Cơ sở dữ liệu
Mẫu virus 1
Mẫu virus 2
Mẫu virus j
(…)
(…)
Mẫu virus k
Mẫu virus K
Cluster 1
Cluster 2
(…)
Cluster i (…)
Cluster N
Cluster n
Tập luật phân bố nhóm
Không gian truy vấn Không gian quan sát
- 80 -
MAV sử dụng phương pháp phân loại láng giềng gần nhất (Nearest
Neighbor) để phân loại đối tượng chẩn đoán, dạng tổng quát như sau:
fs(x) = yi’ với ||xi’- x||χ = minxi∈S ||xi-x||χ , yi = {-1,1}
Tập huấn luyện S gồm n cặp (x1, y1), (x2, y2),…,(xn, yn), trong đó:
- xi là các vector mẫu đặc trưng của các lớp dữ liệu có nguy cơ nhiễm virus.
- yi∈{1..C} là nhãn của vector xi.
Yêu cầu đặt ra là xác định x thuộc lớp nào trong các lớp đã biết (xác định
nhãn y’ cho vector đối tượng x). Dựa vào nguyên tắc học thể hiện (instance-based
learning), ý tưởng của phương pháp 1-NN như sau:
- Tìm các thể hiện (mẫu) tương tự với x trong tập huấn luyện.
- Chọn nhãn cho x từ các nhãn của các mẫu tương tự trong tập huấn luyện, là
nhãn của láng giềng gần nhất tìm được.
Vấn đề cơ bản trong luật NN là tính toán khoảng cách từ điểm dữ liệu x chưa
được phân lớp đến mỗi điểm xi thuộc lớp thứ nhất và xj thuộc lớp thứ hai trong tập
luyện (vector đối tượng x được biểu diễn dưới dạng ⟨a1(x), a2(x), …, an(x)⟩). Trong
bài toán 1-NN, độ đo khoảng cách Euclide được tính bằng công thức:
d(xi,xj) = 2
1))()(( jrir
n
rxaxa −∑
=
Trong đó ar(x) là giá trị của thuộc tính thứ r của x.
Thuật toán K-láng giềng gần nhất được mô tả như sau:
- Thuật toán huấn luyện:
Với mỗi mẫu luyện ⟨x, f(x)⟩
Bổ sung mẫu ⟨x, f(x)⟩ vào tập mẫu luyện
- Thuật toán phân lớp:
Cho mẫu truy vấn xq cần phân lớp
Gọi x1, x2,…, xk là k mẫu trong kho mẫu huấn luyện gần xq nhất
Xác định nhãn f(xq) của mẫu xq từ nhãn f(x1), f(x2),…, f(xk)
- 81 -
Phương pháp học dựa vào thể hiện nói chung, phân lớp theo k-láng giềng nói
riêng, là các tiếp cận xấp xỉ hàm mục tiêu có giá trị rời rạc hoặc liên tục. Việc học
trong những thuật toán này chỉ đơn giản là lưu trữ dữ liệu huấn luyện. Khi cần phân
loại đối tượng mới, một tập các đối tượng “gần giống” hay “tương tự” sẽ được chọn
ra từ kho dữ liệu huấn luyện có sẵn và sử dụng để phân loại đối tượng mới. Thuận
lợi rõ nét nhất của phương pháp này là khi hàm mục tiêu thật sự phức tạp nhưng vẫn
có thể được mô tả bằng một tập các hàm xấp xỉ cục bộ ít phức tạp hơn. Do đó mô
hình này tỏ ra rất phù hợp với bài toán phân loại đối tượng có nguy cơ nhiễm virus.
Tuy nhiên phương pháp này cũng có một số hạn chế. Thứ nhất, chi phí cho
việc phân lớp đối tượng có thể tốn kém do gần như toàn bộ việc tính toán diễn ra
trong giai đoạn phân loại dữ liệu chẩn đoán chứ không phải lúc huấn luyện. Do đó
cần đưa thêm các kỹ thuật lập chỉ mục hiệu quả để rút ngắn thời gian tính toán lúc
phân loại đối tượng mới. Thứ hai, nếu đặc trưng để phân loại đối tượng chỉ phụ
thuộc vào một số ít trong số nhiều thuộc tính sẵn có của các đối tượng thì những đối
tượng thật sự “tương tự” nhất có thể cách nhau rất xa [49].
Có nhiều phương pháp khắc phục hạn chế của phương pháp k-láng giềng gần
NOD32 8003 771 86.34 98.63 Panda 7945 731 76.87 97.53
Kết quả cho thấy MAV có độ dự báo xấp xỉ với độ dự báo trung bình của các
AV thử nghiệm (75.35% so với 79.28%). Thực tế, phần lớn virus mẫu trong tập dữ
liệu thử nghiệm đều đã được các AV cập nhật, nên số virus được các AV phát hiện
nhiều hơn số virus dự báo. Mặt khác, tiếp cận học chỉ hiệu quả khi có đủ tri thức
(tập ví dụ có nhiều mẫu ‘tương tự’ nhau), trong khi việc chọn mẫu thử được thực
hiện ngẫu nhiên trên tất cả các lớp. Điều này lý giải tại sao độ tin cậy thực nghiệm
của MAV thấp hơn độ tin cậy trung bình của các AV khác (91.19% so với 97.78%).
4.5.2. Đánh giá tốc độ thực thi của MAV
Các phần mềm tham gia thử nghiệm tốc độ gồm Norton Anti-virus (NAV)
[89], Kaspersky Lab (KL) [78] và Grisoft Anti-virus (AVG) [72]. Tập dữ liệu thử
nghiệm X có 36178 tập tin. Cách thực hiện như sau:
† Số liệu này chỉ có ý nghĩa trên tập dữ liệu của đề tài, không có giá trị chấm điểm các AV thử nghiệm.
- 93 -
78.03 75.62
86.34
76.87 75.35
97.62 97.34 98.63 97.5391.19
Bit Defender Norton 2007 NOD32 Panda MAV
Độ dự báo
Độ tin cậy
Hình 4.18: Thử nghiệm chất lượng các hệ anti-virus
- Đo thời gian trung bình của các VirusFix (chỉ quét một virus) của mỗi AV. - Đo thời gian chạy trung bình của mỗi AV hoàn chỉnh (có số virus xác định). - Tính tốc độ quét trung bình của mỗi AV trong điều kiện chuẩn (ĐKC).
Đối với mỗi anti-virus thử nghiệm, gọi:
- Vc là số mẫu tin trong CSDL virus - T0 là thời gian (giây) quét toàn bộ tập X trong trường hợp Vc=1. - T là thời gian (giây) quét toàn bộ tập X trong trường hợp Vc>1. - T1 là thời gian trung bình (giây) chẩn đoán sự xuất hiện một virus trên tập X. - T2 là thời gian trung bình (giây) chẩn đoán thêm một mẫu tin trong CSDL. - Ve là số mẫu tin trong CSDL virus ở ĐKC. - Ce là dung lượng (KB) dữ liệu trong ĐKC. - Te là thời gian (giây) chẩn đoán trong ĐKC. - Se là tốc độ (KB/giây) đo được trong ĐKC.
Các đại lượng T1 , T2, Te, Se được tính như sau:
- T1=T / Vc - T2= (T-T0)/(Vc-1)
- Te = T + (Ve-Vc)×T2 - Se = Ce/Te
ĐKC cho Ve=2.000; Ce=10.000.000 KB. Số liệu tính toán nhận được trong
bảng 4.10. Biểu đồ hình 4.19 so sánh tốc độ của các AV thử nghiệm trong ĐKC.
- 94 -
Bảng 4.10: Kết quả thử nghiệm tốc độ các hệ anti-virus
Association Model of Knowledge Base and Database in Machine Learning
Anti-virus System. The Proceedings of the WMSCI 2006 Conference. July
2006, Florida-USA, 277-282.
11. Truong Minh Nhat Quang, Hoang Trong Nghia. A Multi-agent Mechanism
in Machine Learning Approach to Anti-virus System. In the Proceedings of the
2nd Symposium on Agents and Multi-Agent Systems, KES-AMSTA 2008,
Korea. Springer Lecture Notes in Artificial Intelligence, Vol. 4953, 743-752.
12. Trương Minh Nhật Quang, Hoàng Kiếm, Nguyễn Thanh Thủy. Ứng dụng
Máy học và Hệ chuyên gia trong phân loại và nhận dạng virus máy tính. Tạp
chí Công nghệ Thông tin và Truyền thông (ISSN 0866-7039). Số 19, 2-2008
(93-101), Việt Nam, 2008.
13. Hoàng Kiếm, Trương Minh Nhật Quang. Cơ chế máy học chẩn đoán virus
máy tính. Tạp chí Tin học và Điều khiển học. Số 1 (2008), Tập 24 (32- 41), Việt
Nam, 2008.
- 102 -
TÀI LIỆU THAM KHẢO
TÀI LIỆU TIẾNG VIỆT
[1]. Hoàng Kiếm, Đinh Nguyễn Anh Dũng. Giáo trình Trí tuệ nhân tạo. NXB Đại học Quốc gia TP. Hồ Chí Minh. 2005.
[2]. Hoàng Kiếm, Đỗ Văn Nhơn, Đỗ Phúc. Giáo trình các hệ cơ sở tri thức. NXB Đại học Quốc gia TP. Hồ Chí Minh, 2002.
[3]. Hoàng Kiếm, Trương Minh Nhật Quang. Cơ chế máy học chẩn đoán virus máy tính. Tạp chí Tin học và Điều khiển học. Số 1 (2008), Tập 24 (32-41), Việt Nam, 2008.
[4]. Hoàng Kiếm, Nguyễn Quang Sơn, Trần Duy Lai. Bảo vệ thông tin và phòng chống virus máy tính. NXB Khoa học và Kỹ thuật. Việt Nam, 1990.
[5]. Đỗ Đại Lợi, Nguyễn Hoàng Việt. Hệ điều hành Windows, các lổ hổng bảo mật bị virus tin học khai thác. ĐHBK Hà Nội - ĐHTS Nha Trang, 2003.
[6]. Đỗ Phúc. Giáo trình Khai thác dữ liệu. NXB ĐHQG TP. HCM, 2005. [7]. Trương Minh Nhật Quang, Hoàng Kiếm, Nguyễn Thanh Thủy. Ứng
dụng Máy học và Hệ chuyên gia trong phân loại và nhận dạng virus máy tính. Tạp chí Công nghệ Thông tin và Truyền thông (ISSN 0866-7039). Số 19, 2-2008 (93-101), Việt Nam, 2008.
[8]. Trần Đức Quang. Nguyên lý các hệ Cơ sở dữ liệu và Cơ sở tri thức. Tập 3 (biên dịch từ bản gốc của Jeffrey D. Ullman). NXB Thống kê, 2000.
[9]. Nguyễn Đình Thúc. Trí tuệ nhân tạo - Máy học. NXB LĐXH, 2002. [10]. Hồ Ngọc Thơ. Tiếp cận sinh học để nhận dạng biến thể virus tin học. Khoa
CNTT Đại học Cần Thơ, 2005. [11]. Nguyễn Thanh Thủy, Trương Minh Nhật Quang. Các giải pháp cho phần
mềm chống virus thông minh. Tạp chí Tin học và Ðiều khiển, T.13, S.3 (1997), 123-132.
[12]. Nguyễn Thanh Thủy, Trương Minh Nhật Quang. Các cơ chế chẩn đoán virus tin học thông minh dựa trên tri thức. Tạp chí Tin học và Ðiều khiển, T.14, S.2 (1998), 45-52.
[13]. Nguyễn Thanh Thủy, Trương Minh Nhật Quang. Máy ảo, công cụ hỗ trợ chẩn đoán và diệt virus tin học thông minh. Tạp chí Tin học và Ðiều khiển, T.16, S.2 (2000), 37-40.
[14]. Nguyễn Thanh Thủy, Trương Minh Nhật Quang. Cây chỉ thị nhị phân biểu diễn không gian trạng thái chẩn đoán virus tin học. Tạp chí Tin học và Ðiều khiển, T.15, S.3 (1999), 40-45.
[15]. Trần Quốc Việt. Thiết kế máy ảo, công cụ hỗ trợ hệ chẩn đoán thông minh virus lạ trên máy tính. Khoa CNTT Đại học Cần Thơ, 1998.
- 103 -
TÀI LIỆU TIẾNG ANH
[16]. Alan C. More, John C. Penman. The Tomes of Delphi Basic 32-Bit Communications Programming. Wordware Publishing, Inc., USA-2003.
[17]. Andreas Marx. Anti-virus vs Anti-virus: False Positives in AV Software. Proceedings of the International Virus Bulletin Conference, 2003.
[18]. Bordera M. The Computer Virus War. Is The Legal System Fighting or Surrendering? Computer & The Law Project. Computer and Law, University of Buffalo School of Law, 1997.
[19]. Charlie Calvert. Unleash the power of Delphi 4. Borland Press. USA-1999. [20]. Cios K. J. & Kurgan L. Hybrid Inductive Machine Learning: An Overview
of CLIP Algorithms. In L. C. Jain, and J. Kacprzyk (Eds.) New Learning Paradigms in Soft Computing, Physica-Verlag (Springer), 2001.
[21]. David Chess, Steve R. White. An Undetectable Computer Virus. Virus Bulletin Conference, September 2000.
[22]. David Ferbrache. A Pathology of Computer Viruses. Springer-Verlag, 1992. [23]. David M. Blei, Andrew Y. Ng & Michael I. Jordan. Latent Dirichlet
Allocation. Journal of Machine Learning Research 3 (2003) pp. 993-1022. [24]. Dmitry Gryaznop. Scanner of the Year 2000: Heuristic. Proceedings of the
5th International Virus Bulletin, 1999. [25]. Eugene H. Spafford. Computer Viruses as Artificial Life. Journal of
Artificial Life, MIT Press, 1994. [26]. Eugene H. Spafford. The Internet worm program: an analysis. Technical
Report CSD-TR-823, 1998. Dept. of Computer Science, Purdue University. [27]. Fred Cohen. Computer Viruses: Theory and Experiments. Computer and
Security 6. (1987) 22-35. [28]. Fred Cohen. Computer Viruses. PhD thesis, University of Southern
California, 1985. [29]. G. Csurka, C. Dance, L. Fan, J. Willamowski & C. Bray. Visual
Categorization with Bags of Keypoints. Proceedings of the European Conference on Computer Vision. Prague, Czech Republic, May 2004.
[30]. Gerard Salton & Christopher Buckley. Term-Weighting Approaches In Automatic Text Retrieval. Information Processing & Management Vol. 24, No. 5, Printed in Great Britain. Pergamon Press plc, 1998, pp. 513-523.
[31]. Gerald Tesauro, Jeffred O. Kephart, Gregory B. Sorkin. Neural Networks for Computer Virus Recognition. IEEE Computer Society, 8-1996.
- 104 -
[32]. Gilbert Saporta. Data fusion and data grafting. CNAM, F75141 Paris Cedex 03, France. Elsevier Science B.V, 2002.
[34]. J. A. Black & N. Ranjan. Automated event extraction from email. Final Report of CS224N/ Ling237 Course in Stanford.
[35]. Jedidiah Richard Crandall. Capturing and Analyzing Internet Worms. Computer Science Doctoral Thesis. University of California. USA, 2007.
[36]. Jeffrey O. Kephart, William C. Arnold. Automatic Extraction of Computer Virus Signatures. 4th Virus Bulletin International Conference, 178-184, 1994.
[37]. Joel Scambray, Stuart McClure. Hacking Exposed Windows2000: Network Security Secrets & Solutions. Orbone/McGraw-Hill Press. USA, 2001.
[38]. John Bloodworth. The AV industry – Smug or Smart? Virus Bulletin Conference, September 2000.
[39]. Joseph Rabaiotti. Counter Intrusion Software. PhD. Thesis, Computer Science, Cardiff University, pp. 38- 43, 2007.
[40]. Karacah B., Rajmanath R., Wesley E. Snyder. A Comparative of Structural Risk Minimization by Support Vector Machines and Nearest Neighbor Rule. Elsevier Science, 5 September 2003.
[41]. Hoang Kiem, Nguyen Thanh Thuy, Truong Minh Nhat Quang. A Machine Learning Approach to Anti-virus System. Joint Workshop of Vietnamese Society of AI, SIGKBS-JSAI, ICS-IPSJ and IEICE-SIGAI on Active Mining. 4-7 Dec. 2004, Hanoi-VN, 61-65.
[42]. Hoang Kiem, Nguyen Thanh Thuy, Truong Minh Nhat Quang. Machine Leaning Approach to Anti-virus Expert System with Nearest Neighbor Rule-based Structural. RIVF’05, February 2005, Cantho-Vietnam. 295-298.
[43]. Konstantin Rozinov. An Abstract Efficient Static Analysis of Executables for Detecting Malicious Behaviors. Master of Science Thesis. Brooklyn Polytechnic University. USA, June 2005.
[44]. Lei Zhu, Aibing Rao & Aidong Zhang. Theory of Keyblock-based Image Retrieval. ACM Journal Name, Vol V., No. N, March 2002, pp. 1-32.
[45]. Leonard Adleman. An abstract theory of computer viruses. In Lecture Notes in Computer Science, vol 403. Springer-Verlag, 1990.
[46]. M. Pietrek. Windows 95 System Programming Secrets. IDG Books, 1995. [47]. Matthew G. Schultz, Eleazar Eskin, Erez Zadok, Salvatore J. Stolfo.
Data Mining Methods for Detection of New Malicious Executables. In Proc. of IEEE Symposium on Security and Privacy. Oakland, CA. May 2001.
- 105 -
[48]. Maurício R. Mediano, Marco A. Casanova, Marcelo Dreux. V-Trees, A Storage Method for Long Vector Data. Proceedings of the 20th VLDB Conf. 1994, Santiago - Chile.
[49]. Mitchell T. M. Instance-Based Learning. Machine Learning. WCB/McGraw-Hill Press 1997. pp. 230-248.
[50]. Network Associate. Advanced Virus Detection Scan Engine and DATs. Execute White Paper, McAfee Security, 2002.
[51]. P. Berkhin. Survey of clustering data mining techniques. Technical report, Accrue Software, San Jose, CA, 2002.
[52]. Péter Ször. The Art of Computer Virus Research and Defense. Addison Wesley Professional Press (ISBN 0-321-30454-3). February 03, 2005.
[53]. Péter Ször. Attacks On Win32 – Part II. Virus Bulletin Conference. Oxfordshire, England, 2000.
[55]. Truong Minh Nhat Quang, Hoang Van Kiem, Nguyen Thanh Thuy. Association Model of Knowledge Base and Database in Machine Learning Anti-virus System. The Proceedings of the WMSCI 2006 Conference. July 2006, Florida-USA, 277-282.
[56]. Truong Minh Nhat Quang, Hoang Trong Nghia. A Multi-agent Mechanism in Machine Learning Approach to Anti-virus System. In Proceedings of the 2nd Symposium on Agents and Multi-Agent Systems, KES-AMSTA 2008, Korea. Springer Lecture Notes in Artificial Intelligence, Vol. 4953, 743-752.
[57]. R. W. Lo, K.N. Levitt, R.A. Olsson. MCF: a Malicious Code Filter. Computer & Security, 14(6): 541-566, 1995.
[58]. Simone McCloskey. Cryptography and Viruses. UCSD, Department of Mathematics, University of California, San Diego. USA, 2005.
[59]. Steve R. White, Morton Swimmer, Edward Pring, William Arnold, David Chess, John F Morar. Anatomy of a Commercial-Grade Immune System, Proceedings of the Ninth Intrenational Virus Bulletin Conference, September/October 1999.
[60]. Steve R. White. Open Problems in Computer Virus Research. Proceedings of the Virus Bulletin Conference, Munich, Germany, Octorber 1998.
[61]. Tatsuya Iyota, Keiji Yanai. The Photo News Flusher: A Photo-News Clustering Browser. Department of Computer Science, The University of Electro – Communications. Tokyo – Japan, 2007.
- 106 -
[62]. Nguyen Thanh Thuy, Truong Minh Nhat Quang. Expert System Approach to Diagnosing and Destroying Unknown Computer Viruses. Proceedings of the IASTED International Conference Artificial Intelligence and Soft Computing. 27-30 May 1998, Cancun - Mexico.
[63]. Nguyen Thanh Thuy, Truong Minh Nhat Quang. A Global Solution to Anti-virus Systems. In Proc. of The 1st International Conference on Advanced Communication Technology. 10-12 February 1999, Muju-Korea, 374-377.
[64]. Truong Minh Nhat Quang, Hoang Van Kiem, Nguyen Thanh Thuy. Using Null data Processing to Recognize Variant Computer Virus for Rule-based Anti-virus Systems. The Proceedings of the IEEE International Conference on Granular Computing. May 2006, Atlanta-USA, 600-603.
[65]. Ulrich Bayer. TTAnalyze: A Tool for Analyzing Malware. Master’s Thesis. Vienna University of Technology. Vienna, December 2005.
[67]. Vesselin Bontchev. Methodology of Computer Anti-Virus Research. Doctoral Thesis, University of Hamburg, 1998.
[68]. William Arnold, Gerald Tesauro. Automatically Generated Win32 Heuristic Virus Detection. Proceedings of the 2000 International Virus Bulletin Conference, 2000.
[69]. Yevgeniy Bondarenko & Pavel Shterlayev. Polymorphic virus detection technology. Secured Communications Seminar. Department of Information Technology, Lappeenranta University of Technology. Finland, April 2006.
TÀI LIỆU TIẾNG PHÁP
[70]. Nicolas Moënne Loccoz. Dynamiques des composantes visuelles pour la gestion des documents vidéo par le contenu. Docteur ès sciences. l’Université de Genève, 2005.
[71]. Truong Minh Nhat Quang. Système Intelligent Diagnostiquer et Detruire les Virus Informatiques. MSc. Thesis, IFI – Hanoi, Vietnam, 1997.
[88]. Research Grants Office, City University of Hong Kong. A Prescriptive Anti-virus Expert System Automated with Defensive Actions (China). http://iris.cityu.edu.hk/generalpublic/ProjectInfo_GP.cfm?Pno=7000143
Hình P1.2b: Mẫu tin khởi động hệ điều hành Windows bị nhiễm boot virus
1.2. File virus
Khác với boot virus, file virus lây vào tập tin chương trình của hệ điều hành.
Tùy theo hệ điều hành và cơ chế hoạt động của vật chủ, file virus có cách lây nhiễm
khác nhau (Hình P1.3a và P1.3b). Cơ chế hoạt động của file virus như sau:
- Xác định điểm vào lệnh (IP-Instruction Pointer) gốc của vật chủ
- Ghép mã lệnh virus vào vật chủ. Tùy theo định dạng/tình trạng của vật chủ,
vị trí ghép có thể ở đầu, giữa hoặc ở cuối vật chủ.
- Thay điểm vào lệnh của vật chủ trỏ đến địa chỉ mã lệnh của virus
Khi vật chủ thi hành, file virus sẽ thực hiện các thao tác:
- Kiểm tra sự có mặt của virus trong vùng nhớ. Nếu chưa thường trú, chúng
tiến hành sao chép vào vùng nhớ đã được hệ điều hành cấp phát.
- Tìm kiếm các vật chủ khác để lây vào
- Thực hiện các hoạt động đã được lập trình (phá hoại, do thám, định thời…)
- Phục hồi điểm vào lệnh gốc và trao quyền cho vật chủ.
- 111 -
Nhược điểm của file virus là dễ bị phát hiện do kích thước file thay đổi và
chỉ lây mạnh trên các HĐH DOS và Windows 9x/Me. Trên Windows NT/2000/XP,
chúng thường vấp phải hàng rào bảo vệ hạt nhân hệ thống Kernel32. Vì vậy file
virus dần được hacker thay bằng các hình thức khác như worm, trojan horse…
1.3. Macro virus
Để tự động hóa thao tác sử dụng của người dùng, hãng Microsoft đã tích hợp
tập lệnh VBA (Visual Basic Application) vào bộ công cụ Microsoft Office. Theo
CSI (Cisco Safe Implementation), macro virus được định nghĩa như sau:
“Macro virus là loại virus máy tính được viết bằng ngôn ngữ VBA, thực thi
trong môi trường của Microsoft Word hoặc Excel. Macro là tập lệnh giúp tự động
hóa tác vụ của người dùng” (http://www.preplogic.com).
Các macro virus lợi dụng các template trong môi trường tương tác VBA làm
nơi lưu trú. Khi người dùng mở tư liệu mới, các thủ tục của virus trong template sẽ
kết nhập vào tư liệu hiện thời dưới dạng các thủ tục VBA đã biên dịch (Hình P1.4).
Tùy theo phiên bản Microsoft Office, tập mã thủ tục VBA sẽ được chuyển dạng
tương thích đi lên, làm biến đổi mã lệnh của macro virus.
1.4. Worm, sâu trình
Theo Vesselin Bonchev, worm (tạm dịch sâu trình) là: “Các chương trình có khả năng tạo bản sao chính nó (thường là qua mạng
máy tính) như một chương trình (hoặc tập các chương trình) độc lập, không phụ
thuộc vào sự tồn tại của ứng dụng chủ”.
Hình P1.3: Kỹ thuật lây nhiễm của file virus
a. Tập tin chương trình trước khi nhiễm file virus
IP
Header Data Code
b. Tập tin chương trình sau khi nhiễm file virus
Virus IP
Header Data Code
IP
- 112 -
Khai thác các dịch vụ vận chuyển dữ liệu như HTTP (HyperText Transfer
Protocol), FTP (File Transfer Protocol), IRC (Internet Relay Chat), DNS (Domain
Name Service), Drive Sharing, Email, Packet Routing…, sâu trình len lõi vào các hệ
thống đích để tìm cơ hội do thám, đánh cắp, phá hoại dữ liệu. Khác với virus, sâu
trình không đính vào các ứng dụng khác mà tồn tại trên hệ thống như một ứng dụng
độc lập (hình P1.5). Sâu trình khó phát hiện vì chúng có định dạng giống các ứng
dụng hợp thức. Tuy nhiên sâu trình cũng có nhược điểm. Do đứng độc lập nên khả
năng tự kích hoạt bị hạn chế và dễ bị tiêu diệt. Kịch bản chung của sâu trình là đăng
ký kích hoạt khi hệ điều hành hoàn tất quá trình khởi động.
1.5. Trojan horse
Thuật ngữ “trojan horse” (mượn từ điển tích “ngựa gỗ thành Troie” trong
thần thoại Hy Lạp, gọi tắt là trojan) là tên gọi các loại mã độc do người lập trình cài
sẵn vào ứng dụng. Ban đầu, trojan là công cụ của người lập trình. Khi phát hiện các
trường hợp không hợp thức (như sao chép lậu, bẻ khóa…), các đoạn mã này sẽ tự
Microsoft Word
Virus macro
Infected doc.
Virus macro
Infected doc.
(1) (2)
Infected doc.
Virus macro
(5)
Microsoft Word
Virusmacro
Benign doc.
(4)
Virus macro
Template
(3)
Hình P1.4: Quy trình lây nhiễm của macro virus 1. Tập tin tư liệu chứa mã lệnh virus macro 2. Ứng dụng Office mở tư liệu nhiễm virus macro 3. Tập thủ tục VBA của virus kết nhập vào template 4. Virus macro trong template kết nhập vào các đối tượng mới 5. Hàng loạt tư liệu khác bị nhiễm virus macro
- 113 -
kích hoạt để trừng trị người dùng như xóa ứng dụng, làm treo máy… Về sau ý
nghĩa của trojan càng mờ nhạt. Lợi dụng Internet, các hacker tung lên mạng các
“tiện ích” (có cài sẵn trojan) để lừa người dùng download về sử dụng (ví dụ các
phần mềm bẻ khóa, kích hoạt tài khoản xem phim trực tuyến…). Khi chạy loại “ứng
dụng” này, các đoạn mã trojan sẽ thực thi các lệnh của hacker. CSI định nghĩa
trojan horse là “loại chương trình được viết như tiện ích hữu hiệu, nhưng thực tế lại
là công cụ tấn công”. (http://www.preplogic.com)
Trojan không tự lây mà lan truyền nhờ thao tác download và sao chép của
người dùng (hình P1.6). Giống sâu trình, trojan có định dạng ứng dụng nên việc
phát hiện gặp nhiều trở ngại. Trong một họ (family), trojan khởi thủy được gọi là
mầm độc (germs). Thông thường, mã của mầm độc dùng để lắp ghép cho con cháu.
Network Application Worm
Network Application
Network Application Worm
Network Application
Physical Network
Virtual Network Virtual Network
Hình P1.5: Worm lan truyền trên hệ thống mạng
Physical Computer Physical Computer
Hình P1.6: Cơ chế lan truyền của trojan horse
Internet
download
copy
LAN
- 114 -
Đôi khi trojan còn chứa trong lòng nó một loại mã độc khác (như sâu trình
chẳng hạn). Khi thực thi, loại trojan này (gọi là dropper) sẽ kết xuất mã độc thứ cấp
ra hệ thống đích (tái sinh) mỗi khi một trong các bản sao của chúng bị tiêu diệt.
Injector là một dạng cải tiến của dropper: thay vì kết xuất ra bộ nhớ ngoài, mã độc
được cài vào bộ nhớ trong để tránh bị phát hiện. Kết hợp giữa trojan và sâu trình,
dropper và injector có đặc tính lây lan nên gần với virus hơn.
Trapdoor (hay backdoor) rất được giới hacker ưa chuộng. Khi lây vào hệ
thống, backdoor có nhiệm vụ mở cổng (port, điểm truy cập ứng dụng), làm nội gián
chờ đáp ứng thao tác quét cổng của hacker. Khi nhận được tín hiệu, backdoor khống
chế hàng rào bảo vệ hệ thống, dọn đường đón các đợt thâm nhập từ bên ngoài.
Gần đây xuất hiện loại trojan đặc biệt nguy hiểm gọi là rootkit. Ban đầu,
rootkit là tên gọi các bộ công cụ (kit) giúp người quản trị nắm quyền điều khiển hệ
thống ở mức cao nhất (root). Trong tay hacker, rootkit trở thành công cụ đắc lực để
đánh cắp mật khẩu truy nhập, thu thập thông tin trên máy nạn nhân hoặc che đậy
các hoạt động thâm nhập bất hợp pháp. Hacktool là một dạng rootkit sơ cấp. Cao
cấp hơn có các loại rootkit thám báo như keylogger (theo dõi hoạt động bàn phím),
sniffer (theo dõi gói tin qua mạng), filehooker (theo dõi truy nhập tập tin)…
1.6. Malware
Malware là tên gọi chung các loại phần mềm độc hại như:
• Adware: loại phần mềm tự động bật (popup) các cửa sổ quảng cáo, thay đổi
các thiết lập hệ thống…, gây phiền phức cho người sử dụng.
• Spyware: loại phần mềm gián điệp, săn lùng thông tin thương mại, đánh cắp
thông tin cá nhân như địa chỉ e-mail, độ tuổi, giới tính, thói quen mua sắm…
• Pornware: loại phần mềm đồi trụy phát tán từ các trang web khiêu dâm, tự
động bật lên các hình ảnh gợi dục, phim sex... Pornware rất nguy hiểm cho trẻ
em và thanh thiếu niên, làm suy đồi đạo đức xã hội.
• Riskware: phần mềm trôi nổi, không được kiểm định chất lượng. Riskware
tiềm ẩn nhiều lỗi nghiêm trọng, làm suy giảm chất lượng phục vụ của hệ
thống, có nguy cơ ảnh hưởng dữ liệu của người dùng.
- 115 -
Trong lĩnh vực anti-virus, nghiên cứu malware là bài toán sôi nổi và khá lý
thú. Hình P1.7 mô tả nguồn gốc, quá trình phát triển của các loại virus máy tính và
mã độc hiện nay.
2. Khảo sát virus máy tính
Việc khảo sát virus máy tính gặp nhiều khó khăn bởi:
- Các anti-virus chưa thống nhất về cách phân loại và đặt tên virus
- Phần lớn các anti-virus không công bố danh sách đầy đủ các virus đã
cập nhật mà chỉ cung cấp các công cụ tìm kiếm online một virus cụ thể.
Bảng P1.1 thống kê danh sách 65.824 virus máy tính lây trên hệ điều hành
DOS/Windows của hãng Kaspersky. Cột “Kiểu dữ liệu” có được nhờ quá trình phân
tích mã các mẫu virus đại diện lớp. Cột “Tỷ lệ %” được đưa vào để tính mật độ các
loại virus DOS/Windows đã xuất hiện trong 10 năm (từ 1995 đến 2004).
Kết quả phân tích thống kê cho thấy virus máy tính có thể được phân loại
theo bốn nhóm chính (program, text, binary và macro), đặt cơ sở khoa học cho ý
tưởng phân loại virus theo đặc trưng dữ liệu của đề tài (xem Chương 2).
Bảng P1.1: Thống kê các loại virus máy tính (1995-2004)
stt Kiểu virus Số lượng Kiểu dữ liệu Tỷ lệ % 1 ANSI 4 Text 0.01 2 ASP 89 Text 0.14 3 Basic 7 Text 0.01 4 BAT 2059 Text 3.13 5 Boot-DB 913 Binary 1.39 6 Boot-DOS 198 Binary 0.30 7 Boot-SB 14 Binary 0.02 8 DOS 18412 Program 16-bit 27.97 9 DOS32 18 Program 32-bit 0.03
10 HTT 9 Text 0.01 11 HTML 295 Text 0.45 12 IRC 518 Program 32-bit 0.79 13 Java 140 Text 0.21 14 Java script 522 Text 0.79 15 MSAccess 30 VBA macro 0.05 16 MSExcel 348 VBA macro 0.53 17 MSOffice 96 VBA macro 0.15 18 MSPPoint 12 VBA macro 0.02 19 MSProject 4 VBA macro 0.01 20 MSPublisher 1 VBA macro 0.00 21 MSVision 3 VBA macro 0.00 22 MSWord 2987 VBA macro 4.54 23 Multi dropper 523 Program 32-bit 0.79 24 Perl 152 Text 0.23 25 PHP 63 Text 0.10 26 PIF 19 Binary 0.03 27 PSP 1 Text 0.00 28 RAR 1 Binary 0.00 29 Script 9 Text 0.01 30 VBS 1562 Text 2.37 31 WBS 4 VBA macro 0.01 32 Win16 484 Program 16-bit 0.74 33 Win32 35731 Program 32-bit 54.28 34 Win9x 537 Program 32-bit 0.82 35 WinHLP 9 Binary 0.01 36 WinINF 9 Binary 0.01 37 WinLNK 1 Binary 0.00 38 WinPIF 1 Binary 0.00 39 WinREG 36 Text 0.05 40 ZIP 3 Binary 0.00
Các định dạng dữ liệu nhiễm virus máy tính
1. Giới thiệu
Nghiên cứu virus máy tính luôn gắn với việc phân tích các định dạng dữ liệu
vật chủ. Mỗi loại virus chỉ lây vào một số định dạng dữ liệu nhất định. Phân tích các
định dạng dữ liệu vật chủ là cơ sở để phân loại dữ liệu (quan tâm đến các điểm dữ
liệu có nguy cơ nhiễm virus), giảm tải quá trình chẩn đoán (loại bớt các đối tượng
chắc chắn sạch khỏi không gian chẩn đoán) và gia tăng độ tin cậy của hệ thống
(giảm nguy cơ bỏ sót đối tượng chẩn đoán). Các định dạng vật chủ chứa mã thi
hành có thể nhiễm virus gồm: tập tin văn bản, tập tin chương trình, tập tin MS
Office và mẫu tin khởi động (Bảng P2.1).
Bảng P2.1: Các định dạng vật chủ chứa mã thi hành có thể nhiễm virus máy tính
Stt Vật chủ Loại virus Các định dạng Kiểu Tập tin lô BAT Tập tin script VBS, JS Tập tin registry REG
1 Tập tin văn bản File virus
Worm Trojan
Tập tin siêu văn bản HTT, HTA Tập tin lệnh COM Tập tin thi hành EXE, SCR 2 Tập tin chương trình
File virus Worm Trojan Tập tin thư viện DLL, CPL, SYS, VXD
Tập tin tư liệu DOC, DOT Tập tin bảng tính XLS, XLT 3 Tập tin MS Office Macro virusTập tin trình diễn PPT, POT Mẫu tin khởi động hệ điều hành đĩa mềm #N/A
Mẫu tin khởi động hệ điều hành đĩa cứng #N/A 4 Mẫu tin khởi động Boot virus
Mẫu tin khởi tạo phân khu đĩa cứng #N/A
Phụ lục 2
- 118 -
2. Các định dạng dữ liệu nhiễm virus máy tính
2.1. Tập tin văn bản
Tập văn bản (text file) là tổ chức file đơn giản, được chia làm hai loại:
- Tập văn bản 7 bit: chứa các ký tự ASCII chuẩn (7 bit) có thể gõ trực tiếp từ
bàn phím, mã từ 32 (khoảng trắng) đến 126 (ký tự ~). Tập văn bản 7 bit dùng
chứa nội dung chương trình nguồn như PAS, ASM, C, CPP, JS, VBS…
- Tập văn bản 8 bit: có thêm các ký tự ASCII mở rộng 8 bit (từ 128 đến 255)
sử dụng ký tự graphic trang trí bảng, hình hộp hoặc thiết lập font chữ riêng.
Do hiện nay các trình biên dịch/thông dịch lệnh chỉ hỗ trợ các ký tự 7 bit nên
chưa phát hiện câu lệnh virus trong các tập tinvăn bản 8 bit.
Để thực thi các câu lệnh trong tập tin văn bản 7 bit, hệ thống phải dịch chúng
sang mã máy. Do không phải hệ thống nào cũng có đủ bộ dịch lệnh của tất cả các
ngôn ngữ lập trình, nên chỉ vài loại tập tin văn bản 7 bit là có nguy cơ nhiễm virus
(Bảng P2.2), đó là các tập tin chứa tập lệnh của các ngôn ngữ lập trình được tích
hợp sẵn trong hệ thống (Hình P2.1).
Bảng P2.2: Các loại tập tin văn bản nhiễm virus máy tính
stt Loại tập tin Mô tả Kiểu Thi hành 1 Tập lệnh theo lô Batch command BAT Internal Command Interpreter 2 Tập lệnh siêu văn bản Hyper Text HTT HTML Application Host 3 Tập lệnh khởi tạo System Initiation INI Windows Startup 4 Tập lệnh Java Java Script JS Windows Based Script Host 5 Tập đăng ký hệ thống System registry REG Registry Editor 6 Tập lệnh Visual Basic Visual Basic Script VBS Windows Based Script Host
Dấu hiệu nhận dạng các tập văn bản 7-bit có thể nhiễm virus là:
- Dữ liệu byte (32-127)
- Chứa các từ khóa của các ngôn ngữ lập trình tích hợp sẵn trong hệ thống
(Java Script, VB Script, HTML Application, Command Interpreter…).
- 119 -
2.2. Tập tin chương trình
Các tập tin chương trình (program file), còn gọi là ứng dụng (application)
hay phần mềm (software), được biên dịch thành các tổ chức file thi hành trong môi
trường của hệ điều hành. Đối với DOS/Windows, ngoài hai loại tập tin chương trình
chính là COM và EXE còn có các tổ chức thi hành khác như SYS, DLL, CPL, SCR,
OCX… Trong quá trình phát triển, Microsoft đã sử dụng nhiều định dạng thi hành
phức tạp. Khi nạp vào bộ nhớ, tập tin chương trình sẽ được hệ điều hành thực thi,
không quan tâm nguồn gốc và mức độ nguy hiểm của các lệnh này. Do vậy, các tập
tin chương trình là một trong những kẽ hở bảo mật quan trọng của hệ thống.
Bảng P2.3: Các loại tập tin chương trình
Tổ chức Loại Kiểu Kiểu con Hệ điều hành Thi hành trực tiếp
Command DOS-COM COM COM DOS 16 bit Có DOS-EXE EXE EXE DOS 16 bit Có
EXE EXE Windows 16 bit Có NE-EXE
DLL DLL Windows 16 bit Không EXE EXE, SCR… Windows 32 bit Có
PE-EXE DLL DLL, SYS,
OCX, CPL… Windows 32 bit Không
Executable
LE-EXE VXD VXD Windows 32 bit Không
Hình P2.1: Phân loại, xác định nhóm tập tin văn bản nhiễm virus
Tập văn bản
Văn bản 7-bits
Văn bản 8-bits
Tập lệnh của các ngôn ngữ lập trình khác
Chương trình nguồn
Văn bản 7-bits khác
Tập lệnh dành cho lõi biên dịch, thông dịch sẵn có của hệ thống
- 120 -
Phân tích định dạng tập tin là hoạt động khá phổ biến trong nhiều lĩnh vực
phần mềm (đồ họa, âm thanh, liên lạc, bảo mật, hệ thống…) vốn tỉ mỉ, tốn nhiều
thời gian và công sức. Đã có nhiều tài liệu nói về các loại định dạng tập tin, nên
phần này không đi sâu phân tích kỹ thuật mà tập trung vào công tác phân loại (Bảng
P2.3) và nhận dạng (Hình P2.2). Tham khảo thêm ở địa chỉ http://www.wotsit.org.
2.2.1. Định dạng COM (DOS Command)
COM là định dạng thi hành đơn giản trong mô hình phân đoạn
segment:offset của MSDOS. Các tập tin COM chứa hình ảnh dữ liệu của đoạn bộ
nhớ lúc file được nạp vào địa chỉ Segment:100h. Do hoạt động trong một phân đoạn
nên kích thước file COM giới hạn trong phạm vi 64KB. Khi lây vào file COM,
virus sẽ thay điểm vào lệnh đầu tiên bằng lệnh gọi (mã máy E8h) hoặc lệnh nhảy
(EBh nhảy gần dưới 128 byte, E9h nhảy xa trên 128 byte) đến thủ tục xử lý của
virus (Hình P2.3). Đặc điểm nhận dạng các tập COM có thể nhiễm virus như sau:
- Kích thước dưới 64KB
- Dữ liệu byte trải dài trên bộ mã ASCII (0-255)
- Có lệnh nhảy (E9h, EBh) hoặc lệnh gọi (E8h) đầu file.
Hình P2.2: Phân loại các tập tin chương trình
Program Files
EXE
NE-EXE
PE-EXE
DOS-EXE
LE-EXE
EXE-16 bits
DLL-16 bits
EXE-32 bits
DLL-32 bits
COM
- 121 -
Trong thời kỳ đầu của DOS, do đơn giản và nhỏ gọn nên định dạng COM rất
dễ bị file virus tấn công. Do hạn chế về kích thước và khả năng truy nhập bộ nhớ
nên các hacker đã chuyển hướng tấn công sang định dạng EXE (Executable File).
2.2.2. Định dạng EXE (DOS Executable)
Định dạng EXE cho phép mở rộng kích thước tập tin lớn hơn 64KB bằng
cách sử dụng mỗi phân đoạn bộ nhớ riêng biệt cho từng thanh ghi CS, DS, ES, SS.
Với cách tổ chức này, EXE sử dụng cấu trúc đầu file (gọi là EXE header) chứa
thông tin của file và các tham số giúp hệ điều hành định vị bộ nhớ, tải mã lệnh, dữ
liệu, ngăn xếp và khởi tạo giá trị các thanh ghi CPU trước khi thực thi chương trình.
Lây vào EXE, file virus ghép mã lệnh vào cuối file rồi điều chỉnh CS:IP trỏ
đến địa chỉ của nó. Các tập EXE có đặc điểm nhận dạng như sau:
- Word đầu tập tin có trị ‘MZ’ hoặc ‘ZM’
- Dữ liệu byte, trải dài trên toàn bảng mã ASCII (0-255)
- Thủ tục khởi tạo trỏ đến địa chỉ thực trên file (Header < CS:IP < Filesize)
a. Biểu diễn byte E9 E6 02 1B 5B 50 32 4A 0D 20 20 4E E9: Mã lệnh nhảy (xa hơn 128 byte) đến thủ tục khởi tạo b. Biểu diễn lệnh máy
xxxx : 0100 E9E602 JMP 03E9 // E9: Nhảy đến thủ tục khởi tạo xxxx : 0103 1B5B50 SBB BX,[BP+DI+50] xxxx : 0106 324A0D XOR CL,[BP+SI+0D] xxxx : 0109 2020 AND [BX+SI],AH xxxx : 010B 4E DEC SI ... xxxx : 03E9 50 PUSH AX // Thủ tục khởi tạo xxxx : 03EA 53 PUSH BX xxxx : 03EB B93E00 MOV CX,003E xxxx : 03EE BA0901 MOV DX,0109 xxxx : 03F1 E8F8FE CALL 02EC // E8: mã máy lệnh Call ...
Hình P2.3: Mô tả dữ liệu một tập tin COM tiêu biểu
a. Biểu diễn vector dữ liệu byte của tập tin COM b. Biểu diễn lệnh máy của 12 byte đầu và các lệnh trong thủ tục khởi tạo
- 122 -
Hình P2.4 mô tả cấu trúc đầu file của một tập tin EXE tiêu biểu. Hai byte đầu
tiên (4D-5A) biểu diễn chuỗi ‘MZ’ nhận dạng file EXE. Các trường tiếp theo chứa
thông tin file và các tham số định vị. Đặc biệt trường 3Ch có giá trị 00 (không có
bảng thông tin bổ sung). Nếu khác 0, trường này chứa con trỏ đến một header khác
dùng cho NE-EXE (Windows 16 bit) và PE-EXE (Windows 32 bit). Các định dạng
này sẽ được mô tả ở phần tiếp theo.
00000: 4D 5A BC 00 08 00 05 00 20 00 71 00 FF FF CC 00 //5A4D = MZ: dấu hiệu EXE
Hình P2.7: Cấu trúc đầu file một tập tin LE-EXE tiêu biểu
- 125 -
- Mang đặc trưng của định dạng DOS-EXE
- Trường 3C trong cấu trúc đầu file DOS-EXE trỏ đến cấu trúc LE-EXE
- Hai byte đầu tiên của cấu trúc đầu file LE-EXE có giá trị 4C và 45 (‘LE’)
2.3. Tập tin tư liệu
Các tập tin tư liệu (document files) là các tập dữ liệu người dùng bộ công cụ
Microsoft Office (Bảng P2.4). Đây là đối tượng lây nhiễm của virus macro, loại
virus sử dụng tập lệnh macro VBA (Visual Basic Application) của Microsoft. Ngoài
đối tượng lây nhiễm chính là các tập tin DOC, XLS và PPT; các tập tin template và
add-in cũng là nơi “trú ngụ” rất tốt cho virus macro. Lưu trữ nhiều đối tượng nhúng
phức tạp (hình ảnh, âm thanh, bảng biểu, đồ thị…), các tập tin Office thường rất lớn
(vài trăm KB đến hàng chục MB). Để tiện truy xuất, Microsoft tổ chức các tập tin
này theo đơn vị paragraph 512 byte. Đặc điểm nhận dạng các tập tin này như sau:
- Kích thước tập tin là bội số của 512
- Chuỗi nhận dạng đầu file: D0-CF-11-E0-A1-B1-1A-E1-00-00-00-00
Bảng P2.4: Các loại tập tin tư liệu MSOffice có thể nhiễm virus macro
Tập lệnh Ứng dụng Kiểu Mô tả DOC Tư liệu văn bản
Khuôn dạng văn bản Microsoft Word DOT
Microsoft Word Add-in XLS Tư liệu bảng tính XLT Khuôn dạng bảng tính Microsoft Excel XLA Microsoft Excel Add-in PPT Tư liệu trình diễn POT Khuôn dạng trình diễn
VBA macro
Microsoft PowerPoint PPA Microsoft PowerPoint Add-in
2.4. Mẫu tin khởi động
Trong kiến trúc máy tính IBM-PC, mẫu tin khởi động (boot record) là các tổ
chức thi hành trên các đơn vị lưu trữ của thiết bị nhớ ngoài (Bảng P2.5). Nhiệm vụ
của MTKĐ là khởi tạo các thông số kỹ thuật của thiết bị và thực hiện các tiến trình
xử lý tiếp theo. Có hai loại boot record: MTKĐ đĩa cứng (master boot của đĩa cứng)
và MTKĐ hệ điều hành (boot sector của đĩa cứng và đĩa mềm).
- 126 -
Bảng P2.5: Các tổ chức khởi động có thể nhiễm virus
Mẫu tin khởi động Vật chủ Vị trí Nhiệm vụ
MTKĐ đĩa cứng (master boot) Đĩa cứng
Sector 1, track 0, side 0
- Phân tích thông số kỹ thuật các phân khu luận lý
- Tìm và tải boot sector của phân khu hoạt động vào bộ nhớ
- Trao quyền cho boot sector
Phân khu hoạt động đĩa cứng
Sector 1, track 0, side 1
- Phân tích thông số phân khu đĩa cứng hoạt động
- Tìm và tải các tập tin khởi động hệ điều hành vào bộ nhớ
- Trao quyền cho hệ điều hành MTKĐ hệ điều hành (boot sector)
Đĩa mềm Sector 1, track 0, side 0
- Phân tích thông số đĩa mềm - Tìm và tải các tập tin khởi động hệ
điều hành vào bộ nhớ - Trao quyền cho hệ điều hành
2.4.1. Mẫu tin khởi động đĩa cứng (master boot)
Mỗi ổ đĩa cứng có thể được chia tách luận lý thành các phân khu (partition).
Có tối đa bốn phân khu cho mỗi ổ vật lý, nhưng chỉ có một phân khu được chọn làm
phân khu hoạt động (active partition), là phân khu chứa hệ điều hành của hệ thống.
Master boot: - Định vị các phân khu đĩa cứng - Tải boot sector hoạt động
Boot virus: - Các lệnh khởi tạo virus - Định vị, tải master boot gốc - Trao quyền cho master boot gốc
Các sector rỗi Master boot (gốc)
Boot sector hoạt động: - Các lệnh khởi tạo bộ nhớ - Định vị, tải các file hệ thống - Trao quyền cho hệ điều hành
Boot sector hoạt động: - Các lệnh khởi tạo bộ nhớ - Định vị, tải các file hệ thống - Trao quyền cho hệ điều hành
Hình P2.8a: Tổ chức đĩa cứng trước khi nhiễm boot virus
Hình P2.8b: Tổ chức đĩa cứng sau khi nhiễm boot virus
- 127 -
Mẫu tin khởi động đĩa cứng có nhiệm vụ phân tích các phân khu dữ liệu, tìm
và tải boot sector trên phân khu hoạt động của đĩa cứng vào bộ nhớ rồi trao quyền
cho nó. Hình P2.8a minh họa cấu trúc đĩa cứng, vị trí và vai trò của các MTKĐ.
Hình P2.8b mô tả hình ảnh ổ đĩa cứng nhiễm boot virus, loại lây vào master boot.
2.4.2. Mẫu tin khởi động hệ điều hành (boot sector)
Boot sector có trên mọi đĩa mềm và các phân khu đĩa cứng. Khi nhận quyền
từ master boot (hoặc khởi động máy từ đĩa mềm), boot sector sẽ tìm HĐH, nạp vào
bộ nhớ rồi trao cho HĐH tiếp tục quá trình khởi động.
Hình P2.9a minh họa cấu trúc đĩa mềm, vị trí và vai trò của MTKĐ hệ điều hành trên đĩa mềm. Hình P2.9b mô tả hình ảnh đĩa mềm nhiễm boot virus. Ví dụ này cũng đúng cho trường hợp boot virus lây vào boot sector của đĩa cứng.
Boot sector - Các lệnh khởi tạo bộ nhớ - Định vị, tải các file hệ thống - Trao quyền cho hệ điều hành
Boot virus - Các lệnh khởi tạo virus - Định vị, tải MTKĐ gốc - Trao quyền cho MTKĐ gốc
Bảng định vị tập tin (FAT 1, FAT 2)
Bảng định vị tập tin (FAT 1, FAT 2) Thư mục gốc (Root Entries)
Thư mục gốc (Root Entries) MTKĐ gốc
Vùng dữ liệu (Data Area)
Vùng dữ liệu (Data Area)
Hình P2.9a: Tổ chức đĩa mềm trước khi nhiễm boot virus
Hình P2.9b: Tổ chức đĩa mềm sau khi nhiễm boot virus
Các tác tử hoạt động và thuật toán SID
1. Các tác tử hoạt động
1.1. Tác tử Duyệt quét
Hoạt động ở mức nền trước (foreground), tác tử Duyệt quét VSA (Virus
Scanning Agent) có nhiệm vụ quét virus hệ thống, thu thập kiến thức dài lâu và giải
thích các thay đổi hệ thống dựa vào lớp luật RS2. Các tác vụ của VSA gồm:
- Khởi tạo các tham số hoạt động, các biến nhớ, cấu hình hệ thống…
- Tải các điểm dữ liệu cần kiểm tra vào không gian quan sát
- Phân lớp không gian quan sát với thuật toán NNSRM (xem Chương 4) thành
hai lớp CLASS_1 - có thể nhiễm và CLASS_2 - chắc chắn sạch. Sau đó xoá
CLASS_2 khỏi không gian quan sát.
- Quét virus cho CLASS_1 bằng thuật toán SID (xem phần 3 của phụ lục này)
- Báo cáo kết quả duyệt quét, tạo giao diện hội thoại, thu thập tri thức người
dùng, xử lý các trường hợp nhiễm virus…
- Cập nhật CSDL, tăng trưởng CSTT cho hệ thống.
Trong các tác vụ này, các thuật toán NNSRM và SID tiêu thụ rất nhiều tài
nguyên hệ thống (thời gian chạy, sử dụng bộ nhớ, truy xuất đĩa…). Để phân bố tải,
VSA sử dụng hai tác tử con (sub-agent) là CA (Classifying Agent) và SA (Scanning
Agent) được thiết kế dưới dạng các tiểu trình (program thread). Một hàng đợi FIFO
được dùng làm vùng nhớ chia xẻ giữa CA và SA (Hình P3.1). Cơ chế phối hợp hoạt
động của CA và SA được mô tả như sau:
Phụ lục 3
- 129 -
- Hàng đợi được khai báo dưới dạng mảng động (không bao giờ tràn) để đảm
bảo cho tác tử CA luôn kết thúc công việc của nó.
- Trong lúc NNSRM phân lớp dữ liệu, tác tử CA lần lượt đưa các điểm dữ liệu
chẩn đoán vào cuối hàng đợi.
- Khi xuất hiện dữ liệu trong hàng đợi, SA nhặt các điểm dữ liệu ở đầu hàng
đợi và chuyển cho thủ tục SID quét kiểm tra virus.
- Nếu hàng đợi rỗng trong khi CA vẫn chưa phân lớp xong, SA sẽ chờ đến khi
xuất hiện ít nhất một điểm dữ liệu trong hàng.
Hình P3.1: Tác tử VSA với các tác tử con CA và SA
1.2. Tác tử Canh phòng
Khác với VSA, VAA được thiết kế để chạy thường trực ở mức nền sau
(background) nhằm đón bắt các loại 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ác tác vụ của VAA gồm:
- Tự kích hoạt khi hệ thống hoàn tất quá trình khởi động.
- Tạo các tiểu trình động (dynamic thread) để phân bố tác vụ cho các tác tử
con di động (mobile sub-agents).
- Câu móc (hooking) các hàm API (Application Programming Interface) hệ
thống để kiểm soát các tình huống truy xuất file như Create/OpenFiles,
1: INITIATE X; //Khởi tạo không gian tìm kiếm X 2: INTEGRATE (KB2, KB3: KB; var KB1: KB); 3: CLASSIFY Các điểm dữ liệu FROM X INTO CLASS_1, CLASS_2; 4: for i:= 1 to CLASS_1.Items.Count do 5: select CLASS_1[i]
from DOITUONG where CLASS_1[i].KIEU=CLASS_V.KIEU group by DIA_CHI;
6: if not Found then //Không tìm thấy điểm dữ liệu từ CSDL 7: CHẨN ĐOÁN (CLASS_1[i], PHIÊN_BẢN, KB1); 8: if VirusFound then // Phát hiện virus trên điểm dữ liệu 9: XỬLÝBỆNH (CLASS_1[i]); 10: REPORT(CLASS_1[i].TEN, VirusName, Status); //Thông báo kết quả 11: endif 12: insert into DOITUONG
values <LICHQUET>; //Tạo dữ liệu tiền sử 14: else //Tìm thấy điểm dữ liệu từ CSDL 15: if VALIDATED(PHIÊN_BẢN) and CHANGED(CLASS_1[i]) then //Vận dụng luật 16: case WARNING(CLASS_1[i]) of //Cảnh báo 17: ByVirus: XỬLÝBỆNH (CLASS_1[i]); //Xác nhận virus mới 18: REPORT(CLASS_1[i].TEN, UserVirus, Status); //Báo cáo 19: update DOITUONG
set (TEN=CLASS_1[i].TEN,…) where DOI_TUONG=CLASS[i].DOI_TUONG;
20: insert into LICHQUET values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
21: ADD(KB1, KB3, CLASS_1[i], UserVirus); //Tăng trưởng tri thức 22: ByUser: update DOITUONG
set (TEN=CLASS_1[i].TEN,…) where DOI_TUONG=CLASS[i].DOI_TUONG;
23: insert into LICHQUET values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
24: Unknown: LOCK(CLASS_1[i]); //Nghi ngờ, khóa đối tượng 25: REPORT(CLASS_1[i].TEN, SuspectedVirus, Status); //Báo cáo 26: ADD(KB2, CLASS_1[i], UserVirus); //Tăng trưởng tri thức 28: endcase 29: endif 30: if not VALIDATED(PHIÊN_BẢN) and not CHANGED(CLASS_1[i]) then 31: CHẨN ĐOÁN (CLASS_1[i], PHIÊN_BẢN, KB1); 32: if VirusFound then // Phát hiện virus trên điểm dữ liệu 33: XỬLÝBỆNH (CLASS_1[i]); 34: REPORT(CLASS_1[i].TEN, VirusName, Status); //Thông báo kết quả 35: endif; 36: update DOITUONG
set (TEN=CLASS_1[i].TEN,…) where DOI_TUONG=CLASS[i].DOI_TUONG;
37: insert into LICHQUET values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
38: endif; 39: if not VALIDATED(Mã Phiên bản) and CHANGED(CLASS_1[i]) then
- 132 -
40: CHẨN ĐOÁN (CLASS_1[i], PHIÊN_BẢN, KB1); 41: if VirusFound then // Phát hiện virus trên điểm dữ liệu 42: XỬLÝBỆNH (CLASS_1[i]); 43: REPORT(CLASS_1[i].TEN, VirusName, Status); //Thông báo kết quả 44: update DOITUONG
set (TEN=CLASS_1[i].TEN,…) where DOI_TUONG=CLASS[i].DOI_TUONG;
45: insert into LICHQUET values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT)
46: else 47: case WARNING(CLASS_1[i]) of //Cảnh báo 48: ByVirus: XỬLÝBỆNH (CLASS_1[i]); //Xác nhận virus mới 49: REPORT(CLASS_1[i].TEN,UserVirus, Status);//Báo cáo 50: update DOITUONG set (TEN=CLASS_1[i].TEN,…) where DOI_TUONG=CLASS[i].DOI_TUONG; 51: insert into LICHQUET
• Cấu hình hệ thống: quy định các thông số làm việc của hệ thống
4.2. Chế độ thường trực
• Kiểm soát thiết bị nhớ:
- Giám sát các tác vụ truy xuất thiết bị nhớ
- Chẩn đoán virus: cảnh báo, giải phóng tiến trình, xử lý đối • Liên lạc máy chủ:
- Nhận thông điệp từ máy chủ gửi về
- Thực hiện yêu cầu của máy chủ (quét virus, đánh giá tình trạng, tổng hợp
tình hình virus mới)
- Gửi báo cáo, mẫu virus mới cho máy chủ
- Cập nhật CSDL mới từ Máy chủ
Phân hệ máy chủ MAVSR 1. Giới thiệu hệ phần mềm MAV
MAV là tên gọi của 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. MAV có khả năng nhận dạng chính xác hơn 10000 trường hợp
lây nhiễm và học dự báo virus mới.
1.1. Cài đặt hệ MAV
MAV được triển khai cài đặt trên mạng cục bộ thành 2 gói: MAVServer.exe
dùng cài đặt phân hệ máy chủ (dành cho chuyên gia/người quản trị) và
MAVClient.exe dùng cài đặt phân hệ máy trạm (dành cho người dùng cuối). Sau
khi cài đặt, phân hệ máy trạm MAVCL sẽ sử dụng được ngay. Đối với phân hệ máy
chủ MAVSR, cần thiết lập cấu hình hệ thống trước khi sử dụng.
1.2. Thiết lập cấu hình hệ thống
• Đảm bảo mạng LAN (giao thức TCP/IP và NetBIOS) nối kết thành công
• Đảm bảo thành phần Networking Service của Windows đã được cài đặt: Control Panel > Add or Remove Program > Add/Remove Windows Component >
Networking Service.
• Đảm bảo các dịch vụ cấu hình mạng đều ở trạng thái sẵn sàng hoạt động: Control Panel > Administrative Tools > Services
• Đăng ký nối kết client-server của MAVSR với Windows Firewall:
- Đối với máy chủ: Control Panel > Windows Firewall > Exception >Add Program>[C:\Program Files\MAVS\ServiceServer.exe]
- Đối bới máy trạm: Control Panel > Windows Firewall > Exception >Add Program>[C:\Program Files\MAVS\ServiceClient.exe]
Phụ lục 5
- 138 -
• Kích hoạt dịch vụ nối kết client-server của máy chủ:
- Cài đặt dịch vụ nối kết: C:\Program Files\MAV Anti-virus\Srv.bat
- Kích hoạt dịch vụ: Control Panel > Administrative Tools > Services > MAVServer=Started (Automatic type)
Hình P5.1: Đăng ký dịch vụ liên lạc của MAVs với Windows Firewall
Hình P5.2: Khởi động dịch vụ liên lạc của MAVSR
Dịch vụ liên lạc của MAVSR
Thiết lập chế độ chạy tự động
- 139 -
• Kích hoạt dịch vụ nối kết client-server máy trạm:
- Khai báo địa chỉ IP của máy chủ bằng trình NetRegister của MAV
- Cài đặt dịch vụ nối kết: C:\Program Files\MAV Anti-virus\Service.bat
- Kích hoạt dịch vụ: Control Panel > Administrative Tools > Services >
MAVClient=Started (Automatic type) - Vô hiệu chế độ tự nghỉ (System stand by) của máy trạm
1.3. Khảo sát MAVSR
Sau khi cài đặt gói máy chủ, MAVSR sẽ đặt biểu tượng trên màn
hình làm việc. Shortcut Start>All Programs>MAV Anti-virus link đến đường dẫn
MAVSR ở địa chỉ C:\Program Files\MAV Anti-virus\MAVSR.EXE.
Giao diện MAVSR có dạng như hình P6.4 với 2 nhóm lệnh cơ bản:
• Nhóm lệnh Tác nghiệp mạng
- Quét virus các máy trạm - Xem báo cáo kết quả quét virus ở máy trạm - Thu thập mẫu virus nghi ngờ từ máy trạm
• Nhóm lệnh Quản lý và điều phối
- Quản lý cơ sở dữ liệu Cách ly bệnh mẫu - Luyện học cơ sở dữ liệu Nhận dạng virus
- Cập nhật cơ sở dữ liệu Nhận dạng virus cho các máy trạm
Hình P5.3: Khai báo tên, địa chỉ IP của máy chủ
- 140 -
2. Vận hành MAVSR
2.1. Nhóm lệnh Tác nghiệp mạng
2.1.1. Quét virus các máy trạm
Lệnh này giúp người quản trị quét virus toàn hệ thống. Các bước thực hiện:
• Chọn Cấu hình quét:
- Chỉ kiểm tra virus: không diệt, chỉ kiểm tra virus - Loại trừ virus: diệt virus ngay khi phát hiện - Nhắc nhở trước khi diệt: tham khảo ý kiến người dùng hay diệt tự động - Cách ly bệnh mẫu: sao lưu trước khi diệt
• Chọn Phạm vi quét:
- Hệ thống tập tin: quét tập tin trên đĩa cứng máy trạm - Tiến trình hoạt động: quét bộ nhớ máy trạm - Bộ đăng ký hệ thống: quét Windows Registry của máy trạm - Danh sách tự kích hoạt: quét các tập tin tự chạy khi khởi động máy
• Chọn máy trạm cần quét:
- Chọn tên máy trạm trên cây
- Chọn thư mục cấp 1 trên từng máy
Hình P5.4: Giao diện phần mềm MAVSR
- 141 -
• Nhấn vào nút “Quét virus” để yêu cầu quét virus máy trạm hoạt động
• Nhấn vào nút “Đóng”, trở về màn hình chính.
2.1.2. Xem báo cáo kết quả quét virus ở máy trạm
Sau khi nhận lệnh quét virus từ máy chủ, các máy trạm sẽ đồng loạt quét
virus ở chế độ ngầm (background). Một balloon tooltip nhỏ thông báo trạng thái
hoạt động sẽ xuất hiện ở khay hệ thống của các máy trạm (Hình P5.6). Lệnh “Xem
báo cáo kết quả quét virus ở máy trạm” hiển thị báo cáo (Hình P5.7):
- Các máy sạch: chỉ hiển thị các thông tin cơ bản (số tập tin đã quét, thời gian bắt
đầu, thời gian kết thúc).
- Các máy nhiễm: ngoài các thông tin cơ bản (số tập tin đã quét, số tập tin nhiễm,
số tập tin đã xóa, số tập tin làm sạch, thời gian bắt đầu, thời gian kết thúc), báo
cáo còn hiển thị chi tiết về tình trạng của các máy nhiễm (tên máy, tên tập tin
nhiễm virus, địa chỉ tập tin, kích thước và thời gian của tập tin, tên virus, tình
trạng sau khi xử lý).
Hình P5.5: Giao diện quét virus các máy trạm
Hình P5.6: Thông báo trạng thái quét virus máy trạm
- 142 -
2.1.3. Thu thập mẫu virus nghi ngờ từ máy trạm
Thông tin về virus lạ trên từng máy trạm gồm Tên virus, Địa chỉ, Kích thước
và Thời gian. Chọn máy trạm, nhấn nút “Thu thập”, các tập tin nghi nhiễm virus sẽ
được máy trạm mã hóa và chuyển về thư mục Cách ly trên máy chủ (Hình P5.8).
Hình P5.8: Thu thập virus lạ từ máy trạm về máy chủ
Máy trạm HOME1 báo cáo có virus Netsky.y.exe.W32 trong ổ đĩa D:
Hình P5.7: Báo cáo kết quả quét virus các máy trạm
- 143 -
2.2. Nhóm lệnh Quản lý và điều phối
2.2.1. Quản lý cơ sở dữ liệu Cách ly bệnh mẫu
CSDL Cách ly chứa các mẫu nghi virus do máy trạm gửi đến. Để giải mã các mẫu virus lạ, người quản trị thực hiện các thao tác sau:
- Trình đơn chính > Hiển thị > Danh sách nghi ngờ = Bật
- Chọn mẫu tin cần giải mã, nhấn nút “Xuất ra” trên thanh công cụ, chọn đường dẫn để đặt tập tin vào, đặt tên cho tập tin, xác nhận (hình P5.9).
Hình P5.9: Giải mã các mẫu nghi virus từ cơ sở dữ liệu Cách ly bệnh mẫu
- 144 -
2.2.2. Luyện học cơ sở dữ liệu Nhận dạng virus
Chức năng Luyện học cung cấp 3 nhóm lệnh Cơ sở dữ liệu, Biên tập và Công cụ (hình P5.10). Các thao tác cơ bản gồm:
• Mở cơ sở dữ liệu: chọn mở CSDL VirusDB của MAV.
• Bổ sung mẫu virus mới vào CSDL:
- Chọn cách bổ sung: Công cụ > Tùy chọn
- Chọn mẫu: Biên tập > Chọn mẫu > Chọn các mẫu virus (hình P5.11).
• Điều chỉnh: đặt tên mẫu, xóa mẫu, chọn thêm các mẫu khác…
• Phân nhóm dữ liệu: phân tích các đặc trưng giống nhau của các mẫu virus (hình P5.12) trong CSDL để phân thành từng nhóm trên V-tree (hình P5.13)
• Rút luật nhận dạng: dựa vào đặc trưng của các nhóm virus đã phân họach, phân tích và rút quy luật hình thành tập mã lệnh phổ biến trên V-tree (hình P5.14). Kết quả là một tập luật được sinh ra, làm cơ sở cho quá trình nhận dạng virus và các biến thể ở giai đọan Xử lý của máy trạm (hình P5.15).
• Đóng cơ sở dữ liệu.
Nhóm lệnh thao tác cơ sở dữ liệu (mở, lưu và đóng cơ sở dữ liệu)
Nhóm lệnh biên tập cơ sở dữ liệu (chèn mẫu, đổi tên mẫu, xóa mẫu, xóa bảng)
Nhóm công cụ: phân nhóm, rút luật, tùy chọn (chọn từng mẫu hay chọn toàn bộ thư mục chứa mẫu)
Hình P5.10: Giao diện chức năng luyện học virus của MAV
- 145 -
Hình P5.11: Chọn thư mục chứa mẫu nghi ngờ virus, bổ sung vào CSDL
Hình P5.12: Quá trình phân loại virus vào các nhóm có cùng đặc trưng
- 146 -
Hình P5.13: Cây phân cụm và nhóm virus có 925 thành viên cùng đặc trưng
Hình P5.14: Rút luật phân cụm trên V-tree
- 147 -
2.2.3. Cập nhật cơ sở dữ liệu Nhận dạng virus cho các máy trạm
Căn cứ vào tình trạng CSDL của các máy trạm (up-to-date: đã cập nhật, out-
of-date: hiện lỗi thời), người quản trị nhấn nút Cập nhật để yêu cầu cập nhật CSDL.
Khi nhận lệnh, các máy trạm sẽ tự gỡ kết nối với CSDL hiện tại, tải CSDL từ máy
chủ và tái kết nối CSDL vào các phân hệ MAV trên máy trạm (Hình P5.16).
Hình P5.16: Cập nhật CSDL cho cả mạng
Hình P5.15: Kết quả rút luật với Luật 42 mô tả nhóm có 72 virus thành viên
Phân hệ máy trạm MAVCL
1. Giới thiệu
MAVCL là phân hệ máy trạm dùng xử lý dữ liệu, duyệt quét và chẩn đoán
virus máy tính trong giai đoạn Xử lý của hệ phần mềm MAV. Sau khi chạy gói cài
đặt MAVClient.exe cho máy trạm, MAV sẽ đặt biểu tượng trên màn hình
làm việc. Địa chỉ MAVCL trên máy là C:\Program Files\MAV Anti-virus\MAV.EXE.
Phân hệ máy trạm gồm 2 thành phần thường trực và không thường trực.
Thành phần thường trực gồm tác tử canh phòng (Autoprotect Agent) và các dịch vụ
(service) liên lạc máy chủ. Sử dụng phương thức liên lạc socket trên mạng cục bộ,
các dịch vụ của MAVCL chạy tự động ở mức lời gọi hệ thống (system call), không
sử dụng giao diện người dùng. Phụ lục này chủ yếu mô tả tác tử Duyệt quét (không
thường trực) và tác tử Canh phòng (thường trực).
2. Khảo sát giao diện
2.1. Các thành phần giao diện
Giao diện MAVCL có dạng cửa sổ với các thành phần cơ bản: thanh trình
đơn, thanh công cụ, thanh địa chỉ, vùng làm việc và thanh trạng thái (Hình P6.1).
• Thanh trình đơn: Quét virus, Hiển thị, CSDL, Công cụ và Hướng dẫn. • Thanh công cụ chứa các nút lệnh:
- Quét virus: quét virus theo thiết lập - Dừng quét: ngưng tiến trình quét - Kết quả: xem nội dung thực mục hoặc hiển thị kết quả quét - Tiền sử: xem CSDL tiền sử quét hệ thống - Danh sách: xem danh sách virus - Thoát: kết thúc ứng dụng.
Phụ lục 6
- 149 -
• Thanh địa chỉ chứa đường dẫn đang quét • Vùng làm việc chứa các thành phần:
- Bảng điều khiển chứa các nhóm điều khiển: “Đối tượng quét”, “Kiểu tập tin”, “Chẩn đoán thông minh”, “Tự động quét” và “Đáp ứng”.
- Cây thư mục hiển thị cấu trúc phân cấp thư mục tập tin. Đầu mỗi nút trên cây có hộp kiểm (check box), cho phép lựa chọn quét riêng từng nhánh.
- Vùng hiển thị chứa nội dung thư mục hiện tại và kết quả quét virus. Chuyển trang bằng nút “Kết quả” trên thanh công cụ.
• Thanh trạng thái: hiển thị thông tin lúc quét
2.2. Cấu trúc cây lệnh
• Quét virus: các lệnh quét virus cho hệ thống (Hình P6.2)
Thanh trình đơn
Thanh công cụ
Thanh địa chỉ
Thanh trạng thái
Vùng hiển thị
Hình P6.1: Các thành phần giao diện của MAV
Hình P6.2: Lệnh Quét virus
Quét virus trong tập tin trên thư mục
Quét virus thường trú trong bộ nhớ
Quét virus trong bộ đăng ký hệ thống
Quét virus tự chạy khi bật máy
- 150 -
• Hiển thị: điều khiển hiển thị giao diện (Hình P6.3)
• Cơ sở dữ liệu: quản lý các CSDL hệ thống (Hình P6.4)
• Công cụ: chứa các công cụ hệ thống (Hình P6.5)
Hình P6.3: Lệnh Hiển thị
Bật/tắt hiển thị thanh công cụ
Bật/tắt hiển thị thanh địa chỉ
Bật/tắt hiển thị thanh trạng thái
Bật/tắt hiển thị kết quả quét
Thiết lập các tùy chọn mặc định
Hình P6.4: Các Cơ sở dữ liệu
Quản lý CSDL tiền sử quét
Quản lý CSDL cách ly virus
Quản lý CSDL virus cập nhật
Hình P6.5: Các công cụ
Gọi tác tử Canh phòng
Quản lý danh sách tiến trình
Xem thông tin hệ thống
- 151 -
2.3. Các thiết lập điều khiển
Các thiết lập điều khiển MAVCL được bố trí trên Bảng điều khiển bên trái
cửa sổ ứng dụng với 5 hộp chức năng gồm “Đối tượng quét”, “Kiểu tập tin”, “Chẩn
đoán thông minh”, “Tự động quét” và “Đáp ứng”.
• Đối tượng quét: chọn đối tượng để quét virus (Hình P6.7)
• Kiểu tập tin: chọn kiểu tập tin tham gia quét (Hình P6.8)
Quét tập tin trong thư mục và các thư mục con chỉ định trên cây
Chỉ quét các tập tin trong thư mục đang hiển thị nội dung
Chỉ quét các tập tin được chọn trong thư mục đang hiển thị
Chỉ định quét bộ nhớ trước mỗi chu trình quét tập tin
Hình P6.7: Chọn đối tượng
Quét tất cả các tập tin (*.*)
Quét theo ký tự đại diện chỉ định
Xác nhận danh sách mở rộng
Phục hồi danh sách chuẩn
Biên tập phần mở rộng
Quét theo phần mở rộng
Hình P6.8: Chọn kiểu tập tin tham gia quét virus
- 152 -
• Chẩn đoán thông minh: các tùy chọn chẩn đoán virus lạ (Hình P6.9)
Chẩn đoán mã lệnh lạ trên mẫu tin khởi động đĩa mềm
Chẩn đoán macro lạ trên tư liệu Microsoft Office
Chẩn đoán mã lệnh nhị phân giống mã virus trên tập tin EXE
Chỉ định tỷ lệ mã lệnh chẩn đoán gần giống với mã virus nhất
Hình P6.9: Các tùy chọn chẩn đoán thông minh
a. Phát hiện boot record
b. Phát hiện trojan lạ
c. Phát hiện macro lạ
d. Phát hiện file virus lạ
- 153 -
• Tự động quét: các tùy chọn tự động quét virus (Hình P6.10)
• Đáp ứng: các tùy chọn đáp ứng người dùng (Hình P6.11)
3. Các thao tác cơ bản
Trình tự quét: chọn đối tượng, quét đối tượng, xem kết quả, kết thúc.
3.1. Chọn đối tượng quét
• Quét bộ nhớ: Trình đơn chính > Quét virus > Tiến trình hoạt động
• Quét Registry: Trình đơn chính > Quét virus > Windows Registry
• Quét trình tự chạy: Trình đơn chính > Quét virus > Danh sách khởi động
• Quét các tập tin trên cấu trúc thư mục:
Quét khi máy tính khởi động
Quét mỗi ngày theo giờ định sẵn
Bật: hỏi trước khi chạy tự động Tắt: tự chạy không hỏi
Hình P6.10: Thiết lập chế độ quét virus tự động
Bật: hỏi trước khi diệt virus Tắt: tự động diệt không hỏi
Bật: chỉ phát hiện, không diệt Tắt: phát hiện virus, diệt ngay
Bật: sao lưu trước khi diệt Tắt: không sao lưu
Hình P6.11: Thiết lập đáp ứng người dùng
- 154 -
- Chọn đường dẫn: duyệt cây, bật hộp kiểm đầu các nhánh cần quét
- Chọn quét cây hay quét file trong Bảng điều khiển, hộp “Đối tượng quét”
- Chọn kiểu tập tin trong Bảng điều khiển, hộp “Kiểu tập tin”: Toàn bộ (*.*),
Nhóm file (*.EXE) hay Kiểu tự chọn
• Quét riêng một số tập tin trong thư mục
- Chọn đường dẫn trên cây
- Mở hộp “Đối tượng quét”
- Chọn “Các tập tin trong thư mục chọn” hoặc chọn tập tin (Ctrl-chuột phải)
3.2. Quét virus
• Quét thông minh: Bảng điều khiển > Chẩn đoán thông minh
• Đáp ứng hội thoại: Bảng điều khiển > Đáp ứng
• Ra lệnh quét: Thanh công cụ > Quét virus
• Dừng tiến trình quét: Thanh công cụ > Dừng quét
3.3. Xem kết quả quét
• Xem kết quả: Thanh công cụ > Kết quả = On
• Xem nội dung thư mục: Thanh công cụ > Kết quả =Off
3.4. Kết thúc MAVCL
• Thiết lập cấu hình tự động quét
- Bảng điều khiển > Tự động quét
- Chọn tự quét khi máy khởi động hay/và quét theo giờ định sẵn
- Trước khi quét, có hỏi hay không
• Thoát khỏi MAVCL
- Thanh công cụ > Thoát, hoặc
- Trình đơn chính > Quét virus > Thoát khỏi MAV, hoặc
- Nhấn vào nút close [x], hoặc
- Nhấn tổ hợp phím Alt-F4
- 155 -
4. Các tiện ích của MAVCL
Ngoài chức năng quét virus, MAVCL còn cung cấp các tiện ích khác như Cách
ly bệnh mẫu, Tiền sử chẩn đoán, Bảo vệ tự động, Quản lý Tiến trình, Thông tin hệ
thống và Hướng dẫn sử dụng.
4.1. Danh sách virus
• Công dụng: liệt kê danh sách 11.000 virus của MAV (Hình P6.12).
• Kích hoạt:
- Thanh công cụ > Danh sách, hoặc
- Trình đơn chính > Cơ sở dữ liệu > Danh sách Virus
• Các chức năng cơ bản:
- Lọc danh sách theo alphabet
- Tìm kiếm tên virus
- Sắp xếp danh sách
- In danh sách
Hình P6.12: Danh sách 11.036 virus cập nhật của MAV
- 156 -
4.2. Cách ly bệnh mẫu
• Công dụng: quản lý các file nhiễm virus (hoặc nghi ngờ nhiễm virus).
• Kích hoạt: Trình đơn chính > Cơ sở dữ liệu > Cách ly bệnh mẫu
• Các chức năng cơ bản
- Chọn loại danh sách: Trình đơn chính > Hiển thị > Danh sách nghi ngờ (On: các tập tin nghi ngờ virus. Off: các tập tin bị nhiễm virus đã biết)
- Chọn xem theo ngày tháng: Cây lịch trình (Hình P6.13) Schedule: từ nhiều tuần trước (Before last weeks, Last/This week) Day of Weeks (Mondays, Tuedays…): vào các ngày trong tuần Recently (Today, Yesterday…): hôm nay, hôm qua, 2 ngày, 3 ngày qua
- Đưa một tập tin vào danh sách: Thanh công cụ > Đưa vào - Xuất một tập tin ra ngoài: Thanh công cụ > Xuất ra - Tìm kiếm một mẫu tin trong danh sách: Thanh công cụ > Tìm kiếm - Dời một mẫu tin ra ngoài: Thanh công cụ > Phục hồi - Xóa một mẫu tin khỏi danh sách: Thanh công cụ > Xóa bỏ - Khôi phục các tập tin đã xóa: Thanh công cụ > Khôi phục - Dọn dẹp danh sách: Thanh công cụ > Xóa hết - In danh sách: Trình đơn chính > Hệ thống > In báo cáo
Hình P6.13: Cơ sở dữ liệu Cách ly virus
- 157 -
4.3. Tiền sử chẩn đoán
• Công dụng: lưu thông tin tiền sử của quá trình quét virus trên máy. MAV sử dụng cơ sở dữ liệu này như một “Sổ sức khỏe” theo dõi trạng thái an ninh của hệ thống và tăng tốc độ xử lý của chương trình (Hình P6.14).
• Kích hoạt:
- Thanh công cụ > Tiền sử, hoặc - Trình đơn chính > Cơ sở dữ liệu > Tiền sử chẩn đoán
• Các khái niệm
- Mẫu tin: thông tin tiền sử chẩn đoán của một tập tin - Bảng: chứa các mẫu tin trong cùng thư mục đã được MAV quét virus - Quan hệ: biểu diễn quan hệ thứ bậc của bảng với các bảng khác - Cơ sở dữ liệu: hệ thống các bảng và quan hệ giữa các bảng.
• Các chức năng cơ bản
- Các lệnh về mẫu tin: kiểm tra, xóa bỏ, tìm kiếm mẫu tin - Các lệnh về bảng: xóa rỗng, xóa bảng, xuất bảng, nhập bảng - Các lệnh về cơ sở dữ liệu: kết nhập, kết xuất, tinh giản, xóa CSDL - Lệnh In ấn: in danh sách các tập tin đã được kiểm tra virus trong danh sách
Hình P6.14: Cơ sở dữ liệu Tiền sử chẩn đoán
- 158 -
4.4. Bảo vệ tự động
• Công dụng: Canh phòng virus tự động (Autoprotect Agent), giám sát vào ra. • Kích hoạt: Sau khi cài đặt MAV, chức năng này được tự động kích hoạt. Có
thể tái kích hoạt bằng lệnh Trình đơn chính > Công cụ > Bảo vệ tự động
• Điều khiển Bảo vệ Tự động
Kích hoạt trình đơn ngữ cảnh vào biểu tượng trên Khay hệ thống (Hình P6.16).
Hình P6.15: Tác tử Canh phòng của MAV
Giới thiệu MAV AutoProt
Theo dõi truy nhập hệ thống
Bật/tắt bảo vệ tự động
Bật/tắt cảnh báo virus
Bật/tắt chức năng cách ly virus
Không chạy tự động khi bật máy
Giải phóng AutoProt khỏi bộ nhớ
Hình P6.16: Trình đơn điều khiển AutoProt
- 159 -
• Theo dõi truy nhập hệ thống
• Cảnh báo virus xâm nhập
4.5. Quản lý Tiến trình
• Công cụng: Quản lý các tiến trình đang chạy, cung cấp thông tin hoạt động: tên tiến trình, địa chỉ đầy đủ, phân cấp tiến trình (Hình P6.19).
• Các chức năng cơ bản - Quét tiến trình: quét virus cho tiến trình chỉ định - Quét toàn bộ tiến trình: quét virus cho tất cả các tiến trình trong bộ nhớ
Hình P6.17: AutoProt đang theo dõi truy nhập hệ thống
Hình P6.18: AutoProt phát hiện virus thâm nhập hệ thống
- 160 -
- Hủy tiến trình: kết thúc tiến trình chỉ định.
4.6. Thông tin hệ thống
• Công dụng: Cung cấp thông tin về hệ điều hành, số sê-ri, tên nhóm, tên người dùng, tên máy, bộ nhớ, bộ vi xử lý, đo tốc độ xử lý (Hình P6.20).
• Kích hoạt: Trình đơn chính > Công cụ > Thông tin hệ thống