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

Khảo sát virus máy tính

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






Khảo sát virus máy tính

1. Các loại virus máy tính
1.1. Boot virus
Là thuỷ tổ của virus máy tính, boot virus lây vào các mẫu tin khởi động
(MTKĐ, boot record) trên hệ thống đĩa. Đối với đĩa mềm, MTKĐ nằm trên sector
đầu tiên thuộc track 0, side 0 của đĩa (boot sector). Khi khởi động máy bằng đĩa
mềm, sau quá trình tự kiểm tra (POST - Power On Self Test), thường trình khởi
động máy trong ROM-BIOS sẽ đọc và nạp 512 byte trên boot sector vào bộ nhớ rồi
trao quyền, không cần biết đoạn mã này sẽ thực hiện những công việc gì.
Nguyên t
ắc của boot virus là thay thế MTKĐ bằng đoạn mã của nó để giành
quyền khởi động máy. Khi được trao quyền, boot virus sẽ thường trú, khống chế các
tác vụ đọc/ghi đĩa rồi nạp tiếp phần khởi động gốc (Hình P1.1). Quá trình lây nhiễm
của boot virus trên đĩa mềm được minh họa như sau:
Đĩa mềm sạch
: POST→ MTKĐ → HĐH
Đĩa mềm nhiễm
: POST→ Boot virus → MTKĐ → HĐH

Đối với đĩa cứng, có 2 MTKĐ: master boot nằm ở sector đầu tiên thuộc track
0, side 0 và boot sector nằm ở sector đầu tiên của track 0, side 1. Trên đĩa cứng,
boot virus có thể lây vào master boot hoặc boot sector. Quá trình minh họa như sau:
Đĩa cứng sạch
: POST→ Master boot→ Boot sector → HĐH
Đĩa cứng nhiễm


: POST → Boot virus→Master boot→ Boot sector→ HĐH, hoặc
POST → Master boot → Boot virus → Boot sector → HĐH

Phụ lục
1

- 109 -










Do được kích hoạt trước HĐH nên boot virus có thể lây nhiều loại HĐH.
Tuy nhiên chúng cũng gặp nhiều trở ngại như:
-

Cơ hội kích hoạt: người dùng ít khi khởi động máy từ đĩa mềm.
-

Cơ hội lây lan: phần lớn các chip ROM được trang bị chức năng phát hiện
tác vụ ghi vào boot sector hoặc cấm khởi động từ đĩa mềm.
-

Cơ hội tồn tại: do dung lượng nhỏ nên đĩa mềm ngày càng ít được sử dụng.
Hình P1.2a là MTKĐ chuẩn của Windows. Hình P1.2b là MTKĐ nhiễm virus.


EB 3C 90 2B 4A 48 54 56 49 48 43 00 02 01 01 00 02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 00 00
00 00 00 00 00 29 E3 1E 5C 3F 4E 4F 20 4E 41 4D 45 20 20 20 20 46 41 54 31 32 20 20 20 33 C9 8E D1
BC FC 7B 16 07 BD 78 00 C5 76 00 1E 56 16 55 BF 22 05 89 7E 00 89 4E 02 B1 0B FC F3 A4 06 1F BD
00 7C C6 45 FE 0F 38 4E 24 7D 20 8B C1 99 E8 7E 01 83 EB 3A 66 A1 1C 7C 66 3B 07 8A 57 FC 75 06
80 CA 02 88 56 02 80 C3 10 73 ED 33 C9 FE 06 D8 7D 8A 46 10 98 F7 66 16 03 46 1C 13 56 1E 03 46
0E 13 D1 8B 76 11 60 89 46 FC 89 56 FE B8 20 00 F7 E6 8B 5E 0B 03 C3 48 F7 F3 01 46 FC 11 4E FE
61 BF 00 07 E8 28 01 72 3E 38 2D 74 17 60 B1 0B BE D8 7D F3 A6 61 74 3D 4E 74 09 83 C7 20 3B FB
72 E7 EB DD FE 0E D8 7D 7B A7 BE 7F 7D AC 98 03 F0 AC 98 40 74 0C 48 74 13 B4 0E BB 07 00 CD
10 EB EF BE 82 7D EB E6 BE 80 7D EB E1 CD 16 5E 1F 66 8F 04 CD 19 BE 81 7D 8B 7D 1A 8D 45 FE
8A 4E 0D F7 E1 03 46 FC 13 56 FE B1 04 E8 C2 00 72 D7 EA 00 02 70 00 52 50 06 53 6A 01 6A 10 91
8B 46 18 A2 26 05 96 92 33 D2 F7 F6 91 F7 F6 42 87 CA F7 76 1A 8A F2 8A E8 C0 CC 02 0A CC B8 01
02 80 7E 02 0E 75 04 B4 42 8B F4 8A 56 24 CD 13 61 61 72 0A 40 75 01 42 03 5E 0B 49 75 77 C3 03 18
01 27 0D 0A 49 6E 76 61 6C 69 64 20 73 79 73 74 65 6D 20 64 69 73 6B FF 0D 0A 44 69 73 6B 20 49 2F
4F 20 65 72 72 6F 72 FF 0D 0A 52 65 70 6C 61 63 65 20 74 68 65 20 64 69 73 6B 2C 20 61 6E 64 20 74
68 65 6E 20 70 72 65 73 73 20 61 6E 79 20 6B 65 79 0D 0A 00 00 49 4F 20 20 20 20 20 20 53 59 53 4D
53 44 4F 53 20 20 20 53 59 53 7F 01 00 41 BB 00 07 60 66 6A 00 E9 3B FF 00 00 55 AA
Hình P1.2a:
M
ẫu tin khởi động chuẩn của hệ điều hành Windows
Kiểm tra thiết bị
- Màn hình
- Bộ nhớ
- Bàn phím
- Các ổ đĩa...
Khởi động hệ thống
- Nạp MTKĐ vào bộ
nhớ máy tính
- Trao quyền cho
MTKĐ

Mẫu tin khởi động
- Tìm hệ địều hành
- Nạp hệ điều hành
- Trao quyền cho hệ
điều hành
Boot virus
- Thường trú
- Khống chế đọc/ghi
- Nạp MTKĐ gốc
- Trao quyền cho
MTKĐ gốc
Mẫu tin khởi động
bình thường
Mẫu tin khởi động
nhiễm boot virus
Hình P1.1: Nguyên tắc hoạt động của boot virus
- 110 -

