Post on 28-Apr-2015
description
ĐẠ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
LỜI CAM ĐOAN
Tôi cam đoan rằng
đề tài này do chính tôi thực hiện.
Các số liệu được thu thập, kết quả phân tích,
dẫn chứng trong đề tài là trung thực.
Không có sự trùng lặp, sao chép
từ bất kỳ đề tài, luận án
hay công trình nghiên cứu khoa học nào
của các tác giả khác.
Ngày 10 tháng 2 năm 2009 Nghiên cứu sinh
Trương Minh Nhật Quang
Tôi xin bày tỏ lòng biết ơn sâu sắc đến
Giáo sư Tiến sĩ Khoa học Hoàng Kiếm
Người đã tận tình hướng dẫn tôi hoàn thành luận án này
Tôi vô cùng cảm ơn
Phó Giáo sư Tiến sĩ Nguyễn Thanh Thủy
Và các nhà khoa học đã đóng góp nhiều ý kiến quý báu
Giúp tôi hoàn thiện công trình nghiên cứu này
Tôi xin chân thành cảm ơn
Trường Đại học Khoa học Tự nhiên,
Trường Đại học Công nghệ Thông tin,
Trung tâm Đào tạo Đại học Tại chức Cần Thơ và
Sở Khoa học Công nghệ thành phố Hồ Chí Minh
Đã tạo điều kiện thuận lợi cho tôi thực hiện đề tài này
Tôi xin kính tặng công trình này cho cha mẹ
Và người thân trong gia đình
Bằng tất cả tình cảm yêu thương nhất…
Trương Minh Nhật Quang
Mùa xuân 2009
MỤC LỤC DANH MỤC BẢNG BIỂU ...................................................................................... vi
DANH MỤC HÌNH ẢNH........................................................................................ vii
KÝ HIỆU VÀ VIẾT TẮT.......................................................................................... ix
CHƯƠNG 1 - MỞ ĐẦU............................................................................................1
1.1. Giới thiệu đề tài ............................................................................................1
1.1.1. Lý do chọn đề tài .....................................................................................1
1.1.2. Mục tiêu của đề tài...................................................................................2
1.1.3. Các giai đoạn thực hiện đề tài..................................................................2
1.2. Đối tượng, phạm vi nghiên cứu của đề tài....................................................3
1.2.1. Virus máy tính và các hệ thống đích .......................................................3
1.2.2. Các hệ học và khám phá tri thức .............................................................3
1.2.3. Các hệ chuyên gia ....................................................................................4
1.3. Ý nghĩa khoa học và thực tiễn của đề tài ......................................................4
1.4. Cấu trúc của luận án......................................................................................5
CHƯƠNG 2 – CÁC CƠ CHẾ CHẨN ĐOÁN VIRUS MÁY TÍNH VÀ MỘT
SỐ VẤN ĐỀ LIÊN QUAN .............................................................7
2.1. Khảo sát virus máy tính ................................................................................7
2.2. Các cơ chế chẩn đoán virus máy tính ...........................................................9
2.2.1. Phát hiện virus dựa vào chuỗi nhận dạng ..............................................11
2.2.2. Phát hiện virus dựa vào hành vi.............................................................11
2.2.3. Phát hiện virus dựa vào ý định ..............................................................12
2.3. Các hệ phòng chống virus máy tính............................................................12
2.3.1. Các sản phẩm trong nước ......................................................................12
2.3.2. Các sản phẩm nước ngoài ......................................................................13
2.4. Tình hình nghiên cứu virus máy tính..........................................................13
2.4.1. Tình hình nghiên cứu, ứng dụng trong nước .........................................14
2.4.2. Tình hình nghiên cứu, ứng dụng ở nước ngoài .....................................15
2.4.3. Các vấn đề mở của công nghệ anti-virus...............................................15
- ii -
2.5. Hướng giải quyết của đề tài ........................................................................16
2.5.1. Các luận điểm của đề tài ........................................................................17
2.5.2. Giải pháp của đề tài ...............................................................................18
2.6. Các hệ cơ sở tri thức ...................................................................................19
2.6.1. Các Hệ chuyên gia .................................................................................19
2.6.1.1. Cơ sở tri thức.................................................................................20
2.6.1.2. Động cơ suy diễn ..........................................................................20
2.6.2. Các hệ Khám phá tri thức từ cơ sở dữ liệu ............................................20
2.6.2.1. Giới thiệu.......................................................................................20
2.6.2.2. Tiến trình khám phá tri thức .........................................................21
2.6.3. Các Hệ học.............................................................................................22
2.6.3.1. Học giám sát..................................................................................23
2.6.3.2. Học không giám sát.......................................................................23
2.6.3.3. Các hình thức học..........................................................................24
2.6.4. Các nghiên cứu máy học nhận dạng virus máy tính..............................25
2.6.5. Các nghiên cứu hệ chuyên gia nhận dạng virus máy tính .....................27
2.7. Tổng kết chương .........................................................................................29
CHƯƠNG 3 – CƠ CHẾ MÁY HỌC CHẨN ĐOÁN VIRUS MÁY TÍNH ........30
3.1. Phân hoạch bài toán chẩn đoán virus máy tính...........................................30
3.2. Các độ đo chất lượng chẩn đoán.................................................................31
3.3. Cơ chế máy học chẩn đoán virus máy tính.................................................31
3.3.1. Bài toán 1: Chẩn đoán lớp virus C-class ...............................................31
3.3.1.1. Phát biểu bài toán..........................................................................31
3.3.1.2. Tổ chức cơ sở dữ liệu và trích chọn đặc trưng..............................32
3.3.1.3. Thuật toán chẩn đoán lớp C-class .................................................32
3.3.1.4. Phân tích, đánh giá thuật toán chẩn đoán lớp C-class...................33
3.3.2. Bài toán 2: Chẩn đoán lớp virus D-class ...............................................34
3.3.2.1. Phát biểu bài toán..........................................................................34
3.3.2.2. Tổ chức cơ sở dữ liệu....................................................................35
- iii -
3.3.2.3. Tổ chức không gian tìm kiếm .......................................................36
3.3.2.4. Trích chọn đặc trưng .....................................................................37
3.3.2.5. Luật nhận dạng virus lớp D-class..................................................37
3.3.2.6. Thực nghiệm bài toán chẩn đoán lớp D-class...............................38
3.3.3. Bài toán 3: Chẩn đoán lớp virus B-class ...............................................39
3.3.3.1. Phát biểu bài toán..........................................................................39
3.3.3.2. Tạo lập cơ sở tri thức ....................................................................40
3.3.3.3. Tổ chức cơ sở dữ liệu....................................................................41
3.3.3.4. Trích chọn đặc trưng .....................................................................41
3.3.3.5. Xây dựng không gian trạng thái....................................................42
3.3.3.6. Cơ chế phân tích............................................................................43
3.3.3.7. Đánh giá độ phức tạp và kết quả thực nghiệm..............................44
3.3.4. Bài toán 4: Chẩn đoán lớp virus E-class................................................45
3.3.4.1. Phát biểu bài toán..........................................................................45
3.3.4.2. Tổ chức cơ sở dữ liệu virus, trích chọn đặc trưng ........................45
3.3.4.3. Xây dựng cơ sở tri thức.................................................................46
3.3.4.4. Tổ chức cơ sở dữ liệu thông tin hệ thống .....................................46
3.3.4.5. Thiết kế động cơ suy diễn .............................................................47
3.3.4.6. Giải thích thuật toán SID ..............................................................47
3.3.4.7. Các tác tử hoạt động......................................................................49
3.3.4.8. Kết quả thực nghiệm .....................................................................50
3.3.4.9. Đánh giá phương pháp chẩn đoán lớp virus E-class.....................51
3.3.5. Bài toán 5: Chẩn đoán lớp virus A-class ...............................................52
3.3.5.1. Lược sử vấn đề nhận dạng mã độc................................................52
3.3.5.2. Phát biểu bài toán..........................................................................54
3.3.5.3. Tổ chức cơ sở dữ liệu virus...........................................................54
3.3.5.4. Biểu diễn dữ liệu virus bằng mô hình không gian vectơ ..............55
3.3.5.5. Rút trích đặc trưng ........................................................................55
3.3.5.6. Ước lượng tỷ lệ mã độc.................................................................56
- iv -
3.3.5.7. Ví dụ minh họa bài toán A-class...................................................57
3.3.5.8. Kết quả thực nghiệm .....................................................................59
3.3.5.9. Bàn luận về phương pháp chẩn đoán lớp A-class.........................59
3.4. Tổng kết chương .........................................................................................60
CHƯƠNG 4 – THIẾT KẾ XÂY DỰNG HỆ THỐNG VÀ THỰC NGHIỆM...62
4.1. Mô hình tổng quát của hệ ...........................................................................62
4.2. Tổ chức cơ sở tri thức .................................................................................62
4.2.1. Mô tả đối tượng .....................................................................................62
4.2.2. Luật nhận dạng virus .............................................................................64
4.3. Giai đoạn Học dữ liệu .................................................................................65
4.3.1. Trích chọn dữ liệu..................................................................................65
4.3.2. Phân cụm dữ liệu ...................................................................................65
4.3.2.1. Tổ chức cấu trúc dữ liệu................................................................66
4.3.2.2. Thuật toán ACV gom cụm trên V-Tree ........................................67
4.3.2.3. Đánh giá thuật toán ACV..............................................................71
4.3.3. Rút luật phân bố trị thuộc tính ...............................................................73
4.3.3.1. Rút luật phân cụm trên V-Tree .....................................................73
4.3.3.2. Rút luật phân cụm trên ma trận dữ liệu.........................................74
4.4. Giai đoạn Xử lý dữ liệu ..............................................................................76
4.4.1. Phân loại dữ liệu chẩn đoán...................................................................79
4.4.1.1. Phân loại đối tượng .......................................................................79
4.4.1.2. So khớp luật phân nhóm ...............................................................82
4.4.2. Chẩn đoán virus bằng kỹ thuật hợp nhất dữ liệu ...................................83
4.4.2.1. Tinh chế dữ liệu trong tiến trình khám phá tri thức ......................83
4.4.2.2. Tinh chế dữ liệu NULL bằng kỹ thuật hợp nhất dữ liệu...............83
4.4.2.3. Virus lạ và dữ liệu NULL .............................................................84
4.4.2.4. Dự báo virus lạ bằng kỹ thuật hợp nhất dữ liệu............................86
4.4.2.5. Kết quả thực nghiệm .....................................................................88
4.4.2.6. Bàn luận về kỹ thuật DF2RV........................................................90
- v -
4.5. Kết quả thực nghiệm...................................................................................90
4.5.1. Đánh giá hiệu quả nhận dạng virus của MAV.......................................91
4.5.2. Đánh giá tốc độ thực thi của MAV........................................................92
4.6. Tổng kết chương .........................................................................................94
CHƯƠNG 5 - KẾT LUẬN .....................................................................................95
5.1. Những đóng góp mới của đề tài..................................................................96
5.2. Hạn chế của đề tài, cách khắc phục ............................................................97
5.3. Hướng phát triển tương lai..........................................................................98
5.4. Đề nghị về các nghiên cứu tiếp theo...........................................................99
CÔNG TRÌNH ĐÃ CÔNG BỐ.............................................................................100
TÀI LIỆU THAM KHẢO........................................................................................102
PHỤ LỤC 1 – KHẢO SÁT VIRUS MÁY TÍNH................................................108
PHỤ LỤC 2 – CÁC ĐỊNH DẠNG DỮ LIỆU NHIỄM VIRUS ........................117
PHỤ LỤC 3 – CÁC TÁC TỬ HOẠT ĐỘNG VÀ THUẬT TOÁN SID...........128
PHỤ LỤC 4 - PHÂN TÍCH HỆ THỐNG PHẦN MỀM MAV .........................133
PHỤ LỤC 5 - PHÂN HỆ MÁY CHỦ MAVSR ..................................................137
PHỤ LỤC 6 - PHÂN HỆ MÁY TRẠM MAVCL ..............................................148
- vi -
DANH MỤC BẢNG BIỂU Stt Bảng Mô tả Trang
1 2.1 Phân loại virus máy tính theo kiểu dữ liệu ............................................8
2 2.2 Lịch trình cập nhật của Kaspersky Lab (1995-2004) ............................9
3 2.3 Khảo sát tiếp cận hệ chuyên gia nhận dạng virus máy tính ................27
4 3.1 Các lớp virus cơ bản ............................................................................31
5 3.2 Kết quả thực nghiệm bài toán chẩn đoán lớp virus C-class ................34
6 3.3 Kết quả thực nghiệm bài toán chẩn đoán lớp virus D-class ................39
7 3.4 Kết quả thực nghiệm bài toán chẩn đoán lớp virus B-class ................44
8 3.5 Các luật cơ bản chẩn đoán file virus lạ................................................46
9 3.6 Thời gian chạy của các hệ AV thử nghiệm trên cùng tập mẫu ...........51
10 3.7 Kết quả thực nghiệm bài toán chẩn đoán lớp virus E-class.................52
11 3.8 Các nhóm virus trong CSDL và mẫu dữ liệu chẩn đoán.....................57
12 3.9 Số liệu tính toán trên ví dụ mẫu bài toán A-class................................58
13 3.10 Kết quả thực nghiệm bài toán chẩn đoán lớp virus A-class ................59
14 4.1 Trích chọn dữ liệu đặc trưng từ các định dạng cơ bản ........................66
15 4.2 Ví dụ cơ sở dữ liệu virus mẫu..............................................................69
16 4.3 Tính toán số lần ACV duyệt nút trên V-Tree ......................................72
17 4.4 CSDL chứa 9 thành viên họ virus Family.x.vir...................................86
18 4.5 Kết quả hợp nhất dữ liệu trên CSDL virus..........................................88
19 4.6 Kết quả nhận dạng virus của các hệ AV thử nghiệm ..........................89
20 4.7 Kết quả dự báo virus của MAV khi thay đổi λ ...................................90
21 4.8 Đánh giá hiệu quả nhận dạng virus của MAV ....................................91
22 4.9 Kết quả thực nghiệm chất lượng các hệ anti-virus ..............................92
23 4.10 Kết quả thực nghiệm tốc độ các hệ anti-virus .....................................94
- vii -
DANH MỤC HÌNH ẢNH
stt Hình Mô tả Trang
1 2.1 Biểu đồ so sánh tỷ lệ phân bố các lớp virus máy tính ...........................8
2 2.2 Biểu đồ tăng trưởng các lớp virus máy tính ........................................10
3 2.3 Mô hình tổng quát của một hệ chuyên gia...........................................19
4 2.4 Tiến trình khám phá tri thức ................................................................21
5 3.1 Thuật toán chẩn đoán lớp C-class........................................................33
6 3.2 Phân loại tư liệu MSOffice ..................................................................35
7 3.3 Không gian chẩn đoán dữ liệu lớp D-class..........................................36
8 3.4 Thuật toán trích chọn tập hành vi chẩn đoán lớp D-class....................37
9 3.5 Cây chỉ thị nhị phân tìm kiếm..............................................................43
10 3.6 Hàm bổ sung tri thức ...........................................................................44
11 3.7 Mô hình quan hệ cơ sở dữ liệu VerifyDB ............................................47
12 3.8 Lưu đồ chẩn đoán đối tượng E-class ...................................................48
13 3.9 Biểu đồ so sánh chi phí thời gian của các AV thử nghiệm..................51
14 3.10 Ma trận từ-tài liệu của CSDL virus mẫu .............................................58
15 4.1 Mô hình tổng quát của hệ MAV..........................................................63
16 4.2 Hai phương pháp phân cụm.................................................................67
17 4.3 Ma trận dữ liệu.....................................................................................67
18 4.4 Thuật toán ACV phân cụm CSDL virus bằng V-tree..........................68
19 4.5 Cây V-Tree sau khi duyệt 2 mẫu tin....................................................70
20 4.6 Cây V-Tree sau khi duyệt 3 mẫu tin....................................................70
21 4.7 Kết quả phân cụm CSDL virus bằng V-Tree ......................................71
22 4.8 Thuật toán ARCRD rút luật phân cụm trực tiếp trên CSDL ...............75
23 4.9 Mô hình giai đoạn Xử lý dữ liệu của hệ MAV....................................77
- viii -
stt Hình Mô tả Trang
24 4.10 Tiến trình xử lý của giai đoạn Xử lý dữ liệu .......................................77
25 4.11 Lưu đồ xử lý của giai đoạn Xử lý dữ liệu............................................78
26 4.12 Chiến lược phân loại dữ liệu chẩn đoán ..............................................79
27 4.13 Thuật toán ASMCR so khớp luật phân nhóm trên tập Ruleset ...........82
28 4.14 Mô hình hợp nhất dữ liệu.....................................................................84
29 4.15 Biểu đồ mã lệnh của virus Klez.worm.W32........................................85
30 4.16 Đối tượng chẩn đoán ObjectX qua các giai đoạn của DF2RV............88
31 4.17 So sánh kết quả nhận dạng của các hệ AV thử nghiệm.......................89
32 4.18 Thử nghiệm chất lượng các hệ anti-virus ............................................93
33 4.19 Thử nghiệm tốc độ của các hệ anti-virus.............................................94
- ix -
KÝ HIỆU VÀ VIẾT TẮT
DANH MỤC CÁC KÝ HIỆU SỬ DỤNG TRONG ĐỀ TÀI Ký hiệu Thuật ngữ Ý nghĩa Ghi chú
A-class Stand Alone program virus class
Lớp virus/malware có định dạng ứng dụng độc lập
Ký hiệu của đề tài
Adware Advertising software Phần mềm quảng cáo
aObject Diagnosed A-class Object
Đối tượng chẩn đoán lớp virus A-class
Ký hiệu của đề tài
Backdoor Trojan horse backdoor
Nội ứng cửa hậu
B-class Boot virus Class Lớp virus lây vào mẫu tin khởi động Ký hiệu của đề tài
bObject Diagnosed B-class Object
Đối tượng chẩn đoán lớp virus B-class
Ký hiệu của đề tài
B-virus Boot virus Loại virus lây vào mẫu tin khởi động
B-Tree Balanced Tree data structure
Cấu trúc dữ liệu cây cân bằng
C-class 7-bit ASCII virus class
Lớp virus lây vào tập dữ liệu ASCII 7 bit
Ký hiệu của đề tài
cObject Diagnosed C-class Object
Đối tượng chẩn đoán lớp virus C-class
Ký hiệu của đề tài
D-class Document macro virus Class
Lớp virus lây vào tư liệu MS Office Ký hiệu của đề tài
dObject Diagnosed D-class Object
Đối tượng chẩn đoán lớp virus D-class
Ký hiệu của đề tài
Dropper Trojan horse dropper Mã độc kết xuất ra bộ nhớ ngoài
E-class Executable file virus Class
Lớp virus lây vào tập tin thi hành Ký hiệu của đề tài
eObject Diagnosed E-class Object
Đối tượng chẩn đoán lớp virus E-class
Ký hiệu của đề tài
- x -
Ký hiệu Thuật ngữ Ý nghĩa Ghi chú
F-virus File virus Loại virus máy tính lây vào tập tin thi hành
Filehooker File access hooker Công cụ thám báo truy nhập tập tin
Germs Trojan horse ancestor
Mầm độc
Hacker Hacker, cracker Tin tặc, người đục phá hệ thống
Hacktool Hacker’s toolkit Công cụ đục phá hệ thống
Header File header Cấu trúc đầu tập tin
ID-virus Virus Identity signature
Mã nhận dạng virus
Injector Trojan horse injector Mã độc kết nhập vào bộ nhớ trong
Intruder Intruder worm Sâu trình lang thang
Kernel32 Windows32’s system core
Hạt nhân hệ thống của Windows 32
Keylogger Keylogger toolkit Công cụ thám báo bàn phím
Macro Macro virus Loại virus lây vào tư liệu MS Office
Malicious Malicious, harmful code
Các đoạn mã thi hành độc hại, nguy hiểm
Malware Malicious software Phần mềm độc hại
MSOffice Microsoft Office package
Bộ ứng dụng văn phòng của Microsoft
NULL NULL data Dữ liệu trống (dữ liệu rỗng)
Pornware Pornware, Sexualware
Phần mềm đồi trụy
Riskware Riskware Phần mềm rủi ro
Rootkit Hacker’s toolkit Công cụ đục phá hệ thống
R-Tree Rectangles Tree data structure
Cấu trúc dữ liệu cây chữ nhật
- xi -
Ký hiệu Thuật ngữ Ý nghĩa Ghi chú
RS1 The ruleset of instant knowledge
Tập luật đặc tả kiến thức tức thời Ký hiệu, thuật ngữ của đề tài
RS2 The ruleset of permanent knowledge
Tập luật đặc tả kiến thức dài lâu Ký hiệu, thuật ngữ của đề tài
Sniffer Data packet sniffer Bộ thám báo gói dữ liệu
Spyware Spy software Phần mềm gián điệp
Template MSOffice template Khuôn dạng mẫu MSOffice
Trojan Trojan horse Nội ứng ‘ngựa gỗ’
Virus Computer viruses Virus máy tính
V-Tree Value Tree data structure
Cấu trúc dữ liệu cây giá trị
VxD Virtual Device Driver Bộ điều khiển thiết bị ảo
Win32 Windows 32 bit Họ hệ điều hành Microsoft Windows 32 bit
Worm Computer worm Sâu trình máy tính
Zombie Zombie computer in botnet
Hệ thống bị lợi dụng làm trạm trung chuyển trong mạng lưới tấn công
- xii -
DANH MỤC CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỀ TÀI Từ viết tắt Thay cho cụm từ Ý nghĩa Ghi chú
ACV Algorithm of Clustering by V-Tree
Thuật toán phân cụm dữ liệu sử dụng V-Tree
Ký hiệu của đề tài
AMKBD Association Model of Knowledge Base and Database
Mô hình kết hợp cơ sở dữ liệu và cơ sở tri thức
Ký hiệu của đề tài
ASMCR Algorithm to Search for a Member Clustering rule from Ruleset
Thuật toán tìm kiếm luật phân cụm trên tập Ruleset
Ký hiệu của đề tài
ARCRD Algorithm to Retrieve Clustering Rules from Database
Thuật toán rút luật phân cụm từ cơ sở dữ liệu
Ký hiệu của đề tài
ASCII American Standard Code for Information Interchange
Bộ mã tiêu chuẩn Mỹ dùng trao đổi thông tin
ASM AsSeMbly source files Tập chương trình nguồn hợp ngữ
AV Anti-Virus Hệ phòng chống virus máy tính
AX Accumulate register Thanh ghi tích lũy
BAT BATch files Tập tin lệnh theo lô
BP Base Pointer register Thanh ghi con trỏ cơ sở
BX Base register Thanh ghi cơ sở
CD-ROM Compact Disk ROM Đĩa quang học chỉ đọc
CNTT Công Nghệ Thông Tin Information Technology
COM COMmand files Tập tin lệnh
CPL Control Panel Applet Tập tin ứng dụng Control Panel
CPU Central Processing Unit
Đơn vị xử lý trung tâm
CRLF CaRriage – Line Feed Ký tự xuống dòng
CS Code Segment register Thanh ghi đoạn lệnh
- xiii -
Từ viết tắt Thay cho cụm từ Ý nghĩa Ghi chú
CSDL Cơ Sở Dữ Liệu Database
CSTT Cơ Sở Tri Thức Knowledge base
CX Counter register Thanh ghi đếm
DF2RV Data Fusion to Recall Values
Hợp nhất dữ liệu để khôi phục giá trị
Ký hiệu của đề tài
DLL Dynamic Link Library Thư viện liên kết động
DNS Domain Name Service Dịch vụ tên miền
DOC DOCument files Tập tin tư liệu văn bản
DOT DOcument Template Khuôn dạng tư liệu văn bản
DS Data Segment register Thanh ghi đoạn dữ liệu
DVD Digital Versatile Disk Đĩa kỹ thuật số đa năng
DX Data register Thanh ghi dữ liệu
ES Extra Segment register
Thanh ghi đoạn bổ sung
EXE EXEcutable files Tập tin thi hành
FD Floppy Disk Đĩa mềm
FIFO First In – First Out Cơ chế xử lý vào trước – ra trước
FTP File Transfer Protocol Giao thức truyền tập tin
HD Hard Disk Đĩa cứng
HĐH Hệ Điều Hành Operating system
HTA HyperText Application Tập ứng dụng siêu văn bản
HTML HyperText Markup Language
Ngôn ngữ đánh dấu siêu văn bản
HTT HyperTexT files Tập tin siêu văn bản
HTTP HyperText Transfer Protocol
Giao thức truyền siêu văn bản
IBM International Business Machine Corporation
Hãng IBM
- xiv -
Từ viết tắt Thay cho cụm từ Ý nghĩa Ghi chú
IBM-PC IBM compatible Personal Computer
Máy tính cá nhân tương thích IBM
INI INItializing files Tập tin khởi tạo
IP Instruction Pointer Điểm vào lệnh tập thi hành
IRC Internet Relay Chat Tiếp âm đàm thoại Internet
ISS Internet Security System
Hệ thống An ninh Internet
JS Java Script files Tập chương trình nguồn Java script
KDD Knowledge Discovery from Database
Hệ Khám phá tri thức từ cơ sở dữ liệu
KGVT Không Gian Véc Tơ Vector space
LAN Local Area Network Mạng cục bộ
LE-EXE LinEar EXEcutable files
Tập tin thực thi tuyến tính
LIFO Last In - First Out Cơ chế xử lý vào sau-ra trước
MAVCL MAV CLient module Phân hệ MAV trên máy trạm Ký hiệu của đề tài
MAVES, MAV
Machine Learning Approach to Anti-Virus Expert System
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
Ký hiệu của đề tài
MAVSR MAV ServeR module Phân hệ MAV trên máy chủ Ký hiệu của đề tài
MSDOS Microsoft Disk Operating System
Hệ điều hành MSDOS
MTKĐ Mẫu Tin Khởi Động Boot record
MZ Mark Zbikowski signature
Ký hiệu nhận dạng tập tin thi hành
NE-EXE NEw EXEcutable files Tập tin thi hành Windows 16 bit
NNLT Ngôn Ngữ Lập Trình Programming Language
- xv -
Từ viết tắt Thay cho cụm từ Ý nghĩa Ghi chú
NNSRM Nearest Neighbor Rule-based Structural Risk Minimization
Cực tiểu rủi ro cấu trúc dựa vào luật láng giềng gần nhất
OCX OLE Control eXtension
Điều khiển đối tượng liên kết nhúng
OLE Object Linking and Embedding
Đối tượng liên kết nhúng
PAS PAScal source files Tập chương trình nguồn Pascal
PE-EXE PortablE EXEcutable files
Tập tin thi hành Windows 32 bit
POST Power On Self Test Tự kiểm tra khi khởi động
POT PowerpOint Template files
Tập khuôn dạng trình diễn PowerPoint
PPA PowerPoint template Add-in files
Tập khuôn dạng trình diễn PowerPoint gắn thêm
PPT PowerPoinT files Tập tin trình diễn PowerPoint
R2LTA Root-to-Leaf Traverse Algorithm
Thuật giải duyệt đường đi từ gốc đến lá trên cấu trúc dữ liệu cây
Ký hiệu của đề tài
RAM Random Access Memory
Bộ nhớ truy nhập ngẫu nhiên
REG REGistry files Tập tin đăng ký hệ thống
ROM Read Only Memory Bộ nhớ chỉ đọc
ROM-BIOS
ROM Basic Input Output System
Hệ nhập xuất ROM cơ sở
SCR SCReen saver files Tập tin bảo vệ màn hình
SID Searching - Inferring - Diagnosing
Tìm kiếm - Suy diễn - Chẩn đoán Ký hiệu của đề tài
SP Stack Pointer register Thanh ghi con trỏ ngăn xếp
SS Stack Segment register
Thanh ghi đoạn ngăn xếp
- xvi -
Từ viết tắt Thay cho cụm từ Ý nghĩa Ghi chú
SYS SYStem files Tập tin hệ thống
TF-IDF Term Frequency – Inverse Document Frequency
Tần suất từ - tần suất tài liệu nghịch đảo
VAA Virus Autoprotect Agent
Tác tử Canh phòng virus Ký hiệu của đề tài
VBA Visual Basic Application
Ứng dụng Visual Basic
VBS Visual Basic Script Tập chương trình VB script
VSA Virus Scanning Agent Tác tử Duyệt quét virus Ký hiệu của đề tài
XLA EXceL worksheet Add-in
Tập tin khuôn dạng Excel gắn thêm
XLS EXcel workSheet files Tập tin bảng tính Excel
XLT EXcel Template files Tập khuôn dạng bảng tính Excel
Mở đầu 1.1. Giới thiệu đề tài
1.1.1. Lý do chọn đề tài
Ngày nay công nghệ thông tin trở thành một lĩnh vực mũi nhọn trong công
cuộc phát triển kinh tế xã hội. Cùng với công nghệ sinh học và năng lượng mới,
công nghệ thông tin (CNTT) vừa là công cụ, vừa là động lực thúc đẩy quá trình
công nghiệp hóa, hiện đại hóa đất nước. Trong giai đoạn hội nhập quốc tế, CNTT
giữ vai trò đặc biệt quan trọng trong việc xử lý tính toán dữ liệu, kết nối thông tin
liên lạc của các đơn vị tổ chức trong và ngoài nước. Bảo vệ an toàn dữ liệu cho các
hệ thống tính toán, giữ vững an ninh mạng, đảm bảo liên lạc thông suốt, duy trì chất
lượng phục vụ luôn là vấn đề quan tâm hàng đầu của các nhà quản trị hệ thống.
Sự phát triển của Internet tạo điều kiện cho các loại hình xâm nhập luận lý
trái phép vào các hệ thống CNTT cả chiều rộng (lây lan trên quy mô toàn thế giới)
và chiều sâu (can thiệp vào hạt nhân hệ thống đích). Mỗi ngày các hệ thống mạng
phải đối phó với hàng loạt đợt tấn công bằng mã độc (malicious, harmful code) của
tin tặc, khiến nhiều hệ thống bị đình trệ, tắc nghẽn và tê liệt; gây thiệt hại không
nhỏ. Dự án nghiên cứu về sự phát triển toàn cầu của Viện Hàn lâm Công nghệ Quốc
gia Mỹ (National Academy of Engineering, USA - 2008) nhận định vấn đề an ninh
thông tin và virus máy tính là một trong 14 thách thức công nghệ lớn nhất của thế
kỷ 21 mà nếu giải quyết được, cuộc sống con người sẽ được cải thiện đáng kể [92].
Virus máy tính (từ đây gọi tắt là virus, phân biệt với từ “virút” trong y học) thực sự
trở thành mối đe dọa thường xuyên và cấp bách của các hệ thống CNTT hiện nay.
Chương 1
- 2 -
Trong bối cảnh đó, đề tài “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” được tiến hành nhằm góp phần giải quyết vấn đề
bảo vệ an toàn dữ liệu cho các hệ thống CNTT ở Việt Nam.
1.1.2. Mục tiêu của đề tài
Để phòng chống virus máy tính, các hệ thống CNTT sử dụng các phần mềm
chống virus (anti-virus, gọi tắt là AV). Qua khảo sát, phần lớn các AV chỉ phát huy
tác dụng trên các mẫu virus xác định, khả năng dự đoán virus mới còn hạn chế nên
thường bị động khi có dịch virus bùng phát.
Trên cơ sở xác định loại hình nghiên cứu của đề tài là nghiên cứu ứng dụng,
mục tiêu của đề tài là tìm giải pháp cho bài toán nhận dạng virus máy tính và lựa
chọn mô hình thích hợp để xây dựng 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 MAVES - Machine Learning Approach to Anti-
Virus Expert System (gọi tắt là MAV) với các chỉ tiêu cơ bản:
- Nhận dạng nhanh, phát hiện chính xác các trường hợp lây nhiễm, tiềm ẩn của
các virus đã biết trên hệ thống đích.
- Có khả năng dự báo biến thể virus; ngăn chận kịp thời, chủ động phòng tránh
các tình huống lây nhiễm khi hệ thống chưa cập nhật mẫu virus mới.
1.1.3. Các giai đoạn thực hiện đề tài
Quá trình nghiên cứu đề tài được tiến hành qua các bước như sau:
• Giai đoạn 1 - Thu thập dữ liệu: Khảo sát tình hình thực tiễn, thu thập dữ liệu
(mẫu virus, các phần mềm diệt virus trong nước và nước ngoài, các bài viết,
tài liệu liên quan…). Nghiên cứu tài liệu, tìm hiểu các phương pháp, tiếp cận
đã biết, tham khảo các anti-virus đang sử dụng phổ biến. Phác họa bức tranh
tổng thể, tìm hiểu các công nghệ nhận dạng virus máy tính qua các thời kỳ.
• Giai đoạn 2 - Phân loại dữ liệu: Sắp xếp, phân loại, tìm hiểu đặc điểm dữ
liệu, cơ chế lây nhiễm của từng loại virus trên vật chủ tương ứng. Sàng lọc,
loại bỏ dữ liệu dư thừa (các mẫu virus “chết” hoặc không phù hợp với môi
- 3 -
trường, điều kiện nghiên cứu…). Bổ sung, làm giàu dữ liệu từ nhiều nguồn
khác nhau (dữ liệu mẫu của các lớp vật chủ, tập chỉ thị thi hành…).
• Giai đoạn 3 - Xử lý dữ liệu: Dựa vào các lớp dữ liệu đã phân loại, lựa chọn,
sắp xếp dữ liệu, xây dựng các mô hình, công cụ xử lý thích hợp trên cơ sở lý
thuyết máy học. Phân tích, nhận xét, đánh giá hiệu quả của từng mô hình.
• Giai đoạn 4 - Tổng kết: Khái quát hóa và rút ra kết luận chung cho đề tài.
Viết báo cáo, công bố kết quả nghiên cứu đề tài.
1.2. Đối tượng, phạm vi nghiên cứu của đề tài
1.2.1. Virus máy tính và các hệ thống đích
Có ba vấn đề cân nhắc khi nghiên cứu virus máy tính là môi trường (hệ điều
hành, kiến trúc máy), phương tiện (vật chứa tin, cơ chế lan tỏa) và cơ hội (cộng
đồng sử dụng, tần suất kích hoạt, kỹ thuật lây lan…). Mặc dù có nhiều loại virus
máy tính lây nhiễm trên nhiều hệ thống và môi trường khác nhau, nhưng do tính
phổ biến của Windows nên virus máy tính trên hệ điều hành này cũng nhiều hơn.
Để đáp ứng nhu cầu thực tế bức thiết, đề tài tập trung nghiên cứu các loại virus máy
tính hoạt động trên các hệ điều hành (HĐH) Windows 9x/Me và Windows
NT/2000/XP dành cho máy tính IBM-PC (máy vi tính cá nhân để bàn hoặc xách
tay, sử dụng kiến trúc vi xử lý x86/Pentium hoặc tương thích).
Mặc dù vậy, đề tài cũng được định hướng nghiên cứu để có thể mở rộng kết
quả nghiên cứu cho các hệ anti-virus sử dụng các HĐH khác Windows.
1.2.2. Các hệ học và khám phá tri thức
Con người đã tốn rất nhiều công sức để giải quyết bài toán nhận dạng virus
máy tính. Tuy nhiên, các anti-virus vẫn chưa làm chủ được tình hình. Virus máy
tính vẫn liên tục quấy nhiễu, thâm nhập mạng, đánh cắp thông tin, làm sai lệch dữ
liệu nhiều hệ thống CNTT trên thế giới.
Virus máy tính là sản phẩm của con người. Cuộc chiến giữa AV và virus
máy tính là cuộc đấu trí giữa chuyên gia hệ thống và tin tặc, là trò chơi trí tuệ của
con người. Xuất phát từ nhận định này, đề tài chọn cách phối hợp tiếp cận dựa trên
- 4 -
tri thức (knowledge based) và tiếp cận học (machine learning) để tìm lời giải cho
bài toán nhận dạng virus máy tính. Để kiểm tra và đánh giá kết quả, một phần mềm
thực nghiệm sẽ được thiết kế trên mô hình các hệ khám phá tri thức nhằm phát hiện
các quy luật hình thành virus mới từ cơ sở dữ liệu (CSDL) virus đã biết.
1.2.3. Các hệ chuyên gia
Các hệ chuyên gia là một loại hệ cơ sở tri thức (CSTT) được thiết kế để phần
mềm máy tính hoạt động như một chuyên gia (human expert) thực thụ trong một
lĩnh vực cụ thể. Dựa trên tri thức, hệ chuyên gia cho phép mô hình hóa tri thức của
chuyên gia (kiến thức, kinh nghiệm, lời khuyên…) để giải quyết các vấn đề phức
tạp trong từng lĩnh vực.
Trong y học, bác sĩ cần khám bệnh để biết nguyên nhân (người bệnh nhiễm
loại virút gây bệnh nào, đặc điểm ra sao), chẩn đoán bệnh (dựa vào triệu chứng, xác
định bệnh), xét các điều kiện ràng buộc (sức khoẻ bệnh nhân, trang thiết bị y tế, chi
phí cho phép…) và lựa chọn phương pháp chữa trị (phác đồ điều trị, công nghệ xử
lý bệnh…).
Trong tin học, virus máy tính là tác nhân gây bệnh và các anti-virus là
“thuốc” chữa bệnh cho máy tính. Do “bệnh nhân” (máy tính nhiễm virus) không thể
đến “bệnh viện” (phòng nghiên cứu phần mềm) để được các “bác sĩ” (chuyên gia
anti-virus) khám chữa trị bệnh, giải pháp của đề tài là xây dựng một hệ cơ sở tri
thức về virus máy tính nhằm tư vấn chữa bệnh cho máy dựa trên kinh nghiệm của
chuyên gia anti-virus đã tích hợp trong hệ thống.
1.3. Ý nghĩa khoa học và thực tiễn của đề tài
Giống như trong công tác vệ sinh dịch tễ, trong lĩnh vực phòng chống virus
máy tính, phòng bệnh vẫn là chủ yếu với các hoạt động cơ bản: nhận dạng bệnh cũ
và dự báo bệnh mới. Các hoạt động này đều dựa vào các kỹ thuật chủ đạo của lớp
bài toán nhận dạng. Giải quyết vấn đề an toàn dữ liệu, đề tài nhận dạng virus máy
tính hướng tiếp cận máy học còn làm phong phú thêm tập lời giải cho các bài toán
nhận dạng cùng loại và có thể mở rộng để nhận dạng các đối tượng biến đổi.
- 5 -
Ở nước ta mặc dù đã có nhiều đề tài nghiên cứu về virus máy tính, nhưng
chưa có công trình nào đề cập và giải quyết bài toán nhận dạng biến thể virus máy
tính một cách khoa học và toàn diện. Không chỉ dừng lại ở việc nghiên cứu lý
thuyết, đề tài cũng đặt ra mục tiêu thực tiễn là xây dựng một hệ phần mềm thông
minh chống virus máy tính, đáp ứng kịp thời nhu cầu bức xúc của xã hội, từng bước
giải quyết nạn virus máy tính, góp phần làm trong sạch môi trường CNTT hiện nay.
1.4. Cấu trúc của luận án
Luận án gồm năm chương. Chương 1 dẫn nhập và giới thiệu chung về đề tài.
Chương 2 trình bày các cơ chế chẩn đoán virus máy tính và một số vấn đề liên
quan. Trước tiên, Chương 2 sẽ giới thiệu các chiến lược nhận dạng virus; khảo sát
các hoạt động nghiên cứu ứng dụng phòng chống virus trong và ngoài nước; phân
tích các vấn đề mở của công nghệ anti-virus; đánh giá tình hình và đề xuất hướng
tiếp cận, phương pháp giải quyết vấn đề. Kế tiếp, Chương 2 trình bày cơ sở lý
thuyết của các hệ khám phá tri thức từ CSDL, các hệ học và hệ chuyên gia. Phần
cuối Chương 2 trình bày quá trình tìm hiểu, phân tích các nghiên cứu hướng tiếp
cận máy học và hệ chuyên gia trong lĩnh vực nhận dạng mã độc.
Các Chương 3 và Chương 4 chứa nội dung nghiên cứu chính của đề tài.
Chương 3 trình bày các cơ chế máy học chẩn đoán virus máy tính. Bằng chiến lược
“chia để trị”, bài toán nhận dạng virus máy tính được phân hoạch thành năm bài
toán con. Mỗi bài toán được xây dựng dựa vào các kỹ thuật học từ đơn giản đến
phức tạp: học vẹt (lớp text virus), học tương tự (lớp macro virus), học chỉ dẫn (lớp
boot virus), học tình huống (lớp file virus) và học quy nạp (lớp mã độc, sâu trình và
trojan horse).
Chương 4 trình bày phương pháp thiết kế hệ thống MAV, hệ phần mềm thực
nghiệm xây dựng trên cơ sở các nghiên cứu lý thuyết của đề tài. Phần đầu Chương 4
mô tả mô hình cơ sở tri thức và mô hình tổng quát của hệ. Áp dụng tiếp cận máy
học và hệ chuyên gia, MAV sẽ được triển khai qua ba giai đoạn. Giai đoạn Học dữ
liệu - mức chuyên gia, giai đoạn Xử lý dữ liệu - thành phần cốt lõi (kernel) và giai
đoạn Tổng kết - mức người dùng. Triển khai trên hệ thống mạng theo mô hình
- 6 -
client-server, MAV được thiết kế gồm hai gói cài đặt chạy trên máy chủ (dành cho
chuyên gia) và các máy trạm (dành cho người dùng). Mỗi gói có chức năng, cấu
trúc dữ liệu sử dụng các thuật giải học phân cụm, phân lớp dữ liệu khác nhau. Phần
cuối Chương 4 trình bày các kết quả thực nghiệm của đề tài.
Chương 5 tổng kết các đóng góp về mặt lý thuyết, đánh giá ý nghĩa thực tiễn,
phân tích hạn chế, đề xuất các biện pháp khắc phục và dự kiến hướng phát triển
tương lai của đề tài.
Phần tài liệu tham khảo gồm (i) các công trình đã công bố trong các tạp chí
chuyên ngành, kỷ yếu hội nghị khoa học trong nước - quốc tế và (ii) các tài liệu
tham khảo sử dụng trong quá trình nghiên cứu đề tài.
Cuối cùng, phần phụ lục nhằm làm rõ các vấn đề liên quan đến đề tài gồm
Phụ lục 1: Khảo sát virus máy tính; Phụ lục 2: Các định dạng dữ liệu nhiễm virus
máy tính; Phụ lục 3: Các tác tử hoạt động và thuật toán SID Tìm kiếm – Suy luận –
Chẩn đoán; Phụ lục 4: Phân tích hệ thống phần mềm MAV; Phụ lục 5: Phân hệ máy
chủ MAVSR và Phụ lục 6: Phân hệ máy trạm MAVCL.
Các cơ chế chẩn đoán virus máy tính và một số vấn đề liên quan 2.1. Khảo sát virus máy tính
Virus máy tính (computer virus) là loại chương trình máy được thiết kế để
thực hiện các chỉ thị của nó sau chương trình khác [25]. Bí mật sao chép bản thân
nó vào các hệ thống máy tính, virus lây từ máy này sang máy khác, làm suy giảm
năng lực hoạt động hệ thống và xâm phạm dữ liệu người dùng [4]. Kể từ khi virus
Brain xuất hiện đầu tiên (1986), ngày nay có đến hàng chục ngàn biến thể virus máy
tính lây lan trên toàn thế giới. Biến thái qua nhiều thế hệ, virus máy tính ngày càng
tinh vi, mức độ quấy rối phá hoại càng nguy hiểm và nghiêm trọng.
Có nhiều định nghĩa về virus máy tính [22][28][45]. Theo Bordera [18],
virus máy tính là:
“bất cứ chỉ thị, thông tin, dữ liệu hoặc chương trình làm suy giảm tính hoàn
thiện của tài nguyên máy tính, làm vô hiệu, gây nguy hiểm hoặc phá hủy,
hoặc ghép bản thân nó vào tài nguyên của máy tính khác và thi hành khi
chương trình máy tính thi hành”.
Ngoài những tính chất chung, mỗi loại virus có nguyên tắc lây nhiễm, đặc
điểm dữ liệu khác nhau. Lúc đầu các chuyên gia phân loại virus theo hình thức lây
nhiễm. Về sau virus máy tính phát triển đa dạng với nhiều xu hướng kết hợp, phân
hóa, lai tạp, kế thừa… khiến việc phân loại gặp nhiều khó khăn (xem Phụ lục 1).
Kết quả phân tích mã lệnh thực thi các virus đại diện trong danh sách 65.824 virus
DOS/Windows của Kaspersky Lab [78] (xem Bảng P1.1, Phụ lục 1) cho thấy virus
Chương 2
- 8 -
máy tính được thiết kế từ bốn lớp dữ liệu cơ bản (Bảng 2.1). Biểu đồ so sánh phân
bố tỷ lệ các lớp virus máy tính (Hình 2.1) cho thấy lớp dữ liệu program (gồm hai
nhóm 16-bit và 32-bit) chiếm tỷ lệ cao nhất.
Bảng 2.1: Phân loại virus máy tính theo kiểu dữ liệu
Stt Kiểu dữ liệu Số lượng Tỷ lệ %
1 Binary 1168 1.77
Program 56223 85.41
Program 16-bit 18896 28.70 2
Program 32-bit 37327 56.71
3 Text 4948 7.52
4 VBA macro 3485 5.29
Binary
Prg-16
Prg-32
TextMacro
BinaryPrg-16Prg-32TextMacro
Hình 2.1: Biểu đồ so sánh tỷ lệ phân bố các lớp virus máy tính
Để đánh giá xu hướng phát triển của virus máy tính, có thể tìm hiểm quá
trình xuất hiện của các loại virus máy tính trong khoảng thời gian xác định. Bảng
2.2 thống kê thời điểm cập nhật 14575 virus DOS/Windows đại diện của Kaspersky
Lab trong 10 năm (1995-2004). Biểu đồ ở hình 2.2a cho thấy:
- 9 -
- Các lớp virus đều có sự gia tăng về số lượng. Đến năm 2000, trong khi các
lớp khác tăng đều, lớp Program-32 có sự gia tăng đột biến.
- Năm 2003 có sự phân hóa lớn: trong khi lớp Program-32 vẫn tăng trưởng
mạnh, lớp Program-16 (lây vào các ứng dụng 16 bit của DOS/Windows) và
lớp Text (sử dụng tập lệnh script ASCII plain text) đều sụt giảm.
- Các lớp virus Binary (chủ yếu là boot virus) và Macro (chủ yếu là word
macro) tăng nhưng không tạo ra sự biến chuyển lớn nào (Hình 2.2b).
Bảng 2.2: Lịch trình cập nhật của Kaspersky Lab (1995-2004)
Năm Program 32 bit Program 16 bit Binary Text Macro
1995 20 37 4 4 0
1996 34 22 7 2 0
1997 81 23 7 3 8
1998 130 35 2 16 9
1999 272 26 3 18 2
2000 347 56 2 37 7
2001 863 114 12 115 14
2002 2024 401 29 524 39
2003 3116 729 26 678 56
2004 3604 350 46 534 87
2.2. Các cơ chế chẩn đoán virus máy tính
Hơn 20 năm qua, virus máy tính đã gây nguy hại cho nhiều hệ thống CNTT
trên thế giới. Các nhà khoa học đã tốn nhiều công sức nghiên cứu, xây dựng các hệ
phòng chống virus máy tính theo nhiều tiếp cận, kỹ thuật khác nhau [52]. Cho đến
nay, có ba kỹ thuật nhận dạng virus máy tính đã được áp dụng: dựa vào chuỗi nhận
dạng virus (signature-based approach), dựa vào hành vi nghi ngờ virus (suspicious
behavior-based approach) và dựa vào ý định virus (intention-based approach).
- 10 -
-10
0
10
20
30
40
50
60
70
80
90
100
1994 1996 1998 2000 2002 2004 2006
Binary
Macro
Hình 2.2: Biểu đồ tăng trưởng các lớp virus máy tính
-500
0
500
1000
1500
2000
2500
3000
3500
4000
1994 1996 1998 2000 2002 2004 2006
Năm xuất hiện
Số lư
ợng
cá
thể
mỗi
lớp
Prg-32
Prg-16
Binary
Text
Macro
(a)
(b)
- 11 -
2.2.1. Phát hiện virus dựa vào chuỗi nhận dạng
Hoạt động theo nguyên lý nhận dạng mẫu, các AV sử dụng một CSDL chứa
mẫu virus (ID-virus library). Mỗi khi có virus mới, các chuyên gia anti-virus sẽ giải
mã, trích chọn và cập nhật chuỗi nhận dạng virus vào thư viện. Thông tin về đối
tượng chẩn đoán (ghi nhận từ hệ thống đích) cùng với thông tin của virus (trong thư
viện mẫu) sẽ cho kết luận về tình trạng của đối tượng.
Nhận dạng mẫu giúp AV phát hiện các virus đã biết trên tập dữ liệu chẩn
đoán với độ chính xác cao. Tuy nhiên phương pháp này có khá nhiều nhược điểm:
- Cồng kềnh: Kích thước thư viện mẫu tỷ lệ thuận với số virus đã cập nhật và
tỷ lệ nghịch với tốc độ tìm kiếm.
- Bị động: AV chỉ hiệu quả trên các mẫu virus đã cập nhật, không đáp ứng kịp
thời dịch bệnh do tốn thời gian cho việc thu thập mẫu virus mới, giải mã,
phân tích, lập thuật giải, cập nhật phiên bản mới, phát hành…
- Nhầm lẫn: Các hacker cố gắng tạo vỏ bọc an toàn cho virus. Khi AV so mẫu
chẩn đoán giống với virus, dữ liệu sạch của hệ thống sẽ bị tẩy (clean) nhầm.
2.2.2. Phát hiện virus dựa vào hành vi
Tiếp cận này nghiên cứu virus máy tính dưới góc độ thi hành của tập mã
lệnh. Cũng là chương trình máy tính, nhưng khác với các phần mềm hữu ích, virus
chỉ chứa các lệnh nguy hiểm. Nghiên cứu trật tự, quy luật hình thành các lệnh máy
của virus, tiếp cận này dựa vào khái niệm hành vi để xây dựng cơ chế nhận dạng
thông qua tập các thủ tục/hành vi của chúng.
Sử dụng tri thức hành vi từ kinh nghiệm chuyên gia nên tiếp cận này còn gọi
là phương pháp heuristic. Do các virus giống nhau thường có hành vi như nhau nên
AV có thể nhận dạng các virus cùng họ. Tuy nhiên AV khó phân biệt được các hành
vi giống nhau nhưng mục đích khác nhau (ví dụ các phần mềm thường tạo và xóa
tập tin tạm, trong khi virus tạo bản sao chính nó và xóa dữ liệu người dùng…) nên
tiếp cận này ít được sử dụng cho máy lẻ/trạm làm việc, vốn dành cho người dùng ít
kinh nghiệm [91].
- 12 -
2.2.3. Phát hiện virus dựa vào ý định
Do hãng Sandrasoft (Ấn Độ) đề xướng từ năm 2005, tiếp cận intention-based
(tên mã Rudra) [90] lưu giữ hình ảnh chi tiết của máy tính trong tình trạng sạch, sau
đó tiếp tục theo dõi trạng thái hệ thống. Những thay đổi quan trọng trong tập tin,
cấu hình hệ thống hay HĐH đều được cảnh báo như một mối hiểm họa tiềm tàng.
Khi những thay đổi này được đánh giá nguy hiểm, hệ sẽ khôi phục máy về tình
trạng ban đầu. Mặc dù đơn giản nhưng tiếp cận này tỏ ra khá hiệu quả vì nó có thể
bảo vệ máy tính khỏi các mối đe dọa chưa được biết đến, kể cả virus máy tính.
Trong thực tế, tiếp cận “quay về quá khứ” đã được nhiều hãng phần mềm hệ
thống sử dụng: Symantec [89] có Norton Ghost và Norton Goback; VMware [94]
có System Image Snapshot; Faronics [74] có Deep Freeze… Bản thân Windows XP
cũng có chức năng phục hồi hệ thống bằng System Restore. Tuy nhiên tiếp cận này
kém hiệu quả khi các điểm trạng thái được ghi nhận lúc hệ thống bị nhiễm virus lạ.
Mặt khác, hệ cũng cần bộ nhớ ngoài đủ lớn để lưu toàn bộ hình ảnh hệ thống qua
từng thời điểm [39].
2.3. Các hệ phòng chống virus máy tính
2.3.1. Các sản phẩm trong nước
Trong thập niên 90 của thế kỷ 20, khi hệ điều hành MSDOS còn phổ biến,
Việt Nam có khá nhiều phần mềm chống virus: Medicine của ĐH Tổng hợp TP.
HCM, ATV của Ngô Anh Vũ và Phạm Du Liêm (ÐH Kinh tế TP. HCM), D2 của
tác giả luận án này, TAV của Dương Hồng Tấn và Trần Thanh Sơn (Unisoft TP.
HCM), SC của Thái Nguyễn Hoàng Nhã (TP. HCM), BKAV của Nguyễn Tử
Quảng và Đặng Văn Tấn (ÐH Bách khoa Hà Nội). Khi MSDOS kết thúc, các phần
mềm này đã ngừng phát triển. Hiện nay cả nước chỉ còn hai phần mềm chống virus
trên Windows là BKAV2006 (BKIS, ĐHBK Hà Nội) và D32 của tác giả. Hầu hết
các anti-virus của Việt Nam đều hoạt động theo nguyên tắc nhận dạng mẫu.
Nhỏ gọn, chạy nhanh, miễn phí, đáp ứng kịp thời tình hình lây nhiễm trong
nước nên các AV nội được người dùng đón nhận. Tuy nhiên do số virus cập nhật
- 13 -
chưa nhiều (khoảng 2000 virus), sản phẩm chưa phong phú và chưa có giải pháp
nhận dạng virus tự động toàn diện nên các AV nội chỉ được sử dụng như các phần
mềm tham khảo bên cạnh các AV nước ngoài.
2.3.2. Các sản phẩm nước ngoài
Có nhiều AV nước ngoài được sử dụng ở Việt Nam: Norton Anti-virus, Scan
Virus, BitDefender, Sofos, AVG, Trend Micro System, Kaspersky…
Trong nhóm sản phẩm dành cho người dùng lẻ, các AV ngoại kết hợp nhận
dạng mẫu với kỹ thuật heuristic: Bloodhount (Symantec), Heuristic Scan (McAfee,
Panda), Hash Scan (BitComet)… Trong nhóm sản phẩm dành cho công ty, các hãng
thường áp dụng công nghệ của IBM: Symantec triển khai hệ miễn dịch thương mại
(IBM Commercial-Grade Immune System) [59]. BitDefender sử dụng công nghệ in
dấu chân (footprint) của IBM để quản lý các giao dịch trên mạng. McAfee cũng
liên kết với IBM xây dựng hệ chương trình hoán chuyển (Swap Program) áp dụng
cho ISS (Internet Security System) chống xâm nhập hệ thống… Các công nghệ này
đều dùng kỹ thuật “quay về quá khứ” tựa intention-based approach.
Các anti-virus ngoại được ưa chuộng do cập nhật nhiều virus (trên 10000
mẫu), kỹ thuật chuyên nghiệp. Tuy nhiên người dùng vẫn còn e ngại vì phần lớn các
anti-virus ngoại đều cồng kềnh, chạy chậm, chi phí cao, nhận dạng virus mới chưa
thật tốt và không hiệu quả đối với virus có nguồn gốc từ Việt Nam.
2.4. Tình hình nghiên cứu virus máy tính
Đã có thời các chuyên gia anti-virus kỳ vọng vào các “kim thuật giải” hoàn
hảo có thể nhận dạng bất cứ virus nào. Năm 1987, Fred Cohen đưa ra nhận định
“không thuật toán nào có thể phát hiện tất cả các virus máy tính” [27]. Tác giả lập
luận nếu tồn tại chương trình P chứa thuật giải A có thể nhận dạng tất cả các virus
máy tính, thì các hacker sẽ thiết kế được virus V chứa thuật giải M phát hiện và vô
hiệu hóa P (khiến A thất bại trước V). Nhận định này đã góp phần định hướng cho
công tác nghiên cứu virus máy tính. Các tìm tòi thuần túy thuật giải được thay dần
bằng các giải pháp tăng cường hiệu quả, cải thiện tốc độ nhận dạng, đẩy mạnh ước
- 14 -
lượng và dự báo heuristic. Năm 2000, trong bài viết “Virus máy tính không thể phát
hiện”, David M. Chess và Steve R. White cho rằng nhận định của Fred Cohen vẫn
đúng cho các biến thái (polymorphic) và biến thể (variance) virus. Cũng trong bài
viết này, các tác giả cảnh báo “không có chương trình máy tính nào tránh khỏi sự
lây nhiễm của virus máy tính” và đề xuất khái niệm nhận dạng biến thể virus qua
mô tả đặc trưng hình thức (formal characterization) [21].
Kể từ năm 2000, tình hình nghiên cứu virus máy tính trên thế giới có nhiều
biến chuyển. Trong hội nghị anti-virus quốc tế tổ chức ở Anh (9-2000), John
Bloodworth (Network Associate, McAfee Division) cảnh báo: tình hình đã trở nên
nghiêm trọng và hành động của chúng ta [38].
2.4.1. Tình hình nghiên cứu, ứng dụng trong nước
Năm 1997, luận văn Cao học về nhận dạng virus tự động đầu tiên của Việt
Nam được bảo vệ ở Viện Tin học Pháp ngữ [71]. Mục tiêu của đề tài nhằm xây
dựng một hệ suy diễn nhận dạng virus máy tính thông qua các hành vi cơ sở [11].
Sử dụng thuật giải tìm kiếm hành vi với tri thức bổ sung tại mỗi nút trên cây, đề tài
cho kết quả chẩn đoán boot virus khá tốt. Để tăng cường độ tin cậy và an toàn hệ
thống, tác giả đề xuất một không gian chẩn đoán đặc biệt gọi là máy ảo chẩn đoán.
Năm 1998, Trần Quốc Việt (Khoa CNTT, ĐH Cần Thơ) tiếp tục hướng
nghiên cứu máy ảo mở rộng bài toán cho file virus. Đề tài rút ra kết luận: máy ảo
chỉ thích hợp để chẩn đoán boot virus. Khi chẩn đoán file, máy ảo cần bộ xử lý lệnh
tương thích với tập lệnh của HĐH nên phức tạp, cồng kềnh và kém hiệu quả [15].
Năm 2005, Hồ Ngọc Thơ (Khoa CNTT, ĐH Cần Thơ) thực hiện đề tài nhận
dạng biến thể virus hướng text mining. Tác giả đưa ra giả thuyết virus máy tính di
truyền mã lệnh của nó cho các thế hệ con cháu, vì vậy có thể nhận dạng các biến thể
virus thông qua tập gien (chuỗi mã lệnh phổ biến) của các thành viên trong họ. Giải
pháp của đề tài là phân tích tập virus mẫu hướng text mining để xây dựng cây phả
hệ, sau đó áp dụng thuật giải nhận dạng tập gien xuất hiện trên cây. Mặc dù phần
demo còn hạn chế (cài đặt phức tạp, chạy chậm, tiêu tốn nhiều tài nguyên…), tuy
nhiên tác giả đã phần nào chứng minh được giả thuyết của đề tài [10].
- 15 -
2.4.2. Tình hình nghiên cứu, ứng dụng ở nước ngoài
Một số hệ thống an ninh mạng trên thế giới áp dụng tiếp cận máy học:
• Databases That Learn: dự án của Symantec Research Labs ở Santa Monica
(California-USA) luyện học thói quen truy nhập vào các cơ sở dữ liệu để rút
quy luật tấn công của hacker, bảo vệ hệ thống khỏi thâm nhập trộm [79].
• MLX™ Proofpoint Zero-Hour Anti-virus: sản phẩm của ProofPoint Inc.,
gồm nhiều gói thành phần như Proofpoint Protection Server®, Proofpoint
Messaging Security Gateway™, bảo vệ hệ thống trong thời gian thực. Bằng
các kỹ thuật máy học, Proofpoint phân tích các email có tập tin đính kèm và
phát cảnh báo khi có file nghi ngờ mã độc [86]. Công cụ này được cài đặt cho
hệ F-Secure Messaging Security Gateway [75] để lọc thư rác.
• DDI (Distributed Detection and Inference): dự án của Intel triển khai ở đại
học Berkeley (2005) suy luận trên hệ thống mạng nhằm phát hiện các cuộc tấn
công lan tràn [77]. Nghiên cứu này đặt giả thuyết rằng nếu một nút mạng bị
tấn công thì các nút khác trong hệ thống cũng có thể bị tấn công tương tự. Giải
pháp của đề tài là cài đặt một thuật toán học cho mỗi nút mạng để phát hiện
các cuộc truy nhập cục bộ. Mỗi nút có liên lạc với các nút kế cận để suy luận
và cảnh báo các tình huống hệ thống bị tấn công lan tràn [76].
• Malicious Software Detection for Resource Constrained Devices: dự án
Phát hiện phần mềm độc hại trên thiết bị tài nguyên hạn chế của Viện Tiêu
chuẩn và Công nghệ Quốc gia NIST (National Institute of Standards and
Technology, USA). Do các thiết bị cầm tay có tài nguyên hạn chế, không đủ để
lưu trữ toàn bộ CSDL virus, ý tưởng cơ bản của dự án là sản sinh tập mã độc
chưa biết từ số ít dấu hiệu nhận dạng các loại mã độc đã biết [83].
2.4.3. Các vấn đề mở của công nghệ anti-virus
Cũng trong bài viết “Virus máy tính: lý thuyết và thực nghiệm” (1987) đã đề
cập ở phần trên, Fred Cohen nêu ra “Các vấn đề chưa được giải quyết” gồm:
- 16 -
1. Phát hiện biểu hiện (appearance) của virus
2. Phát hiện hành vi (behavior) của virus
3. Phát hiện sự tiến triển (evolution) của một virus đã biết (known virus)
4. Phát hiện cơ chế kích hoạt (triggering mechanism) qua biểu hiện của virus
5. Phát hiện cơ chế kích hoạt qua hành vi của virus
6. Phát hiện sự tiến triển của một cơ chế kích hoạt đã biết
7. Phát hiện bộ nhận dạng virus qua biểu hiện của nó
8. Phát hiện bộ nhận dạng virus qua hành vi của nó
9. Phát hiện sự tiến triển của cơ chế tự kiểm tra (selftest) của virus đã biết
Năm 1998, Steve R. White (chuyên gia anti-virus của IBM) khái quát hóa
tình hình và đưa ra năm vấn đề mở của anti-virus [60], đó là:
1. Nghiên cứu, xây dựng các lớp bài toán heuristic khác nhau.
2. Khống chế tốc độ lây lan và sản sinh của virus máy tính.
3. Nghiên cứu các giải pháp phù hợp cho đa số người dùng.
4. Nghiên cứu phương pháp nhận dạng sâu trình (worm)
5. Cải tiến phương pháp nhận dạng, phát hiện nhanh và kịp thời trước khi virus
lan tràn thành dịch trên mạng.
Mặc dù các chuyên gia anti-virus có cách phân loại vấn đề mở khác nhau,
nhìn chung công nghệ anti-virus ngày nay cần giải quyết ba vấn đề cơ bản:
1. Cải tiến phương pháp, nghiên cứu các kỹ thuật nhận dạng heuristic, tiến tới
xây dựng các lớp bài toán heuristic khác nhau.
2. Cải tiến hiệu quả, phát hiện nhanh chóng, chủ động phòng ngừa dịch bệnh trên
quy mô rộng, nghiên cứu các giải pháp phù hợp cho đa số người dùng.
3. Phát hiện và dự báo các mã độc lan truyền trên hệ thống mạng.
2.5. Hướng giải quyết của đề tài
Trong bối cảnh các hệ thống mạng trên thế giới liên tục bị virus tấn công, các
nhóm anti-virus nước ngoài đã thực hiện nhiều dự án, công trình nghiên cứu theo
nhiều tiếp cận khác nhau. Do mỗi tiếp cận đều có ưu nhược điểm riêng, nên cần tiếp
tục nghiên cứu bài toán nhận dạng virus máy tính cho nhiều hệ thống sử dụng khác
- 17 -
nhau. Trong khi trong nước vẫn chưa giải quyết trọn vẹn bài toán nhận dạng virus
máy tính tự động, đề tài “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” được đặt ra nhằm tìm hướng đi mới cho bài toán nhận dạng
virus máy tính phù hợp với tình hình thực tiễn, điều kiện nghiên cứu và triển khai
sản phẩm ở Việt Nam.
2.5.1. Các luận điểm của đề tài
Đề tài “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” được xây dựng dựa trên các luận điểm: (i) nguồn gốc virus máy tính, (ii)
nhận thức về virus máy tính và (iii) phương pháp chữa trị.
• Thứ nhất: Virus máy tính là sản phẩm của con người. Cuộc chiến giữa các AV
và virus máy tính là trò chơi trí tuệ giữa các chuyên gia anti-virus (lực lượng
chính diện) và hacker (lực lượng phản diện). Vì vậy khoa học trí tuệ nhân tạo là
lựa chọn phù hợp cho việc xây dựng các hệ phần mềm dạy cho máy học các
trường hợp nhiễm bệnh để máy tính có thể tự xử lý và điều trị bệnh.
• Thứ hai: Định nghĩa virus máy tính của Bordera có ba ý quan trọng:
- Virus máy tính là chỉ thị, thông tin, dữ liệu, chương trình có khả năng ghép
bản thân nó vào tài nguyên của máy tính gây nên hiệu ứng lây nhiễm.
Nghiên cứu virus máy tính phải gắn với việc phân loại đặc điểm dữ liệu của
vật chủ (đối tượng bị lây nhiễm).
- Tính thực thi của virus máy tính giúp nó tự kích hoạt khi chương trình máy
tính thi hành. Vì vậy chỉ có các loại dữ liệu chứa mã lệnh thực thi mới bị
virus lây nhiễm. Nói cách khác, không phải dữ liệu nào cũng bị virus ghép
mã. Đây là một phát hiện quan trọng, làm cơ sở cho việc cải thiện hiệu quả
của các hệ phòng chống virus máy tính.
- Hệ thống nhiễm virus bị suy giảm công năng, nhưng bản thân các AV cũng
tiêu hao tài nguyên rất nhiều. Hậu quả là người sử dụng chưa thấy virus tác
hại như thế nào, chỉ thấy các AV cồng kềnh khiến hệ thống luôn quá tải. Như
vậy ngoài việc tăng cường hiệu quả chẩn đoán, cần gia tăng tốc độ nhận
dạng và cải thiện khả năng dự báo virus mới của hệ.
- 18 -
• Thứ ba: Công việc của chuyên gia anti-virus chữa bệnh cho máy tính giống như
bác sĩ chữa bệnh cho các cơ thể sống. Để giúp máy tính tự khám chữa bệnh,
anti-virus sẽ được xây dựng trên cơ sở hệ chuyên gia, là các hệ thống tích hợp
kinh nghiệm của chuyên gia trong thế giới thực cùng với cơ chế phân tích và suy
luận chặt chẽ để đưa ra quyết định tốt nhất.
2.5.2. Giải pháp của đề tài
Mỗi cơ chế chẩn đoán virus máy tính (dựa vào chuỗi mã, hành vi hay dựa
vào ý định) đều có ưu nhược điểm riêng. Tiếp cận máy học và hệ chuyên gia sẽ kết
hợp các ưu điểm các tiếp cận đã biết và khắc phục yếu kém của từng phương pháp.
Áp dụng chiến lược “chia để trị”, bài toán nhận dạng virus máy tính sẽ được
phân hoạch thành các bài toán con với mô hình học phù hợp. Mỗi mô hình học sẽ
áp dụng riêng lẻ hoặc phối hợp các tiếp cận để đạt được kết quả tốt nhất. Các tiếp
cận nhận dạng virus máy tính sử dụng cho các bài toán con là:
• Tiếp cận chuỗi mã: Tổ chức CSDL chuỗi mã virus, xây dựng các thuật giải
truy vấn để nhận dạng chính xác các mẫu virus đã cập nhật.
• Tiếp cận máy học: Tổ chức CSTT nhận dạng (gồm CSDL virus và các luật
dẫn xuất), xây dựng các mô hình học. Tri thức thu được (mẫu virus và luật
nhận dạng mới) sẽ được bổ sung vào CSTT chung, sau đó chuyển kết quả nhận
dạng sang tiếp cận chuỗi mã.
• Phối hợp tiếp cận hành vi và tiếp cận máy học: Tổ chức tập hành vi, định
nghĩa khái niệm virus dựa trên tập hành vi sử dụng cơ chế học khái niệm. Tăng
trưởng cơ sở tri thức sau mỗi lần học. Chuyển kết quả sang tiếp cận chuỗi mã.
• Phối hợp tiếp cận ý định và tiếp cận máy học: Tổ chức mô hình kết hợp
giữa CSDL (chứa trạng thái, nội dung đối tượng) và CSTT (lập luận trên tập
hành vi thay đổi trạng thái và nội dung đối tượng). Kết quả quá trình lập luận
sẽ được chuyển sang tiếp cận chuỗi mã.
- 19 -
2.6. Các hệ cơ sở tri thức
2.6.1. Các Hệ chuyên gia
Hệ chuyên gia (Expert System) là các hệ phần mềm dựa trên tri thức cho
phép mô hình hóa tri thức chuyên gia để giải quyết các vấn đề phức tạp. Nếu như
các chương trình truyền thống được cấu tạo từ dữ liệu và thuật giải:
Data Structures + Algorithms = Program
Hệ chuyên gia nói riêng, chương trình trí tuệ nhân tạo nói chung, được cấu
tạo từ cơ sở tri thức (knowledge based) và động cơ suy diễn (inference engine):
Knowledge Based + Inference Engine = Expert System
Hình 2.3 mô tả các thành phần cơ bản của một hệ chuyên gia. Trong mô hình
này, CSTT và động cơ suy diễn tạo nên thành phần cốt lõi của hệ.
Chuyên gia
- Các hình thức học - Rút luật
Tiếp nhận tri thức
- Các sự kiện - Các luật
Cơ sở tri thức
- Tìm kiếm - Suy luận có lý
Động cơ suy diễn
- Hội thoại - Tham vấn
Giải thích
Cơ sở dữ liệu
Người dùng
Thành phần cốt lõi của hệ
Mức giao tiếp chuyên gia
Mức giao tiếp người dùng
Hình 2.3. Mô hình tổng quát của một hệ chuyên gia
- 20 -
2.6.1.1. Cơ sở tri thức
Cơ sở tri thức là tập hợp các tri thức liên quan đến vấn đề mà chương trình
quan tâm giải quyết. Cơ sở tri thức chứa các sự kiện, các luật, các khái niệm, các
quan hệ… được biểu diễn thích hợp dùng cho động cơ suy diễn sử dụng. Các dạng
biểu diễn tri thức phổ biến là mô hình đối tượng - thuộc tính - giá trị, mô hình luật
dẫn, mô hình mạng ngữ nghĩa, mô hình frame và mô hình logic.
2.6.1.2. Động cơ suy diễn
Động cơ suy diễn là các phương pháp vận dụng tri thức để giải quyết vấn đề.
Động cơ suy diễn giống như loại động cơ tổng quát được chuẩn hóa để có thể vận
hành nhiều loại xe. Nhiên liệu dùng cho động cơ suy diễn là tri thức lấy từ CSTT,
hoặc từ bên ngoài qua các thiết lập, lựa chọn, xác nhận của người khai thác hệ
thống. Tùy theo đặc điểm của CSTT, động cơ suy diễn được thiết kế thích hợp với
hai kiểu suy diễn chính là suy diễn tiến hoặc suy diễn lùi.
Suy diễn tiến bắt đầu bằng tập sự kiện đã biết, rút ra các sự kiện mới có giả
thuyết khớp với tập luật cho đến khi đạt trạng thái đích, hoặc hết tập luật. Suy diễn
lùi là chiến lược suy diễn để chứng minh một giả thuyết không được luật nào cung
cấp, bằng cách thu thập các thông tin hỗ trợ cho đến khi tìm thấy lời giải [1].
Tiếp cận của đề tài sử dụng quá trình suy diễn tiến bằng cách vận dụng tập
luật nhận dạng được xây dựng từ trước để phát hiện các virus đã biết. Suy diễn lùi
khám phá các luật tiềm ẩn trong dữ liệu để tìm kiếm virus lạ đang ẩn náu trên hệ
thống khi các triệu chứng nhiễm bệnh không được quá trình suy diễn tiến phát hiện.
Nhìn chung, kết hợp cả hai kỹ thuật sẽ cho kết quả tốt nhất.
2.6.2. Các hệ Khám phá tri thức từ cơ sở dữ liệu
2.6.2.1. Giới thiệu
Sự bùng nổ của các CSDL lớn vượt quá khả năng diễn dịch và lĩnh hội của
con người. Khám phá tri thức từ cơ sở dữ liệu (KDD – Knowledge Discovery from
Database) là các hệ phân tích dữ liệu tự động, khám phá các quy luật tiềm ẩn trong
CSDL nhằm tạo ra tri thức hữu dụng hỗ trợ cho tiến trình ra quyết định.
- 21 -
Mục đích chính của khám phá dữ liệu là tiên đoán và mô tả. Tiên đoán giúp
phân tích dữ liệu và tìm luật, dự đoán dữ liệu chưa biết hay dữ liệu mới trong tương
lai. Mô tả là quá trình tìm các mẫu mà con người có thể hiểu được để đặc tả dữ liệu.
2.6.2.2. Tiến trình khám phá tri thức
Tiến trình khám phá tri thức gồm các giai đoạn: Chọn dữ liệu (Data
selection), Tinh lọc dữ liệu (Cleaning), Làm giàu dữ liệu (Enrichment), Mã hóa dữ
liệu (Coding), Khai thác dữ liệu (Data mining) và Báo cáo (Reporting) [54]. Trong
mỗi giai đoạn, hệ có thể đi lùi qua một số giai đoạn nhằm cải tiến dữ liệu để đạt
được kết quả tốt nhất (Hình 2.4). Mỗi giai đoạn có các hoạt động như sau:
• Chọn dữ liệu: thao tác trên dữ liệu, tách nhặt thông tin cần thiết từ CSDL và
tổ chức lại cho phù hợp với hệ.
• Tinh lọc: thao tác lọc nhiễu chống dữ liệu trùng lặp (de-duplication) và tinh
chế dữ liệu (data refinement).
• Làm giàu: trong một số trường hợp, cần kết hợp dữ liệu hiện tại với các nguồn
thông tin khác để gia tăng lượng dữ liệu cần cho hệ thống.
• Mã hóa: chuyển đổi kiểu dữ liệu về dạng thuận tiện để tiến hành các thuật
toán khám phá dữ liệu.
Yêu cầu thông tin
Thực hiện
Chọn dữ liệu
Tinh lọc Làm giàu Mã hóa Khai thác Báo cáo
Dữ liệu bổ sung
Dữ liệu thao tác Quay lui
Hình 2.4: Tiến trình khám phá tri thức
- 22 -
• Khai thác dữ liệu:
- Luật kết hợp (association rule): Phân tích dữ liệu, tìm mối liên hệ giữa
các biến trong mô hình, các trường trong CSDL.
- Phân lớp (classification): Phân tích dữ liệu để tìm hàm ánh xạ điểm dữ
liệu vào một trong các lớp đã định nghĩa.
- Phân cụm (clustering): Phân tích dữ liệu, phát hiện sự giống nhau giữa các
mục dữ liệu để gom chúng thành từng cụm (nhóm).
- Dự báo (prediction): Phân tích dữ liệu, xây dựng các mô hình hồi quy để
tiên đoán điều gì sẽ xảy ra.
- Tổng kết: Phân tích dữ liệu, phát hiện phương pháp tìm dạng tối giản cho
một mô tả tập dữ liệu.
• Báo cáo: trình bày kết quả khám phá và khai thác dữ liệu bằng các báo cáo
dạng văn bản hoặc báo biểu đồ họa.
2.6.3. Các Hệ học
Trong nhiều tình huống, tri thức là không có sẵn. Phần lớn người lập trình
không có đủ kiến thức thuộc về lĩnh vực chuyên môn của phần mềm nên không biết
cách mô tả các luật trong từng lĩnh vực cụ thể. Do thiếu tri thức nên bài toán không
được biểu diễn tường minh theo luật, sự kiện hay các quan hệ. Vì vậy cần xây dựng
các hệ thống học có khả năng thu nhận kiến thức từ các chuyên gia và học tập từ
các ví dụ do chuyên gia cung cấp.
Máy học (Machine Learning) là các hệ chương trình có khả năng thực thi
công việc dựa trên kinh nghiệm, tự khám phá tri thức bằng các cấu trúc dữ liệu và
thuật giải đặc biệt. Có hai tiếp cận cho hệ thống học là học từ ký hiệu và học từ dữ
liệu số. Học từ ký hiệu bao gồm việc hình thức hóa, sửa chữa các luật tường minh,
sự kiện và các quan hệ. Học từ dữ liệu số áp dụng cho các hệ thống sử dụng các mô
hình có liên quan đến các kỹ thuật tối ưu các tham số [2]. Các hệ học có ưu điểm:
- Xử lý dữ liệu với khối lượng lớn.
- Hỗ trợ các kỹ thuật phân tích, xử lý, trích chọn và chi tiết hóa dữ liệu
- 23 -
- Phát sinh luật chuyên gia từ dữ liệu, thích hợp cho các trường hợp cần tham
khảo ý kiến chuyên gia tư vấn cho các lĩnh vực cụ thể, có tính chuyên sâu.
- Hỗ trợ quyết định xử lý liên quan đến kinh nghiệm của con người…
Các hệ học có hai giai đoạn cơ bản: học dữ liệu và xử lý dữ liệu. Học dữ liệu
là quá trình phân tích và tìm ra những điểm tương đồng trong dữ liệu để sản sinh
luật. Giai đoạn xử lý ước lượng đặc tính dữ liệu mới dựa trên luật đã được phát sinh
ở giai đoạn học. Có thể chia các quá trình học thành hai dạng chính: học có giám sát
(suppervised learning) và học không giám sát (unsuppervised learning).
2.6.3.1. Học giám sát
Quá trình học giám sát được tiến hành trên một tập dữ liệu mẫu với giá trị
được phân loại (gán nhãn) sẵn. Tập dữ liệu luyện gồm:
S = {xi, cj | i = 1,…, M; j = 1,…, C}
Trong đó xi là vectơ n chiều (gọi là đặc trưng của dữ liệu)
cj là số lớp biết trước
Thuật toán học sẽ tìm kiếm trên không gian giả thuyết giải pháp tốt nhất cho
ánh xạ f với c = f(x). Kết quả tìm được phản ánh đặc trưng của mẫu dữ liệu. Các
thuật toán học tìm cách phát sinh một tập giả thuyết bằng cách tìm ra các đặc trưng
và giá trị tương ứng với mẫu dữ liệu của mỗi lớp. Sau đó áp dụng các tập giả thuyết
tìm được để phân loại (classification) các mẫu dữ liệu mới vào các lớp tương ứng.
Bài toán nhận dạng virus đã biết của MAV là quá trình học có giám sát. Thư
viện S chứa k mẫu virus đã biết, mỗi mẫu virus xi có p thuộc tính. Mục tiêu của quá
trình chẩn đoán virus là xác định xem đối tượng có nhiễm virus xi hay không và nếu
nhiễm thì thuộc lớp virus đã biết trước cj nào.
2.6.3.2. Học không giám sát
Thay vì có mục tiêu tường minh, hệ tìm kiếm quy luật hình thành các mẫu và
khám phá mối quan hệ của dữ liệu. Các bài toán gom cụm dữ liệu (clustering) đều
thuộc dạng này. Trong mô hình học có giám sát, số các lớp là biết trước. Ngược lại,
trong mô hình học không giám sát, mẫu học chưa được gán nhãn nên nói chung, số
- 24 -
lớp chưa biết trước. Các hệ học loại này có khả năng tự giám sát quá trình hình
thành và phát sinh của các lớp. Công tác gán nhãn được thực hiện tự động một cách
hệ thống và phân biệt với các lớp khác.
Ở giai đoạn học dữ liệu, MAV sử dụng một cấu trúc dữ liệu và thuật toán đặc
biệt để gán virus vào các nhóm có cùng đặc trưng. Tùy thuộc vào đặc tính phân bố
của dữ liệu, số lớp kết quả và giá trị nhãn lớp sẽ thay đổi. Với mô hình học không
giám sát này, không gian tìm kiếm được giảm thiểu và MAV có thể nhận dạng
nhanh các đối tượng có cùng đặc trưng với các nhóm virus (xem Chương 4).
2.6.3.3. Các hình thức học
• Học vẹt: Hệ tiếp nhận tập khẳng định của các quyết định đúng. Nếu tạo ra một
quyết định không đúng, hệ sẽ đưa ra các luật/quan hệ đúng đã sử dụng. Hình
thức học vẹt cho phép chuyên gia cung cấp tri thức qua tương tác.
Bài toán chẩn đoán lớp C-class của MAV hoạt động theo hình thức học vẹt.
Thư viện virus chứa các khẳng định đúng trên các mẫu virus trong thế giới
thực. Nếu so khớp đúng, hệ sẽ phát cảnh báo (mẫu dữ liệu có dính líu/quan hệ
với một virus cụ thể) và yêu cầu xác nhận hình thức xử lý. Người khai thác sẽ
cung cấp tri thức cho hệ thực hiện các thao tác tiếp theo.
• Học bằng chỉ dẫn: Thay vì đưa ra một luật cụ thể cần áp dụng vào tình huống
cho trước, hệ thống được cung cấp các chỉ dẫn tổng quát. Hệ tự đề ra cách biến
đổi trừu tượng thành các luật phổ dụng.
Trong bài toán chẩn đoán lớp B-class, hệ được cung cấp các chỉ dẫn định
nghĩa các thao tác của mẫu tin khởi động và các hành vi cơ bản của boot
virus. Khi phát hiện hành vi virus, thông tin đối tượng mới sẽ được chuyển
thành luật, bổ sung vào tập luật nhận dạng chung của hệ.
• Học bằng quy nạp: Hệ thống được cung cấp một tập các ví dụ và kết luận của
từng ví dụ. Hệ liên tục học các luật và quan hệ nhằm xử lý và rút ra kết luận
cho từng ví dụ mới.
- 25 -
Trong MAV, mỗi mẫu tin trong CSDL sử dụng cho lớp A-class được tổ chức
thành bộ ⟨Ví dụ dữ liệu - Kết luận virus⟩. Ngoài công dụng nhận dạng virus
theo mẫu đã biết, MAV còn sử dụng tập các ví dụ này như bộ dữ liệu luyện
nhằm rút ra các quy luật đặc trưng và mối quan hệ giữa chúng, làm cơ sở cho
quá trình nhận dạng các virus mới chưa có trong thư viện mẫu.
• Học bằng tương tự: Hệ thống được cung cấp đáp ứng đúng cho các tác vụ
tương tự nhưng không giống nhau. Hệ thống cần thích ứng đáp ứng trước đó
nhằm tạo ra một luật mới có khả năng áp dụng cho tình huống mới.
Khi phát hiện virus đã biết, MAV xử lý virus bằng cách thi hành tập các hành
động đối xử tương ứng đã được cung cấp trước. Khi phát hiện virus lạ, MAV
sẽ tự phân tích để đề ra tập các hành động đối xử phù hợp dựa vào tập các
hành động đã có. Cơ chế học tương tự được áp dụng cho lớp virus D-class
chứa các virus macro.
• Học dựa trên tình huống: Bất kỳ tình huống nào được hệ thống lập luận đều
được lưu trữ cùng với kết quả cho dù đúng hay sai. Khi gặp tình huống mới, hệ
thống sẽ tự thích nghi dựa vào các tình huống cũ đã được lưu trữ.
Hình thức học tình huống được áp dụng cho bài toán nhận dạng lớp virus E-
class bằng các tác tử canh phòng liên tục cập nhật thông tin hệ thống và phân
tích các tình huống nảy sinh nguy cơ lây nhiễm của file virus.
• Học dựa trên giải thích: Hệ thống phân tích tập các ví dụ nhằm ấn định khả
năng đúng hoặc sai, sau đó tạo ra các giải thích hướng dẫn cách giải các bài
toán tương tự trong tương lai.
2.6.4. Các nghiên cứu máy học nhận dạng virus máy tính
Các hệ học thường sử dụng các kỹ thuật học và rút luật tiêu biểu như thuật
toán Hybrid Algorithms (Clark & Niblett 1989); thuật toán cây quyết định -
Decision Tree Algorithms (C5.0, Quinlan-1993); thuật toán luật kết hợp -
Association Rule Algorithms (Kaufman và Michalski, 1999); các thuật toán CLIP -
Cover Learning Using Integer Linear Programming [20]…
- 26 -
Trong lĩnh vực nhận dạng virus máy tính, tiếp cận máy học cũng được vận
dụng theo nhiều hướng khác nhau. Năm 1995, Lo và cộng sự [57] giới thiệu phương
pháp lọc mã độc dựa vào phân tích đặc trưng và thuộc tính của chúng. Do không sử
dụng mẫu thử nên phương pháp này có ưu điểm là gọn nhẹ. Tuy nhiên các phương
pháp nhận dạng mã độc bán tự động này có độ chính xác không cao, dễ nhận dạng
nhầm với các ứng dụng sạch có đặc trưng thuộc tính giống mã độc.
Năm 1996, IBM đề xuất phương pháp thống kê dựa trên các thuật toán nhận
dạng tiếng nói để chương trình hóa quá trình phân tích chuỗi mã của các chuyên gia
trong thế giới thực, giúp hệ trích chọn chuỗi nhận dạng tự động [36]. Do đầu ra chỉ
là chuỗi mã trích chọn của các đối tượng chẩn đoán nên chưa dự báo được đối
tượng này có phải là mã độc hay không.
Năm 1998, Spafford giới thiệu phương pháp phân tích diễn biến quá trình lây
lan của sâu trình Internet trên cơ sở dữ liệu mã thực thi của sâu trình, phương pháp
tấn công và vị trí các nút mạng bị tấn công [26]. Phương pháp này tái hiện lộ trình
lây lan, qua đó dự báo được các tình huống tấn công tương tự của sâu trình trên các
nút tiềm tàng. Tuy nhiên phương pháp này chạy chậm và chi phí cao, dễ quá tải khi
mở rộng danh sách các nút mạng, cũng như khi bổ sung danh sách sâu trình.
Để giải quyết bài toán nhận dạng mã độc, một nghiên cứu khác của IBM
chọn mô hình mạng trí tuệ nhân tạo ANN (Artificial Neural Networks) để phân lớp
các mẫu tin khởi động (MTKĐ). Kết quả nghiên cứu cho thấy mô hình này nhận
dạng 80-85% các MTKĐ lạ với sai số dưới 1% trên các mẫu dương [31]. Tuy nhiên
khi sử dụng ANN cho các đối tượng thi hành Win32, các chuyên gia IBM cũng
chưa đưa ra được minh chứng thuyết phục nào cho hướng áp dụng này [68].
Trong khi các nhà khoa học tập trung nghiên cứu mô hình máy học nhận
dạng mã độc, các anti-virus tiếp tục sử dụng các kỹ thuật heurisic để trích chọn đặc
trưng và phân lớp thủ công đối tượng chẩn đoán [24].
Năm 2001, các nhà nghiên cứu ở đại học Columbia (Mỹ) công bố kết quả
nhận dạng mã độc sử dụng kỹ thuật học quy nạp Find-S (đạt 87.35%) và các
phương pháp phân lớp Naïve Bayes (đạt 96.7%). Kết quả này cho thấy tiếp cận học
- 27 -
khá phù hợp để nhận dạng các loại mã độc Win32. Tuy nhiên theo các tác giả, đề tài
gặp khó khăn trong việc chuẩn hóa dữ liệu với các thuật toán mã hóa, giải mã phức
tạp và kém hiệu quả trên các đối tượng chưa được phân lớp chính xác. Khi đánh giá
chi phí, các tác giả chỉ nêu hạn chế của mô hình phân lớp Naïve Bayes (sử dụng đến
1 GB bộ nhớ cho 4266 mẫu thử của 3265 mã độc và 1001 ứng dụng sạch) [47] mà
không công bố các chi phí luyện học và tốc độ thực thi của hệ. Thông thường CSDL
của các AV có hơn 10.000 virus. Muốn đạt hiệu quả từ bằng đến hơn các AV truyền
thống, tiếp cận này cần số mẫu nhiều hơn ba lần so với bộ dữ liệu thử nghiệm, tức
là chỉ các hệ thống với ít nhất 3 GB bộ nhớ mới phát huy được hiệu quả của công
nghệ này. Hơn nữa, nghiên cứu này chỉ áp dụng trên định dạng Win32, chưa xây
dựng mô hình tổng quát của một hệ anti-virus theo hướng máy học hoàn chỉnh.
2.6.5. Các nghiên cứu hệ chuyên gia nhận dạng virus máy tính
Tiếp cận hệ chuyên gia anti-virus (Anti-virus Expert System) được tác giả
luận án và nhóm nghiên cứu đề xuất trong tham luận Expert System Approach to
Diagnosing and Destroying Unknown Computer Viruses ở Hội nghị Quốc tế về Trí
tuệ nhân tạo và Tính toán mềm của tổ chức IASTED (The International Association
of Science and Technology for Development), tổ chức ở Mexico năm 1998 [62].
Theo Google (G) và Yahoo (Y), hiện nay (*) trên thế giới có 4 nhóm nghiên
cứu tiếp cận hệ chuyên gia nhận dạng virus máy tính công bố công trình (Bảng 2.3).
Bảng 2.3: Khảo sát tiếp cận hệ chuyên gia nhận dạng virus máy tính
Kết quả Từ khóa tìm kiếm G Y
Nhóm nghiên cứu Năm Nguồn
InVircible 2002 www.invircible.com/news MicroPoint 2005 www.micropoint.cn Weidian 2005 www.english.people.com.cn
Anti-virus expert system 41 32
MAV 2005 www.rivf.e-ifi.org/2005 Anti-virus système d'experte 0 0 #N/A #N/A #N/A
(*) Đã kiểm tra lại nội dung tìm kiếm vào ngày 10-06-2008
- 28 -
Các kỹ thuật của InVircible’s Generic Technology [84] là:
1. Phát hiện các hành vi dối trá, lợi dụng sơ hở hệ thống, lừa người sử dụng như
đổi tên tập tin (jpg.exe, jpg.pif…), giả mạo shortcut kích hoạt mã độc…
2. Phân tích định dạng Win32 Executable nghi mã độc dựa vào cơ sở tri thức
3. Giám sát sự thâm nhập của các loại hình quấy nhiễu như worm, trojan,
backdoor vào hệ thống mạng.
4. Bảo vệ hệ thống theo thời gian thực bằng chính sách theo dõi tiến trình,
thường xuyên kiểm tra toàn vẹn hệ thống.
5. Trong suốt với người dùng.
Tương tự InVircible, MicroPoint [81] sử dụng năm nhóm giải pháp:
1. Phân tích hành vi hướng thông minh nhân tạo
2. Quét mẫu truyền thống kết hợp với kỹ thuật bảo vệ tường lửa
3. Phục hồi trạng thái hệ thống bằng kỹ thuật rollback
4. Giám sát hoạt động hệ thống theo thời gian thực
5. Tái hiện hoạt động hệ thống qua bộ dữ liệu tiền sử đăng nhập
Khác với các nhóm InVircible và MicroPoint, phần mềm Weidian Proactive
Defence Software dựa vào kỹ thuật nhận dạng hướng hành vi phát hiện trojan horse
thâm nhập vào hệ thống đăng ký (System Regsitry) để cài đặt mã độc vào máy đích.
Khi phát hiện virus thâm nhập, hệ sẽ vận dụng các phương pháp suy diễn trên
CSTT đã có để tham vấn người dùng, hỗ trợ quyết định đối xử thích hợp [87].
Ngoài ra, có dự án “A Prescriptive Anti-virus Expert System Automated with
Defensive Actions” do Curtis HK. Tsang và cộng sự ở khoa Khoa học Máy tính, đại
học HongKong (City University of Hong Kong) nghiên cứu [88].
Nhìn chung, nhóm giải pháp nhận dạng virus máy tính hướng hệ chuyên gia
như InVircible, MicroPoint và Weidian đều tập trung giải quyết sâu trình và trojan.
Bên cạnh các kỹ thuật tiên tiến (tiếp cận hệ chuyên gia, tiếp cận hành vi và tiếp cận
ý định), các nghiên cứu này đều có sử dụng nhận dạng chuỗi mã để gia tăng sức
mạnh cho hệ. Kết hợp nhiều kỹ thuật chẩn đoán là xu hướng chung của các hệ anti-
virus trong giai đoạn hiện nay.
- 29 -
2.7. Tổng kết chương
Chương 2 khảo sát virus máy tính và các cơ chế chẩn đoán virus máy tính
(tiếp cận chuỗi mã, tiếp cận hành vi và tiếp cận ý định), tìm hiểu các công trình
nghiên cứu virus máy tính trong và ngoài nước, đánh giá ưu nhược điểm của từng
phương pháp, tìm hiểu các vấn đề mở của công nghệ anti-virus, phân tích nguyên
nhân và đề ra phương pháp mới cho bài toán nhận dạng virus máy tính: 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.
Đề tài xây dựng dựa vào ba luận điểm chính: nguồn gốc virus máy tính, nhận
thức về virus máy tính và phương pháp chữa trị. Quan điểm của đề tài là kết hợp hài
hòa giữa truyền thống và hiện đại theo cách (i) sử dụng tiếp cận chuỗi mã để nhận
dạng virus cũ, (ii) ứng dụng tiếp cận máy học để nhận dạng virus mới. Trong một số
trường hợp sẽ (iii) phối hợp tiếp cận hành vi và tiếp cận máy học để dạy cho máy
học các khái niệm và (iv) phối hợp tiếp cận ý định và tiếp cận máy học để giúp hệ
thống tự “quay ngược thời gian trở về quá khứ”.
Hệ được xây dựng theo mô hình của một hệ chuyên gia: mức giao tiếp
chuyên gia, thành phần cốt lõi và mức giao tiếp người dùng. Mức chuyên gia có
nhiệm vụ thu nhận tri thức chuyên gia. Hạt nhân của hệ sẽ chứa động cơ suy diễn và
các bài toán học. Kết quả chẩn đoán được tổng hợp, kết xuất dưới dạng các giao tiếp
hội thoại, tham vấn hỗ trợ quyết định ở mức giao tiếp người dùng.
Sau đây, Chương 3 sẽ giới thiệu các cơ chế máy học chẩn đoán các lớp virus
máy tính A-class, B-class, C-class, D-class và E-class.
Cơ chế máy học chẩn đoán virus máy tính
3.1. Phân hoạch bài toán chẩn đoán virus máy tính
Trong các bài toán nhận dạng mẫu, tri thức nguyên liệu của hệ có liên quan
mật thiết với dạng thức dữ liệu (ví dụ dữ liệu thô ở mức bit) [8]. Dựa vào đặc trưng
dữ liệu của các loại virus, bài toán chẩn đoán virus máy tính được phân thành năm
bài toán con. Mỗi bài toán có tiếp cận khác nhau, dùng chẩn đoán các lớp virus khác
nhau (Bảng 3.1), trình bày theo cấp độ học từ đơn giản đến phức tạp như sau:
1. Bài toán 1: chẩn đoán lớp virus C-class lây trên lớp văn bản (7-bit ASCII
text files) theo cơ chế học vẹt.
2. Bài toán 2: chẩn đoán lớp virus D-class (lây trên lớp tư liệu MS Office,
Document files) theo cơ chế học tương tự.
3. Bài toán 3: chẩn đoán lớp virus B-class (lây vào mẫu tin khởi động, Boot
record) theo cơ chế học bằng chỉ dẫn.
4. Bài toán 4: chẩn đoán lớp virus E-class (lây trên lớp thi hành, Executable
files) theo cơ chế học tình huống.
5. Bài toán 5: chẩn đoán lớp sâu trình, trojan horse A-class (lớp ứng dụng độc
lập, Stand 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:
Malware detection = Detections/AssociatedVirusesInDatabase
- Độ dự báo là khả năng cảnh báo có virus trên tập kiểm tra (gọi không đúng
tên hoặc chưa xác định tên virus cụ thể), tính bằng tỷ số giữa số cảnh báo với
hiệu của số virus thử nghiệm và số lượng virus được phát hiện chính xác:
Proactive detection = Proactions/(VirusesInDatatest - Detections)
- Độ tin cậy là tỷ số của số cảnh báo so với các mối nguy hiểm thật sự đang
tiềm ẩn trên tập dữ liệu chẩn đoán:
Reliability = (Detections+Proactions)/VirusesInDatatest
3.3. Cơ chế máy học chẩn đoán virus máy tính
3.3.1. Bài toán 1: Chẩn đoán lớp virus C-class
3.3.1.1. Phát biểu bài toán
Virus text lây nhiễm bằng cách chèn hoặc tạo mới các câu lệnh script vào đối
tượng. Gọi N là tập số nguyên dương, W={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
Lần Số virus thử nghiệm
Số virus cập nhật
Số virus phát hiện
Số virus cảnh báo
Số virus bỏ sót
Độ chính xác (%)
Độ dự báo (%)
Độ tin cậy (%)
1 1564 1042 1035 31 498 99.33 5.86 68.16 2 1452 968 958 23 471 98.97 4.66 67.56 3 1572 1048 1040 32 500 99.24 6.02 68.19 4 1315 877 868 19 428 99.01 4.25 67.45 5 1389 926 914 20 455 98.70 4.21 67.24 Trung bình: 99.05 5.00 67.72
Thuật toán có độ chính xác cao (99.05%). Tỷ lệ lỗi do các mẫu virus thử
nghiệm có sự ghép nối mã lệnh (phát hiện virus thứ nhất trước khi truy vấn trọn vẹn
virus thứ hai). Tuy nhiên với tỷ lệ dự báo 5% (chủ yếu là gọi sai tên virus), thuật
toán c-Diagnose khó đưa ra khẳng định dương khi chẩn đoán các virus mới (là các
mẫu virus chưa cập nhật trong CSDL 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
MSOffice được cài đặt như sau:
- 38 -
X1 = Tư liệu MSOffice (True/False) X2 = Có macro (True/False) X3 = Macro tự chạy (True/False) X4 = Nhiễm virus macro (True/False) X5 = Macro 1 (True/False) X6 = Macro 2 (True/False) (…)
Hàm nhận dạng đối tượng dObject có chứa virus macro đã biết (là một trong n
virus macro đã cập nhật) có dạng:
R: (X1= true) ^ (X2=true) ^ (X3 = true) ^ (X4 =true) ^ (X4+i =true) ∀ i = 1..n
Luật nhận dạng virus macro M được phát biểu như sau:
Luật 1: IF dObject là tư liệu MSOffice AND dObject có macro AND Macro này thuộc loại tự chạy THEN dObject là nguy hiểm Luật 2: IF dObject là nguy hiểm AND Macro có tên là Macro i (i=1..n) THEN Đối tượng nhiễm virus macro M[i]
Luật nhận dạng virus macro mới được phát biểu như sau:
Luật 3: IF dObject là nguy hiểm AND dObject không chứa các macro tự tạo THEN dObject nhiễm virus macro mới
Luật thực thi khi chẩn đoán đối tượng nhiễm virus macro như sau:
Luật 4: IF dObject nhiễm virus macro M[i] OR dObject nhiễm virus macro mới AND Người dùng đồng ý xóa macro THEN Loại trừ macro của dObject
3.3.2.6. Thực nghiệm bài toán chẩn đoán lớp D-class
Áp dụng quy trình thực nghiệm như đối với bài toán C-class, kết quả nhận được
trình bày trong bảng 3.3.
- 39 -
Bảng 3.3: Kết quả thực nghiệm bài toán chẩn đoán lớp virus D-class
Lần Số virus thử nghiệm
Số virus cập nhật
Số virus phát hiện
Số virus cảnh báo
Số virus bỏ sót
Độ chính xác (%)
Độ dự báo (%)
Độ tin cậy (%)
1 4256 2837 2793 1378 85 98.45 94.19 98.00 2 4122 2748 2702 1325 95 98.33 93.31 97.70 3 3946 2631 2597 1286 63 98.72 95.33 98.40 4 3678 2452 2431 1185 62 99.14 95.03 98.31 5 4320 2880 2849 1411 60 98.92 95.92 98.61 Trung bình: 98.71 94.76 98.21
Kết quả này cho thấy mô hình học tương đồng của bài toán D-class dự báo
được 94.76% mẫu virus macro trên tập dữ liệu thử nghiệm. Tỷ lệ thất bại do các
mẫu dữ liệu có mật khẩu và các trường hợp macro virus chen vào các macro tự tạo.
Hướng giải quyết là thiết lập bộ tinh chỉnh luật dưới dạng tùy chọn điều khiển trạng
thái các mệnh đề “dObject không chứa các macro tự tạo” và “Đồng ý xóa macro”.
3.3.3. Bài toán 3: Chẩn đoán lớp virus B-class
3.3.3.1. Phát biểu bài toán
Lớp B-class chứa các boot virus lây vào các MTKĐ trên sector đầu tiên của
đĩa mềm khởi động (xem Phụ lục 1). Có hai vấn đề cần giải quyết là (i) nhận dạng
các boot virus cũ và (ii) phát hiện các boot virus mới trên MTKĐ.
Dù được định dạng (format) dưới bất kỳ HĐH nào, các MTKĐ trên đĩa đều
có nhiệm vụ tìm và tải các mô-đun khởi động sơ cấp của HĐH vào bộ nhớ rồi trao
quyền để máy tính tiếp tục quá trình khởi động. Nếu một MTKĐ nào thực hiện các
tác vụ lạ, nó không phải là MTKĐ hợp lệ và có thể là boot virus mới. Bài toán chẩn
đoán B-class được giải quyết theo hướng phân tích hành vi [12] như sau:
• Tổ chức hai CSDL dữ liệu: CSDL thứ nhất chứa thông tin về các boot virus đã
cập nhật. CSDL thứ hai chứa các MTKĐ sạch phổ biến của các hệ điều hành.
• Cung cấp các tập miền (domain theory) mô tả hành vi đối tượng trong hai
CSDL nói trên. Tập miền thứ nhất định nghĩa các hành vi cơ bản của boot
virus. Tập miền thứ hai mô tả các tác vụ thực hiện chức năng cơ bản của
MTKĐ của các HĐH. Các tập miền được biểu diễn dưới dạng luật.
- 40 -
• Tải đối tượng chẩn đoán bObject vào không gian quan sát đồ thị hóa.
• Phân tích hành vi, phân loại đối tượng chẩn đoán bObject:
- Áp dụng các thuật giải tìm kiếm và suy luận trên không gian quan sát.
- Nếu dữ liệu phản ánh các mô tả của tập miền thứ nhất, thông báo tình trạng
nhiễm virus của bObject, xử lý bệnh, báo cáo kết quả, kết thúc.
- Nếu dữ liệu phản ánh các mô tả của tập miền thứ hai, kết luận về tình trạng
an toàn của MTKĐ, kết thúc quá trình.
- Ngoài ra, thông báo về tình trạng khác thường của bObject (virus mới,
device driver, sector hỏng, định dạng lạ…)
• Kết thúc quá trình, bổ sung thông tin đối tượng vào các CSDL tương ứng (boot
virus lạ vào CSDL thứ nhất, MTKĐ sạch vào CSDL thứ hai).
3.3.3.2. Tạo lập cơ sở tri thức
Hành vi (act) là tập hợp các chỉ thị máy thực hiện một tác vụ, ví dụ đọc một
cung đĩa chỉ định vào vùng nhớ ở địa chỉ xác định. Một cách đệ quy, hành vi được
hình thành từ tập các hành vi khác (gọi là hành vi cơ bản – basic act). Tri thức
chuyên gia được biểu diễn dưới dạng luật với ngữ nghĩa:
IF Hành vi p1 AND Hành vi p2 AND
(…) AND Hành vi pn THEN Hành vi/Kết luận Q
Trong đó pi là hành vi cơ bản thứ i, Q là hành vi ở mức tổng quát. Trong một
số trường hợp, Q là hành vi cơ bản của các hành vi tổng quát nào đó. Ở mức suy
diễn cuối cùng, Q là kết luận về tình trạng của MTKĐ [62].
Về mặt tổ chức, các hành vi cơ sở được xây dựng thành các lớp luật con. Các
hành vi này là sự kiện trả lại giá trị luận lý, hoặc kết quả của biểu thức tính toán.
Lấy ví dụ, khái niệm ‘Is a boot virus’ được định nghĩa qua các hành vi cơ bản:
- Lấy kích thước bộ nhớ, và
- Giảm kích thước bộ nhớ, và
- 41 -
- Đặt lại kích thước bộ nhớ cho hệ điều hành, và
- Tách vùng nhớ chứa virus ra khỏi phạm vi kiểm soát của hệ thống, và
- Chuyển mã lệnh virus vào vùng nhớ này…
Tập tri thức hành vi boot virus được mô tả dưới dạng luật như sau:
Boot virus ← GetMemSize, DecMemSize, SetMemSize, SetMemVi, MovViCode GetMemSize ← ReadMem, GetValue DecMemSize ← SetNewSize, WriteMem (…)
3.3.3.3. Tổ chức cơ sở dữ liệu
Khác với các virus phổ biến lưu mã lệnh trong tổ chức file, boot virus chèn
mã lệnh vào MTKĐ trên sector đầu tiên của đĩa (xem Phụ lục 2, Cấu trúc mẫu tin
khởi động). Các mẫu tin boot virus trong CSDL SB có dạng:
BootVirus = <Tên gọi, Kích thước, Ngày cập nhật, Phiên bản, Tập chỉ thị>
Thuộc tính Kích thước nhận các giá trị là bội số của độ dài sector (512 byte).
Thuộc tính Tập chỉ thị chứa mã thi hành của boot virus, gồm hai phần mã nhảy 3-
byte (nhảy ngang qua bảng thông số đĩa) và mã kích hoạt. Do mỗi sector đĩa dài 512
byte nên lệnh nhảy đầu MTKĐ chỉ có thể là nhảy gần (jump short) dưới 128 byte
(mã E8) hoặc trên 128 byte (mã E9). Địa chỉ offset phần mã kích hoạt được định vị
ngay sau lệnh nhảy bằng cách cộng thêm 2 (đối với E8) hoặc 3 byte (đối với E9)
vào byte thứ hai của mã nhảy (ví dụ mã nhảy E85890, offset mã kích hoạt là 5A).
3.3.3.4. Trích chọn đặc trưng
Mục tiêu của bước này nhằm tái hiện các hành vi của đối tượng trong thế giới
thực. Đầu tiên, sử dụng một bảng tra chỉ thị dạng <Mã chỉ thị, Độ dài> để dịch
ngược các lệnh thi hành từ Tập chỉ thị. Kế tiếp, phân tích nội dung mã lệnh của đối
tượng để xây dựng tập các tiền đề trong luật. Cuối cùng, tổ chức tập luật kết quả cho
bước phân tích hành vi tiếp theo.
Bảng tra chỉ thị dùng để cung cấp thông tin thông dịch (interpreter) ý nghĩa
mã lệnh và định vị offset mã lệnh tiếp theo trong chuỗi mã thi hành của đối tượng.
Ví dụ luật GetMemSize mô tả hành vi Lấy kích thước bộ nhớ như sau:
- 42 -
NẾU Code = $8B //mã chỉ thị MOV
Và NextCode = $07 //mã chỉ thị MOV AX,[BX] Và BX = $0413 //BX: index register Và DS = 0 //DS: segment register THÌ Lấy kích thước bộ nhớ
Với cách tổ chức này, tập tri thức mô tả hành vi của boot virus là rất phong
phú. Trong ví dụ trên, luật này chỉ mới mô tả các hành vi:
- Có sử dụng AX làm ValueRegister mà chưa xét các BX, CX, DX, SI, DI…
- Có sử dụng BX làm IndexRegister mà chưa xét SI, DI, BP…
- Có sử dụng DS làm SegmentRegister mà chưa xét ES, SS…
Tương tự, một tập tri thức hành vi của các MTKĐ sạch cũng được xây dựng
làm cơ sở đối chiếu cho quá trình chẩn đoán bObject.
3.3.3.5. Xây dựng không gian trạng thái
Trong kiến trúc IBM-PC, MTKĐ được ROM-BIOS nạp vào địa chỉ
(0000:$7C00) nên các địa chỉ tham chiếu trong MTKĐ đều được xác định tuyệt đối.
Để phát hiện các hành vi của boot virus trong bộ nhớ ở chế độ thực, một máy ảo
(virtual machine) [13] được sử dụng với các đặc tính kỹ thuật cơ bản như sau:
• Bộ chỉ thị: bộ chỉ thị của máy ảo tương thích với bộ chỉ thị của máy PC dùng
họ vi xử lý 80x86/Pentium trong chế độ thực (không gồm các chỉ thị ở mức hệ
điều hành, vốn chưa sử dụng trong quá trình khởi động máy).
• Bộ xử lý lệnh: tương thích với cơ chế lấy/phân tích lệnh của bộ vi xử lý Intel
80x86/Pentium trong chế độ thực. Các chỉ thị của bộ xử lý lệnh được chia làm
hai nhóm: các lệnh tuần tự và các lệnh nhảy. Khi gặp lệnh nhảy, một hàm
lượng giá đặc biệt sẽ được triệu gọi để lựa chọn hướng xử lý tiếp theo.
• Bộ nhớ làm việc: bao gồm bộ nhớ cho trình và bộ nhớ dữ liệu.
• Bộ nhớ cho trình là không gian trạng thái của môtơ suy diễn trên máy thực. Để
bảo vệ máy thực, một hàm ánh xạ chuyển đổi địa chỉ tương đối trên máy ảo
thành địa chỉ luận lý tương ứng trên máy thật. Bộ nhớ cho trình cũng chứa các
biến bộ nhớ “thanh ghi” và “cờ hiệu” giống như cách tổ chức của CPU.
- 43 -
• Bộ nhớ dữ liệu được tổ chức dưới dạng ngăn xếp. Dữ liệu của các chương trình
con (địa chỉ lệnh đang thực hiện, địa chỉ trỏ đến lệnh sẽ thực thi, địa chỉ trở
về…) sẽ được xếp chồng vào ngăn xếp của máy ảo theo nguyên tắc LIFO.
Không gian trạng thái được tổ chức dưới dạng cây nhị phân [14] như sau:
- Nút gốc đặc tả sự kiện kích hoạt điểm vào lệnh đầu tiên
- Nhánh đặc tả tình huống thực hiện các lệnh tuần tự
- Nút con đặc tả các biến cố rẽ hướng thực hiện của các lệnh nhảy
- Nút lá đặc tả điểm dừng (khi kết thúc chẩn đoán hoặc phát hiện boot virus)
Đối với các lệnh lặp, xử lý chu trình như một lệnh đơn tuần tự với cây nhị
phân cục bộ trong lòng chu trình (Hình 3.5).
3.3.3.6. Cơ chế phân tích
Dựa vào các tập luật mô tả hành vi để phát hiện các thao tác của boot virus,
quá trình lần vết trên cây thực hiện theo phương pháp tìm kiếm với tri thức bổ sung
[63]. Khi duyệt cây, hành vi của bObject được thu thập dần vào danh sách tác vụ.
Mỗi lần cập nhật hành vi, bộ phân tích sẽ đánh giá danh sách này đã hội đủ các hành
vi kết luận (đạt đến mức khái niệm) hay chưa để quyết định duyệt tiếp hay dừng.
Khi duyệt đến nút (biến cố rẽ nhánh), bộ xử lý lệnh máy ảo sẽ gọi một hàm lượng
giá “thanh ghi cờ” để quyết định hướng rẽ nhánh thực hiện (Hình 3.6).
Nếu phát hiện virus mới, hệ sẽ tự trích chọn đặc trưng của MTKĐ nhiễm rồi
bổ sung vào CSDL để chẩn đoán các MTKĐ khác trong tương lai.
Begin
Hình 3.5: Cây chỉ thị nhị phân tìm kiếm
- 44 -
3.3.3.7. Đánh giá độ phức tạp và kết quả thực nghiệm
Giả sử cây chỉ thị nhị phân có n nút. Do chỉ duyệt trên một nhánh nào đó của
cây nhị phân nên mỗi lần duyệt, số nút giảm đi một nửa. Trong trường hợp xấu nhất,
thuật giải tìm kiếm phải thực hiện i lần sao cho 2i = n, tức là i = logn. Do đó, độ
phức tạp của thuật giải xử lý lệnh của máy ảo có độ phức tạp là O(logn).
Trong thực nghiệm, máy ảo chẩn đoán B-class của MAV có:
- Bộ nhớ làm việc 64 KB RAM
- 256 vector ngắt 4-byte đặt tại địa chỉ 0000:0000 của máy ảo
- 512 byte thông tin điều khiển của máy ảo, timer cục bộ…
- Các biến nhớ đóng vai trò của các thanh ghi gồm cờ nhớ, AX, BX, CX, DX,
CS, ES, DS, SS, SP, BP, DI, SI và IP.
- Bộ chỉ thị và bộ xử lý lệnh tương thích CPU 80x86/Pentium
Để máy ảo hoạt động trên HĐH Windows32, MAV xây dựng thêm một hàm
ánh xạ địa chỉ bộ nhớ giữa hai cơ chế định vị địa chỉ tương đối (segment:offset) của
MSDOS và định vị địa chỉ bộ nhớ phẳng (flat memory) của Windows 32.
Bảng 3.4: Kết quả thực nghiệm bài toán chẩn đoán lớp virus B-class
Lần Số virus thử nghiệm
Số virus cập nhật
Số virus phát hiện
Số virus cảnh báo
Số virus bỏ sót
Độ chính xác (%)
Độ dự báo (%)
Độ tin cậy (%)
1 180 120 118 55 7 98.33 88.71 96.11 2 174 116 114 51 9 98.28 85.00 94.83 3 184 123 119 57 8 97.01 87.69 95.65 4 168 112 110 49 9 98.21 84.48 94.64 5 178 119 116 53 9 97.75 85.48 94.94 Trung bình: 97.92 86.27 95.24
Hình 3.6: Hàm bổ sung tri thức
Heuristic function
(1) (2) (3)
- 45 -
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:
ĐỐITƯỢNG (ĐỐI_TƯỢNG, TÊN, ĐỊA_CHỈ, KIỂU, KÍCH_THƯỚC, THUỘC_TÍNH, NGÀY_THÁNG)
PHIÊNBẢN(PHIÊN_BẢN, NGÀY_PHÁT_HÀNH, SỐ_VIRUS)
LỊCHQUÉT(#PHIÊN_BẢN, #ĐỐI_TƯỢNG, NGÀY_QUÉT)
Trong lược đồ quan hệ CSDL VerifyDB, ĐỐI_TƯỢNG, PHIÊN_BẢN là khóa
chính của các quan hệ ĐỐITƯỢNG và PHIÊNBẢN. Bộ khóa ngoại PHIÊN_BẢN và
ĐỐI_TƯỢNG tạo thành khóa chính của quan hệ LỊCHQUÉT (Hình 3.7).
- 47 -
3.3.4.5. Thiết kế động cơ suy diễn
Cơ chế Tìm kiếm – Suy diễn – Chẩn đoán (SID, Searching – Inferring –
Diagnosing) dựa vào nguyên lý học tình huống như sau:
- Đối với tập dữ liệu lạ, tiến hành kiểm tra chẩn đoán bệnh cũ, đồng thời ghi
nhận tri thức về “cộng đồng dịch tể” mới tiếp xúc này.
- Khi đã có “thông tin sức khỏe” (tri thức bệnh học), thường xuyên giám sát
cộng đồng về mặt “vệ sinh dịch tể”.
- Khi phát sinh tình huống cá thể lạ gia nhập cộng đồng, cần kiểm tra “sức khỏe”
của đối tượng mới xuất hiện để hạn chế việc nhiễm bệnh từ bên ngoài.
- Khi có dịch, không cần thực hiện toàn bộ các xét nghiệm bệnh lý mà chỉ cần
kiểm tra từng cá thể xem có mắc bệnh mới hay không (Hình 3.8).
3.3.4.6. Giải thích thuật toán SID
Phần đầu của thuật toán SID (xem Phụ lục 3) gồm các lệnh khởi tạo không
gian tìm kiếm (dòng 1), tích hợp tri thức chẩn đoán cho CSTT (dòng 2) và phân lớp
các điểm dữ liệu có thể nhiễm vào CLASS_1, các điểm sạch vào CLASS_2 (dòng
3). Phần thân chứa vòng lặp (dòng 4) quét các điểm dữ liệu trong CLASS_1. Ứng
với mỗi điểm dữ liệu eObject, SID thực hiện các thao tác:
- Tìm trong CSDL thông tin về đối tượng chẩn đoán (dòng 5).
- Nếu không thấy (dòng 6), kiểm tra virus (dòng 8), xử lý bệnh (dòng 9) và báo
cáo (dòng 10). Sau đó cập nhật CSDL chẩn đoán (dòng 12, 13).
- Ngược lại, đây là đối tượng đã xử lý (dòng 11). Cần kiểm tra 3 trường hợp:
Hình 3.7: Mô hình quan hệ cơ sở dữ liệu VerifyDB
- 48 -
Hình 3.8: Lưu đồ chẩn đoán đối tượng E-class
Kiểm tra virus
Kết thúc
Đ
S
Dữ liệu không đổi kể từ lần kiểm tra gần đây với version cũ
Dữ liệu đã thay đổi kể từ lần kiểm tra gần đây với version cũ
Tìm eObject trong VerifyDB
eObject ∈ VerifyDB ?
Dữ liệu đã thay đổi kể từ lần kiểm tra gần nhất cùng version
Bắt đầu
eObject
Do virus ?
Chất vấn
Do user ?
Xử lý bệnh
Cập nhật CSDL
Cô lập eObject
Phát hiện ?
Xử lý bệnh
Cập nhật CSDL
Kiểm tra virus
Phát hiện ?
Do virus ?
Chất vấn
Do user ?
Xử lý bệnh
Cập nhật CSDL
Cô lập eObject
Báo cáo
Đ
S
Đ
S
Đ
S Đ
Đ
S
S
S
Đ
Đ
S
Đ
S
Đ
Cập nhật CSDL
S
Kiểm tra virus Phát hiện ?
Đ S
- 49 -
• Trường hợp 1: Dữ liệu đã thay đổi kể từ lần kiểm tra cùng version gần nhất
(dòng 15). Cảnh báo (dòng 16). Tương tác hội thoại, thu nhận tri thức:
- Do virus (dòng 17): xử lý bệnh, báo cáo, cập nhật, tăng trưởng CSTT
- Do con người (dòng 22): cập nhật dữ liệu chẩn đoán
- Chưa xác định (dòng 24): khóa đối tượng, báo cáo, tăng trưởng CSTT
• Trường hợp 2: Dữ liệu không đổi kể từ lần kiểm tra gần đây với version cũ
(dòng 30). Kiểm tra lại để phát hiện các virus mới cập nhật. Nếu phát hiện
(dòng 32), xử lý virus và cập nhật lại thông tin chẩn đoán (dòng 36).
• Trường hợp 3: Dữ liệu đã thay đổi kể từ lần kiểm tra gần đây với version cũ
(dòng 39). Kiểm tra lại (dòng 41), nếu phát hiện virus xử lý giống như trường
hợp 2. Ngược lại, xử lý như trường hợp 1 (dòng 46, 47 đến dòng 58).
3.3.4.7. Các tác tử hoạt động
Các luật RS1 chỉ phát huy trong thời gian rất ngắn (khoảng vài miligiây của
tiến trình xử lý), trong khi các luật RS2 có hiệu quả trong thời gian dài (từ vài giây
đến hàng tháng, thậm chí hàng năm tùy theo tốc độ lây của virus và tần suất sử dụng
hệ thống). Các tình huống phát sinh trong lớp luật RS1 thuộc loại “kiến thức tức
thời” (instant knowledge), dễ bị phủ lấp bởi vô số các tình huống khác của hệ thống.
Ngược lại, các thay đổi trên đối tượng thể hiện trong lớp luật RS2 thuộc loại “kiến
thức dài lâu” (permanent knowledge) bền vững theo thời gian. Để thu thập thông tin
cho CSDL VerifyDB, MAV sử dụng cơ chế đa tác tử (multi-agent mechanism) với
hai tác tử VSA (Virus Scanning Agent) và VAA (Virus Autoprotect Agent) [56].
Hoạt động ở mức nền trước (foreground), VSA có nhiệm vụ quét virus, thu
thập kiến thức dài lâu và giải thích các thay đổi của hệ thống dựa vào lớp luật RS2.
Ở mức nền sau (background), VAA chạy thường trực [19] nhằm đón bắt các 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ả hai tác
tử sử dụng chung động cơ suy diễn SID và tương tác nhau, tránh tranh chấp tiến
trình hệ thống [37]. Ví dụ, trước khi VSA phát sinh tình huống WriteFile, nó gửi một
thông điệp báo cho VAA yêu cầu bỏ qua tình huống này. Khi VAA xử lý xong một
đối tượng, nó thông báo cho VSA không cần kiểm tra đối tượng đó (xem Phụ lục 3).
- 50 -
3.3.4.8. Kết quả thực nghiệm
Tập dữ liệu thực nghiệm X có 56100 mẫu thử với dung lượng tổng cộng
8.000.000 KB. Máy tính thử nghiệm sử dụng CPU Intel Celeron 2,4 GHz với 512
MB bộ nhớ, HĐH Windows XP Professional. Các bước thực hiện như sau:
- Đo thời gian chạy MAV nhiều lần trên tập X không sử dụng SID. Lúc này hệ
hoạt động như một AV thông thường, tạm gọi là PreMAV.
- Đo thời gian chạy MAV nhiều lần trên tập X có sử dụng SID.
- Đo thời gian chạy của các AV thử nghiệm nhiều lần trên cùng tập X.
- Tổng hợp, phân tích số liệu, đối chiếu kết quả.
Các anti-virus thử nghiệm gồm Norton Antivirus (Symantec, Mỹ) [89],
ScanVirus (McAfee, Mỹ) [80] và BKAV (BKIS, Việt Nam) [93]. Phân tích số liệu
phân bố chi phí thời gian thực hiện trên cùng bộ dữ liệu của các AV thử nghiệm
(bảng 3.6 và biểu đồ ở hình 3.9), có thể thấy:
- Ngoại trừ MAV, đường biểu diễn của các hệ thử nghiệm (kể cả PreMAV)
gần như là các đường thẳng bất biến theo thời gian. Điều này chứng tỏ các hệ
trên chưa có khả năng học (các AV tốn thời gian không cần thiết cho việc
quét đi quét lại tập dữ liệu đã từng thao tác).
- Đường biểu diễn của MAV giảm mạnh sau lần chạy đầu tiên. Ở các lần chạy
sau, đường biểu diễn của hệ giảm chậm đến giá trị hằng số, chứng tỏ quá
trình vận dụng kiến thức của MAV có xu hướng đạt đến trạng thái ổn định
khi hệ đã tích lũy đủ kiến thức cần thiết.
- Sử dụng SID, MAV phải tốn thời gian cho các lệnh select, insert và update
để tìm kiếm và tích lũy kiến thức. Nỗ lực này tốn 838 – 772 = 66 giây (chiếm
8.55% thời gian so với không sử dụng SID). Tuy nhiên phí tổn này rất đáng
giá vì nó giúp MAV tiết kiệm thời gian đến 12 lần ở các lần chạy sau so với
không sử dụng SID:
( )
( ) 273,1259776
54764
61779
74769
411
1=⎟
⎠⎞
⎜⎝⎛ +++=∑
=
N
i i
i
MAVCostpreMAVCost
N
- 51 -
Bảng 3.6: Thời gian chạy của các hệ anti-virus thử nghiệm trên cùng tập mẫu
Anti-virus Lần 1 Lần 2 Lần 3 Lần 4 Lần 5 BKAV 245 248 247 248 246 PreMAV 772 769 779 764 766 MAV 838 74 61 59 59 NAV 1365 1347 1315 1317 1320 SCAN 1506 1450 1462 1488 1475
3.3.4.9. Đánh giá phương pháp chẩn đoán lớp virus E-class
Dựa vào nguyên lý nhận dạng hướng ý định (intention-based approach), bài
toán E-class sử dụng thuật toán SID học tình huống trên tập dữ liệu quan sát bằng
mô hình AMKBD. Công tác đánh giá bài toán được thực hiện theo quy trình sau:
Đầu tiên, gỡ các mẫu F-virus trong CSDL SE của MAV. Tiếp theo, cho virus
nhiễm vào máy ảo VMWare Workstation ver 5.5.3 đã cài sẵn MAV trong trạng thái
vô hiệu tác tử. Sau đó kích hoạt MAV, quét hệ thống và ghi nhận số cảnh báo (chưa
biết tên chính xác). Cuối cùng, phục hồi CSDL SE cho MAV, đếm số tập tin được
phát hiện nhiễm (biết tên virus chính xác), đối chiếu với số tập tin thực nhiễm và
tính toán kết quả thực nghiệm (Bảng 3.7).
Hình 3.9: Biểu đồ so sánh chi phí thời gian của các hệ AV thử nghiệm
- 52 -
Bảng 3.7: Kết quả thực nghiệm bài toán chẩn đoán lớp virus E-class
Lần Số tập tin thực nhiễm
Số virus cập nhật
Số virus phát hiện chính xác
Số tập tin được cảnh báo
Số tập nhiễm bị bỏ sót
Độ chính xác (%)
Độ dự báo (%)
Độ tin cậy (%)
1 1792 112 107 1668 17 95.54 98.99 99.05 2 1578 108 100 1467 11 92.59 99.26 99.30 3 1625 100 95 1512 18 95.00 98.82 98.89 4 1723 110 105 1602 16 95.45 99.01 99.07 5 1682 105 98 1569 15 93.33 99.05 99.11 Trung bình: 94.38 99.03 99.09
Mặc dù có độ tin cậy cao nhưng phương pháp này cũng còn một số hạn chế:
- Một số F-virus tự kết xuất sâu trình ra hệ thống đích, khiến thủ tục SID không
tìm thấy đối tượng mới trong CSDL VerifyDB nên bỏ sót mã độc.
- Khi tác tử canh phòng bị vô hiệu (stop/disable), hệ sẽ không phát hiện được
các virus sử dụng kỹ thuật buffering và khôi phục trạng thái file sau khi nhiễm.
- Khi hệ thống thay đổi, AMKBD sẽ gây bối rối cho người dùng ít kinh nghiệm.
- Hệ thống đã nhiễm một loại file virus lạ trước khi cài đặt MAV.
Để khắc phục các hạn chế trên, có thể thực hiện các biện pháp sau:
- Kết hợp bài toán E-class với bài toán chẩn đoán sâu trình.
- Thiết kế tác tử canh phòng dạng dịch vụ (service) chạy thường trực
- Hướng dẫn người dùng cập nhật thông tin cho CSDL VerifyDB sau khi nâng
cấp phần mềm (chỉ phù hợp cho người dùng am hiểu).
3.3.5. Bài toán 5: Chẩn đoán lớp virus A-class
3.3.5.1. Lược sử vấn đề nhận dạng mã độc
Lớp A-class chứa các virus có định dạng ứng dụng (Phụ lục 1 và 2). Ngoại
trừ file virus đã được tách ra xử lý riêng trong bài toán E-class, lớp này chứa các đối
tượng thực thi độc lập (stand alone program) thuộc các loại trojan horse/worm [67]
như germs, dropper, injector, rootkit, intruder, zombie…, kể cả các ứng dụng độc
hại như adware, spyware, pornware…, gọi chung là phần mềm độc (malware).
- 53 -
Nhận dạng malware là vấn đề mở của các anti-virus hiện nay [33]. Khác với
file virus khi lây nhiễm luôn để lại dấu vết trên vật chủ, malware là tập thi hành độc
lập nên rất khó phân biệt với các ứng dụng hợp thức. Để nhận dạng malware, các
tiếp cận truyền thống thường dịch ngược (disassembe) mã đích (target code) để
phân tích hành vi [43]. Tuy nhiên nếu đối tượng được mật hóa (encrypted) bằng các
công cụ nén ứng dụng như Petite, Aspack, Pklite hoặc UPX (Ultimate Packer for
eXecutables), việc nhận dạng mã độc sẽ rất khó khăn và phức tạp [65].
Thay vì phân tích thủ công từng chỉ thị mã độc, tiếp cận mô tả đặc điểm tổng
quát hướng heuristic (heuristic-based generic description) [50] sử dụng máy ảo để
giám sát quá trình thi hành mẫu chẩn đoán và ‘tóm lấy’ (capture) đoạn mã nhận
dạng của virus khi quá trình tự giải mã (decryption) hoàn tất [69]. Ưu điểm của kỹ
thuật này là không phụ thuộc vào thuật toán mã hóa/giải mã của công cụ nén. Tuy
nhiên do cài đặt phức tạp, tiêu hao tài nguyên và chạy chậm nên kỹ thuật chẩn đoán
sâu trình bằng máy ảo chỉ thích hợp cho các hệ thống có cấu hình đủ mạnh.
Các sâu trình mật hóa sử dụng một thủ tục khởi tạo để giải mã phần lớn
chương trình của nó [58]. Việc mã hóa và giải mã có thể trải qua nhiều giai đoạn gối
nhau: dữ liệu ở giai đoạn này là mã lệnh giải mã ở các giai đoạn sau. Do đó, ngoại
trừ thủ tục khởi tạo (có kích thước rất nhỏ), phần lớn nội dung sâu trình đều được
“đóng gói” dưới dạng dữ liệu mật hóa nhằm làm nản lòng các chuyên viên phân tích
virus của các hãng bảo mật.
Trong bối cảnh các loại mã độc được sản xuất ồ ạt, cùng với sự xuất hiện
ngày càng nhiều các phần mềm mật hóa phức tạp, việc phân tích ngữ nghĩa tập chỉ
thị không còn hiệu quả. Trong các nghiên cứu gần đây, một số tác giả đề xuất hướng
giải quyết bài toán nhận dạng malware bằng mô hình ‘epsilon-gamma-pi’ (exploit–
data control–payload). Đầu tiên, phân tích sâu trình thành ba bộ phận có chức năng
xác định [35], sau đó tách phần giống nhau cơ bản của các sâu trình (epsilon và pi)
rồi tập trung xử lý phần gamma khác biệt (chiếm khối lượng lớn nhất của sâu trình).
Trong luận án này, ý tưởng xử lý mã độc như các luồng dữ liệu nguy hiểm
còn được vận dụng trong mô hình không gian véctơ, được trình bày ngay sau đây.
- 54 -
3.3.5.2. Phát biểu bài toán
Mục tiêu của bài toán chẩn đoán lớp A-class là (i) kiểm tra xem đối tượng
aObject có phải là malware hay không. Nếu không, hệ phải (ii) đưa ra dự báo
aObject có thể thuộc nhóm malware nào hay không, tỷ lệ mã độc là bao nhiêu. Gọi
wRate∈(0,1] là tỷ lệ mã độc của aObject, λ∈[0,1] là hằng số ngưỡng an toàn cho
trước, bài toán được phát biểu như sau:
Vào: - Đối tượng chẩn đoán aObject
- Cơ sở dữ liệu virus A-class (SA)
- Quy luật phân nhóm virus trong CSDL SA
Ra: - wRate = 1, kết luận aObject là known malware
- wRate ≥ λ, dự báo aObject là unknown malware
Ngoài CSDL virus SA, bài toán A-class còn sử dụng tập luật phân nhóm virus
để phân hoạch trước các lớp dữ liệu khả dĩ mà aObject có thể thuộc về. Sau đó quá
trình xử lý sẽ ước lượng độ đồng dạng dữ liệu của aObject so với từng virus trong
các lớp dữ liệu đã phân hoạch để gán đối tượng vào một trong các lớp này. Phương
pháp phân nhóm virus trong CSDL SA sẽ được trình bày trong Chương 4.
3.3.5.3. Tổ chức cơ sở dữ liệu virus
Giống như bài toán E-class, đối tượng chẩn đoán của bài toán A-class là các
tập tin thi hành. Do đó các mẫu virus trong CSDL SA sẽ có dạng:
Malware = <Tên gọi, Kích thước, Ngày cập nhật, Phiên bản, Tập đặc trưng>
Trong MAV, CSDL SA là một bảng dữ liệu 300 cột. Bốn thuộc tính đầu có
công dụng giống như các bài toán C, D và E (dùng cho mô hình AMKBD). Thuộc
tính Tập đặc trưng được chia làm hai nhóm 40 cột và 256 cột.
- 40 cột đầu (kiểu word/dword) chứa đặc trưng thi hành như FileSize, FileType,
FileAttribute, MachineWord, NumberOfSections… (xem Phụ lục 2). Phần này
dùng cho quá trình phân nhóm virus ở giai đoạn học (Chương 4).
- 256 cột kế (kiểu word) chứa số lần xuất hiện của 256 từ máy 8-bit của virus:
a0, a1, a2,…, a255. Phần này dùng cho bài toán A-class và Null hóa (Chương 4).
- 55 -
3.3.5.4. Biểu diễn dữ liệu virus bằng mô hình không gian vectơ
Mô hình không gian vectơ (KGVT) dùng phân loại văn bản do Gerard Salton
và cộng sự đề xướng [30], về sau mở rộng cho phân loại ảnh [61][70]. Trong mô
hình này, các từ phân biệt của văn bản được tổ chức thành các cột trên ma trận. Giá
trị của các ô chứa số lần xuất hiện của từ tương ứng (gọi là tần suất của từ).
Xét virus như một tập dữ liệu ‘văn bản’, bài toán A-class biểu diễn các ‘từ
virus’, tìm độ tương đồng dữ liệu của đối tượng so với các nhóm virus, rồi ước
lượng tỷ lệ xuất hiện từ virus trong đối tượng để dự báo virus mới. Đầu tiên, dữ liệu
được tổ chức thành v từ phân biệt để có w = (w1, w2,…, wv). Kế tiếp, biểu diễn mỗi
virus trong CSDL dưới dạng vectơ di = (wi1, wi2,…, wiv), trong đó wik là tần suất của
từ thứ k trong bộ dữ liệu kiểm tra. Sau đó ánh xạ các vectơ virus vào ‘ma trận từ -
tài liệu’ (word-document matrix) hai chiều. Mỗi hàng ứng với một bộ dữ liệu virus
mẫu. Mỗi cột ứng với một từ duy nhất.
Theo Gerard Salton, có thể chọn từ đơn (single term) hoặc phức hợp
(complex entities) nhưng phương án từ đơn là tổng quát hơn. Như vậy có thể chọn
từ virus theo byte, word hay dword. Khi số bit của từ máy (machine word) càng cao
thì số cột ma trận càng nhiều (256, 65.536 hay 4.294.967.296 cột). MAV sử dụng từ
8 bit (256 trạng thái), kiểu word (có thể lưu tối đa 65.536 tần suất từ).
3.3.5.5. Rút trích đặc trưng
Quá trình rút trích đặc trưng sử dụng nguyên lý Tần suất từ - Tần suất tài liệu
nghịch đảo TF-IDF (Term Frequency-Inverse Document Frequency) [34]. Các từ
phân biệt là các đặc trưng, TF-IDF là đại lượng đo lường sự xuất hiện của các từ
này. Mục tiêu của bài toán là tính độ đồng dạng mã độc giữa đối tượng chẩn đoán
aObject (ký hiệu M) và các nhóm virus f trong tập A. Đầu tiên, M được biểu diễn
dưới dạng vectơ tần suất từ F(M), trong đó mỗi thành phần F(M,w) biểu diễn số lần
(0..65536) từ w xuất hiện trong M. Tiếp theo, tính W(f,w) trọng số các từ trong từng
tập f. Cuối cùng, chọn trong tập f (tập có tỷ lệ đồng dạng dữ liệu với M cao nhất)
mẫu đại diện gần với M nhất, đối sánh hằng số ngưỡng λ để có kết luận cuối cùng.
- 56 -
Đại lượng FF(f,w) gọi là tần suất phân đoạn (fractional frequency) của từ w
trong số các virus có trong tập f, là số lần xuất hiện của từ w trong tập f chia cho
tổng số từ có trong f :
∑∈
=
fwwfF
wfFwfFF
')',(
),(),( (3.1)
Đại lượng tần suất từ TF (term frequency) được định nghĩa là:
TF(f, w) = ),(),(
wAFFwfFF
(3.2)
Trong đó A ⊇ f (A là nhóm virus cha của f trong bài toán phân cụm CSDL
virus), FF(A,w) là số lần từ w xuất hiện trong A. Gọi tần suất tài liệu (document
frequency) DF(w) là đại lượng tính bằng số nhóm virus có từ w xuất hiện ít nhất 1
lần chia cho tổng số các tập dữ liệu (số con của A), trọng số W(f,w) của các từ trong
tập f được tính theo công thức:
W(f,w) = 2)(),(
wDFwfTF
(3.3)
3.3.5.6. Ước lượng tỷ lệ mã độc
Nguyên lý TF-IDF ước lượng độ đồng dạng dữ liệu (similarity measure) theo công thức:
SIM(M, f) = ∑∑∑
∈∈
∈
MwMw
Mw
wfWwMF
wfWwMF
)),(),,(min(
),(),( (3.4)
Tiếp theo, điểm chẩn đoán M sẽ được gán vào tập f có SIM lớn nhất. Sau đó
tính tỷ lệ mã độc wRate của M so với các mẫu virus trong f để đối sánh ngưỡng và
xác định virus có số từ giống với số từ của M nhất. Giá trị này được tính bằng tỷ số
giữa số lần xuất hiện của từ w trong fk và tổng số từ của fk. Tức là:
wRatei(M, vi) = FF(vi, w) ∀ vi là mẫu virus thứ i trong tập f (3.5)
Cuối cùng, chọn wRatei lớn nhất. Nếu:
- wRate = 1, kết luận M là mã độc
- wRate ≥ λ, dự báo M chứa (wRate ×100) % mã độc của virus vi [3].
- 57 -
3.3.5.7. Ví dụ minh họa bài toán A-class
Xét bài toán A-class áp dụng mô hình không gian vectơ như sau:
- CSDL virus A chứa 12 mẫu virus đã được quá trình phân cụm (ở giai đoạn
học) tách thành 3 nhóm f1, f2 và f3 (Bảng 3.8).
- Ngưỡng an toàn cho trước λ = 0.85.
- Mẫu dữ liệu M = 6E, 72, 0D, 0A, 79, 75, 76, 75, 65, 6C, 6E, 74, 62, 67, 6C, EB
Yêu cầu đặt ra là xác định xem M có phải là virus mới không, nếu có thì
thuộc nhóm nào (f1, f2 hay f3), độ tương đồng dữ liệu và tỷ lệ mã độc là bao nhiêu.
Đầu tiên, căn cứ vào các từ sử dụng của M (13 từ), các mẫu virus trong
CSDL được tổ chức thành các vector tần suất 13 từ. Sau đó ánh xạ các vectơ này
vào ma trận từ-tài liệu như hình 3.10. Kế tiếp, tính tần suất tài liệu DF(w) của các từ
w. Do có ba tập f nên các giá trị DF(w) là số tập f có từ w xuất hiện ít nhất một lần
chia cho 3. Sau đó tính tần suất phân đoạn FF(f,w) của các từ w trong từng tập f, là
số lần xuất hiện của từ w trong từng tập f chia cho tổng số từ có trong tập đó (số từ
sử dụng của f1, f2 và f3 tương ứng là 19, 23 và 26). Tính tiếp các giá trị FF(A,w), là
số lần xuất hiện w trong toàn bộ các mẫu. Sau đó tính trọng số W(f,w) của các từ w
trên từng tập f , rồi tính các bộ giá trị tử số trong công thức (3.3) cho các từ w trong
từng tập f (Bảng 3.9).
Bảng 3.8: Các nhóm virus trong CSDL và mẫu dữ liệu chẩn đoán
f stt a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15
1 E9 96 00 00 00 0D 0A 76 75 75 76 65 6C 6E 74 63 2 E9 96 00 00 00 0D 0A 79 75 75 76 65 6C 6E 74 62 3 EB 72 0D 0A 79 75 75 76 65 6C 6E 74 62 67 66 6B 1
4 EB 4C 0D 0A 79 75 75 76 65 6C 6E 74 62 67 66 6B 5 68 60 10 40 00 9C 60 E8 00 00 00 00 5D 81 ED 0C 6 60 E8 01 00 00 00 E8 83 C4 04 E8 01 00 00 00 E9 7 60 E8 09 00 00 00 86 26 04 00 E9 06 02 00 00 33
2
8 60 E8 09 00 00 00 EC EB 00 00 E9 06 02 00 00 33 9 55 51 59 5B 56 EB 02 E8 84 57 5E 5E F7 D6 F7 D6
10 55 8B EC EB E9 00 00 00 00 00 EB 0C 00 00 00 00 11 55 8B EC 6A FF 68 58 A6 42 00 68 5A 5B 42 00 64
3
12 55 8B EC 6A FF 68 30 57 41 00 68 00 1E 41 00 64 ? M 6E 72 0D 0A 79 75 76 75 65 6C 6E 74 62 67 6C EB
- 58 -
0A 0D 62 65 67 6C 6E 72 74 75 76 79 EB
1 1 0 1 0 1 1 0 1 2 2 0 0 1 1 1 1 0 1 1 0 1 2 1 1 0 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 0 1 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Hình 3.10: Ma trận từ-tài liệu của CSDL virus mẫu
Bảng 3.9: Số liệu tính toán trên ví dụ mẫu bài toán A-class
w F (M,w)
DF (w)
DF (w)2 FF(f1,w) FF(f2,w) FF(f3,w) FF
(A,w) W(f1,w) W(f2,w) W(f3,w) TSf1 TSf2 TSf3
0A 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 0D 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 62 1 1/3 0.111 3/19=0.1579 0/23=0 0/26=0 3 0.4737 0 0 0.4737 0 0 65 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 67 1 1/3 0.111 2/19=0.1053 0/23=0 0/26=0 2 0.4737 0 0 0.4737 0 0 6C 2 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.9474 0 0 6E 2 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.9474 0 0 72 1 1/3 0.111 1/19=0.0526 0/23=0 0/26=0 1 0.4737 0 0 0.4737 0 0 74 1 1/3 0.111 4/19=0.2105 0/23=0 0/26=0 4 0.4737 0 0 0.4737 0 0 75 2 1/3 0.111 8/19=0.4211 0/23=0 0/26=0 8 0.4737 0 0 0.9474 0 0 76 1 1/3 0.111 5/19=0.2632 0/23=0 0/26=0 5 0.4737 0 0 0.4737 0 0 79 1 1/3 0.111 3/19=9.1579 0/23=0 0/26=0 3 0.4737 0 0 0.4737 0 0
EB 1 3/3 1.000 2/19=0.1053 1/23= 0.0435
3/26= 0.1875 6 0.0175 0.0072 0.0313 0.0175 0.007 0.0313
∑F(M,w)=16 ∑W(f,w)= 5.7018 0.0072 0.0313 ∑F(M,w)W(f,w)= 7.123 0.0072 0.0313
Độ tương đồng dữ liệu của M so với các mẫu virus trong mỗi tập f là:
SIM(M, f1) = 7.123 / min(16, 5.7018) = 1.2492 SIM(M, f2) = 0.0072 / min(16, 0.0072) = 1.0000 SIM(M, f3) = 0.0313 / min(16, 0.0313) = 1.0000
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
Lần Số virus thử nghiệm
Số virus cập nhật
Số virus phát hiện
Số virus cảnh báo
Số virus bỏ sót
Độ chính xác (%)
Độ dự báo (%)
Độ tin cậy (%)
1 1335 890 874 292 169 98.20 63.34 87.34 2 1238 825 801 276 161 97.00 63.10 86.96 3 1316 877 860 284 172 98.02 62.28 86.93 4 1298 865 852 278 168 98.50 62.38 87.08 5 1327 885 866 284 177 97.90 61.62 86.67 Trung bình: 97.92 62.54 87.00
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)
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
Application2
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
Application2
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:
- Tj(k) và Ti(p) là thời gian thực hiện tương ứng của các vòng lặp theo j và i.
- Tj(k) = O(f(k)), Ti(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
Application2
NIL
Service 3-9 NIL
Service 4
NIL
Service 5
NIL
Application6-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 ← (L1 ^ L2 ^ … ^ Ln)
Trong đó:
- H: gọi là phần đầu (head), hệ quả (consequent) hay điều kiện sau (postcondition) của luật.
- Li: gọi là trực kiện (literal) của luật. - L1 ^ L2 ^…^ Ln: 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} = 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
có trong RuleSet nên được đưa vào danh sách luật:
1 DLL ^ Registry ^ Application 2 EXE ^ Startup ^ Application
Tương tự, khi duyệt đến mẫu tin thứ sáu, RuleSet có dạng:
1 DLL ^ Registry ^ Application 2 EXE ^ Startup ^ Application 3 EXE ^ Starup ^ Service 4 DLL ^ Registry ^ Service 5 EXE ^ Registry ^ Service 6 EXE ^ WinFile ^ Application
- 76 -
Khi duyệt mẫu tin thứ bảy, do R7= R1= 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 2 EXE ^ Startup ^ Application 3, 9 EXE ^ Starup ^ Service 4 DLL ^ Registry ^ Service 5 EXE ^ Registry ^ 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).
- 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
nhất. NNSRM - Nearest Neighbor Rule-based Structural Risk Minimization [40] là
phương pháp đơn giản sử dụng kỹ thuật sắp xếp các cặp khoảng cách trong giai
đoạn khởi tạo. Trong MAV, NNSRM được áp dụng như sau:
• Giai đoạn khởi tạo:
- Tính toán các cặp khoảng cách ||xi –xj||χ cho các xi và xj
- Sắp xếp các khoảng cách tăng dần d(0), d(1),…
• Giai đoạn phân lớp:
- Khởi đầu u=1 và S={xi, xj} với ||xi –xj||χ = d(0)
- Đối với mỗi điểm x thuộc không gian quan sát:
- Tìm xi trong lớp 1 và xj trong lớp 2 sao cho ||xi –xj||χ = d(u)
- Cập nhật S ← S ∪ {xi, xj}
- Tăng u
- 82 -
Khi tất cả các điểm dữ liệu được gán nhãn, lớp thứ hai (không có nguy cơ
nhiễm virus) sẽ được loại bỏ để giảm kích thước không gian quan sát. Thuật toán
đảm bảo cho kết quả do tập tham khảo được tổ chức gồm tất cả các mẫu thuộc lớp
có nguy cơ nhiễm virus, do đó các hàm phân lớp sẽ có sai số luyện bằng 0 [42].
4.4.1.2. So khớp luật phân nhóm
Mục tiêu của bước này là phân tích xem mỗi điểm dữ liệu có thuộc về một
nhóm (cụm) virus đã biết nào hay không. Mỗi điểm dữ liệu chẩn đoán được biểu
diễn dưới dạng vector a1(x), a2(x),…, an(x). Gọi Rv(x) là luật phân bố trị thuộc tính
của điểm chẩn đoán x, bài toán so khớp luật được phát biểu như sau:
Vào: - Vector dữ liệu chẩn đoán x = ⟨a1(x), a2(x),…, an(x)⟩ - Luật phân bố trị thuộc tính của điểm chẩn đoán Rv(x) - Tập luật phân nhóm RuleSet
Ra: - Rv(x)∈ RuleSet: x thuộc một trong các nhóm virus đã biết - Rv(x) ∉ RuleSet: x không thuộc nhóm virus đã biết nào
Hình 4.13 mô tả thuật toán ASMCR (Algorithm to Search for a Member
Clustering Rule from Ruleset) so khớp luật Rv(x) trong Ruleset.
i ← 0 Found ←False REPEAT
Rv ← ∅ FOR j=1 TO n DO Rv ← Rv + aj(x) i ← i+1 Found ← (Rv=RuleSet[i])
UNTIL Found OR (i>SizeOf(RuleSet)) IF NOT Found THEN Return(Nil)
ELSE Return(RuleSet[i].Header) ENDIF
Hình 4.13: Thuật toán ASMCR so khớp luật phân nhóm trên tập Ruleset
- 83 -
Sau khi thực hiện thuật toán ASMCR, có hai trường hợp xảy ra:
1. Kết quả trả về một danh sách: điểm chẩn đoán có thể chứa một trong các
virus thuộc danh sách này. Chuyển x sang bước nhận dạng dựa trên luật.
2. Kết quả trả về NIL: x không thuộc nhóm virus đã biết nào, xử lý đối tượng
bằng kỹ thuật hợp nhất dữ liệu để ước lượng mẫu virus tương tự gần nhất.
4.4.2. Chẩn đoán virus bằng kỹ thuật hợp nhất dữ liệu
4.4.2.1. Tinh chế dữ liệu trong tiến trình khám phá tri thức
Quá trình rút thông tin có giá trị từ CSDL của các hệ học phụ thuộc vào
nhiều yếu tố, đặc biệt là chất lượng dữ liệu trên tập mẫu. Ngoại trừ các nguồn dữ
liệu tin cậy, phần lớn dữ liệu được sử dụng từ nhiều nguồn khác nhau với chất
lượng không đồng đều. Chỉ một phần dữ liệu trong số này là thật sự có ích. Phần
còn lại thường bị nhiễu do dữ liệu thu thập không chính xác hoặc không đầy đủ.
Nếu xử lý nhiễu không tốt, chất lượng của quá trình khai phá dữ liệu sẽ bị ảnh
hưởng, làm mất tính tổng quát của tri thức được khám phá.
Trong các hệ KDD, tinh chế dữ liệu (data refinement) là giai đoạn xử lý các
trường hợp dư thừa và không đầy đủ thông tin (xem Chương 2, Tiến trình khám phá
tri thức). Nghiên cứu các trường hợp dữ liệu không chắc chắn hoặc thiếu sót, các
bài toán xử lý nhiễu tìm cách lấp đầy các giá trị NULL bằng giá trị có nghĩa.
4.4.2.2. Tinh chế dữ liệu NULL bằng kỹ thuật hợp nhất dữ liệu
Có nhiều phương pháp tinh chế dữ liệu NULL. Hợp nhất dữ liệu (Data
Fusion) là kỹ thuật thu thập dữ liệu của nhiều bảng từ nhiều nguồn khác nhau để
nhận được một bảng dữ liệu hoàn chỉnh. Xét hai bảng dữ liệu: bảng thứ nhất chứa
tập p+q các biến trên n0 bộ, bảng thứ hai chỉ chứa tập con các biến p trên n1 bộ.
Trong một số trường hợp, n0 là nhỏ so với n1. Gọi X đại diện cho các biến đầy đủ và
Y đại diện cho các biến thiếu sót, ta có hình ảnh sau:
X0 Y0 X1 ?
- 84 -
Một trong các phương pháp lấp đầy các biến Y là sử dụng các thuật giải lân
cận cực tiểu để chép (copy) và dán (paste) dữ liệu từ bảng Cho (nguồn) vào bảng
Nhận (đích). Hình 4.14 mô tả ý tưởng cơ bản của phương pháp này: ứng với mỗi
biến i NULL của bảng Nhận, tìm j trong các biến X của bảng Cho sao cho khoảng
cách d(i, j) là tối thiểu (G. Saporta, 2002) [32].
4.4.2.3. Virus lạ và dữ liệu NULL
Các anti-virus sử dụng CSDL mẫu virus dạng ⟨a1(x), a2(x),…, an(x)⟩. Mỗi khi
nhận được virus mới, các chuyên gia anti-virus sẽ phân tích và cập nhật chính xác
mẫu virus xi vào thư viện. Nhận dạng virus đã biết (known virus) là quá trình truy
vấn dữ liệu chắc chắn (đầy đủ thông tin) trên CSDL. Virus lạ (unknown virus) là
virus chưa được cập nhật vào CSDL.
Gọi S là tập mẫu của anti-virus AV, x được gọi là virus lạ đối với AV khi và
chỉ khi x ∉ S. Tổng quát, gọi X là tập các virus lạ, vậy thì S ∩ X = ∅. Bài toán so
khớp chỉ thành công khi có đủ dữ liệu chính xác. Giả sử virus v biến thể thành virus
x = (a1, a2, …, bu,…, an). Khi vận dụng luật suy diễn (4.1) để chẩn đoán virus x, kết
quả hiển nhiên là ¬qv do tồn tại ít nhất một bu ≠ au (u=1÷n). Virus máy tính là đối
tượng mang thông tin. Khi thiếu thông tin (do virus chưa được cập nhật vào CSDL),
các AV sẽ không phát hiện được virus mới.
X0 Y0
X1 ?
J
I
Nearest neightbour Imputation
Donor file
Recipient file
Hình 4.14: Mô hình hợp nhất dữ liệu
- 85 -
Thực tế, ngoại trừ số ít các mầm độc khởi thủy (germ), phần lớn virus máy
tính được phát triển qua nhiều phiên bản [53] hình thành nên các họ (family) virus
(ví dụ các họ virus Netsky, Bugbear, Mydoom, Sobig,…). Mỗi thành viên trong họ
đều kế thừa ít nhiều mã lệnh từ các phiên bản trước. Hình 4.15a biểu thị histogram
của sâu trình Klez.a.worm.W32, hình 4.15b là của Klez.h.worm.W32 - biến thể thứ
bảy kể từ phiên bản đầu tiên của họ virus này. Biểu diễn mối tương quan giữa mã
chỉ thị (0-255) và vị trí (0-255) của mã chỉ thị trong tập mã lệnh virus, biểu đồ này
cung cấp hình ảnh trực quan về sự tương tự mã lệnh của các virus trong cùng họ.
Giả sử các virus x và virus v chỉ khác biệt nhau một trị thuộc tính thứ u (tức
là X-V = {au, bu}). Do sai sót khi cập nhật V, chuyên gia đã đưa vào trị bu thay vì au.
Kết quả là khi sử dụng CSDL này, AV sẽ phát hiện virus x thay vì virus v.
Tình huống giả định này cho thấy mối liên hệ giữa dữ liệu NULL trong các
hệ KDD và các trị thuộc tính mới của biến thể virus. Trong ví dụ trên, các trị thuộc
tính bu của một virus mới có ‘tác hại’ tương đương với các ô dữ liệu không chắc
chắn trong CSDL virus. Nói cách khác, nếu xem các giá trị khác biệt bu trên mẫu
chẩn đoán như dữ liệu NULL, việc dự báo virus mới có thể thực hiện được bằng các
thuật giải xử lý nhiễu trong giai đoạn tinh chế của các hệ KDD.
0
50
100
150
200
256
1 16
31
46
61
76
91
106
121
136
151
166
181
196
211
226
241
256
(b). Executable code sequence of virus Klez.h.worm.W32
Valu
e of
Exe
cuta
ble
Cod
e
0
50
100
150
200
1 16
31
46
61
76
91
106
121
136
151
166
181
196
211
226
241
256
(a). Executable code sequence of virus Klez.a.worm.W32
Valu
e of
Exe
cuta
ble
Cod
e 256
Hình 4.15a: Biểu đồ mã lệnh của virus Klez.a.worm.W32
Hình 4.15b: Biểu đồ mã lệnh của virus Klez.h.worm.W32
- 86 -
4.4.2.4. Dự báo virus lạ bằng kỹ thuật hợp nhất dữ liệu
Nếu số tập hành vi biến dạng của x so với v là đủ nhỏ, bài toán suy luận khả
năng x là biến thể của virus v được phát biểu như sau:
Rx : a1 ^ a2 ^… ^ (au ← NULL) ^…^ an → qx
trong đó: ai đặc trưng cho trị thuộc tính thứ i của virus v
au đặc trưng cho hành vi biến dạng của virus v (để v biến dạng thành x) Kỹ thuật khôi phục trị thuộc tính dựa vào hợp nhất dữ liệu DF2RV (Data
Fusion to Recall Values) gồm ba thao tác:
1. Hóa NULL (toNULL): tạo bản sao dữ liệu trước khi xóa rỗng (au ← NULL)
các trị thuộc tính bất thường (au) của mẫu chẩn đoán. Mục tiêu của bước
này nhằm cô lập các đặc tính mới của biến thể dưới dạng mẫu dữ liệu chứa
các NULL ‘ảo’ (virtual NULL).
2. Giải NULL (deNULL): hợp nhất dữ liệu từ CSDL để tìm các trị thuộc tính
khả dĩ gần với giá trị ban đầu nhất của au. Mục tiêu của bước này nhằm xác
định virus có đặc tính gần giống với đối tượng nhất.
3. Rõ NULL (fixNULL): phục hồi các giá trị NULL về nguyên trạng, bổ sung
mẫu mới vào CSDL, làm cơ sở nhận dạng tiếp các biến thể của biến thể virus
trong tương lai.
Để minh họa, xét CSDL S chứa họ virus Family.x.vir như trong bảng 4.4.
Bảng 4.4: CSDL chứa 9 thành viên họ virus Family.x.vir
stt Tên virus a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 1 Family.a.vir 15 28 03 101 32 27 65 37 81 61 2 Family.b.vir 15 28 03 101 35 27 65 37 85 61 3 Family.c.vir 15 28 03 101 30 27 65 37 90 61 4 Family.d.vir 15 28 03 101 34 27 65 37 84 61 5 Family.e.vir 15 28 03 101 33 27 65 37 83 61 6 Family.f.vir 15 28 03 101 38 27 65 37 90 61 7 Family.g.vir 15 28 03 101 30 27 65 37 88 61 8 Family.h.vir 15 28 03 101 29 27 65 37 87 61 9 Family.i.vir 15 28 03 101 31 27 65 37 92 61
- 87 -
Đối tượng chẩn đoán ObjectX có tập trị thuộc tính như trong hình 4.16a. Nếu
áp dụng các phép truy vấn thông thường trên S, sẽ không tìm thấy mẫu virus nào
khớp luật (4.1), vì vậy ObjectX được kết luận an toàn. Tuy nhiên khi áp dụng
DF2RV, kết quả sẽ khác. Các bước thực hiện được minh họa như sau:
• Hóa NULL:
- Xác định số trị thuộc tính khác biệt (trong ví dụ này, m=2 ứng với các trị
thuộc tính a4 và a8)
Nếu m = 0, có sự tương đồng mã độc (wRate = 1): kết luận ObjectX là
biến thể virus. Thoát sớm.
Nếu m >0, thực hiện các bước tiếp theo.
- Xác định tỷ lệ đồng dạng dữ liệu µ = 1- (m/n) = 1- (2/10) = 0.8.
Nếu µ < λ, ngưng thuật giải (λ là hằng số ngưỡng an toàn).
Nếu µ ≥ λ , thực hiện các bước tiếp theo (giả sử cho λ = 0.78).
- Lưu lại và xóa rỗng hai trị thuộc tính sai biệt 39 (cột a4) và 91 (cột a8) của
ObjectX (hình 4.16b).
• Giải NULL: tìm trong cột a4 và a8 các giá trị gần với 39 và 91 nhất:
- Ở cột a4, tập khoảng cách d(xi, x)|a4={7, 4, 9, 5, 6, 1, 9, 10, 8}. Giá trị chọn
là 38 có d =1 (nhỏ nhất), ứng với mẫu thử thứ 6 trong CSDL.
- Ở cột a8, tập khoảng cách d(xi, x)|a8={10, 6, 1, 7, 8, 1, 3, 4, 1}. Có hai giá
trị được chọn là 90 và 92 (d=1) ứng với các mẫu thứ ba, thứ sáu và thứ chín
trong CSDL. Loại mẫu thứ ba và mẫu thứ chín vì d(3, x)|a4 > d(6, x)|a4 và
d(9, x)|a4 > d(6, x)|a4 (Bảng 4.5).
- Dựa vào kết quả hợp nhất, dựng mẫu ứng viên ObjectV (Hình 4.16c).
- Vận dụng luật suy diễn (4.1) truy vấn dữ liệu của mẫu mới tạo trên S. Kết
quả nhận được ObjectV là biến thể gần nhất của virus Family.f.vir (mẫu
virus thứ sáu trong CSDL).
• Rõ NULL: phục hồi các NULL ảo về giá trị ban đầu (39 và 91), cập nhật
ObjectX vào CSDL virus (Hình 4.16d), tăng trưởng CSTT, chuyển bài toán
sang các bước tiếp theo (xem lưu đồ xử lý ở hình 4.11) [64].
- 88 -
Các thuộc tính của đối tượng chẩn đoán a0 a1 a2 a3 a4 a5 a6 a7 a8 a9
a. ObjectX trước khi hóa NULL 15 28 03 101 39 27 65 37 91 61 b. ObjectX sau khi hóa NULL 15 28 03 101 ? 27 65 37 ? 61
c. ObjectX, sau khi giải NULL 15 28 03 101 38 27 65 37 90 61
d. ObjectX, sau khi rõ NULL 15 28 03 101 39 27 65 37 91 61
Hình 4.16: Đối tượng chẩn đoán ObjectX qua các giai đoạn của DF2RV
Bảng 4.5: Kết quả hợp nhất dữ liệu trên CSDL virus
stt Tên virus a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 1 Family.a.vir 15 28 03 101 32 27 65 37 81 61 2 Family.b.vir 15 28 03 101 35 27 65 37 85 61 3 Family.c.vir 15 28 03 101 30 27 65 37 90 61 4 Family.d.vir 15 28 03 101 34 27 65 37 84 61 5 Family.e.vir 15 28 03 101 33 27 65 37 83 61 6 Family.f.vir 15 28 03 101 38 27 65 37 90 61 7 Family.g.vir 15 28 03 101 30 27 65 37 88 61 8 Family.h.vir 15 28 03 101 29 27 65 37 87 61 9 Family.i.vir 15 28 03 101 31 27 65 37 92 61
Nearest neighbor 38 Nearest neighbor 90
4.4.2.5. Kết quả thực nghiệm
Nhận dạng biến thể virus hướng hợp nhất DF2RV được áp dụng trong trường
hợp luật phân bố trị thuộc tính của điểm chẩn đoán không khớp với các luật phân
nhóm virus từ giai đoạn học. Để đánh giá DF2RV, CSDL SA (trong mô hình không
gian vectơ ở Chương 3) được sử dụng để thử nghiệm trên bộ dữ liệu 1000 virus của
Kaspersky Lab. Các virus này được chọn ngẫu nhiên để thông tin về các virus của
CSDL SA không hoàn toàn có mặt đầy đủ trong bộ dữ liệu virus này. Kết quả thực
nghiệm thu được trong bảng 4.6.
- 89 -
Bảng 4.6: Kết quả nhận dạng virus của các anti-virus thử nghiệm
Anti-virus Virus Signatures
Engine Version Cảnh báo Phát hiện Bỏ sót Dự báo Tỷ lệ
dự báo Norton Anti-virus 72,020 9.05.15 907 889 93 18 16.22%
Virus Scan N/A 4.0.4682 906 877 94 29 23.57% Bit Defender v.8 253,993 7.05450 959 925 41 34 45.33%
MAV 890 N/A 957 483 43 474 91.68%
Biểu đồ ở hình 4.17 so sánh kết quả của các AV trên cùng tập mẫu. MAV và
Bit Defender [73] cảnh báo 957 và 959 virus, tốt hơn Symantec [89] và McAfee [80]
(907 và 906 virus). Các chỉ số thực nghiệm của MAV cho thấy:
- Độ dự báo Proactive detection = 474/(1000 - 483) = 91.68 % - Độ tin cậy Reliability = 957/1000 = 95.7 %
Khi giảm λ, MAV dự báo virus tốt hơn nhưng cũng gia tăng rủi ro phát hiện
nhầm (Bảng 4.7). Khi λ= 90%, tỷ lệ này là 95,74% [7]. Kết quả thực nghiệm cho
thấy với CSDL khiêm tốn, MAV vẫn có thể phát hiện số virus tương đương với các
AV có số virus cập nhật nhiều hơn với tỷ lệ dự báo trên 91%. Ngoài ra người dùng
MAV có thể điều chỉnh hệ số λ thích hợp để đạt hiệu quả dự báo tốt hơn.
0 200 400 600 800
1000 1200
NAV Scan BitDef MAV
Viru
s sa
mpl
es
Warnings Detections Proactions Omissions
Hình 4.17: So sánh kết quả nhận dạng của các anti-virus thử nghiệm
- 90 -
Bảng 4.7: Kết quả dự báo virus của MAV khi thay đổi λ
λ (%) Dự báo Tỷ lệ dự báo (%) Nhầm Tỷ lệ nhầm (%)
100 474 91.68 0 0 98 476 92.07 0 0 96 480 92.84 0 0 95 482 93.23 0 0 93 488 94.39 0 0 90 495 95.74 0 0 89 495 95.74 1 0.003 87 496 95.94 2 0.006 84 496 95.94 6 0.017 81 496 95.94 9 0.025 79 497 96.13 10 0.028 75 497 96.13 13 0.036
4.4.2.6. Bàn luận về kỹ thuật DF2RV
Nhận định bản chất của quá trình chẩn đoán virus hướng tiếp cận chuỗi mã là
bài toán truy vấn dữ liệu chắc chắn và đầy đủ; quan niệm biến thể virus máy tính là
đối tượng mang thông tin chưa chắc chắn và không đầy đủ, MAV đề xuất phương
án DF2RV khôi phục (recall) dữ liệu virus sử dụng kỹ thuật hợp nhất dữ liệu qua ba
bước NULL hóa dữ liệu, giải mã NULL và làm rõ dữ liệu NULL, nhằm tái tạo các
trị thuộc tính chưa được nhận dạng của biến thể virus vào thư viện virus mẫu.
Quan niệm mã virus là dữ liệu chuỗi byte (từ máy 8 bit), độ tương quan dữ
liệu giữa các ô được xử lý bằng độ lệch giữa các từ sử dụng trong mẫu, DF2RV
thay thế giá trị NULL trong không gian quan sát bằng các giá trị lân cận gần nhất.
Hợp nhất dữ liệu là kỹ thuật đơn giản, tự động và độc lập dữ liệu do nguồn hợp nhất
được lấy ngay trên CSDL.
4.5. Kết quả thực nghiệm
MAV được cài đặt trên mạng cục bộ mô hình client-server hoặc workgroup,
gồm gói máy chủ chạy Windows Server 2003 và gói máy trạm sử dụng Windows XP
Professional (xem Phụ lục 4). Hoạt động cơ bản của hệ được mô tả như sau:
- 91 -
- Phân hệ máy chủ MAVSR (MAV Server) được thiết kế cho giai đoạn Học dữ
liệu (xem Phụ lục 5). MAVSR có nhiệm vụ thu nhận tri thức chuyên gia, phân
cụm dữ liệu và rút luật phân bố dữ liệu.
- Phân hệ máy khách MAVCL (MAV Client) quét virus bằng các thuật toán học
trong giai đoạn Xử lý. Nếu phát hiện virus cũ, MAVCL tiêu diệt ngay. Nếu
nghi ngờ virus mới, MAVCL sẽ cách ly và gửi mẫu về máy chủ (Phụ lục 6).
- Khi nhận được mẫu virus mới từ máy khách, MAVSR sẽ cập nhật mẫu vào
CSDL, bổ sung luật nhận dạng, đồng bộ CSDL và CSTT cho hệ thống.
4.5.1. Đánh giá hiệu quả nhận dạng virus của MAV
Hiệu quả nhận dạng virus của hệ MAV được tổng hợp từ kết quả chẩn đoán
của năm bài toán học (Bảng 4.8).
Bảng 4.8: Các chỉ số chất lượng nhận dạng virus của MAV
Lớp virus Độ chính xác (%) Độ dự báo (%) Độ tin cậy (%)
A-class 97.92 91.68 95.70 B-class 97.92 86.27 95.24 C-class 99.05 05.00 67.72 D-class 98.71 94.76 98.21 E-class 94.38 99.03 99.09 Toàn bộ 97.60 75.35 91.19
Để đánh giá tiếp cận học nhận dạng virus máy tính, cần đối chiếu thử nghiệm
với các anti-virus khác trong cùng điều kiện (kiến trúc máy, hệ điều hành, tập virus
mẫu, tập dữ liệu trộn…). Tuy nhiên, việc thực nghiệm gặp nhiều khó khăn do:
- Quy ước đặt tên, phân loại virus của các AV khác nhau. Cùng một virus (hoặc
các thể hiện của virus), mỗi AV có cảnh báo với tên gọi, số lượng virus trong
họ khác nhau. Vì vậy việc tổng hợp, so sánh số liệu gặp nhiều khó khăn do dữ
liệu báo cáo không thuần nhất.
- Các anti-virus tên tuổi đều có CSDL virus khá lớn. Để giảm chi phí tài nguyên,
các AV thường không công bố danh sách virus được cập nhật.
- 92 -
Do khó xác định được số virus tương ứng đã cập nhật trong CSDL
(Associated Viruses In Database) của từng AV so với các virus trong tập dữ liệu thử
nghiệm, nên đề tài chỉ tiến hành thu thập số liệu đo độ dự báo (Proactive detection)
và độ tin cậy (Reliability) của các AV. Các bước thử nghiệm thực hiện như sau:
- Trộn năm tập mẫu virus (gồm 8896 virus trong các thử nghiệm trước đây của
MAV), sử dụng làm tập mẫu kiểm nghiệm chung. Các AV thử nghiệm gồm
Bit Defender [73], Norton 2007 [89], NOD32 [82] và Panda [85].
- Kích hoạt các chức năng chẩn đoán heuristic và proactive của các AV, chạy
thử nghiệm trên tập mẫu. Ghi nhận số liệu thực nghiệm†.
- Tính toán các đặc trưng chẩn đoán của các AV (Bảng 4.9 và Hình 4.18).
Bảng 4.9: Kết quả kiểm tra các hệ anti-virus
Anti-virus Phát hiện Dự báo Độ dự báo (%) Độ tin cậy (%)
Bit Defender 7931 753 78.03 97.62 Norton 2007 7924 735 75.62 97.34
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
AV T0 T1 T2 T Te Se (KB/s)
MAV 195 0.498 0.1987 324 592.245 16884.9 NAV 196 0.699 0.5748 1095 1345.038 7434.734 AVG 337 3.897 2.6259 1025 5586.188 1790.129 KL 390 5.918 2.7704 728 5928.041 1686.898
4.6. Tổng kết chương
Chương 4 trình bày phương pháp thiết kế hệ MAV theo mô hình “học tập
trung, xử lý phân tán” qua ba giai đoạn Học dữ liệu, Xử lý dữ liệu và Báo cáo.
Đầu tiên, chuyên gia anti-virus sẽ cung cấp tri thức virus máy tính cho hệ.
Một mô hình học không giám sát sẽ phân tích quy luật phân bố trị thuộc tính của
các mẫu virus trong CSDL. Có hai phương án rút luật được đề xuất. Phương án 1 sử
dụng không gian đồ thị phân cấp tách nhóm bằng V-Tree với thuật toán ACV rút
luật phân cụm bằng cách duyệt các nút lá trên cây. Phương án 2 tổ chức một mảng
hai chiều cấp phát động sử dụng thuật toán ARCRD rút luật trực tiếp trên không
gian véctơ. Cách này gọn nhẹ, chạy nhanh nhưng không cung cấp hình ảnh trực
quan về quá trình hình thành các cụm.
0 2000 4000 6000 8000
10000 12000 14000 16000 18000
MAV SymantecCorp.
Grisoft Anti-virus
Kaspersky Lab
Hình 4.19: Thử nghiệm tốc độ các hệ anti-virus
- 95 -
Tiếp theo, giai đoạn Xử lý được tiến hành qua bốn bước: (i) phân loại và hợp
nhất dữ liệu, (ii) nhận dạng truyền thống, (iii) nhận dạng dựa trên luật và (iv) hội
thoại tham vấn.
Ở bước 1, đầu tiên thuật toán phân lớp NNSRM thực hiện chia tách dữ liệu
chẩn đoán vào một trong hai lớp Chắc chắn sạch và Có thể nhiễm. Lớp Chắc chắn
sạch sau đó được loại khỏi không gian quan sát. Kế tiếp các điểm dữ liệu thuộc lớp
Có thể nhiễm sẽ tham gia vào quá trình ước lượng nhằm dự đoán khả năng điểm dữ
liệu có thuộc về nhóm (cụm) virus đã biết nào hay không. Nếu có, đối tượng sẽ
được chuyển sang bước kế (nhận dạng truyền thống và ước lượng tỷ lệ mã độc).
Nếu không, áp dụng kỹ thuật hợp nhất dữ liệu để ước lượng biến thể virus.
Hợp nhất dữ liệu là kỹ thuật xử lý dữ liệu NULL ở giai đoạn tinh chế của các
hệ khám phá tri thức từ CSDL. Quan niệm virus máy tính là các thực thể thiếu
thông tin, MAV xem các trị thuộc tính bất thường của đối tượng như là giá trị
NULL và tiến hành khôi phục giá trị khả dĩ cho các ô dữ liệu này. Nếu quá trình
hợp nhất cho kết quả khớp với trị thuộc tính của một trong các mẫu virus đã có,
chuyển đối tượng sang bước thứ hai. Nếu không, chuyển sang bước thứ ba.
Bước 2 áp dụng tiếp cận chuỗi mã truyền thống để truy vấn dữ liệu trên
CSDL virus mẫu. Nếu phát hiện virus trên điểm chẩn đoán, tiến hành chữa trị và
thông báo kết quả. Ngược lại, chuyển đối tượng vào không gian quan sát của các bài
toán chẩn đoán các lớp virus. Tiếp theo, bước 3 tiếp tục kiểm tra đối tượng sử dụng
năm bài toán chẩn đoán các lớp virus đã trình bày ở Chương 3. Cuối cùng, bước 4 ở
mức giao tiếp người dùng sẽ tạo ra các giải thích, tương tác chất vấn hội thoại và
đưa ra kết quả chẩn đoán (xem chi tiết kỹ thuật các gói phân tích hệ thống, mô tả
chức năng, thiết kế các phân hệ và giao diện người dùng của hệ phần mềm MAV ở
các Phụ lục 4, 5 và 6).
Kết quả thực nghiệm cho thấy các chỉ số chất lượng của MAV tương đương
với các AV thử nghiệm. Các thí nghiệm về tốc độ cũng chứng tỏ MAV chạy nhanh
hơn các hệ anti-virus khác.
Kết luận
5.1. Những đóng góp mới của đề tài
Hơn 20 năm qua, các nhà nghiên cứu đã tốn rất nhiều công sức nhưng bài
toán nhận dạng virus máy tính vẫn chưa được giải quyết trọn vẹn. Virus máy tính là
sản phẩm trí tuệ phản diện của con người. Làm cách nào giúp máy tính học được
cách điều trị của các chuyên gia anti-virus để máy tính có thể tự khám và chữa khỏi
bệnh? Để trả lời câu hỏi này, tiếp cận máy học và hệ chuyên gia được chọn nhằm
giải quyết bài toán chẩn đoán virus máy tính, vốn phức tạp và vượt khỏi sức tính
toán cơ học của con người.
Nghiên cứu khoa học trí tuệ nhân tạo theo trình tự logic học từ thấp đến cao,
đề tài xây dựng một phương pháp tiếp nhận và vận dụng tri thức chuyên gia trên cơ
sở kế thừa và kết hợp ưu điểm, khắc phục nhược điểm của các tiếp cận đã có, nhằm
giải quyết vấn đề một cách tự nhiên, phù hợp với bản chất của bài toán nhận dạng
virus máy tính. Phương pháp mới đó là:
Tiếp cận chuỗi mã+Tiếp cận hành vi+Tiếp cận ý định=Tiếp cận máy học và hệ chuyên gia
Virus máy tính vốn phức tạp với nhiều loại hình quấy rối, phát triển qua
nhiều thời kỳ với nhiều biến thể, lai tạp, kế thừa đan xen nhau. Tiếp cận giải quyết
vấn đề bằng cách định nghĩa các lớp virus dựa vào đặc điểm dữ liệu, sau đó áp dụng
các bài toán học phù hợp cho từng lớp. Trong từng bài toán, các kỹ thuật học được
vận dụng linh hoạt: phân cụm dữ liệu bằng V-Tree, rút luật nhận dạng với R2LTA
và ARCRD; phân lớp và giản lược không gian quan sát với NNSRM; khắc phục
Chương 5
- 97 -
nhiễu bằng kỹ thuật hợp nhất dữ liệu DF2RV; vận dụng mô hình AMKBD phối hợp
CSDL và CSTT; học khái niệm hành vi bằng mô hình máy ảo; vận dụng mô hình
không gian vectơ sử dụng nguyên lý TF-IDF để phân loại và nhận dạng mã độc…
Không chỉ thiết kế riêng cho bài toán nhận dạng virus máy tính, các kỹ thuật này
còn có thể áp dụng cho nhiều bài toán thuộc nhiều lĩnh vực khác nhau.
Là một trong những người đề xướng phương pháp hệ chuyên gia anti-virus,
tác giả luận án đã nghiên cứu xây dựng hệ phần mềm MAV (Machine Learning
Approach to Anti-virus Expert System) trên hệ thống mạng cục bộ mô hình client-
server. Là anti-virus hướng tri thức đầu tiên của Việt Nam, MAV còn là một trong
bốn hệ chuyên gia anti-virus thực nghiệm công bố thông tin sớm nhất trên Internet.
Đề tài mở ra hướng nghiên cứu mới trong lĩnh vực phòng chống virus máy
tính nói riêng, góp phần xây dựng cơ sở lý thuyết cho việc phát triển các mô hình
bảo vệ an toàn dữ liệu cho các hệ thống CNTT nói chung.
5.2. Hạn chế của đề tài, cách khắc phục
Mặc dù “chia để trị” khá hiệu quả khi giải quyết bài toán nhận dạng virus
trên tập dữ liệu không đồng nhất, nhưng chiến lược này cũng làm giảm số lượng tập
mẫu trên mỗi lớp bài toán, khiến cho việc lựa chọn mô hình học gặp nhiều khó khăn
vì thiếu mẫu thử. Đây cũng là hạn chế chung của các AV trong nước hiện nay.
Hạn chế này có thể khắc phục bằng cách gia tăng số virus mẫu trong các lớp.
Việc làm này cần có thời gian (thu thập mẫu virus từ nhiều nguồn), kinh phí (mua
tập mẫu) và nhân lực (đào tạo chuyên gia, chuyển giao công nghệ). Virus máy tính
là loại dữ liệu đặc biệt nguy hiểm, không dễ kiếm được số lượng lớn trong một thời
gian ngắn (do cạnh tranh thương mại nên các anti-virus thường không chia xẻ tập
mẫu virus cho các hãng “đối thủ”).
Để thu thập mẫu virus nhanh trong thời gian ngắn, có thể xây dựng một hệ
sandbox tạo “vùng trũng” thu hút virus trên hệ thống mạng toàn cầu. Tuy nhiên,
phương án này cần kinh phí khá lớn để trang bị server, networking, thuê leased line,
hosting, chi phí duy trì domain, nhân lực thiết kế và vận hành hệ thống…
- 98 -
5.3. Hướng phát triển tương lai
Để đáp ứng nhu cầu thực tiễn xã hội, đề tài chỉ tập trung nghiên cứu các loại
virus máy tính lây lan trên các HĐH Windows 32 bit. Theo xu thế phát triển của
Internet, có thể dự báo loại hình quấy nhiễu tương lai vẫn là các loại mã độc lan
truyền qua mạng. Vì vậy lớp bài toán A-class phối hợp các kỹ thuật phân loại virus
và ước lượng mã độc là bài toán có hướng phát triển tốt nhất.
Ngày nay, công nghệ phần cứng cũng phát triển mạnh mẽ. Các bộ vi xử lý đa
luồng, đa nhân, lõi kép… ngày càng phổ biến. Công nghệ lưu trữ (RAM, HDD,
CD-ROM, DVD…) cũng đa dạng, khả năng lưu trữ lớn, tốc độ truy xuất nhanh, chi
phí thấp. Khi rào cản về tốc độ xử lý và không gian lưu trữ của nhóm giải pháp
‘quay về quá khứ’ được giải tỏa, lớp bài toán E-class hướng tiếp cận ý định với cơ
chế đa tác tử thông minh đa luồng xử lý sẽ có nhiều triển vọng.
Tiếp cận máy học và hệ chuyên gia được vận dụng để xử lý virus máy tính
dưới góc độ dữ liệu, do đó phương pháp này có thể áp dụng cho các loại virus lây
trên các HĐH khác, chạy trên các kiến trúc máy tính khác, sau khi tái cấu trúc mô
hình dữ liệu cho phù hợp. Trong tương lai, các virus trên môi trường Windows 32
bit sẽ từng bước nhường chỗ cho virus Windows Vista 64 bit, như chúng đã từng
truất phế các virus DOS 16 bit. Tuy nhiên do tương thích đi lên, các HĐH mới phải
chấp nhận các ứng dụng cũ. Vì vậy các AV không thể loại bỏ hoàn toàn tập mẫu
virus 16 bit và 32 bit trên môi trường mới. Nói cách khác, việc các AV phải ‘gánh’
theo một CSDL mẫu virus khổng lồ qua nhiều thế hệ là điều khó tránh khỏi. Vì vậy,
cơ chế phân loại CSDL để nhận dạng nhanh và giảm thiểu chi phí miền nhớ như
cách làm của đề tài là lựa chọn tất yếu cho các anti-virus tương lai.
Song song với xu hướng phát triển của các kiến trúc máy tính cá nhân, công
nghệ liên lạc di động cũng phát triển mạnh với số lượng người dùng ngày càng gia
tăng. Mặc dù hiện nay các loại virus trên máy di động chưa phổ biến, nhưng tương
lai chúng sẽ hình thành lực lượng quấy nhiễu đông đảo, gây tác hại không nhỏ cho
người sử dụng. Trong bối cảnh đó, các phương án phân hoạch không gian tìm kiếm
sẽ rất hữu dụng cho môi trường tài nguyên hạn chế của các thiết bị cầm tay.
- 99 -
5.4. Đề nghị về các nghiên cứu tiếp theo
Nghiên cứu xây dựng các hệ phòng chống virus máy tính là việc làm cần
thiết trong giai đoạn hiện nay. Với những kết quả bước đầu, tiếp cận máy học và hệ
chuyên gia đã mở ra hướng đi mới trong công nghệ anti-virus. Các nghiên cứu tiếp
theo cần tập trung cải tiến chất lượng các bài toán bằng cách bổ sung các mô hình
học tiên tiến, áp dụng lý thuyết mờ để cải thiện độ dự báo bằng cách học các giá trị
tích lũy của hằng số λ, nghiên cứu phương án kế thừa tri thức chuyên gia từ các hệ
AV khác, xây dựng hệ tích hợp tri thức chẩn đoán virus máy tính…
Kết quả nghiên cứu của đề tài giúp có thêm một phương pháp phòng chống
virus mạnh mẽ, góp phần làm cho môi trường CNTT trong sạch hơn. Tuy nhiên AV
không phải là biện pháp bảo vệ duy nhất. Khi có dịch, đặc biệt là bệnh lạ, một bác sĩ
không thể chữa trị cho tất cả mọi người mà cần huy động cả bệnh viện, thậm chí cả
guồng máy y tế. Một AV không thể đơn lẻ bảo vệ an ninh dữ liệu cho cộng đồng mà
cần sự phối hợp chặt chẽ với các AV khác nói riêng, các hệ thống an toàn dữ liệu
nói chung. Vì vậy, tiếp cận máy học và hệ chuyên gia trong lĩnh vực anti-virus là
một hướng đi đúng đắn, tạo tiền đề nghiên cứu các hệ tích hợp tri thức chuyên gia,
tiến tới xây dựng các trung tâm chẩn đoán virus máy tính trên mạng.
Cùng với việc nghiên cứu các hình thức tấn công không xác định địa chỉ
(virus máy tính, sâu trình, trojan horse…), cần nghiên cứu xây dựng cơ chế bảo vệ
hệ thống CNTT khỏi các cuộc tấn công có địa chỉ xác định (SPAM, DoS/DDoS,
phishing, dirty tricks…) trên các website và cổng thông tin công cộng; từng bước
mở rộng nghiên cứu sang các hệ thống liên lạc di động (wireless, điện thoại cầm
tay, máy iPod, máy nghe nhạc…) tạo thành một thế trận bảo vệ các hệ thống CNTT
chặt chẽ, liên hoàn và vững chắc.
- 100 -
CÔNG TRÌNH ĐÃ CÔNG BỐ
1. 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.
2. 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.
3. 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, 371-374. IASTED/ACTA Press.
4. 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. VN, Tạp chí Tin học &
Ðiều khiển, T.15, S.3 (1999), 40-45.
5. Nguyen Thanh Thuy, Truong Minh Nhat Quang. A Global Solution to Anti-
virus Systems. The Proc. of the 1st International Conference on Advanced
Communication Technology. 10-12 Feb. 1999, Muju-Korea, 374-377.
6. 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 & Ðiều khiển,
T.16, S.2 (2000), 37-40.
7. 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-Vietnam, 61-65.
8. 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.
- 101 -
9. 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.
10. 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.
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.
[33]. Ian Waller. Controled Worm Replication - ‘Internet-In-A-Box’. Virus Bulletin Conference. Oxfordshire, England, 2000.
[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.
[54]. Pieter Adriaans, Dolf Zantinge. Data Mining. Addison Wesley Longman Ltd., USA-1996.
[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.
[66]. Vesselin Bontchev. Solving the VBA Upconversion Problem. Virus Bulletin Conference. Oxfordshire, England, 2000.
[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.
- 107 -
CÁC ĐỊA CHỈ INTERNET
[72]. AVG Technologies. (UK-2008). http://www.grisoft.com
[73]. BitDefender Antivirus, (Romania-2008). http://www.bitdefender.com/world
[74]. Faronics Corp. (USA-2008). http://www.faronics.com/html/company.asp
[75]. F-Secure Corporation. (Finland-2008). http://www.f-secure.com
[76]. Intel Corporation. Distributed Detection and Inference. (US-2005). http://www.intel.com/research/distributed_detection.htm
[77]. Intel Corporation. Technology and Research. (US-2005). http://www.intel.com/research/print/overview_ddi.pdf
[78]. Kaspersky Lab Anti-virus Software, 2008. http://www.kaspersky.com
[79]. Massachusetts Institute of Technology. Technology Review (US-2006). http://www.technologyreview.com/read_article.aspx?id=17608&ch=infotech
[80]. McAfee Inc. (USA-2008). http://www.mcafee.com/us [81]. Micropoint Info-Tech. (China-2005). http://www.micropoint.cn/#
[82]. NOD32 Anti-virus System. (Australia-2008). http://www.nod32.com.au
[83]. National Institute of Standards & Tech. (USA-2008). http://www.nist.gov
[84]. NetZ Computing Ltd. (Israel-2007). http://www.invircible.com/invircible.php
[85]. Panda Security. (Spain-2008). http://www.pandasecurity.com
[86]. Proofpoint Inc. (US-2008). http://www.proofpoint.com/products/zerohourav.php
[87]. People's Daily Online. (China-2005).http://english.people.com.cn
[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
[89]. Symantec Corporation (USA, 2008). http://www.symantec.com/index.jsp
[90]. Tech2.com, (India-2007). Intention-based Anti-virus Software Launched. http://www.tech2.com/india/news/antivirus-security-internet/intentionbased-antivirus-software-launched/2016/0
[91]. The Free Dictionary, Farlex Inc. (USA, 2008): http://encyclopedia.thefreedictionary.com/Anti-virus%20software
[92]. The National Academy of Engineering Committee on Engineering's Grand Challenges (USA, 2008): http://www.engineeringchallenges.org
[93]. Trung tâm An ninh mạng BKIS. http://www.bkav.com.vn/default.aspx [94]. VMware Inc. (USA, 2008). http://www.vmware.com
Khảo sát virus máy tính
1. Các loại virus máy tính
1.1. Boot virus
Là thuỷ tổ của virus máy tính, boot virus lây vào các mẫu tin khởi động
(MTKĐ, boot record) trên hệ thống đĩa. Đối với đĩa mềm, MTKĐ nằm trên sector
đầu tiên thuộc track 0, side 0 của đĩa (boot sector). Khi khởi động máy bằng đĩa
mềm, sau quá trình tự kiểm tra (POST - Power On Self Test), thường trình khởi
động máy trong ROM-BIOS sẽ đọc và nạp 512 byte trên boot sector vào bộ nhớ rồi
trao quyền, không cần biết đoạn mã này sẽ thực hiện những công việc gì.
Nguyên tắc của boot virus là thay thế MTKĐ bằng đoạn mã của nó để giành
quyền khởi động máy. Khi được trao quyền, boot virus sẽ thường trú, khống chế các
tác vụ đọc/ghi đĩa rồi nạp tiếp phần khởi động gốc (Hình P1.1). Quá trình lây nhiễm
của boot virus trên đĩa mềm được minh họa như sau:
Đĩa mềm sạch: POST→ MTKĐ → HĐH
Đĩa mềm nhiễm: POST→ Boot virus → MTKĐ → HĐH
Đối với đĩa cứng, có 2 MTKĐ: master boot nằm ở sector đầu tiên thuộc track
0, side 0 và boot sector nằm ở sector đầu tiên của track 0, side 1. Trên đĩa cứng,
boot virus có thể lây vào master boot hoặc boot sector. Quá trình minh họa như sau:
Đĩa cứng sạch: POST→ Master boot→ Boot sector → HĐH
Đĩa cứng nhiễm: POST → Boot virus→Master boot→ Boot sector→ HĐH, hoặc
POST → Master boot → Boot virus → Boot sector → HĐH
Phụ lục 1
- 109 -
Do được kích hoạt trước HĐH nên boot virus có thể lây nhiều loại HĐH.
Tuy nhiên chúng cũng gặp nhiều trở ngại như:
- Cơ hội kích hoạt: người dùng ít khi khởi động máy từ đĩa mềm.
- Cơ hội lây lan: phần lớn các chip ROM được trang bị chức năng phát hiện
tác vụ ghi vào boot sector hoặc cấm khởi động từ đĩa mềm.
- Cơ hội tồn tại: do dung lượng nhỏ nên đĩa mềm ngày càng ít được sử dụng.
Hình P1.2a là MTKĐ chuẩn của Windows. Hình P1.2b là MTKĐ nhiễm virus.
EB 3C 90 2B 4A 48 54 56 49 48 43 00 02 01 01 00 02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 00 00
00 00 00 00 00 29 E3 1E 5C 3F 4E 4F 20 4E 41 4D 45 20 20 20 20 46 41 54 31 32 20 20 20 33 C9 8E D1
BC FC 7B 16 07 BD 78 00 C5 76 00 1E 56 16 55 BF 22 05 89 7E 00 89 4E 02 B1 0B FC F3 A4 06 1F BD
00 7C C6 45 FE 0F 38 4E 24 7D 20 8B C1 99 E8 7E 01 83 EB 3A 66 A1 1C 7C 66 3B 07 8A 57 FC 75 06
80 CA 02 88 56 02 80 C3 10 73 ED 33 C9 FE 06 D8 7D 8A 46 10 98 F7 66 16 03 46 1C 13 56 1E 03 46
0E 13 D1 8B 76 11 60 89 46 FC 89 56 FE B8 20 00 F7 E6 8B 5E 0B 03 C3 48 F7 F3 01 46 FC 11 4E FE
61 BF 00 07 E8 28 01 72 3E 38 2D 74 17 60 B1 0B BE D8 7D F3 A6 61 74 3D 4E 74 09 83 C7 20 3B FB
72 E7 EB DD FE 0E D8 7D 7B A7 BE 7F 7D AC 98 03 F0 AC 98 40 74 0C 48 74 13 B4 0E BB 07 00 CD
10 EB EF BE 82 7D EB E6 BE 80 7D EB E1 CD 16 5E 1F 66 8F 04 CD 19 BE 81 7D 8B 7D 1A 8D 45 FE
8A 4E 0D F7 E1 03 46 FC 13 56 FE B1 04 E8 C2 00 72 D7 EA 00 02 70 00 52 50 06 53 6A 01 6A 10 91
8B 46 18 A2 26 05 96 92 33 D2 F7 F6 91 F7 F6 42 87 CA F7 76 1A 8A F2 8A E8 C0 CC 02 0A CC B8 01
02 80 7E 02 0E 75 04 B4 42 8B F4 8A 56 24 CD 13 61 61 72 0A 40 75 01 42 03 5E 0B 49 75 77 C3 03 18
01 27 0D 0A 49 6E 76 61 6C 69 64 20 73 79 73 74 65 6D 20 64 69 73 6B FF 0D 0A 44 69 73 6B 20 49 2F
4F 20 65 72 72 6F 72 FF 0D 0A 52 65 70 6C 61 63 65 20 74 68 65 20 64 69 73 6B 2C 20 61 6E 64 20 74
68 65 6E 20 70 72 65 73 73 20 61 6E 79 20 6B 65 79 0D 0A 00 00 49 4F 20 20 20 20 20 20 53 59 53 4D
53 44 4F 53 20 20 20 53 59 53 7F 01 00 41 BB 00 07 60 66 6A 00 E9 3B FF 00 00 55 AA
Hình P1.2a: Mẫu tin khởi động chuẩn của hệ điều hành Windows
Kiểm tra thiết bị- Màn hình - Bộ nhớ - Bàn phím - Các ổ đĩa...
Khởi động hệ thống - Nạp MTKĐ vào bộ
nhớ máy tính - Trao quyền cho
MTKĐ
Mẫu tin khởi động - Tìm hệ địều hành - Nạp hệ điều hành - Trao quyền cho hệ điều hành
Boot virus - Thường trú - Khống chế đọc/ghi - Nạp MTKĐ gốc - Trao quyền cho
MTKĐ gốc
Mẫu tin khởi động bình thường
Mẫu tin khởi động nhiễm boot virus
Hình P1.1: Nguyên tắc hoạt động của boot virus
- 110 -
EB 3C 90 2C 27 6A 79 76 49 48 43 00 02 01 01 00 02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 00 00
00 00 00 00 00 29 00 ED 07 10 4E 4F 20 4E 41 4D 45 20 20 20 20 46 41 54 31 32 20 20 20 33 C9 8E D1
BC F0 7B 8E D9 B8 00 20 8E C0 FC BD 00 7C 38 4E 24 7D 24 8B C1 99 E8 3C 01 72 1C 83 EB 3A 66
A1 1C 7C 26 66 3B 07 26 8A 57 FC 75 06 80 CA 02 88 56 02 80 C3 10 73 EB 33 C9 8A 46 10 98 F7 66
16 03 46 1C 13 56 1E 03 46 0E 13 D1 8B 76 11 60 89 46 FC 89 56 FE B8 20 00 F7 E6 8B 5E 0B 03 C3
48 F7 F3 01 46 FC 11 4E FE 61 BF 00 00 E8 E6 00 72 39 26 38 2D 74 17 60 B1 0B BE A1 7D F3 A6 61
74 32 4E 74 09 83 C7 20 3B FB 72 E6 EB DC A0 FB 7D B4 7D 8B F0 AC 98 40 74 0C 48 74 13 B4 0E
BB 07 00 CD 10 EB EF A0 FD 7D EB E6 A0 FC 7D EB E1 CD 16 CD 19 26 8B 55 1A 52 B0 01 BB 00 00
E8 3B 00 72 E8 5B 8A 56 24 BE 0B 7C 8B FC C7 46 F0 3D 7D C7 46 F4 29 7D 8C D9 89 4E F2 89 4E
F6 C6 06 96 7D CB EA 03 00 00 20 0F B6 C8 66 8B 46 F8 66 03 46 1C 66 8B D0 66 C1 EA 10 EB 5E 0F
B6 C8 4A 4A 8A 46 0D 32 E4 F7 E2 03 46 FC 13 56 FE EB 4A 52 50 06 53 6A 01 6A 10 91 8B 46 18 96
92 33 D2 F7 F6 91 F7 F6 42 87 CA F7 76 1A 8A F2 8A E8 C0 CC 02 0A CC B8 01 02 80 7E 02 0E 75 04
B4 42 8B F4 8A 56 24 CD 13 61 61 72 0B 40 75 01 42 03 5E 0B 49 75 06 F8 C3 41 BB 00 00 60 66 6A
00 EB B0 4E 54 4C 44 52 20 20 20 20 20 20 0D 0A 52 65 6D 6F 76 65 20 64 69 73 6B 73 20 6F 72 20 6F
74 68 65 72 20 6D 65 64 69 61 2E FF 0D 0A 44 69 73 6B 20 65 72 72 6F 72 FF 0D 0A 50 72 65 73 73 20
61 6E 79 20 6B 65 79 20 74 6F 20 72 65 73 74 61 72 74 0D 0A 00 00 00 00 00 00 00 AC CB D8 55 AA
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).
Computer virus
Hình P1.7: Nguồn gốc mã độc và phân loại mã độc
Boot virus - FD bootvirus - HD bootvirus
File virus - 16 bit virus - 32 bit virus
Worm - Intruder - Dropper - Injector…
Macro virus - MS Word - MS Excel - MS PowerPoint
Trojan horse - Germs - Dropper - Injector - Rootkit…
Malware - Adware - Spyware - Pornware - Riskware…
Boot record - Boot sector - Master boot
OS/Program - Application - Resource - Library - Driver…
Instruction set - 8088 - 80x86 - Pentium
Harmful Code
- 116 -
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
00010: 08 07 00 00 10 00 00 00 1E 00 00 00 01 00 90 08
00020: 00 00 1E 00 00 00 0A 01 00 00 00 00 A8 00 72 00
00030: AD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //khác 0: trỏ đến header bổ sung
Hình P2.4: Cấu trúc đầu file một tập tin EXE tiêu biểu
2.2.3. Định dạng NE-EXE (Windows 16s New Executable)
Khi giới thiệu hệ điều hành Windows 16 bit (Windows 3.xx), Microsoft phải
thay đổi định dạng EXE cho phù hợp với tập lệnh của CPU chạy trong chế độ bảo
vệ hoặc 386 tăng cường… Thông tin bổ sung cho file NE-EXE được lưu trữ trong
một cấu trúc đầu file mới (gọi là NE header), định vị qua trường 3C của cấu trúc
đầu file DOS-EXE cũ. Header bổ sung này được bắt đầu bằng hai byte 4E-45 (chuỗi
‘NE’). Các trường tiếp theo chứa thông tin file NE-EXE (ví dụ file thi hành EXE
thực, hay là các thư viện liên kết động DLL…) và các tham số định vị dành cho hệ
thống trong các điều kiện thi hành khác nhau.
Hình P2.5 mô tả cấu trúc đầu file của tập tin thi hành trong môi trường
Windows16 bit. Cấu trúc này gồm hai phần. Phần đầu là cấu trúc đầu file DOS-
EXE. Phần thứ hai là cấu trúc đầu file NE-EXE định vị ở địa chỉ 0080h, là giá trị có
trong trường 3C của DOS-EXE. Đầu NE-EXE header là chuỗi nhận dạng ‘NE’.
Định dạng NE-EXE có đặc điểm nhận dạng như sau:
- Mang đặc trưng của định dạng DOS-EXE
- Trường 3C trong cấu trúc đầu file trỏ đến cấu trúc đầu file thứ hai
- Hai byte đầu tiên của cấu trúc đầu file thứ hai có giá trị 4E và 45 (‘NE’)
- 123 -
00000: 4D 5A 75 01 01 00 00 00 04 00 00 00 FF FF 00 00 //5A4D = MZ: dấu hiệu EXE
00010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00030: 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 //0080: địa chỉ NE header
...
00080: 4E 45 05 3C 15 01 1B 00 00 00 00 00 01 03 03 00 //454E = NE: dấu hiệu NE-EXE
00090: 00 14 00 28 E2 73 01 00 00 00 03 00 03 00 04 00 //các tham số hệ thống dành cho
000A0: 10 00 40 00 58 00 A3 00 F6 00 FE 00 B0 01 00 00 //môi trường Windows 16 bit
000B0: 04 00 04 00 00 00 02 08 1E 00 B8 0B 00 00 0A 03
Hình P2.5: Cấu trúc đầu file một tập tin NE-EXE tiêu biểu Phần tiếp theo sẽ mô tả cách nhận dạng các tập tin thi hành trong môi trường
Windows 32 bit, các Portable Executable file.
2.2.4. Định dạng PE-EXE (Windows 32s Portable Executable)
Trong HĐH Windows 32 bit, EXE được thiết kế lại để phù hợp với cơ chế
định vị bộ nhớ phẳng (flat memory). Portable Executable (PE-EXE) gồm 2 nhóm:
• Các ứng dụng chủ (host application): tập tin thi hành EXE, OBJ, SCR…
• Mở rộng của ứng dụng (application extension): gồm các thư viện liên kết động
DLL (Dynamic Link Library), điều khiển thiết bị SYS (system driver), các ứng
dụng điều khiển CPL (Control Panel Applet), OCX (OLE Control
Extension)… Mặc dù chứa mã lệnh nhưng các tổ chức này không tự thi hành.
Chúng được gọi từ các ứng dụng chủ.
00000: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 //5A4D = MZ: dấu hiệu EXE
00010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00030: 00 00 00 00 00 00 00 00 00 00 00 00 E0 00 00 00 //00E0: địa chỉ PE header
...
000E0: 50 45 00 00 4C 01 03 00 20 84 7D 3B 00 00 00 00 //4550 = PE: dấu hiệu PE-EXE
000F0: 00 00 00 00 E0 00 0F 01 0B 01 07 00 00 56 00 00
00100: 00 0A 00 00 00 00 00 00 B3 5B 00 00 00 10 00 00
00110: 00 70 00 00 00 00 00 01 00 10 00 00 00 02 00 00
Hình P2.6: Cấu trúc đầu file một tập tin PE-EXE tiêu biểu
- 124 -
Giống như NE-EXE, PE-EXE là vật chủ của file virus, sâu trình và trojan
horse. Đặc trưng nhận dạng của PE-EXE cũng tương tự NE-EXE (Hình P2.6):
- Mang đặc trưng của định dạng DOS-EXE
- Trường 3C trong cấu trúc DOS-EXE trỏ đến cấu trúc đầu file PE-EXE
- Hai byte đầu tiên của file header có giá trị 50h và 45h (‘PE’)
Cấu trúc đầu file PE-EXE chứa các đặc trưng thi hành của đối tượng: FileSize, FileType, FileAttribute, MachineWord, NumberOfSections, TimeDateStamp,
SizeOfOptionalHeader, Characteristics, MajorLinkerVersion, MinorLinkerVersion,
SizeOfCode, SizeOfInitializedData, SizeOfUnitializedData, RelativeVirtualAddress,
BaseOfCode, BaseOfData, BaseOfRVA, ImageBase, SectionAlignment, FileAlignment,
MajorOSVersion, MinorOSVersion, MajorImageVersion, MinorImageVersion,
MajorSubSystemVersion, MinorSubSystemVersion, SizeOfImage, SizeOfHeader,
FileChecksum, SubSystem, DLLCharacteristics, SizeOfStackReserve,
SizeOfStackCommit, SizeOfHeapReserve, SizeOfHeapCommit, LoaderFlags,
NumberOfRvaAndSize, VirtualSize, VirtualAddress, SizeOfRawData, PointerToRawData,
PointerToRelocation, PointerToLineNumber, NumberOfRelocations,
NumberOfLineNumbers, AddressOfEntryPoint...
2.2.5. Định dạng LE-EXE (Windows 32s Linear Executable)
LE-EXE là định dạng các tập tin điều khiển thiết bị Virtual Device (VxD
Driver) dành cho họ Windows9x/Me (Hình P2.7). Windows NT/2000/XP không sử
dụng định dạng LE-EXE mà thay bằng định dạng SYS trong nhóm Mở rộng ứng
dụng (đã đề cập ở phần trên). LE-EXE thường chứa các rootkit điều khiển của
hacker ở mức hệ thống. Đặc điểm nhận dạng LE-EXE như sau:
00000: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 //5A4D = MZ: dấu hiệu EXE 00010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00030: 00 00 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 //00C8: địa chỉ LE header ... 000C0: 00 00 00 00 00 00 00 00 4C 45 00 00 00 00 00 00 //454C = LE: dấu hiệu LE-EXE 000D0: 02 00 04 00 00 00 00 00 00 80 03 00 E4 02 00 00 000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000F0: 00 02 00 00 5C 00 00 00 4E 33 00 00 00 00 00 00
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
Thư mục gốc (Root Entries) Thư mục gốc (Root Entries)
Vùng dữ liệu (Data Area)
Vùng dữ liệu (Data Area)
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,
Get/SetFileAttribute, Read/WriteFile, Close/DeleteFile…
- 130 -
- Giám sát các tiến trình hệ thống như tạo tiến trình, tải thư viện liên kết động,
duyệt cấu trúc đĩa, truy nhập hệ thống mạng…
- Tải và cập nhật CSDL và CSTT từ máy chủ từ xa của MAV
Trong mô hình này, các tác vụ con của VAA được phân công để có thể hoạt
động tự chủ (autonomic) tại những ‘vị trí’ thích hợp trong hệ thống. Ví dụ sau khi
các tác tử con được sinh ra, một số tác tử con sẽ tự di chuyển đến các ngăn đĩa hệ
thống (system folders) để giám sát các tình huống truy nhập tập tin hệ thống, trong
khi các tác tử khác di chuyển vào vùng nhớ, đến các cổng truy nhập mạng để theo
dõi tiến trình bộ nhớ hoặc canh giữ các luồng dữ liệu vào-ra mạng (Hình P3.2). Dựa
vào RS1, VAA chạy SID để phân tích các tình huống hệ thống, phát cảnh báo hoặc
xử lý tự động theo kịch bản đã được người dùng ấn định từ trước.
1.3. Cơ chế phối hợp giữa các tác tử
Khi hoạt động, cả hai tác tử VSA và VAA sử dụng chung động cơ suy diễn
SID và tương tác nhau. Ví dụ, trước khi VSA phát sinh tình huống WriteFile, nó gửi
một thông điệp báo cho VAA yêu cầu bỏ qua tình huống này. Khi VAA xử lý xong
một đối tượng, nó thông báo cho VSA không cần kiểm tra đối tượng đó. Chiến lược
phối hợp (co-operation strategy) này giải quyết vấn đề đụng độ (conflict) giữa các
tác tử, tránh hiện tượng tranh chấp tiến trình hệ thống.
Hình P3.2: Tác tử VAA với các tác tử con di động
- 131 -
2. Thuật toán SID (Tìm kiếm – Suy luận - Chẩn đoán)
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 <CLASS_1[i]>; //Tạo dữ liệu chẩn đoán 13: insert into LICHQUET
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
values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT); 52: ADD(KB1, KB3, CLASS_1[i], UserVirus); //Tăng trưởng 53: ByUser: update DOITUONG
set (TEN=CLASS_1[i].TEN,…) where DOI_TUONG=CLASS[i].DOI_TUONG;
54: insert into LICHQUET values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
55: Unknown: LOCK(CLASS_1[i]); //Nghi ngờ, khóa đối tượng 56: REPORT(CLASS_1[i].TEN, SuspectedVirus, Status); 57: ADD(KB2, CLASS_1[i], UserVirus); //Tăng trưởng tri thức 58: endcase; 59: endif; 60: endif; 61: endif; 62: endfor;
Phân tích hệ thống phần mềm MAV
1. Phân tích yêu cầu
1.1. Các yêu cầu về hệ thống
• Hệ điều hành thử nghiệm: - Máy chủ: Windows 2000/2003 Server - Máy trạm: Windows 2000/XP Professional
• Ngôn ngữ lập trình: Borland Delphi 7.0
• Thiết kế hướng dẫn: - HTML Help Workshop - Microsoft Front Page
• Giao tiếp lập trình: DLL, Indy (Client-Server Communication) 1.2. Phân hệ máy chủ
• Thu nhận tri thức chuyên gia
• Luyện học dữ liệu, rút luật nhận dạng
• Tổ chức, cập nhật CSDL và CSTT
• Kiểm soát vào-ra máy chủ
• Liên lạc, điều khiển máy khách
• Điều phối CSDL, CSTT cho toàn hệ thống 1.3. Phân hệ máy khách
• Xử lý dữ liệu, quét virus
• Kiểm soát vào-ra máy khách
• Liên lạc, thực hiện các yêu cầu từ máy chủ
• Gửi mẫu nghi virus cho máy chủ
• Cập nhật CSDL virus từ máy chủ
Phụ lục 4
- 134 -
2. Các chức năng kiểm soát cơ bản
2.1. Kiểm soát thiết bị nhớ trong
• Giám sát thường trực các thao tác tiến trình
• Quét danh sách tiến trình trong bộ nhớ
• Xác định địa chỉ ứng dụng chủ
• Kiểm tra ứng dụng chủ 2.2. Kiểm soát thiết bị nhớ ngoài
• Giám sát truy nhập thiết bị nhớ: đĩa mềm, ổ cứng, CD-ROM, USB…
• Bẫy các tình huống OpenFile, WriteFile, CloseFile, CreateProccess…
• Các mức kiểm soát: tiến trình tạo thao tác, đối tượng nhận thao tác 2.3. Quét virus trên hệ thống đĩa
• Máy chủ: quét các máy khách, quét tại chỗ
• Máy khách: quét tại chỗ 2.4. Các chế độ hoạt động
• Không thường trực: chạy khi user kích hoạt, thao tác trực tiếp trên giao diện.
• Thường trực: chạy khi máy tính khởi động (service, startup…), có thể tự xử lý tình huống theo các tùy chọn đã thiết lập.
3. Đặc tả các chức năng phân hệ máy chủ Các chức năng cài đặt trên phân hệ máy chủ được trình bày trong Bảng P4.1.
Bảng P4.1: Các chức năng cài đặt trên phân hệ máy chủ
stt Chức năng Chế độ Ghi chú
1 Luyện học CSDL virus, rút luật nhận dạng, tổ chức CSTT Không thường trực
2 Quét virus trên máy chủ Không thường trực Sử dụng gói máy trạm
3 Quản lý tiến trình Không thường trực Sử dụng gói máy trạm
4 Bảo vệ Truy nhập Thường trực Sử dụng gói máy trạm
5 Quản lý CSDL Cách ly Không thường trực Sử dụng gói máy trạm
6
Liên lạc máy khách: • Quét virus trên máy khách • Nhận mẫu lạ từ máy khách • Cập nhật CSDL cho máy khách
Thường trực
Dịch vụ chạy ngầm, không sử dụng giao diện
7 Cấu hình hệ thống Không thường trực
- 135 -
3.1. Chế độ không thường trực
• Luyện học CSDL virus: - Tải CSDL, bổ sung mẫu mới, phân cụm - Rút luật phân bố trị thuộc tính, tái cấu trúc CSTT
• Quét virus: - Quét virus trên máy chủ: hệ thống file, tiến trình trên máy chủ - Quét virus trên máy khách: hệ thống file trên máy khách
• Cấu hình hệ thống: quy định các thông số làm việc của hệ thống
• Quản lý các CSDL: - CSDL Virus: Add (file/folder), Find/Delete Record… - CSDL Cách ly: Restore, Delete đối tượng cách ly… - CSDL Nghi ngờ: Import, Send, Restore, Delete đối tượng…
3.2. Chế độ thường trực
• Liên lạc máy khách: - Gửi thông điệp/yêu cầu cho máy khách - Nhận thông điệp, mẫu virus từ máy khách gửi lên
• 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 tượng
4. Đặc tả các chức năng phân hệ máy khách
Bảng P4.2: Các chức năng cài đặt trên phân hệ máy khách
Stt Phân hệ Chế độ Ghi chú 1 Quét virus trên máy trạm Không thường trực
2 Quản lý tiến trình, kiểm soát truy nhập Thường trực
3 Quản lý CSDL Cách ly Không thường trực
4 Quản lý CSDL Tiền sử chẩn đoán Không thường trực
5 Danh sách virus Không thường trực
6
Liên lạc máy chủ: - Quét virus theo yêu cầu máy chủ - Tổng hợp tình trạng database - Gửi mẫu nghi ngờ cho máy chủ - Cập nhật database từ máy chủ
Thường trực
Dịch vụ hệ thống, không sử dụng giao diện người dùng
7 Cấu hình hệ thống Không thường trực
- 136 -
4.1. Chế độ không thường trực
• Quét virus:
- Quét hệ thống file, tiến trình trên máy khách
- Các chức năng phụ: lập lịch quét, chế độ quét, tùy chọn quét…
• Phát hiện virus lạ:
- Chuyển virus lạ vào CSDL Nghi ngờ
- Gửi mẫu về server khi có yêu cầu
• Quản lý các CSDL:
- CSDL Cách ly: Restore, Delete đối tượng cách ly
- CSDL Nghi ngờ: Import, Send, Restore, Delete đối tượng
- CSDL Kiểm chứng: Create Table, Delete Table, Add Record, Delete
Record, Purge/Save/Delete Database…
• 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
Hình P6.19: Quản lý danh sách tiến trình hệ thống
Hình P6.20: Thông tin hệ thống
- 161 -
4.7. Hướng dẫn sử dụng
Hình P6.21: Hướng dẫn sử dụng