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

Thiết kế xây dựng hệ thống và thực nghiệm

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








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 V
K
= {v
1
, v
2
, …, v
k
}. Chẩn đoán virus là quá trình truy vấn
các vector v
i
trong tập dữ liệu S theo các luật dẫn xuất (production rule) dạng:
R: p
1
^ p
2
^…^ p
n
→ q

(4.1)

trong đó p
i
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(v
i
) = {a
j
| j ÷1..m; m∈N*}
Trong đó: v
i
là mẫu virus thứ i thuộc lớp virus V (v∈V)
a

j
là tập dữ liệu đặc trưng của virus v
i
(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:
x
11
x
21
x
31
… x
p1

x
12
x
22
x
32
… x
p2

… … … … …

x
1k
x
2k
x
3k
… x
pk

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)
Current_Node.Child_List ← Current_Node.Child_List+ Node
ENDIF
Current_Node ← Node
Current_Node.Points_List ← Current_Node.Points_List+j
ENDFOR
ENDFOR
Hình 4.4:
Thuật toán ACV phân cụm CSDL virus bằng V-tree

Để minh họa, xét CSDL virus 10 mẫu tin (Bảng 4.2). Các thuộc tính Type,
Hooking, Host được chọn tham gia phân cụm. Đầu tiên, nút gốc được tạo với danh
sách các con Child_list rỗng, danh sách Points_list được khởi tạo chứa 10 phần tử.


- 69 -
Bảng 4.2:
Ví dụ cơ sở dữ liệu virus mẫu
Ptr. Virus Name Type Hooking Host Code
1 Virus 1 DLL Registry Application 3F2D9A…
2 Virus 2 EXE StartUp Application E9124F…
3 Virus 3 EXE StartUp Service 60E89F…
4 Virus 4 DLL Registry Service 583E6F…
5 Virus 5 EXE Registry Service E8558B…
6 Virus 6 EXE WinFile Application C0317F…
7 Virus 7 DLL Registry Application 902D3F…
8 Virus 8 EXE WinFile Application 7E5D9B…
9 Virus 9 EXE StartUp Service 347A9C…
10 Virus 10 DLL Registry Application 4B80FF…


Xét mẫu tin đầu tiên, trị thuộc tính thứ nhất (Type) là ‘DLL’. Do nút đang xét
(là nút gốc) chưa có nút con nào là ‘DLL’ nên tạo nút mới (nhãn ‘DLL’), sau đó bổ
sung địa chỉ nút này vào danh sách các con của nút gốc. Đặt lại nút đang xét là nút
‘DLL’ vừa tạo. Bổ sung thứ tự mẫu tin đang xét (mẫu 1) vào danh sách Points_list
của nút hiện tại. Tiếp tục xét đến thuộc tính thứ hai (Hooking) có trị ‘Registry’. Do
nút hiện tại (DLL) chưa có nút con nào là ‘Registry’ nên tạo nút mới ‘Registry’, cập
nhậ
t nút này vào danh sách các con của ‘DLL’, đặt nút này làm nút hiện tại, bổ sung
thứ tự mẫu tin đang xét (mẫu 1) vào nút ‘Registry’. Thực hiện tương tự cho thuộc
tính thứ ba (Host) có trị ‘Application’. Kết thúc mẫu thứ nhất.
Tương tự xét mẫu tin thứ hai (EXE, Startup, Application). Sau khi duyệt
xong hai mẫu tin, cây V-tree có dạng như hình 4.5. Ở mẫu tin thứ ba (EXE, Startup,
Service) có một vài thay đổi. Do trong danh sách các con nút gốc đã có nút ‘EXE’
nên không tạo thêm nút mới mà chọn ngay EXE làm nút hiện tại, rồi bổ sung vào
danh sách Points_list của nút này th
ứ tự mẫu đang xét (mẫu 3). Tương tự, do ‘EXE’
đã có con là ‘Startup’ nên chọn nút này làm nút hiện tại, bổ sung ‘3’ vào danh sách
Point_list của nút ‘Startup’. Xét thuộc tính cuối. Do các con của ‘Startup’ chưa có
nút ‘Service’ nên tạo mới nút ‘Service’ rồi bổ sung vào danh sách các con của nút
‘Startup’, chọn ‘Service’ làm nút hiện tại rồi bổ sung ‘3’ vào nút ‘Service’ (Hình
4.6). Kết thúc duyệt 10 mẫu tin, cây kết quả sẽ có dạng như hình 4.7.
- 70 -
























Từ CSDL 10 virus, kết quả rút luật thu được sáu nhóm virus:
Nhóm 1:
Virus 1, Virus 7, Virus 10
Nhóm 4:
Virus 3, Virus 9
Nhóm 2:
Virus 4
Nhóm 5:
Virus 5
Nhóm 3:
Virus 2
Nhóm 6:
Virus 6, Virus 8
Việc phân nhóm CSDL virus có ý nghĩa quan trọng trong quá trình chẩn