EB 3C 90 2C 27 6A 79 76 49 48 43 00 02 01 01 00 02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 00 00
00 00 00 00 00 29 00 ED 07 10 4E 4F 20 4E 41 4D 45 20 20 20 20 46 41 54 31 32 20 20 20 33 C9 8E D1
BC F0 7B 8E D9 B8 00 20 8E C0 FC BD 00 7C 38 4E 24 7D 24 8B C1 99 E8 3C 01 72 1C 83 EB 3A 66
A1 1C 7C 26 66 3B 07 26 8A 57 FC 75 06 80 CA 02 88 56 02 80 C3 10 73 EB 33 C9 8A 46 10 98 F7 66
16 03 46 1C 13 56 1E 03 46 0E 13 D1 8B 76 11 60 89 46 FC 89 56 FE B8 20 00 F7 E6 8B 5E 0B 03 C3
48 F7 F3 01 46 FC 11 4E FE 61 BF 00 00 E8 E6 00 72 39 26 38 2D 74 17 60 B1 0B BE A1 7D F3 A6 61
74 32 4E 74 09 83 C7 20 3B FB 72 E6 EB DC A0 FB 7D B4 7D 8B F0 AC 98 40 74 0C 48 74 13 B4 0E
BB 07 00 CD 10 EB EF A0 FD 7D EB E6 A0 FC 7D EB E1 CD 16 CD 19 26 8B 55 1A 52 B0 01 BB 00 00
E8 3B 00 72 E8 5B 8A 56 24 BE 0B 7C 8B FC C7 46 F0 3D 7D C7 46 F4 29 7D 8C D9 89 4E F2 89 4E
F6 C6 06 96 7D CB EA 03 00 00 20 0F B6 C8 66 8B 46 F8 66 03 46 1C 66 8B D0 66 C1 EA 10 EB 5E 0F
B6 C8 4A 4A 8A 46 0D 32 E4 F7 E2 03 46 FC 13 56 FE EB 4A 52 50 06 53 6A 01 6A 10 91 8B 46 18 96
92 33 D2 F7 F6 91 F7 F6 42 87 CA F7 76 1A 8A F2 8A E8 C0 CC 02 0A CC B8 01 02 80 7E 02 0E 75 04

B4 42 8B F4 8A 56 24 CD 13 61 61 72 0B 40 75 01 42 03 5E 0B 49 75 06 F8 C3 41 BB 00 00 60 66 6A
00 EB B0 4E 54 4C 44 52 20 20 20 20 20 20 0D 0A 52 65 6D 6F 76 65 20 64 69 73 6B 73 20 6F 72 20 6F
74 68 65 72 20 6D 65 64 69 61 2E FF 0D 0A 44 69 73 6B 20 65 72 72 6F 72 FF 0D 0A 50 72 65 73 73 20
61 6E 79 20 6B 65 79 20 74 6F 20 72 65 73 74 61 72 74 0D 0A 00 00 00 00 00 00 00 AC CB D8 55 AA
Hình P1.2b:

Mẫu tin khởi động hệ điều hành Windows bị nhiễm boot virus

1.2. File virus
Khác với boot virus, file virus lây vào tập tin chương trình của hệ điều hành.
Tùy theo hệ điều hành và cơ chế hoạt động của vật chủ, file virus có cách lây nhiễm
khác nhau (Hình P1.3a và P1.3b). Cơ chế hoạt động của file virus như sau:
-

Xác định điểm vào lệnh (IP-Instruction Pointer) gốc của vật chủ
-

Ghép mã lệnh virus vào vật chủ. Tùy theo định dạng/tình trạng của vật chủ,
vị trí ghép có thể ở đầu, giữa hoặc ở cuối vật chủ.
-

Thay điểm vào lệnh của vật chủ trỏ đến địa chỉ mã lệnh của virus
Khi vật chủ thi hành, file virus sẽ thực hiện các thao tác:
-

Kiểm tra sự có mặt của virus trong vùng nhớ. Nếu chưa thường trú, chúng
tiến hành sao chép vào vùng nhớ đã được hệ điều hành cấp phát.
-

Tìm kiếm các vật chủ khác để lây vào

-

Thực hiện các hoạt động đã được lập trình (phá hoại, do thám, định thời…)
-

Phục hồi điểm vào lệnh gốc và trao quyền cho vật chủ.
- 111 -







Nhược điểm của file virus là dễ bị phát hiện do kích thước file thay đổi và
chỉ lây mạnh trên các HĐH DOS và Windows 9x/Me. Trên Windows NT/2000/XP,
chúng thường vấp phải hàng rào bảo vệ hạt nhân hệ thống Kernel32. Vì vậy file
virus dần được hacker thay bằng các hình thức khác như worm, trojan horse…
1.3. Macro virus
Để tự động hóa thao tác sử dụng của người dùng, hãng Microsoft đã tích hợp
tập lệnh VBA (Visual Basic Application) vào bộ công cụ Microsoft Office. Theo
CSI (Cisco Safe Implementation), macro virus được định nghĩa như sau:
“Macro virus là loại virus máy tính được viết bằng ngôn ngữ VBA, thực thi
trong môi trường của Microsoft Word hoặc Excel. Macro là tập lệnh giúp tự động
hóa tác vụ của người dùng”
()
.

Các macro virus lợi dụng các template trong môi trường tương tác VBA làm
nơi lưu trú. Khi người dùng mở tư liệu mới, các thủ tục của virus trong template sẽ

kết nhập vào tư liệu hiện thời dưới dạng các thủ tục VBA đã biên dịch (Hình P1.4).
Tùy theo phiên bản Microsoft Office, tập mã thủ tục VBA sẽ được chuyển dạng
tương thích đi lên, làm biến đổi mã lệnh của macro virus.
1.4. Worm, sâu trình
Theo Vesselin Bonchev, worm (tạm dịch sâu trình) là:
“Các chương trình có khả năng tạo bản sao chính nó (thường là qua mạng
máy tính) như một chương trình (hoặc tập các chương trình) độc lập, không phụ
thuộc vào sự tồn tại của ứng dụng chủ”.
Hình P1.3: Kỹ thuật lây nhiễm của file virus
a. Tập tin chương trình trước
khi nhiễm file virus
IP
Header
Data
Code

b
.
Tập tin chương trình sau
khi nhiễm file virus
Virus IP
Header
Data
Code
IP

- 112 -

















Khai thác các dịch vụ vận chuyển dữ liệu như HTTP (HyperText Transfer
Protocol), FTP (File Transfer Protocol), IRC (Internet Relay Chat), DNS (Domain
Name Service), Drive Sharing, Email, Packet Routing…, sâu trình len lõi vào các hệ
thống đích để tìm cơ hội do thám, đánh cắp, phá hoại dữ liệu. Khác với virus, sâu
trình không đính vào các ứng dụng khác mà tồn tại trên hệ thống như một ứng dụng
độc lập (hình P1.5). Sâu trình khó phát hiện vì chúng có định dạng giống các ứng
dụng hợp thức. Tuy nhiên sâu trình cũ
ng có nhược điểm. Do đứng độc lập nên khả
năng tự kích hoạt bị hạn chế và dễ bị tiêu diệt. Kịch bản chung của sâu trình là đăng
ký kích hoạt khi hệ điều hành hoàn tất quá trình khởi động.
1.5. Trojan horse
Thuật ngữ “trojan horse” (mượn từ điển tích “ngựa gỗ thành Troie” trong
thần thoại Hy Lạp, gọi tắt là trojan) là tên gọi các loại mã độc do người lập trình cài
sẵn vào ứng dụng. Ban đầu, trojan là công cụ của người lập trình. Khi phát hiện các
trường hợp không hợp thức (như sao chép lậu, bẻ khóa…), các đoạn mã này sẽ tự

Microsoft Word

Virus
macro
Infected doc.
Virus
macro
Infected doc.
(1)
(2)
Infected doc.
Virus
macro
(5)
Microsoft Word
Virus
macro
Benign doc.
(4)
Virus
macro
Template
(3)


Hình P1.4: Quy trình lây nhiễm của macro virus
1. Tập tin tư liệu chứa mã lệnh virus macro
2. Ứng dụng Office mở tư liệu nhiễm virus macro
3. Tập thủ tục VBA của virus kết nhập vào template
4. Virus macro trong template kết nhập vào các đối tượng mới
5. Hàng loạt tư liệu khác bị nhiễm virus macro
- 113 -

