luận Án tiến sĩ

180
ĐẠI HC QUC GIA THÀNH PHHCHÍ MINH TRƯỜNG ĐẠI HC KHOA HC TNHIÊN TRƯƠNG MINH NHT QUANG TIP CN MÁY HC VÀ HCHUYÊN GIA ĐỂ NHN DNG, PHÁT HIN VIRUS MÁY TÍNH CHUYÊN NGÀNH: ĐẢM BO TOÁN HC CHO MÁY TÍNH VÀ HTHNG TÍNH TOÁN MÃ S: 1.01.10 LUN ÁN TIN SĨ TOÁN HC NGƯỜI HƯỚNG DN KHOA HC: 1. GS. TSKH. HOÀNG KIM 2. PGS. TS. NGUYN THANH THY TP. HCHÍ MINH - 2009

Upload: tam-phong

Post on 28-Apr-2015

110 views

Category:

Documents


18 download

DESCRIPTION

Nghiên cứu khoa học

TRANSCRIPT

Page 1: Luận Án Tiến Sĩ

ĐẠ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

Page 2: Luận Án Tiến Sĩ

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

Page 3: Luận Án Tiến Sĩ

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

Page 4: Luận Án Tiến Sĩ

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

Page 5: Luận Án Tiến Sĩ

- 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

Page 6: Luận Án Tiến Sĩ

- 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

Page 7: Luận Án Tiến Sĩ

- 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

Page 8: Luận Án Tiến Sĩ

- 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

Page 9: Luận Án Tiến Sĩ

- 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

Page 10: Luận Án Tiến Sĩ

- 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

Page 11: Luận Án Tiến Sĩ

- 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

Page 12: Luận Án Tiến Sĩ

- 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

Page 13: Luận Án Tiến Sĩ

- 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

Page 14: Luận Án Tiến Sĩ

- 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

Page 15: Luận Án Tiến Sĩ

- 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

Page 16: Luận Án Tiến Sĩ

- 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

Page 17: Luận Án Tiến Sĩ

- 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

Page 18: Luận Án Tiến Sĩ

- 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

Page 19: Luận Án Tiến Sĩ

- 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

Page 20: Luận Án Tiến Sĩ

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

Page 21: Luận Án Tiến Sĩ

- 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

Page 22: Luận Án Tiến Sĩ

- 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

Page 23: Luận Án Tiến Sĩ

- 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.

Page 24: Luận Án Tiến Sĩ

- 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

Page 25: Luận Án Tiến Sĩ

- 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.

Page 26: Luận Án Tiến Sĩ

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

Page 27: Luận Án Tiến Sĩ

- 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:

Page 28: Luận Án Tiến Sĩ

- 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).

Page 29: Luận Án Tiến Sĩ

- 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

thể

mỗi

lớp

Prg-32

Prg-16

Binary

Text

Macro

(a)

(b)

Page 30: Luận Án Tiến Sĩ

- 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].

Page 31: Luận Án Tiến Sĩ

- 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

Page 32: Luận Án Tiến Sĩ

- 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

Page 33: Luận Án Tiến Sĩ

- 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].

Page 34: Luận Án Tiến Sĩ

- 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:

Page 35: Luận Án Tiến Sĩ

- 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

Page 36: Luận Án Tiến Sĩ

- 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ệ.

Page 37: Luận Án Tiến Sĩ

- 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ã.

Page 38: Luận Án Tiến Sĩ

- 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

Page 39: Luận Án Tiến Sĩ

- 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.

Page 40: Luận Án Tiến Sĩ

- 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

Page 41: Luận Án Tiến Sĩ

- 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

Page 42: Luận Án Tiến Sĩ

- 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ố

Page 43: Luận Án Tiến 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.

Page 44: Luận Án Tiến Sĩ

- 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]…

Page 45: Luận Án Tiến Sĩ

- 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

Page 46: Luận Án Tiến Sĩ

- 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

Page 47: Luận Án Tiến Sĩ

- 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.

Page 48: Luận Án Tiến Sĩ

- 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.

Page 49: Luận Án Tiến Sĩ

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

