Có nhiều loại virus máy tính với nhiều kỹ thuật lây nhiễm Khảo sát virus máy tính) trên các định dạng dữ liệu khác nhau
Trang 1Thiế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ự)
Trang 2Hì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
- 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
Trang 3Mô 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 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:
A-Đố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 = {v1, v2, …, vk} 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:
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
Trang 4Dạ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
Trang 5Bả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 Instruction Pointer) của chương trình
(IP-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
Trang 6Cho 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:
Trang 7- 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
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ử
Trang 8Bả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
Trang 9Từ 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
Trang 10trê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
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
Trang 11Thờ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 duyệt nút Số lần duyệt mức Số lần 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
6-8 2
4 1 3-9 2
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
Trang 124.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 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-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
Trang 13Á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} = p1
Hooking ∈ {Registry, Startup, WinFile} = p 2
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:
Trang 14- Khởi tạo một luật ứng viên R v (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 R v
- Nếu R v không có trong danh sách luật, bổ sung R v 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
R j ← ∅ //khởi tạo luật ứng viên R j
FOR i=1 TO p DO R j ← R j + x[i, j] //tạo tiền đề cho luật ứng viên R j
idx ← Pos(R j , RuleSet) //tìm R j trong danh sách luật
IF idx = 0 THEN //nếu tìm không thấy
Append(R j , RuleSet) //bổ sung R j 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, R 1 =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, R 2 = EXE ^ Startup ^ Application Luật này chưa
có trong RuleSet nên được đưa vào danh sách luật:
1 DLL ^ Registry ^ Application
Tương tự, khi duyệt đến mẫu tin thứ sáu, RuleSet có dạng:
1 DLL ^ Registry ^ Application
Trang 15Khi duyệt mẫu tin thứ bảy, do R 7 = R 1 = DLL ^ Registry ^ Application nên
không mở rộng danh sách luật mà chỉ cần bổ sung số hiệu mẫu tin (7) vào header của luật thứ nhất Tương tự, quá trình duyệt tiếp tục phát hiện các cặp luật giống nhau là R8=R6, R9= R3, R10= R1 Kết thúc quá trình, tập luật RuleSet có dạng:
1, 7, 10 DLL ^ Registry ^ Application
3, 9 EXE ^ Starup ^ Service
6, 8 EXE ^ WinFile ^ Application
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)
Trang 161 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 R v phân bố trị thuộc tính của x
- Nếu R v∈ 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
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ả
Trang 17Hì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
R v(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 Đ