kích hoạt để trừng trị người dùng như xóa ứng dụng, làm treo máy… Về sau ý
nghĩa của trojan càng mờ nhạt. Lợi dụng Internet, các hacker tung lên mạng các
“tiện ích” (có cài sẵn trojan) để lừa người dùng download về sử dụng (ví dụ các
phần mềm bẻ khóa, kích hoạt tài khoản xem phim trực tuyến…). Khi chạy loại “ứng
dụng” này, các đoạn mã trojan sẽ thực thi các lệnh của hacker. CSI định nghĩa
trojan horse là “loại chương trình
được viết như tiện ích hữu hiệu, nhưng thực tế lại
là công cụ tấn công”.
()











Trojan không tự lây mà lan truyền nhờ thao tác download và sao chép của
người dùng (hình P1.6). Giống sâu trình, trojan có định dạng ứng dụng nên việc
phát hiện gặp nhiều trở ngại. Trong một họ (family), trojan khởi thủy được gọi là
mầm độc (germs). Thông thường, mã của mầm độc dùng để lắp ghép cho con cháu.









Network
Application
Worm
Network
Application
Network
Application
Worm
Network
Application
Physical Network
Virtual Network Virtual Network
Hình P1.5: Worm lan truyền trên hệ thống mạng
Physical Computer
Physical Computer
Hình P1.6: Cơ chế lan truyền của trojan horse

Internet

download



copy
LAN


- 114 -

Đôi khi trojan còn chứa trong lòng nó một loại mã độc khác (như sâu trình
chẳng hạn). Khi thực thi, loại trojan này (gọi là dropper) sẽ kết xuất mã độc thứ cấp
ra hệ thống đích (tái sinh) mỗi khi một trong các bản sao của chúng bị tiêu diệt.
Injector là một dạng cải tiến của dropper: thay vì kết xuất ra bộ nhớ ngoài, mã độc
được cài vào bộ nhớ trong để tránh bị phát hiện. Kết hợp giữa trojan và sâu trình,
dropper và injector có đặc tính lây lan nên gầ
n với virus hơn.
Trapdoor (hay backdoor) rất được giới hacker ưa chuộng. Khi lây vào hệ
thống, backdoor có nhiệm vụ mở cổng (port, điểm truy cập ứng dụng), làm nội gián
chờ đáp ứng thao tác quét cổng của hacker. Khi nhận được tín hiệu, backdoor khống
chế hàng rào bảo vệ hệ thống, dọn đường đón các đợt thâm nhập từ bên ngoài.
Gần đây xuất hiện loại trojan đặc bi
ệt nguy hiểm gọi là rootkit. Ban đầu,
rootkit là tên gọi các bộ công cụ (kit) giúp người quản trị nắm quyền điều khiển hệ
thống ở mức cao nhất (root). Trong tay hacker, rootkit trở thành công cụ đắc lực để
đánh cắp mật khẩu truy nhập, thu thập thông tin trên máy nạn nhân hoặc che đậy
các hoạt động thâm nhập bất hợp pháp. Hacktool là một dạng rootkit sơ cấp. Cao
cấp hơ
n có các loại rootkit thám báo như keylogger (theo dõi hoạt động bàn phím),
sniffer (theo dõi gói tin qua mạng), filehooker (theo dõi truy nhập tập tin)…
1.6. Malware
Malware là tên gọi chung các loại phần mềm độc hại như:


Adware: loại phần mềm tự động bật (popup) các cửa sổ quảng cáo, thay đổi
các thiết lập hệ thống…, gây phiền phức cho người sử dụng.


Spyware: loại phần mềm gián điệp, săn lùng thông tin thương mại, đánh cắp
thông tin cá nhân như địa chỉ e-mail, độ tuổi, giới tính, thói quen mua sắm…



Pornware: loại phần mềm đồi trụy phát tán từ các trang web khiêu dâm, tự
động bật lên các hình ảnh gợi dục, phim sex... Pornware rất nguy hiểm cho trẻ
em và thanh thiếu niên, làm suy đồi đạo đức xã hội.


Riskware: phần mềm trôi nổi, không được kiểm định chất lượng. Riskware
tiềm ẩn nhiều lỗi nghiêm trọng, làm suy giảm chất lượng phục vụ của hệ
thống, có nguy cơ ảnh hưởng dữ liệu của người dùng.
- 115 -
Trong lĩnh vực anti-virus, nghiên cứu malware là bài toán sôi nổi và khá lý
thú. Hình P1.7 mô tả nguồn gốc, quá trình phát triển của các loại virus máy tính và
mã độc hiện nay.














2. Khảo sát virus máy tính
Việc khảo sát virus máy tính gặp nhiều khó khăn bởi:

-

Các anti-virus chưa thống nhất về cách phân loại và đặt tên virus
-

Phần lớn các anti-virus không công bố danh sách đầy đủ các virus đã
cập nhật mà chỉ cung cấp các công cụ tìm kiếm online một virus cụ thể.
Bảng P1.1 thống kê danh sách 65.824 virus máy tính lây trên hệ điều hành
DOS/Windows của hãng Kaspersky. Cột “Kiểu dữ liệu” có được nhờ quá trình phân
tích mã các mẫu virus đại diện lớp. Cột “Tỷ lệ %” được đưa vào để tính mật độ các
loại virus DOS/Windows đã xuất hiện trong 10 năm (từ 1995 đến 2004).
Kế
t quả phân tích thống kê cho thấy virus máy tính có thể được phân loại
theo bốn nhóm chính (program, text, binary và macro), đặt cơ sở khoa học cho ý
tưởng phân loại virus theo đặc trưng dữ liệu của đề tài (xem Chương 2).
Computer virus
Hình P1.7: Nguồn gốc mã độc và phân loại mã độc
Boot virus
- FD bootvirus
-

HD bootvirus

File virus
- 16 bit virus
- 32 bit virus
Worm
- Intruder
- Dropper
- Injector…

Macro virus
- MS Word
- MS Excel
- MS PowerPoint
Trojan horse
- Germs
- Dropper
- Injector
- Rootkit…
Malware
- Adware
- Spyware
- Pornware
- Riskware…
Boot record
- Boot sector
-

Master boot

OS/Program
- Application
- Resource
- Library
- Driver…
Instruction set
- 8088
- 80x86
- Pentium
Harmful Code

- 116 -
Bảng P1.1:
Thống kê các loại virus máy tính (1995-2004)
stt Kiểu virus Số lượng Kiểu dữ liệu Tỷ lệ %
1 ANSI 4 Text 0.01
2 ASP 89 Text 0.14
3 Basic 7 Text 0.01
4 BAT 2059 Text 3.13
5 Boot-DB 913 Binary 1.39
6 Boot-DOS 198 Binary 0.30
7 Boot-SB 14 Binary 0.02
8 DOS 18412 Program 16-bit 27.97
9 DOS32 18 Program 32-bit 0.03
10 HTT 9 Text 0.01
11 HTML 295 Text 0.45
12 IRC 518 Program 32-bit 0.79
13 Java 140 Text 0.21
14 Java script 522 Text 0.79
15 MSAccess 30 VBA macro 0.05
16 MSExcel 348 VBA macro 0.53
17 MSOffice 96 VBA macro 0.15
18 MSPPoint 12 VBA macro 0.02
19 MSProject 4 VBA macro 0.01
20 MSPublisher 1 VBA macro 0.00
21 MSVision 3 VBA macro 0.00
22 MSWord 2987 VBA macro 4.54
23 Multi dropper 523 Program 32-bit 0.79
24 Perl 152 Text 0.23
25 PHP 63 Text 0.10
26 PIF 19 Binary 0.03