Page 50: Luận Án Tiến Sĩ

- 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}

Page 51: Luận Án Tiến Sĩ

- 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 ← ∅.

Page 52: Luận Án Tiến Sĩ

- 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)

Page 53: Luận Án Tiến Sĩ

- 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

Page 54: Luận Án Tiến Sĩ

- 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

Page 55: Luận Án Tiến Sĩ

- 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

Page 56: Luận Án Tiến Sĩ

- 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:

Page 57: Luận Án Tiến Sĩ

- 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.

Page 58: Luận Án Tiến Sĩ

- 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.

Page 59: Luận Án Tiến Sĩ

- 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à

Page 60: Luận Án Tiến Sĩ

- 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:

Page 61: Luận Án Tiến Sĩ

- 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.

Page 62: Luận Án Tiến Sĩ

- 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

Page 63: Luận Án Tiến Sĩ

- 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)

Page 64: Luận Án Tiến Sĩ

- 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).

Page 65: Luận Án Tiến Sĩ

- 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).

Page 66: Luận Án Tiến Sĩ

- 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

Page 67: Luận Án Tiến Sĩ

- 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

Page 68: Luận Án Tiế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).

Page 69: Luận Án Tiến Sĩ

- 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

Page 70: Luận Án Tiến Sĩ

- 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

Page 71: Luận Án Tiến Sĩ

- 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).

Page 72: Luận Án Tiến Sĩ

- 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.

Page 73: Luận Án Tiến Sĩ

- 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).

Page 74: Luận Án Tiến Sĩ

- 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.

Page 75: Luận Án Tiến Sĩ

- 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].

Page 76: Luận Án Tiến Sĩ

- 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

Page 77: Luận Án Tiến Sĩ

- 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ả.

Page 78: Luận Án Tiến Sĩ

- 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).

Page 79: Luận Án Tiến Sĩ

- 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

Page 80: Luận Án Tiến Sĩ

- 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.

Page 81: Luận Án Tiến Sĩ

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

Page 82: Luận Án Tiến Sĩ

- 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

Page 83: Luận Án Tiến Sĩ

- 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.

Page 84: Luận Án Tiến Sĩ

- 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.

Page 85: Luận Án Tiến Sĩ

- 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.

Page 86: Luận Án Tiến Sĩ

- 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

Page 87: Luận Án Tiến Sĩ

- 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ử.

Page 88: Luận Án Tiến Sĩ

- 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.

Page 89: Luận Án Tiến Sĩ

- 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

Page 90: Luận Án Tiến Sĩ

- 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

Page 91: Luận Án Tiến Sĩ

- 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.

Page 92: Luận Án Tiến Sĩ

- 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.

Page 93: Luận Án Tiến Sĩ

- 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:

Page 94: Luận Án Tiến Sĩ

- 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

Page 95: Luận Án Tiến Sĩ

- 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).

Page 96: Luận Án Tiến Sĩ

- 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ả

Page 97: Luận Án Tiến Sĩ

- 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

Page 98: Luận Án Tiến Sĩ

- 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

Page 99: Luận Án Tiến Sĩ

- 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)

Page 100: Luận Án Tiến Sĩ

- 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

Page 101: Luận Án Tiến Sĩ

- 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

Page 102: Luận Án Tiến Sĩ

- 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 ?

Page 103: Luận Án Tiến Sĩ

- 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

Page 104: Luận Án Tiến Sĩ

- 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

Page 105: Luận Án Tiến Sĩ

- 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

Page 106: Luận Án Tiến Sĩ

- 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].

Page 107: Luận Án Tiến Sĩ

- 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.

Page 108: Luận Án Tiến Sĩ

- 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

Page 109: Luận Án Tiến Sĩ

- 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:

Page 110: Luận Án Tiến Sĩ

- 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.

Page 111: Luận Án Tiến Sĩ

- 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.

Page 112: Luận Án Tiến Sĩ

- 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.

Page 113: Luận Án Tiến Sĩ

- 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

Page 114: Luận Án Tiến Sĩ

- 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.

Page 115: Luận Án Tiến Sĩ

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