đoán virus. Phân nhóm giúp giảm không gian tìm kiếm, gia tăng tốc độ truy vấn
Hình 4.6
:
Cây V-Tree sau khi duyệt 3 mẫu tin
Type
Hooking
Host
Root
1-2-3-4-5-6-7-8-9-10
DLL-EXE
DLL
1
Registry
Registry
1
Application
Application
1
NIL
EXE
2-3
Startup
Startup
2-3
Application-Service
Application
2
NIL
Service
3

NIL
Hình 4.5
:
Cây V-Tree sau khi duyệt 2 mẫu tin
Type
Hooking
Host
Root
1-2-3-4-5-6-7-8-9-10
DLL
, EXE
DLL
1
Registry
Registry
1
Application
Application
1
NIL
EXE
2
Startup
Startup
2
Application
Application
2
NIL
i = 1

i = 2
- 71 -
trên CSDL. Nếu không phân nhóm, AV phải duyệt toàn bộ CSDL (trong ví dụ trên,
nhiều nhất 10 mẫu tin, ít nhất 1 mẫu tin). Sử dụng phân nhóm, số mẫu tin cần duyệt
sẽ ít hơn (trong ví dụ trên, chỉ cần duyệt nhiều nhất 3 mẫu tin, ít nhất 0 mẫu tin).












Việc phân nhóm cũng giúp dự đoán các virus mới. Điểm chẩn đoán sẽ được
phân vào một nhóm virus, nếu cây giá trị một nhánh của đối t
ượng khớp với một
nhánh trên cây phân cụm của CSDL. Lúc này có ba khả năng xảy ra: đối tượng là
một virus trong nhóm, hoặc là biến thể của một virus trong nhóm, hoặc không phải
là virus. Ngược lại, đối tượng không thuộc bất cứ nhóm virus đã biết nào.
4.3.2.3. Đánh giá thuật toán ACV
Phân cụm dữ liệu bằng Cây giá trị là kỹ thuật đơn giản do không cần tổ chức
và xử lý ma trận phân biệt. Công tác chuẩn hóa dữ liệu cũng dễ dàng do kế thừa
kiểu dữ liệu của các cột và không phụ thuộc vào đơn vị đo. Thứ tự của các mẫu tin,
thứ tự cột phân cụm, việc thêm vào hay xóa bớt mẫu tin cũng không xáo trộn cấu
trúc cây kết quả.
Độ phức tạp của thuật toán ACV chỉ phụ thuộc vào độ lớn của dữ

liệu đầu vào. Gọi:
-

T
j
(k) và T
i
(p) là thời gian thực hiện tương ứng của các vòng lặp theo j và i.
-

T
j
(k) = O(f(k)), T
i
(p) = O(g(p))
Hình 4.7
:
Kết quả phân cụm CSDL virus bằng V-Tree
Type
Hooking
Host
Root
1-2-3-4-5-6-7-8-9-10
DLL-EXE
DLL
1-4-7-10
Registry
Registry
1-4-7-10
Application-Service

Application
1-7-10
NIL
EXE
2-3-5-6-8-9
Startup-Registry-WinFile
Startup
2-3-9
Application-Service
Application
2
NIL
Service
3-9
NIL
Service
4
NIL
Service
5
NIL
Application
6-8
NIL
WinFile
6-8
Application
Registry
5
Service

- 72 -
Thời gian thực hiện của 2 vòng lặp lồng nhau là T = O(f(k).g(p)). (1)
Gọi n là số phần tử của ma trận dữ liệu. Ta có n = k × p (2)
Từ (1) và (2) suy ra độ phức tạp của thuật toán là O(n).
Số lần duyệt mỗi nút bằng chính số cụm mà nút chứa. Nút gốc chứa số cụm
nhiều nhất (k mẫ
u tin). Các nút trung gian chứa số cụm ít hơn. Kết thúc thuật toán,
các mẫu tin đều được phân nhóm. Bảng 4.3 cho thấy mỗi cột trên ma trận dữ liệu
được duyệt k lần. Ma trận có p cột nên tổng số lần duyệt các nút là n = k ×p lần.

Bảng 4.3:
Tính toán số lần ACV duyệt nút trên V-tree
Mức Cột Nút
Danh sách
cụm
Số lần
duyệt nút
Số lần
duyệt mức
Ghi chú
DLL 1-4-7-10 4
1 Type
EXE 2-3-5-6-8-9 6
10
1-4-7-10 4
Registry
5 1
Startup 2-3-9 3
2 Hooking
WinFile 6-8 2

10
1-7-10 3
2 1
Application
6-8 2
4 1
3-9 2
3 Host
Service
5 1
10