27 PSP 1 Text 0.00
28 RAR 1 Binary 0.00
29 Script 9 Text 0.01
30 VBS 1562 Text 2.37
31 WBS 4 VBA macro 0.01
32 Win16 484 Program 16-bit 0.74
33 Win32 35731 Program 32-bit 54.28
34 Win9x 537 Program 32-bit 0.82
35 WinHLP 9 Binary 0.01
36 WinINF 9 Binary 0.01
37 WinLNK 1 Binary 0.00
38 WinPIF 1 Binary 0.00
39 WinREG 36 Text 0.05
40 ZIP 3 Binary 0.00







Các định dạng dữ liệu nhiễm virus máy tính


1. Giới thiệu
Nghiên cứu virus máy tính luôn gắn với việc phân tích các định dạng dữ liệu
vật chủ. Mỗi loại virus chỉ lây vào một số định dạng dữ liệu nhất định. Phân tích các
định dạng dữ liệu vật chủ là cơ sở để phân loại dữ liệu (quan tâm đến các điểm dữ
liệu có nguy cơ nhiễm virus), giảm tải quá trình chẩn đoán (loại bớt các đối tượng
chắ

c chắn sạch khỏi không gian chẩn đoán) và gia tăng độ tin cậy của hệ thống
(giảm nguy cơ bỏ sót đối tượng chẩn đoán). Các định dạng vật chủ chứa mã thi
hành có thể nhiễm virus gồm: tập tin văn bản, tập tin chương trình, tập tin MS
Office và mẫu tin khởi động (Bảng P2.1).
Bảng P2.1:
Các định dạng vật chủ chứa mã thi hành có thể nhiễm virus máy tính
Stt Vật chủ Loại virus Các định dạng Kiểu
Tập tin lô BAT
Tập tin script VBS, JS
Tập tin registry REG
1 Tập tin văn bản
File virus
Worm
Trojan
Tập tin siêu văn bản HTT, HTA
Tập tin lệnh COM
Tập tin thi hành EXE, SCR
2 Tập tin chương trình
File virus
Worm
Trojan
Tập tin thư viện DLL, CPL, SYS, VXD
Tập tin tư liệu DOC, DOT
Tập tin bảng tính XLS, XLT
3 Tập tin MS Office Macro virus
Tập tin trình diễn PPT, POT
Mẫu tin khởi động hệ
điều hành đĩa mềm
#N/A
Mẫu tin khởi động hệ

điều hành đĩa cứng
#N/A
4 Mẫu tin khởi động Boot virus
Mẫu tin khởi tạo phân
khu đĩa cứng
#N/A
Phụ lục
2
- 118 -
2. Các định dạng dữ liệu nhiễm virus máy tính
2.1. Tập tin văn bản
Tập văn bản (text file) là tổ chức file đơn giản, được chia làm hai loại:
-

Tập văn bản 7 bit: chứa các ký tự ASCII chuẩn (7 bit) có thể gõ trực tiếp từ
bàn phím, mã từ 32 (khoảng trắng) đến 126 (ký tự ~). Tập văn bản 7 bit dùng
chứa nội dung chương trình nguồn như PAS, ASM, C, CPP, JS, VBS…
-

Tập văn bản 8 bit: có thêm các ký tự ASCII mở rộng 8 bit (từ 128 đến 255)
sử dụng ký tự graphic trang trí bảng, hình hộp hoặc thiết lập font chữ riêng.
Do hiện nay các trình biên dịch/thông dịch lệnh chỉ hỗ trợ các ký tự 7 bit nên
chưa phát hiện câu lệnh virus trong các tập tinvăn bản 8 bit.
Để thực thi các câu lệnh trong tập tin văn bản 7 bit, hệ thống phải dịch chúng
sang mã máy. Do không phải hệ thống nào cũng có đủ bộ dịch l
ệnh của tất cả các
ngôn ngữ lập trình, nên chỉ vài loại tập tin văn bản 7 bit là có nguy cơ nhiễm virus
(Bảng P2.2), đó là các tập tin chứa tập lệnh của các ngôn ngữ lập trình được tích
hợp sẵn trong hệ thống (Hình P2.1).


Bảng P2.2:
Các loại tập tin văn bản nhiễm virus máy tính
stt Loại tập tin Mô tả Kiểu Thi hành
1 Tập lệnh theo lô Batch command BAT Internal Command Interpreter
2 Tập lệnh siêu văn bản Hyper Text HTT HTML Application Host
3 Tập lệnh khởi tạo System Initiation INI Windows Startup
4 Tập lệnh Java Java Script JS Windows Based Script Host
5 Tập đăng ký hệ thống System registry REG Registry Editor
6 Tập lệnh Visual Basic Visual Basic Script VBS Windows Based Script Host

Dấu hiệu nhận dạng các tập văn bản 7-bit có thể nhiễm virus là:
-

Dữ liệu byte (32-127)
-

Chứa các từ khóa của các ngôn ngữ lập trình tích hợp sẵn trong hệ thống
(Java Script, VB Script, HTML Application, Command Interpreter…).


- 119 -












2.2. Tập tin chương trình
Các tập tin chương trình (program file), còn gọi là ứng dụng (application)
hay phần mềm (software), được biên dịch thành các tổ chức file thi hành trong môi
trường của hệ điều hành. Đối với DOS/Windows, ngoài hai loại tập tin chương trình
chính là COM và EXE còn có các tổ chức thi hành khác như SYS, DLL, CPL, SCR,
OCX… Trong quá trình phát triển, Microsoft đã sử dụng nhiều định dạng thi hành
phức tạp. Khi nạp vào bộ nhớ, tập tin chương trình sẽ được hệ điều hành thực thi,
không quan tâm ngu
ồn gốc và mức độ nguy hiểm của các lệnh này. Do vậy, các tập
tin chương trình là một trong những kẽ hở bảo mật quan trọng của hệ thống.
Bảng P2.3:
Các loại tập tin chương trình
Tổ chức Loại Kiểu Kiểu con Hệ điều hành
Thi hành
trực tiếp
Command DOS-COM COM COM DOS 16 bit Có
DOS-EXE EXE EXE DOS 16 bit Có
EXE EXE Windows 16 bit Có
NE-EXE
DLL DLL Windows 16 bit Không
EXE EXE, SCR… Windows 32 bit Có
PE-EXE
DLL
DLL, SYS,
OCX, CPL…
Windows 32 bit Không
Executable
LE-EXE VXD VXD Windows 32 bit Không


Hình P2.1: Phân loại, xác định nhóm tập tin văn bản nhiễm virus
Tập văn bản
Văn bản 7-bits
Văn bản 8-bits
Tập lệnh của các ngôn
ngữ lập trình khác
Chương trình nguồn
Văn bản 7-bits khác
Tập lệnh dành cho lõi
biên dịch, thông dịch
sẵn có của hệ thống
- 120 -













Phân tích định dạng tập tin là hoạt động khá phổ biến trong nhiều lĩnh vực
phần mềm (đồ họa, âm thanh, liên lạc, bảo mật, hệ thống…) vốn tỉ mỉ, tốn nhiều
thời gian và công sức. Đã có nhiều tài liệu nói về các loại định dạng tập tin, nên
phần này không đi sâu phân tích kỹ thuật mà tập trung vào công tác phân loại (Bảng

P2.3) và nhận dạng (Hình P2.2). Tham khảo thêm ở địa chỉ