Page 116: Luận Án Tiến Sĩ

- 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…

Page 117: Luận Án Tiến Sĩ

- 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.

Page 118: Luận Án Tiến Sĩ

- 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.

Page 119: Luận Án Tiến Sĩ

- 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.

Page 120: Luận Án Tiến Sĩ

- 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.

Page 121: Luận Án Tiến Sĩ

- 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.

Page 122: Luận Án Tiến Sĩ

- 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.

Page 123: Luận Án Tiến Sĩ

- 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.

Page 124: Luận Án Tiến Sĩ

- 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.

Page 125: Luận Án Tiến Sĩ

- 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.

Page 126: Luận Án Tiến Sĩ

- 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

Page 127: Luận Án Tiến Sĩ

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

Page 128: Luận Án Tiến Sĩ

- 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

Page 129: Luận Án Tiến Sĩ

- 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ủ.

Page 130: Luận Án Tiến Sĩ

- 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

Page 131: Luận Án Tiến Sĩ

- 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

Page 132: Luận Án Tiến Sĩ

- 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

Page 133: Luận Án Tiến Sĩ

- 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.

Page 134: Luận Án Tiến Sĩ

- 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

Page 135: Luận Án Tiến Sĩ

- 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

Page 136: Luận Án Tiến Sĩ

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

Page 137: Luận Án Tiến Sĩ

- 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…).

Page 138: Luận Án Tiến Sĩ

- 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

Page 139: Luận Án Tiến Sĩ

- 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

Page 140: Luận Án Tiến Sĩ

- 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

Page 141: Luận Án Tiến Sĩ

- 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’)

Page 142: Luận Án Tiến Sĩ

- 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

Page 143: Luận Án Tiến Sĩ

- 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

Page 144: Luận Án Tiến Sĩ

- 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).

Page 145: Luận Án Tiến Sĩ

- 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

Page 146: Luận Án Tiến Sĩ

- 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

Page 147: Luận Án Tiến Sĩ

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

Page 148: Luận Án Tiến Sĩ

- 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…

Page 149: Luận Án Tiến Sĩ

- 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

Page 150: Luận Án Tiến Sĩ

- 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

Page 151: Luận Án Tiến Sĩ

- 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;

Page 152: Luận Án Tiến Sĩ

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

Page 153: Luận Án Tiến Sĩ

- 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

Page 154: Luận Án Tiến Sĩ

- 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

Page 155: Luận Án Tiến Sĩ

- 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ủ

Page 156: Luận Án Tiến Sĩ

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

Page 157: Luận Án Tiến Sĩ

- 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

Page 158: Luận Án Tiến Sĩ

- 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ủ

Page 159: Luận Án Tiến Sĩ

- 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

Page 160: Luận Án Tiến Sĩ

- 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

Page 161: Luận Án Tiến Sĩ

- 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

Page 162: Luận Án Tiến Sĩ

- 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

Page 163: Luận Án Tiến Sĩ

- 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

Page 164: Luận Án Tiến Sĩ

- 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

Page 165: Luận Án Tiến Sĩ

- 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

Page 166: Luận Án Tiến Sĩ

- 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

Page 167: Luận Án Tiến Sĩ

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

Page 168: Luận Án Tiến Sĩ

- 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

Page 169: Luận Án Tiến Sĩ

- 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

Page 170: Luận Án Tiến Sĩ

- 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

Page 171: Luận Án Tiến Sĩ

- 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ạ

Page 172: Luận Án Tiến Sĩ

- 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

Page 173: Luận Án Tiến Sĩ

- 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

Page 174: Luận Án Tiến Sĩ

- 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

Page 175: Luận Án Tiến Sĩ

- 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

Page 176: Luận Án Tiến Sĩ

- 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

Page 177: Luận Án Tiến Sĩ

- 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

Page 178: Luận Án Tiến Sĩ

- 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

Page 179: Luận Án Tiến Sĩ

- 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

Page 180: Luận Án Tiến Sĩ

- 161 -

4.7. Hướng dẫn sử dụng

Hình P6.21: Hướng dẫn sử dụng