Số lần
duyệt mỗi
mức bằng
với số dòng
ma trận dữ
liệu (10)

Số lần
duyệt nút
bằng với
kích thước
ma trận
(30)


Số lần duyệt các nút trên cây: 30



Sử dụng các phép toán cơ bản trên cấu trúc dữ liệu cây như tạo nút, thêm nút,
tìm nút con… nên việc thiết kế ACV khá đơn giản. Trong khi các mô hình phân
cụm phân cấp khác thường mắc nhược điểm không khắc phục được các quyết định
sai lầm khi trộn tách nhóm, thuật toán ACV có thể tránh được tình trạng này. Thật
vậy, ngoại trừ nút lá, mỗi nút trên V-Tree có ít nhất một nút con. Nhờ có mệnh đề
IF kiểm tra điều kiện tồn t
ại nút con và do các nút lá luôn đồng mức nên thuật toán
ACV không tạo ra các nút sai lầm.
Bước tiếp theo là rút luật phân nhóm virus, sẽ được giới thiệu ngay sau đây.
- 73 -
4.3.3. Rút luật phân bố trị thuộc tính
Trong các hệ học, tri thức được biểu diễn phổ biến dưới dạng luật IF-THEN.
Dạng luật này được đặc tả hình thức bằng mệnh đề Horn:
H

(L
1
^ L
2
^ … ^ L
n
)
Trong đó:
-

H: gọi là phần đầu (head), hệ quả (consequent) hay điều kiện sau
(postcondition) của luật.
-

L

i
: gọi là trực kiện (literal) của luật.
-

L
1
^ L
2
^…^ L
n
: gọi là phần thân (body), tiền đề (antecedent), điều kiện đầu
(precondition) hay kết hợp trực kiện (conjunction of literals) của luật.
Mục tiêu của quá trình rút luật trên CSDL virus nhằm tìm ra quy luật phân
bố đặc tính chung của các nhóm virus, phục vụ cho công tác phân loại đối tượng
chẩn đoán ở các giai đoạn sau. MAV áp dụng hai kỹ thuật rút luật phân bố trị thuộc
tính các cụm virus: rút luật trên V-Tree và rút luật trực tiế
p trên ma trận dữ liệu.
4.3.3.1. Rút luật phân cụm trên V-Tree
Phân cụm bằng V-tree nói riêng, các phương pháp phân cụm phân cấp nói
chung, phân bố các cụm kết quả nằm ở nút lá (hoặc ở mức cha trực tiếp của nút lá).
Quá trình rút luật được thực hiện bằng cách duyệt đường đi các nhánh từ gốc đến lá
(tạm gọi là R2LTA – Root-to-Leaf Traverse Algorithm, thuộc loại thuật giải phổ
biến nên không trình bày lại ở đây). Mỗi nhánh chứa một luật theo mệnh đề Horn.
Đường
đi trên nhánh chứa tiền đề (phần thân) của luật, mỗi nút trên nhánh là một
trực kiện. Tên nhánh là hệ quả của luật.
Như giới thiệu, các nút lá của V-Tree đều đồng mức. Số mức trên cây V-
Tree nhiều hơn số cột tham gia phân cụm một đơn vị (p+1). Mỗi nhánh V-Tree
tương ứng với một cluster. Độ phức tạp của thuật giải R2LTA trên cây V-Tree là
một hàm đa thức O(

n) tỷ lệ với số nhánh (số cluster). Trường hợp xấu nhất, khi các
mẫu tin đều “tách rời” nhau và được phân vào k nhánh, số lần duyệt nút trên cây là
k×(p+1). Trường hợp tốt nhất, khi tất cả các mẫu tin đều “giống nhau” và được phân
vào một cụm, chỉ cần duyệt (p+1) nút là đã rút được luật phân bố đặc trưng dữ liệu.
- 74 -
Áp dụng thuật giải R2LTA trên V-Tree, ta thu được sáu luật như sau:

Luật 1: Cluster_1 ← (Type=DLL) ∧ (Hooking=Registry) ∧ (Host=Application)
Luật 2: Cluster_2 ← (Type=DLL) ∧ (Hooking=Registry) ∧ (Host=Service)
Luật 3: Cluster_3 ← (Type=EXE) ∧ (Hooking=StartUp) ∧ (Host=Application)
Luật 4: Cluster_4 ← (Type=EXE) ∧ (Hooking=StartUp) ∧ (Host=Service)
Luật 5: Cluster_5 ← (Type=EXE) ∧ (Hooking=Registry) ∧ (Host=Service)
Luật 6: Cluster_6 ←(Type=EXE) ∧ (Hooking=WinFile) ∧ (Host=Application)

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} = p
1

Hooking ∈ {Registry, Startup, WinFile} = p
2

Host ∈ {Application, Service} = p
3

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:

×