.

2.2.1. Định dạng COM (DOS Command)
COM là định dạng thi hành đơn giản trong mô hình phân đoạn
segment:offset của MSDOS. Các tập tin COM chứa hình ảnh dữ liệu của đoạn bộ
nhớ lúc file được nạp vào địa chỉ Segment:100h. Do hoạt động trong một phân đoạn
nên kích thước file COM giới hạn trong phạm vi 64KB. Khi lây vào file COM,
virus sẽ thay điểm vào lệnh đầu tiên bằng lệnh gọi (mã máy E8h) hoặc lệnh nhảy
(EBh nhảy gần dưới 128 byte, E9h nhảy xa trên 128 byte) đến thủ tụ
c xử lý của
virus (Hình P2.3). Đặc điểm nhận dạng các tập COM có thể nhiễm virus như sau:
-

Kích thước dưới 64KB
-

Dữ liệu byte trải dài trên bộ mã ASCII (0-255)
-

Có lệnh nhảy (E9h, EBh) hoặc lệnh gọi (E8h) đầu file.
Hình P2.2: Phân loại các tập tin chương trình
Program Files
EXE
NE-EXE
PE-EXE
DOS-EXE
LE-EXE
EXE-16 bits

DLL-16 bits
EXE-32 bits
DLL-32 bits
COM
- 121 -
















Trong thời kỳ đầu của DOS, do đơn giản và nhỏ gọn nên định dạng COM rất
dễ bị file virus tấn công. Do hạn chế về kích thước và khả năng truy nhập bộ nhớ
nên các hacker đã chuyển hướng tấn công sang định dạng EXE (Executable File).
2.2.2. Định dạng EXE (DOS Executable)
Định dạng EXE cho phép mở rộng kích thước tập tin lớn hơn 64KB bằng
cách sử dụng mỗi phân đoạn bộ nhớ riêng biệt cho từng thanh ghi CS, DS, ES, SS.
Với cách tổ chức này, EXE sử dụng cấu trúc đầu file (gọi là EXE header) chứa
thông tin của file và các tham số giúp hệ điều hành định vị bộ nhớ, tải mã lệnh, dữ
liệu, ngăn xếp và khởi tạo giá trị các thanh ghi CPU trước khi thực thi chương trình.

Lây vào EXE, file virus ghép mã l
ệnh vào cuối file rồi điều chỉnh CS:IP trỏ
đến địa chỉ của nó. Các tập EXE có đặc điểm nhận dạng như sau:
-

Word đầu tập tin có trị ‘MZ’ hoặc ‘ZM’
-

Dữ liệu byte, trải dài trên toàn bảng mã ASCII (0-255)
-

Thủ tục khởi tạo trỏ đến địa chỉ thực trên file (Header < CS:IP < Filesize)

a. Biểu diễn byte
E9 E6 02
1B 5B 50 32 4A 0D 20 20 4E

E9: Mã lệnh nhảy (xa hơn 128 byte) đến thủ tục khởi tạo

b. Biểu diễn lệnh máy
xxxx : 0100 E9E602 JMP 03E9 // E9: Nhảy đến thủ tục khởi tạo
xxxx : 0103 1B5B50 SBB BX,[BP+DI+50]
xxxx : 0106 324A0D XOR CL,[BP+SI+0D]
xxxx : 0109 2020 AND [BX+SI],AH
xxxx : 010B 4E DEC SI
...
xxxx : 03E9 50 PUSH AX // Thủ tục khởi tạo
xxxx : 03EA 53 PUSH BX
xxxx : 03EB B93E00 MOV CX,003E
xxxx : 03EE BA0901 MOV DX,0109

xxxx : 03F1 E8
F8FE CALL 02EC // E8: mã máy lệnh Call
...
Hình P2.3: Mô tả dữ liệu một tập tin COM tiêu biểu
a. Biểu diễn vector dữ liệu byte của tập tin COM
b. Biểu diễn lệnh máy của 12 byte đầu và các lệnh trong thủ tục khởi tạo
- 122 -
Hình P2.4 mô tả cấu trúc đầu file của một tập tin EXE tiêu biểu. Hai byte đầu
tiên (4D-5A) biểu diễn chuỗi ‘MZ’ nhận dạng file EXE. Các trường tiếp theo chứa
thông tin file và các tham số định vị. Đặc biệt trường 3Ch có giá trị 00 (không có
bảng thông tin bổ sung). Nếu khác 0, trường này chứa con trỏ đến một header khác
dùng cho NE-EXE (Windows 16 bit) và PE-EXE (Windows 32 bit). Các định dạng
này sẽ được mô tả ở phần tiếp theo.

00000: 4D 5A BC 00 08 00 05 00 20 00 71 00 FF FF CC 00 //5A4D = MZ: dấu hiệu EXE
00010: 08 07 00 00 10 00 00 00 1E 00 00 00 01 00 90 08
00020: 00 00 1E 00 00 00 0A 01 00 00 00 00 A8 00 72 00
00030: AD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //khác 0: trỏ đến header bổ sung
Hình P2.4: Cấu trúc đầu file một tập tin EXE tiêu biểu

2.2.3. Định dạng NE-EXE (Windows 16s New Executable)
Khi giới thiệu hệ điều hành Windows 16 bit (Windows 3.xx), Microsoft phải
thay đổi định dạng EXE cho phù hợp với tập lệnh của CPU chạy trong chế độ bảo
vệ hoặc 386 tăng cường… Thông tin bổ sung cho file NE-EXE được lưu trữ trong
một cấu trúc đầu file mới (gọi là NE header), định vị qua trường 3C của cấu trúc
đầu file DOS-EXE cũ. Header bổ sung này được bắt đầu bằng hai byte 4E-45 (chuỗi
‘NE’). Các trường tiếp theo chứa thông tin file NE-EXE (ví dụ file thi hành EXE
thực, hay là các thư viện liên kết động DLL…) và các tham số định vị dành cho hệ
thống trong các điều kiện thi hành khác nhau.
Hình P2.5 mô tả cấu trúc đầu file của tập tin thi hành trong môi trường

Windows16 bit. Cấu trúc này gồm hai phần. Phần đầu là cấu trúc đầu file DOS-
EXE. Phần thứ hai là cấu trúc đầu file NE-EXE định vị ở địa chỉ 0080h, là giá trị có
trong trường 3C của DOS-EXE. Đầu NE-EXE header là chuỗi nhận dạng ‘NE’.
Định dạng NE-EXE có đặc điểm nh
ận dạng như sau:
-

Mang đặc trưng của định dạng DOS-EXE
-

Trường 3C trong cấu trúc đầu file trỏ đến cấu trúc đầu file thứ hai
-

Hai byte đầu tiên của cấu trúc đầu file thứ hai có giá trị 4E và 45 (‘NE’)
- 123 -
00000: 4D 5A 75 01 01 00 00 00 04 00 00 00 FF FF 00 00 //5A4D = MZ: dấu hiệu EXE
00010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00030: 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 //0080: địa chỉ NE header
...
00080: 4E 45 05 3C 15 01 1B 00 00 00 00 00 01 03 03 00 //454E = NE: dấu hiệu NE-EXE
00090: 00 14 00 28 E2 73 01 00 00 00 03 00 03 00 04 00 //các tham số hệ thống dành cho
000A0: 10 00 40 00 58 00 A3 00 F6 00 FE 00 B0 01 00 00 //môi trường Windows 16 bit
000B0: 04 00 04 00 00 00 02 08 1E 00 B8 0B 00 00 0A 03

Hình P2.5: Cấu trúc đầu file một tập tin NE-EXE tiêu biểu


Phần tiếp theo sẽ mô tả cách nhận dạng các tập tin thi hành trong môi trường
Windows 32 bit, các Portable Executable file.

2.2.4. Định dạng PE-EXE (Windows 32s Portable Executable)
Trong HĐH Windows 32 bit, EXE được thiết kế lại để phù hợp với cơ chế
định vị bộ nhớ phẳng (flat memory). Portable Executable (PE-EXE) gồm 2 nhóm:


Các ứng dụng chủ (host application): tập tin thi hành EXE, OBJ, SCR…


Mở rộng của ứng dụng (application extension): gồm các thư viện liên kết động
DLL (Dynamic Link Library), điều khiển thiết bị SYS (system driver), các ứng
dụng điều khiển CPL (Control Panel Applet), OCX (OLE Control
Extension)… Mặc dù chứa mã lệnh nhưng các tổ chức này không tự thi hành.
Chúng được gọi từ các ứng dụng chủ.

00000: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 //5A4D = MZ: dấu hiệu EXE
00010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00030: 00 00 00 00 00 00 00 00 00 00 00 00 E0 00 00 00 //00E0: địa chỉ PE header
...
000E0: 50 45 00 00 4C 01 03 00 20 84 7D 3B 00 00 00 00 //4550 = PE: dấu hiệu PE-EXE
000F0: 00 00 00 00 E0 00 0F 01 0B 01 07 00 00 56 00 00
00100: 00 0A 00 00 00 00 00 00 B3 5B 00 00 00 10 00 00
00110: 00 70 00 00 00 00 00 01 00 10 00 00 00 02 00 00

Hình P2.6: Cấu trúc đầu file một tập tin PE-EXE tiêu biểu
- 124 -
Giống như NE-EXE, PE-EXE là vật chủ của file virus, sâu trình và trojan
horse. Đặc trưng nhận dạng của PE-EXE cũng tương tự NE-EXE (Hình P2.6):
-


Mang đặc trưng của định dạng DOS-EXE
-

Trường 3C trong cấu trúc DOS-EXE trỏ đến cấu trúc đầu file PE-EXE
-

Hai byte đầu tiên của file header có giá trị 50h và 45h (‘PE’)
Cấu trúc đầu file PE-EXE chứa các đặc trưng thi hành của đối tượng:
FileSize, FileType, FileAttribute, MachineWord, NumberOfSections, TimeDateStamp,
SizeOfOptionalHeader, Characteristics, MajorLinkerVersion, MinorLinkerVersion,
SizeOfCode, SizeOfInitializedData, SizeOfUnitializedData, RelativeVirtualAddress,
BaseOfCode, BaseOfData, BaseOfRVA, ImageBase, SectionAlignment, FileAlignment,
MajorOSVersion, MinorOSVersion, MajorImageVersion, MinorImageVersion,
MajorSubSystemVersion, MinorSubSystemVersion, SizeOfImage, SizeOfHeader,
FileChecksum, SubSystem, DLLCharacteristics, SizeOfStackReserve,
SizeOfStackCommit, SizeOfHeapReserve, SizeOfHeapCommit, LoaderFlags,
NumberOfRvaAndSize, VirtualSize, VirtualAddress, SizeOfRawData, PointerToRawData,
PointerToRelocation, PointerToLineNumber, NumberOfRelocations,
NumberOfLineNumbers, AddressOfEntryPoint...
2.2.5. Định dạng LE-EXE (Windows 32s Linear Executable)
LE-EXE là định dạng các tập tin điều khiển thiết bị Virtual Device (VxD
Driver) dành cho họ Windows9x/Me (Hình P2.7). Windows NT/2000/XP không sử
dụng định dạng LE-EXE mà thay bằng định dạng SYS trong nhóm Mở rộng ứng
dụng (đã đề cập ở phần trên). LE-EXE thường chứa các rootkit điều khiển của
hacker ở mức hệ thống. Đặc điểm nhận dạng LE-EXE như sau:

00000: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 //5A4D = MZ: dấu hiệu EXE
00010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
00020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00030: 00 00 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 //00C8: địa chỉ LE header

...
000C0: 00 00 00 00 00 00 00 00 4C 45 00 00 00 00 00 00 //454C = LE: dấu hiệu LE-EXE
000D0: 02 00 04 00 00 00 00 00 00 80 03 00 E4 02 00 00
000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000F0: 00 02 00 00 5C 00 00 00 4E 33 00 00 00 00 00 00
Hình P2.7: Cấu trúc đầu file một tập tin LE-EXE tiêu biểu
- 125 -
-

Mang đặc trưng của định dạng DOS-EXE
-

Trường 3C trong cấu trúc đầu file DOS-EXE trỏ đến cấu trúc LE-EXE
-

Hai byte đầu tiên của cấu trúc đầu file LE-EXE có giá trị 4C và 45 (‘LE’)
2.3. Tập tin tư liệu
Các tập tin tư liệu (document files) là các tập dữ liệu người dùng bộ công cụ
Microsoft Office (Bảng P2.4). Đây là đối tượng lây nhiễm của virus macro, loại
virus sử dụng tập lệnh macro VBA (Visual Basic Application) của Microsoft. Ngoài
đối tượng lây nhiễm chính là các tập tin DOC, XLS và PPT; các tập tin template và
add-in cũng là nơi “trú ngụ” rất tốt cho virus macro. Lưu trữ nhiều đối tượng nhúng
phức tạp (hình ảnh, âm thanh, bảng biểu, đồ thị…), các tập tin Office thường rất l
ớn
(vài trăm KB đến hàng chục MB). Để tiện truy xuất, Microsoft tổ chức các tập tin
này theo đơn vị paragraph 512 byte. Đặc điểm nhận dạng các tập tin này như sau:
-

Kích thước tập tin là bội số của 512
-


Chuỗi nhận dạng đầu file:
D0-CF-11-E0-A1-B1-1A-E1-00-00-00-00


Bảng P2.4:
Các loại tập tin tư liệu MSOffice có thể nhiễm virus macro
Tập lệnh Ứng dụng Kiểu Mô tả
DOC Tư liệu văn bản
Khuôn dạng văn bản
Microsoft Word
DOT
Microsoft Word Add-in
XLS Tư liệu bảng tính
XLT Khuôn dạng bảng tính
Microsoft Excel
XLA Microsoft Excel Add-in
PPT Tư liệu trình diễn
POT Khuôn dạng trình diễn
VBA macro
Microsoft PowerPoint
PPA Microsoft PowerPoint Add-in

2.4. Mẫu tin khởi động
Trong kiến trúc máy tính IBM-PC, mẫu tin khởi động (boot record) là các tổ
chức thi hành trên các đơn vị lưu trữ của thiết bị nhớ ngoài (Bảng P2.5). Nhiệm vụ
của MTKĐ là khởi tạo các thông số kỹ thuật của thiết bị và thực hiện các tiến trình
xử lý tiếp theo. Có hai loại boot record: MTKĐ đĩa cứng (master boot của đĩa cứng)
và MTKĐ hệ điều hành (boot sector của đĩa cứng và đĩa m
ềm).

- 126 -
Bảng P2.5:
Các tổ chức khởi động có thể nhiễm virus
Mẫu tin khởi động Vật chủ Vị trí Nhiệm vụ
MTKĐ đĩa cứng
(master boot)
Đĩa cứng
Sector 1,
track 0,
side 0
- Phân tích thông số kỹ thuật các phân
khu luận lý
- Tìm và tải boot sector của phân khu
hoạt động vào bộ nhớ
- Trao quyền cho boot sector
Phân khu
hoạt động
đĩa cứng
Sector 1,
track 0,
side 1
- Phân tích thông số phân khu đĩa cứng
hoạt động
- Tìm và tải các tập tin khởi động hệ
điều hành vào bộ nhớ
- Trao quyền cho hệ điều hành
MTKĐ hệ điều hành
(boot sector)
Đĩa mềm
Sector 1,

track 0,
side 0
- Phân tích thông số đĩa mềm
- Tìm và tải các tập tin khởi động hệ
điều hành vào bộ nhớ
- Trao quyền cho hệ điều hành

2.4.1. Mẫu tin khởi động đĩa cứng (master boot)
Mỗi ổ đĩa cứng có thể được chia tách luận lý thành các phân khu (partition).
Có tối đa bốn phân khu cho mỗi ổ vật lý, nhưng chỉ có một phân khu được chọn làm
phân khu hoạt động (active partition), là phân khu chứa hệ điều hành của hệ thống.

Master boot:
- Định vị các phân khu đĩa cứng
- Tải boot sector hoạt động
Boot virus:
- Các lệnh khởi tạo virus
- Định vị, tải master boot gốc
-
Trao quyền cho master boot gốc

Các sector rỗi Master boot (gốc)
Boot sector hoạt động:
- Các lệnh khởi tạo bộ nhớ
- Định vị, tải các file hệ thống
-
Trao quyền cho hệ điều hành

Boot sector hoạt động:
- Các lệnh khởi tạo bộ nhớ

- Định vị, tải các file hệ thống
-
Trao quyền cho hệ điều hành

Thư mục gốc (Root Entries) Thư mục gốc (Root Entries)


Vùng dữ liệu
(Data Area)



Vùng dữ liệu
(Data Area)
Hình P2.8a: Tổ chức đĩa cứng
trước khi nhiễm boot virus

Hình P2.8b: Tổ chức đĩa cứng
sau khi nhiễm boot virus
- 127 -
Mẫu tin khởi động đĩa cứng có nhiệm vụ phân tích các phân khu dữ liệu, tìm
và tải boot sector trên phân khu hoạt động của đĩa cứng vào bộ nhớ rồi trao quyền
cho nó. Hình P2.8a minh họa cấu trúc đĩa cứng, vị trí và vai trò của các MTKĐ.
Hình P2.8b mô tả hình ảnh ổ đĩa cứng nhiễm boot virus, loại lây vào master boot.
2.4.2. Mẫu tin khởi động hệ điều hành (boot sector)
Boot sector có trên mọi đĩa mềm và các phân khu đĩa cứng. Khi nhận quyền
từ master boot (hoặc khởi động máy từ đĩa mềm), boot sector sẽ tìm HĐH, nạp vào
bộ nhớ rồi trao cho HĐH tiếp tục quá trình khởi động.
Hình P2.9a minh họa cấu trúc đĩa mềm, vị trí và vai trò của MTKĐ hệ điều
hành trên đĩa mềm. Hình P2.9b mô tả hình ảnh đĩa mềm nhiễm boot virus. Ví dụ

này cũng đúng cho trường hợp boot virus lây vào boot sector củ
a đĩa cứng.

Boot sector
- Các lệnh khởi tạo bộ nhớ
- Định vị, tải các file hệ thống
- Trao quyền cho hệ điều hành
Boot virus
- Các lệnh khởi tạo virus
- Định vị, tải MTKĐ gốc
- Trao quyền cho MTKĐ gốc
Bảng định vị tập tin
(FAT 1, FAT 2)
Bảng định vị tập tin
(FAT 1, FAT 2)
Thư mục gốc (Root Entries)
Thư mục gốc (Root Entries)
MTKĐ gốc

Vùng dữ liệu
(Data Area)



Vùng dữ liệu
(Data Area)
Hình P2.9a: Tổ chức đĩa mềm
trước khi nhiễm boot virus

Hình P2.9b: Tổ chức đĩa mềm

sau khi nhiễm boot virus





Các tác tử hoạt động và thuật toán SID


1. Các tác tử hoạt động
1.1. Tác tử Duyệt quét
Hoạt động ở mức nền trước (foreground), tác tử Duyệt quét VSA (Virus
Scanning Agent) có nhiệm vụ quét virus hệ thống, thu thập kiến thức dài lâu và giải
thích các thay đổi hệ thống dựa vào lớp luật RS2. Các tác vụ của VSA gồm:
-

Khởi tạo các tham số hoạt động, các biến nhớ, cấu hình hệ thống…
-

Tải các điểm dữ liệu cần kiểm tra vào không gian quan sát
-

Phân lớp không gian quan sát với thuật toán NNSRM (xem Chương 4) thành
hai lớp CLASS_1 - có thể nhiễm và CLASS_2 - chắc chắn sạch. Sau đó xoá
CLASS_2 khỏi không gian quan sát.
-

Quét virus cho CLASS_1 bằng thuật toán SID (xem phần 3 của phụ lục này)
-


Báo cáo kết quả duyệt quét, tạo giao diện hội thoại, thu thập tri thức người
dùng, xử lý các trường hợp nhiễm virus…
-

Cập nhật CSDL, tăng trưởng CSTT cho hệ thống.
Trong các tác vụ này, các thuật toán NNSRM và SID tiêu thụ rất nhiều tài
nguyên hệ thống (thời gian chạy, sử dụng bộ nhớ, truy xuất đĩa…). Để phân bố tải,
VSA sử dụng hai tác tử con (sub-agent) là CA (Classifying Agent) và SA (Scanning
Agent) được thiết kế dưới dạng các tiểu trình (program thread). Một hàng đợi FIFO
được dùng làm vùng nhớ chia xẻ giữ
a CA và SA (Hình P3.1). Cơ chế phối hợp hoạt
động của CA và SA được mô tả như sau:
Phụ lục
3
- 129 -
-

Hàng đợi được khai báo dưới dạng mảng động (không bao giờ tràn) để đảm
bảo cho tác tử CA luôn kết thúc công việc của nó.
-

Trong lúc NNSRM phân lớp dữ liệu, tác tử CA lần lượt đưa các điểm dữ liệu
chẩn đoán vào cuối hàng đợi.
-

Khi xuất hiện dữ liệu trong hàng đợi, SA nhặt các điểm dữ liệu ở đầu hàng
đợi và chuyển cho thủ tục SID quét kiểm tra virus.
-

Nếu hàng đợi rỗng trong khi CA vẫn chưa phân lớp xong, SA sẽ chờ đến khi

xuất hiện ít nhất một điểm dữ liệu trong hàng.


Hình P3.1: Tác tử VSA với các tác tử con CA và SA
1.2. Tác tử Canh phòng
Khác với VSA, VAA được thiết kế để chạy thường trực ở mức nền sau
(background) nhằm đón bắt các loại kiến thức tức thời (tình huống phát sinh trên
đối tượng) dựa vào lớp luật RS1. Các tác vụ của VAA gồm:
-

Tự kích hoạt khi hệ thống hoàn tất quá trình khởi động.
-

Tạo các tiểu trình động (dynamic thread) để phân bố tác vụ cho các tác tử
con di động (mobile sub-agents).
-

Câu móc (hooking) các hàm API (Application Programming Interface) hệ
thống để kiểm soát các tình huống truy xuất file như Create/OpenFiles,
Get/SetFileAttribute, Read/WriteFile, Close/DeleteFile…
- 130 -
-

Giám sát các tiến trình hệ thống như tạo tiến trình, tải thư viện liên kết động,
duyệt cấu trúc đĩa, truy nhập hệ thống mạng…
-

Tải và cập nhật CSDL và CSTT từ máy chủ từ xa của MAV
Trong mô hình này, các tác vụ con của VAA được phân công để có thể hoạt
động tự chủ (autonomic) tại những ‘vị trí’ thích hợp trong hệ thống. Ví dụ sau khi

các tác tử con được sinh ra, một số tác tử con sẽ tự di chuyển đến các ngăn đĩa hệ
thống (system folders) để giám sát các tình huống truy nhập tập tin hệ thống, trong
khi các tác tử khác di chuyển vào vùng nhớ,
đến các cổng truy nhập mạng để theo
dõi tiến trình bộ nhớ hoặc canh giữ các luồng dữ liệu vào-ra mạng (Hình P3.2). Dựa
vào RS1, VAA chạy SID để phân tích các tình huống hệ thống, phát cảnh báo hoặc
xử lý tự động theo kịch bản đã được người dùng ấn định từ trước.
1.3. Cơ chế phối hợp giữa các tác tử
Khi hoạt động, cả hai tác tử VSA và VAA sử dụng chung động cơ suy diễn
SID và tương tác nhau. Ví dụ, trước khi VSA phát sinh tình huống WriteFile, nó gửi
một thông điệp báo cho VAA yêu cầu bỏ qua tình huống này. Khi VAA xử lý xong
một đối tượng, nó thông báo cho VSA không cần kiểm tra đối tượng đó. Chiến lược
phối hợp (co-operation strategy) này giải quyết vấn đề đụng độ (conflict
) giữa các
tác tử, tránh hiện tượng tranh chấp tiến trình hệ thống.


Hình P3.2: Tác tử VAA với các tác tử con di động
- 131 -
2. Thuật toán SID (Tìm kiếm – Suy luận - Chẩn đoán)

1: INITIATE X; //Khởi tạo không gian tìm kiếm X
2: INTEGRATE (KB2, KB3: KB; var KB1: KB);
3: CLASSIFY Các điểm dữ liệu FROM X INTO CLASS_1, CLASS_2;
4: for i:= 1 to CLASS_1.Items.Count do
5: select CLASS_1[i]
from DOITUONG
where CLASS_1[i].KIEU=CLASS_V.KIEU
group by DIA_CHI;
6: if not Found then //Không tìm thấy điểm dữ liệu từ CSDL

7: CHẨN ĐOÁN (CLASS_1[i], PHIÊN_BẢN, KB1);
8: if VirusFound then // Phát hiện virus trên điểm dữ liệu
9: XỬLÝBỆNH (CLASS_1[i]);
10: REPORT(CLASS_1[i].TEN, VirusName, Status); //Thông báo kết quả
11: endif
12: insert into DOITUONG
values <CLASS_1[i]>; //Tạo dữ liệu chẩn đoán
13: insert into LICHQUET
values <LICHQUET>; //Tạo dữ liệu tiền sử
14: else //Tìm thấy điểm dữ liệu từ CSDL
15: if VALIDATED(PHIÊN_BẢN) and CHANGED(CLASS_1[i]) then //Vận dụng luật
16: case WARNING(CLASS_1[i]) of //Cảnh báo
17: ByVirus: XỬLÝBỆNH (CLASS_1[i]); //Xác nhận virus mới
18: REPORT(CLASS_1[i].TEN, UserVirus, Status); //Báo cáo
19: update DOITUONG
set (TEN=CLASS_1[i].TEN,…)
where DOI_TUONG=CLASS[i].DOI_TUONG;
20: insert into LICHQUET
values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
21: ADD(KB1, KB3, CLASS_1[i], UserVirus); //Tăng trưởng tri thức
22: ByUser: update DOITUONG
set (TEN=CLASS_1[i].TEN,…)
where DOI_TUONG=CLASS[i].DOI_TUONG;
23: insert into LICHQUET
values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
24: Unknown: LOCK(CLASS_1[i]); //Nghi ngờ, khóa đối tượng
25: REPORT(CLASS_1[i].TEN, SuspectedVirus, Status); //Báo cáo
26: ADD(KB2, CLASS_1[i], UserVirus); //Tăng trưởng tri thức
28: endcase
29: endif

30: if not VALIDATED(PHIÊN_BẢN) and not CHANGED(CLASS_1[i]) then
31: CHẨN ĐOÁN (CLASS_1[i], PHIÊN_BẢN, KB1);
32: if VirusFound then //
Phát hiện virus trên điểm dữ liệu
33: XỬLÝBỆNH (CLASS_1[i]);
34: REPORT(CLASS_1[i].TEN, VirusName, Status); //Thông báo kết quả
35: endif;
36: update DOITUONG
set (TEN=CLASS_1[i].TEN,…)
where DOI_TUONG=CLASS[i].DOI_TUONG;
37: insert into LICHQUET
values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
38: endif;
39: if not VALIDATED(Mã Phiên bản) and CHANGED(CLASS_1[i]) then

- 132 -

40: CHẨN ĐOÁN (CLASS_1[i], PHIÊN_BẢN, KB1);
41: if VirusFound then // Phát hiện virus trên điểm dữ liệu
42: XỬLÝBỆNH (CLASS_1[i]);
43: REPORT(CLASS_1[i].TEN, VirusName, Status); //Thông báo kết quả
44: update DOITUONG
set (TEN=CLASS_1[i].TEN,…)
where DOI_TUONG=CLASS[i].DOI_TUONG;
45: insert into LICHQUET
values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT)
46: else
47: case WARNING(CLASS_1[i]) of //Cảnh báo
48: ByVirus: XỬLÝBỆNH (CLASS_1[i]); //Xác nhận virus mới
49: REPORT(CLASS_1[i].TEN,UserVirus, Status);//Báo cáo

50: update DOITUONG
set (TEN=CLASS_1[i].TEN,…)
where DOI_TUONG=CLASS[i].DOI_TUONG;
51: insert into LICHQUET
values (CLASS_1[i],PHIÊN_BẢ
N,NGÀY_QUÉT);
52: ADD(KB1, KB3, CLASS_1[i], UserVirus); //Tăng trưởng
53: ByUser: update DOITUONG
set (TEN=CLASS_1[i].TEN,…)
where DOI_TUONG=CLASS[i].DOI_TUONG;
54: insert into LICHQUET
values (CLASS_1[i],PHIÊN_BẢN,NGÀY_QUÉT);
55: Unknown: LOCK(CLASS_1[i]); //Nghi ngờ, khóa đối tượng
56: REPORT(CLASS_1[i].TEN, SuspectedVirus, Status);
57: ADD(KB2, CLASS_1[i], UserVirus); //Tăng trưởng tri thức
58: endcase;
59: endif;
60: endif;
61: endif;
62: endfor;


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×