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)
23 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3118 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Luận án 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Các cơ chế chẩn đoán virus máy tính
và một số vấn đề liên quan
2.1. Khảo sát virus máy tính
Virus máy tính (computer virus) là loại chương trình máy được thiết kế để
thực hiện các chỉ thị của nó sau chương trình khác [25]. Bí mật sao chép bản thân
nó vào các hệ thống máy tính, virus lây từ máy này sang máy khác, làm suy giảm
năng lực hoạt động hệ thống và xâm phạm dữ liệu người dùng [4]. Kể từ khi virus
Brain xuất hiện đầu tiên (1986), ngày nay có đến hàng chục ngàn biến thể virus máy
tính lây lan trên toàn thế giới. Biến thái qua nhiều thế hệ, virus máy tính ngày càng
tinh vi, mức độ quấy rối phá hoại càng nguy hiểm và nghiêm trọng.
Có nhiều định nghĩa về virus máy tính [22][28][45]. Theo Bordera [18],
virus máy tính là:
“bất cứ chỉ thị, thông tin, dữ liệu hoặc chương trình làm suy giảm tính hoàn
thiện của tài nguyên máy tính, làm vô hiệu, gây nguy hiểm hoặc phá hủy,
hoặc ghép bản thân nó vào tài nguyên của máy tính khác và thi hành khi
chương trình máy tính thi hành”.
Ngoài những tính chất chung, mỗi loại virus có nguyên tắc lây nhiễm, đặc
điểm dữ liệu khác nhau. Lúc đầu các chuyên gia phân loại virus theo hình thức lây
nhiễm. Về sau virus máy tính phát triển đa dạng với nhiều xu hướng kết hợp, phân
hóa, lai tạp, kế thừa… khiến việc phân loại gặp nhiều khó khăn (xem Phụ lục 1).
Kết quả phân tích mã lệnh thực thi các virus đại diện trong danh sách 65.824 virus
DOS/Windows của Kaspersky Lab [78] (xem Bảng P1.1, Phụ lục 1) cho thấy virus
Chương 2
- 8 -
máy tính được thiết kế từ bốn lớp dữ liệu cơ bản (Bảng 2.1). Biểu đồ so sánh phân
bố tỷ lệ các lớp virus máy tính (Hình 2.1) cho thấy lớp dữ liệu program (gồm hai
nhóm 16-bit và 32-bit) chiếm tỷ lệ cao nhất.
Bảng 2.1: Phân loại virus máy tính theo kiểu dữ liệu
Stt Kiểu dữ liệu Số lượng Tỷ lệ %
1 Binary 1168 1.77
Program 56223 85.41
Program 16-bit 18896 28.70 2
Program 32-bit 37327 56.71
3 Text 4948 7.52
4 VBA macro 3485 5.29
Binary
Prg-16
Prg-32
Text
Macro
Binary
Prg-16
Prg-32
Text
Macro
Hình 2.1: Biểu đồ so sánh tỷ lệ phân bố các lớp virus máy tính
Để đánh giá xu hướng phát triển của virus máy tính, có thể tìm hiểm quá
trình xuất hiện của các loại virus máy tính trong khoảng thời gian xác định. Bảng
2.2 thống kê thời điểm cập nhật 14575 virus DOS/Windows đại diện của Kaspersky
Lab trong 10 năm (1995-2004). Biểu đồ ở hình 2.2a cho thấy:
- 9 -
- Các lớp virus đều có sự gia tăng về số lượng. Đến năm 2000, trong khi các
lớp khác tăng đều, lớp Program-32 có sự gia tăng đột biến.
- Năm 2003 có sự phân hóa lớn: trong khi lớp Program-32 vẫn tăng trưởng
mạnh, lớp Program-16 (lây vào các ứng dụng 16 bit của DOS/Windows) và
lớp Text (sử dụng tập lệnh script ASCII plain text) đều sụt giảm.
- Các lớp virus Binary (chủ yếu là boot virus) và Macro (chủ yếu là word
macro) tăng nhưng không tạo ra sự biến chuyển lớn nào (Hình 2.2b).
Bảng 2.2: Lịch trình cập nhật của Kaspersky Lab (1995-2004)
Năm Program 32 bit Program 16 bit Binary Text Macro
1995 20 37 4 4 0
1996 34 22 7 2 0
1997 81 23 7 3 8
1998 130 35 2 16 9
1999 272 26 3 18 2
2000 347 56 2 37 7
2001 863 114 12 115 14
2002 2024 401 29 524 39
2003 3116 729 26 678 56
2004 3604 350 46 534 87
2.2. Các cơ chế chẩn đoán virus máy tính
Hơn 20 năm qua, virus máy tính đã gây nguy hại cho nhiều hệ thống CNTT
trên thế giới. Các nhà khoa học đã tốn nhiều công sức nghiên cứu, xây dựng các hệ
phòng chống virus máy tính theo nhiều tiếp cận, kỹ thuật khác nhau [52]. Cho đến
nay, có ba kỹ thuật nhận dạng virus máy tính đã được áp dụng: dựa vào chuỗi nhận
dạng virus (signature-based approach), dựa vào hành vi nghi ngờ virus (suspicious
behavior-based approach) và dựa vào ý định virus (intention-based approach).
- 10 -
-10
0
10
20
30
40
50
60
70
80
90
100
1994 1996 1998 2000 2002 2004 2006
Binary
Macro
Hình 2.2: Biểu đồ tăng trưởng các lớp virus máy tính
-500
0
500
1000
1500
2000
2500
3000
3500
4000
1994 1996 1998 2000 2002 2004 2006
Năm xuất hiện
Số
lư
ợ
ng
c
á
th
ể
m
ỗ
i l
ớ
p
Prg-32
Prg-16
Binary
Text
Macro
(a)
(b)
- 11 -
2.2.1. Phát hiện virus dựa vào chuỗi nhận dạng
Hoạt động theo nguyên lý nhận dạng mẫu, các AV sử dụng một CSDL chứa
mẫu virus (ID-virus library). Mỗi khi có virus mới, các chuyên gia anti-virus sẽ giải
mã, trích chọn và cập nhật chuỗi nhận dạng virus vào thư viện. Thông tin về đối
tượng chẩn đoán (ghi nhận từ hệ thống đích) cùng với thông tin của virus (trong thư
viện mẫu) sẽ cho kết luận về tình trạng của đối tượng.
Nhận dạng mẫu giúp AV phát hiện các virus đã biết trên tập dữ liệu chẩn
đoán với độ chính xác cao. Tuy nhiên phương pháp này có khá nhiều nhược điểm:
- Cồng kềnh: Kích thước thư viện mẫu tỷ lệ thuận với số virus đã cập nhật và
tỷ lệ nghịch với tốc độ tìm kiếm.
- Bị động: AV chỉ hiệu quả trên các mẫu virus đã cập nhật, không đáp ứng kịp
thời dịch bệnh do tốn thời gian cho việc thu thập mẫu virus mới, giải mã,
phân tích, lập thuật giải, cập nhật phiên bản mới, phát hành…
- Nhầm lẫn: Các hacker cố gắng tạo vỏ bọc an toàn cho virus. Khi AV so mẫu
chẩn đoán giống với virus, dữ liệu sạch của hệ thống sẽ bị tẩy (clean) nhầm.
2.2.2. Phát hiện virus dựa vào hành vi
Tiếp cận này nghiên cứu virus máy tính dưới góc độ thi hành của tập mã
lệnh. Cũng là chương trình máy tính, nhưng khác với các phần mềm hữu ích, virus
chỉ chứa các lệnh nguy hiểm. Nghiên cứu trật tự, quy luật hình thành các lệnh máy
của virus, tiếp cận này dựa vào khái niệm hành vi để xây dựng cơ chế nhận dạng
thông qua tập các thủ tục/hành vi của chúng.
Sử dụng tri thức hành vi từ kinh nghiệm chuyên gia nên tiếp cận này còn gọi
là phương pháp heuristic. Do các virus giống nhau thường có hành vi như nhau nên
AV có thể nhận dạng các virus cùng họ. Tuy nhiên AV khó phân biệt được các hành
vi giống nhau nhưng mục đích khác nhau (ví dụ các phần mềm thường tạo và xóa
tập tin tạm, trong khi virus tạo bản sao chính nó và xóa dữ liệu người dùng…) nên
tiếp cận này ít được sử dụng cho máy lẻ/trạm làm việc, vốn dành cho người dùng ít
kinh nghiệm [91].
- 12 -
2.2.3. Phát hiện virus dựa vào ý định
Do hãng Sandrasoft (Ấn Độ) đề xướng từ năm 2005, tiếp cận intention-based
(tên mã Rudra) [90] lưu giữ hình ảnh chi tiết của máy tính trong tình trạng sạch, sau
đó tiếp tục theo dõi trạng thái hệ thống. Những thay đổi quan trọng trong tập tin,
cấu hình hệ thống hay HĐH đều được cảnh báo như một mối hiểm họa tiềm tàng.
Khi những thay đổi này được đánh giá nguy hiểm, hệ sẽ khôi phục máy về tình
trạng ban đầu. Mặc dù đơn giản nhưng tiếp cận này tỏ ra khá hiệu quả vì nó có thể
bảo vệ máy tính khỏi các mối đe dọa chưa được biết đến, kể cả virus máy tính.
Trong thực tế, tiếp cận “quay về quá khứ” đã được nhiều hãng phần mềm hệ
thống sử dụng: Symantec [89] có Norton Ghost và Norton Goback; VMware [94]
có System Image Snapshot; Faronics [74] có Deep Freeze… Bản thân Windows XP
cũng có chức năng phục hồi hệ thống bằng System Restore. Tuy nhiên tiếp cận này
kém hiệu quả khi các điểm trạng thái được ghi nhận lúc hệ thống bị nhiễm virus lạ.
Mặt khác, hệ cũng cần bộ nhớ ngoài đủ lớn để lưu toàn bộ hình ảnh hệ thống qua
từng thời điểm [39].
2.3. Các hệ phòng chống virus máy tính
2.3.1. Các sản phẩm trong nước
Trong thập niên 90 của thế kỷ 20, khi hệ điều hành MSDOS còn phổ biến,
Việt Nam có khá nhiều phần mềm chống virus: Medicine của ĐH Tổng hợp TP.
HCM, ATV của Ngô Anh Vũ và Phạm Du Liêm (ÐH Kinh tế TP. HCM), D2 của
tác giả luận án này, TAV của Dương Hồng Tấn và Trần Thanh Sơn (Unisoft TP.
HCM), SC của Thái Nguyễn Hoàng Nhã (TP. HCM), BKAV của Nguyễn Tử
Quảng và Đặng Văn Tấn (ÐH Bách khoa Hà Nội). Khi MSDOS kết thúc, các phần
mềm này đã ngừng phát triển. Hiện nay cả nước chỉ còn hai phần mềm chống virus
trên Windows là BKAV2006 (BKIS, ĐHBK Hà Nội) và D32 của tác giả. Hầu hết
các anti-virus của Việt Nam đều hoạt động theo nguyên tắc nhận dạng mẫu.
Nhỏ gọn, chạy nhanh, miễn phí, đáp ứng kịp thời tình hình lây nhiễm trong
nước nên các AV nội được người dùng đón nhận. Tuy nhiên do số virus cập nhật
- 13 -
chưa nhiều (khoảng 2000 virus), sản phẩm chưa phong phú và chưa có giải pháp
nhận dạng virus tự động toàn diện nên các AV nội chỉ được sử dụng như các phần
mềm tham khảo bên cạnh các AV nước ngoài.
2.3.2. Các sản phẩm nước ngoài
Có nhiều AV nước ngoài được sử dụng ở Việt Nam: Norton Anti-virus, Scan
Virus, BitDefender, Sofos, AVG, Trend Micro System, Kaspersky…
Trong nhóm sản phẩm dành cho người dùng lẻ, các AV ngoại kết hợp nhận
dạng mẫu với kỹ thuật heuristic: Bloodhount (Symantec), Heuristic Scan (McAfee,
Panda), Hash Scan (BitComet)… Trong nhóm sản phẩm dành cho công ty, các hãng
thường áp dụng công nghệ của IBM: Symantec triển khai hệ miễn dịch thương mại
(IBM Commercial-Grade Immune System) [59]. BitDefender sử dụng công nghệ in
dấu chân (footprint) của IBM để quản lý các giao dịch trên mạng. McAfee cũng
liên kết với IBM xây dựng hệ chương trình hoán chuyển (Swap Program) áp dụng
cho ISS (Internet Security System) chống xâm nhập hệ thống… Các công nghệ này
đều dùng kỹ thuật “quay về quá khứ” tựa intention-based approach.
Các anti-virus ngoại được ưa chuộng do cập nhật nhiều virus (trên 10000
mẫu), kỹ thuật chuyên nghiệp. Tuy nhiên người dùng vẫn còn e ngại vì phần lớn các
anti-virus ngoại đều cồng kềnh, chạy chậm, chi phí cao, nhận dạng virus mới chưa
thật tốt và không hiệu quả đối với virus có nguồn gốc từ Việt Nam.
2.4. Tình hình nghiên cứu virus máy tính
Đã có thời các chuyên gia anti-virus kỳ vọng vào các “kim thuật giải” hoàn
hảo có thể nhận dạng bất cứ virus nào. Năm 1987, Fred Cohen đưa ra nhận định
“không thuật toán nào có thể phát hiện tất cả các virus máy tính” [27]. Tác giả lập
luận nếu tồn tại chương trình P chứa thuật giải A có thể nhận dạng tất cả các virus
máy tính, thì các hacker sẽ thiết kế được virus V chứa thuật giải M phát hiện và vô
hiệu hóa P (khiến A thất bại trước V). Nhận định này đã góp phần định hướng cho
công tác nghiên cứu virus máy tính. Các tìm tòi thuần túy thuật giải được thay dần
bằng các giải pháp tăng cường hiệu quả, cải thiện tốc độ nhận dạng, đẩy mạnh ước
- 14 -
lượng và dự báo heuristic. Năm 2000, trong bài viết “Virus máy tính không thể phát
hiện”, David M. Chess và Steve R. White cho rằng nhận định của Fred Cohen vẫn
đúng cho các biến thái (polymorphic) và biến thể (variance) virus. Cũng trong bài
viết này, các tác giả cảnh báo “không có chương trình máy tính nào tránh khỏi sự
lây nhiễm của virus máy tính” và đề xuất khái niệm nhận dạng biến thể virus qua
mô tả đặc trưng hình thức (formal characterization) [21].
Kể từ năm 2000, tình hình nghiên cứu virus máy tính trên thế giới có nhiều
biến chuyển. Trong hội nghị anti-virus quốc tế tổ chức ở Anh (9-2000), John
Bloodworth (Network Associate, McAfee Division) cảnh báo: tình hình đã trở nên
nghiêm trọng và hành động của chúng ta [38].
2.4.1. Tình hình nghiên cứu, ứng dụng trong nước
Năm 1997, luận văn Cao học về nhận dạng virus tự động đầu tiên của Việt
Nam được bảo vệ ở Viện Tin học Pháp ngữ [71]. Mục tiêu của đề tài nhằm xây
dựng một hệ suy diễn nhận dạng virus máy tính thông qua các hành vi cơ sở [11].
Sử dụng thuật giải tìm kiếm hành vi với tri thức bổ sung tại mỗi nút trên cây, đề tài
cho kết quả chẩn đoán boot virus khá tốt. Để tăng cường độ tin cậy và an toàn hệ
thống, tác giả đề xuất một không gian chẩn đoán đặc biệt gọi là máy ảo chẩn đoán.
Năm 1998, Trần Quốc Việt (Khoa CNTT, ĐH Cần Thơ) tiếp tục hướng
nghiên cứu máy ảo mở rộng bài toán cho file virus. Đề tài rút ra kết luận: máy ảo
chỉ thích hợp để chẩn đoán boot virus. Khi chẩn đoán file, máy ảo cần bộ xử lý lệnh
tương thích với tập lệnh của HĐH nên phức tạp, cồng kềnh và kém hiệu quả [15].
Năm 2005, Hồ Ngọc Thơ (Khoa CNTT, ĐH Cần Thơ) thực hiện đề tài nhận
dạng biến thể virus hướng text mining. Tác giả đưa ra giả thuyết virus máy tính di
truyền mã lệnh của nó cho các thế hệ con cháu, vì vậy có thể nhận dạng các biến thể
virus thông qua tập gien (chuỗi mã lệnh phổ biến) của các thành viên trong họ. Giải
pháp của đề tài là phân tích tập virus mẫu hướng text mining để xây dựng cây phả
hệ, sau đó áp dụng thuật giải nhận dạng tập gien xuất hiện trên cây. Mặc dù phần
demo còn hạn chế (cài đặt phức tạp, chạy chậm, tiêu tốn nhiều tài nguyên…), tuy
nhiên tác giả đã phần nào chứng minh được giả thuyết của đề tài [10].
- 15 -
2.4.2. Tình hình nghiên cứu, ứng dụng ở nước ngoài
Một số hệ thống an ninh mạng trên thế giới áp dụng tiếp cận máy học:
• Databases That Learn: dự án của Symantec Research Labs ở Santa Monica
(California-USA) luyện học thói quen truy nhập vào các cơ sở dữ liệu để rút
quy luật tấn công của hacker, bảo vệ hệ thống khỏi thâm nhập trộm [79].
• MLX™ Proofpoint Zero-Hour Anti-virus: sản phẩm của ProofPoint Inc.,
gồm nhiều gói thành phần như Proofpoint Protection Server®, Proofpoint
Messaging Security Gateway™, bảo vệ hệ thống trong thời gian thực. Bằng
các kỹ thuật máy học, Proofpoint phân tích các email có tập tin đính kèm và
phát cảnh báo khi có file nghi ngờ mã độc [86]. Công cụ này được cài đặt cho
hệ F-Secure Messaging Security Gateway [75] để lọc thư rác.
• DDI (Distributed Detection and Inference): dự án của Intel triển khai ở đại
học Berkeley (2005) suy luận trên hệ thống mạng nhằm phát hiện các cuộc tấn
công lan tràn [77]. Nghiên cứu này đặt giả thuyết rằng nếu một nút mạng bị
tấn công thì các nút khác trong hệ thống cũng có thể bị tấn công tương tự. Giải
pháp của đề tài là cài đặt một thuật toán học cho mỗi nút mạng để phát hiện
các cuộc truy nhập cục bộ. Mỗi nút có liên lạc với các nút kế cận để suy luận
và cảnh báo các tình huống hệ thống bị tấn công lan tràn [76].
• Malicious Software Detection for Resource Constrained Devices: dự án
Phát hiện phần mềm độc hại trên thiết bị tài nguyên hạn chế của Viện Tiêu
chuẩn và Công nghệ Quốc gia NIST (National Institute of Standards and
Technology, USA). Do các thiết bị cầm tay có tài nguyên hạn chế, không đủ để
lưu trữ toàn bộ CSDL virus, ý tưởng cơ bản của dự án là sản sinh tập mã độc
chưa biết từ số ít dấu hiệu nhận dạng các loại mã độc đã biết [83].
2.4.3. Các vấn đề mở của công nghệ anti-virus
Cũng trong bài viết “Virus máy tính: lý thuyết và thực nghiệm” (1987) đã đề
cập ở phần trên, Fred Cohen nêu ra “Các vấn đề chưa được giải quyết” gồm:
- 16 -
1. Phát hiện biểu hiện (appearance) của virus
2. Phát hiện hành vi (behavior) của virus
3. Phát hiện sự tiến triển (evolution) của một virus đã biết (known virus)
4. Phát hiện cơ chế kích hoạt (triggering mechanism) qua biểu hiện của virus
5. Phát hiện cơ chế kích hoạt qua hành vi của virus
6. Phát hiện sự tiến triển của một cơ chế kích hoạt đã biết
7. Phát hiện bộ nhận dạng virus qua biểu hiện của nó
8. Phát hiện bộ nhận dạng virus qua hành vi của nó
9. Phát hiện sự tiến triển của cơ chế tự kiểm tra (selftest) của virus đã biết
Năm 1998, Steve R. White (chuyên gia anti-virus của IBM) khái quát hóa
tình hình và đưa ra năm vấn đề mở của anti-virus [60], đó là:
1. Nghiên cứu, xây dựng các lớp bài toán heuristic khác nhau.
2. Khống chế tốc độ lây lan và sản sinh của virus máy tính.
3. Nghiên cứu các giải pháp phù hợp cho đa số người dùng.
4. Nghiên cứu phương pháp nhận dạng sâu trình (worm)
5. Cải tiến phương pháp nhận dạng, phát hiện nhanh và kịp thời trước khi virus
lan tràn thành dịch trên mạng.
Mặc dù các chuyên gia anti-virus có cách phân loại vấn đề mở khác nhau,
nhìn chung công nghệ anti-virus ngày nay cần giải quyết ba vấn đề cơ bản:
1. Cải tiến phương pháp, nghiên cứu các kỹ thuật nhận dạng heuristic, tiến tới
xây dựng các lớp bài toán heuristic khác nhau.
2. Cải tiến hiệu quả, phát hiện nhanh chóng, chủ động phòng ngừa dịch bệnh trên
quy mô rộng, nghiên cứu các giải pháp phù hợp cho đa số người dùng.
3. Phát hiện và dự báo các mã độc lan truyền trên hệ thống mạng.
2.5. Hướng giải quyết của đề tài
Trong bối cảnh các hệ thống mạng trên thế giới liên tục bị virus tấn công, các
nhóm anti-virus nước ngoài đã thực hiện nhiều dự án, công trình nghiên cứu theo
nhiều tiếp cận khác nhau. Do mỗi tiếp cận đều có ưu nhược điểm riêng, nên cần tiếp
tục nghiên cứu bài toán nhận dạng virus máy tính cho nhiều hệ thống sử dụng khác
- 17 -
nhau. Trong khi trong nước vẫn chưa giải quyết trọn vẹn bài toán nhận dạng virus
máy tính tự động, đề tài “Tiếp cận Máy học và Hệ chuyên gia để nhận dạng, phát
hiện virus máy tính” được đặt ra nhằm tìm hướng đi mới cho bài toán nhận dạng
virus máy tính phù hợp với tình hình thực tiễn, điều kiện nghiên cứu và triển khai
sản phẩm ở Việt Nam.
2.5.1. Các luận điểm của đề tài
Đề tài “Tiếp cận Máy học và Hệ chuyên gia để nhận dạng, phát hiện virus
máy tính” được xây dựng dựa trên các luận điểm: (i) nguồn gốc virus máy tính, (ii)
nhận thức về virus máy tính và (iii) phương pháp chữa trị.
• Thứ nhất: Virus máy tính là sản phẩm của con người. Cuộc chiến giữa các AV
và virus máy tính là trò chơi trí tuệ giữa các chuyên gia anti-virus (lực lượng
chính diện) và hacker (lực lượng phản diện). Vì vậy khoa học trí tuệ nhân tạo là
lựa chọn phù hợp cho việc xây dựng các hệ phần mềm dạy cho máy học các
trường hợp nhiễm bệnh để máy tính có thể tự xử lý và điều trị bệnh.
• Thứ hai: Định nghĩa virus máy tính của Bordera có ba ý quan trọng:
- Virus máy tính là chỉ thị, thông tin, dữ liệu, chương trình có khả năng ghép
bản thân nó vào tài nguyên của máy tính gây nên hiệu ứng lây nhiễm.
Nghiên cứu virus máy tính phải gắn với việc phân loại đặc điểm dữ liệu của
vật chủ (đối tượng bị lây nhiễm).
- Tính thực thi của virus máy tính giúp nó tự kích hoạt khi chương trình máy
tính thi hành. Vì vậy chỉ có các loại dữ liệu chứa mã lệnh thực thi mới bị
virus lây nhiễm. Nói cách khác, không phải dữ liệu nào cũng bị virus ghép
mã. Đây là một phát hiện quan trọng, làm cơ sở cho việc cải thiện hiệu quả
của các hệ phòng chống virus máy tính.
- Hệ thống nhiễm virus bị suy giảm công năng, nhưng bản thân các AV cũng
tiêu hao tài nguyên rất nhiều. Hậu quả là người sử dụng chưa thấy virus tác
hại như thế nào, chỉ thấy các AV cồng kềnh khiến hệ thống luôn quá tải. Như
vậy ngoài việc tăng cường hiệu quả chẩn đoán, cần gia tăng tốc độ nhận
dạng và cải thiện khả năng dự báo virus mới của hệ.
- 18 -
• Thứ ba: Công việc của chuyên gia anti-virus chữa bệnh cho máy tính giống như
bác sĩ chữa bệnh cho các cơ thể sống. Để giúp máy tính tự khám chữa bệnh,
anti-virus sẽ được xây dựng trên cơ sở hệ chuyên gia, là các hệ thống tích hợp
kinh nghiệm của chuyên gia trong thế giới thực cùng với cơ chế phân tích và suy
luận chặt chẽ để đưa ra quyết định tốt nhất.
2.5.2. Giải pháp của đề tài
Mỗi cơ chế chẩn đoán virus máy tính (dựa vào chuỗi mã, hành vi hay dựa
vào ý định) đều có ưu nhược điểm riêng. Tiếp cận máy học và hệ chuyên gia sẽ kết
hợp các ưu điểm các tiếp cận đã biết và khắc phục yếu kém của từng phương pháp.
Áp dụng chiến lược “chia để trị”, bài toán nhận dạng virus máy tính sẽ được
phân hoạch thành các bài toán con với mô hình học phù hợp. Mỗi mô hình học sẽ
áp dụng riêng lẻ hoặc phối hợp các tiếp cận để đạt được kết quả tốt nhất. Các tiếp
cận nhận dạng virus máy tính sử dụng cho các bài toán con là:
• Tiếp cận chuỗi mã: Tổ chức CSDL chuỗi mã virus, xây dựng các thuật giải
truy vấn để nhận dạng chính xác các mẫu virus đã cập nhật.
• Tiếp cận máy học: Tổ chức CSTT nhận dạng (gồm CSDL virus và các luật
dẫn xuất), xây dựng các mô hình học. Tri thức thu được (mẫu virus và luật
nhận dạng mới) sẽ được bổ sung vào CSTT chung, sau đó chuyển kết quả nhận
dạng sang tiếp cận chuỗi mã.
• Phối hợp tiếp cận hành vi và tiếp cận máy học: Tổ chức tập hành vi, định
nghĩa khái niệm virus dựa trên tập hành vi sử dụng cơ chế học khái niệm. Tăng
trưởng cơ sở tri thức sau mỗi lần học. Chuyển kết quả sang tiếp cận chuỗi mã.
• Phối hợp tiếp cận ý định và tiếp cận máy học: Tổ chức mô hình kết hợp
giữa CSDL (chứa trạng thái, nội dung đối tượng) và CSTT (lập luận trên tập
hành vi thay đổi trạng thái và nội dung đối tượng). Kết quả quá trình lập luận
sẽ được chuyển sang tiếp cận chuỗi mã.
- 19 -
2.6. Các hệ cơ sở tri thức
2.6.1. Các Hệ chuyên gia
Hệ chuyên gia (Expert System) là các hệ phần mềm dựa trên tri thức cho
phép mô hình hóa tri thức chuyên gia để giải quyết các vấn đề phức tạp. Nếu như
các chương trình truyền thống được cấu tạo từ dữ liệu và thuật giải:
Data Structures + Algorithms = Program
Hệ chuyên gia nói riêng, chương trình trí tuệ nhân tạo nói chung, được cấu
tạo từ cơ sở tri thức (knowledge based) và động cơ suy diễn (inference engine):
Knowledge Based + Inference Engine = Expert System
Hình 2.3 mô tả các thành phần cơ bản của một hệ chuyên gia. Trong mô hình
này, CSTT và động cơ suy diễn tạo nên thành phần cốt lõi của hệ.
Chuyên gia
- Các hình thức học
- Rút luật
Tiếp nhận tri thức
- Các sự kiện
- Các luật
Cơ sở tri thức
- Tìm kiếm
- Suy luận có lý
Động cơ suy diễn
- Hội thoại
- Tham vấn
Giải thích
Cơ sở
dữ liệu
Người dùng
Thành phần cốt lõi của hệ
Mức giao tiếp chuyên gia
Mức giao tiếp người dùng
Hình 2.3. Mô hình tổng quát của một hệ chuyên gia
- 20 -
2.6.1.1. Cơ sở tri thức
Cơ sở tri thức là tập hợp các tri thức liên quan đến vấn đề mà chương trình
quan tâm giải quyết. Cơ sở tri thức chứa các sự kiện, các luật, các khái niệm, các
quan hệ… được biểu diễn thích hợp dùng cho động cơ suy diễn sử dụng. Các dạng
biểu diễn tri thức phổ biến là mô hình đối tượng - thuộc tính - giá trị, mô hình luật
dẫn, mô hình mạng ngữ nghĩa, mô hình frame và mô hình logic.
2.6.1.2. Động cơ suy diễn
Động cơ suy diễn là các phương pháp vận dụng tri thức để giải quyết vấn đề.
Động cơ suy diễn giống như loại động cơ tổng quát được chuẩn hóa để có thể vận
hành nhiều loại xe. Nhiên liệu dùng cho động cơ suy diễn là tri thức lấy từ CSTT,
hoặc từ bên ngoài qua các thiết lập, lựa chọn, xác nhận của người khai thác hệ
thống. Tùy theo đặc điểm của CSTT, động cơ suy diễn được thiết kế thích hợp với
hai kiểu suy diễn chính là suy diễn tiến hoặc suy diễn lùi.
Suy diễn tiến bắt đầu bằng tập sự kiện đã biết, rút ra các sự kiện mới có giả
thuyết khớp với tập luật cho đến khi đạt trạng thái đích, hoặc hết tập luật. Suy diễn
lùi là chiến lược suy diễn để chứng minh một giả thuyết không được luật nào cung
cấp, bằng cách thu thập các thông tin hỗ trợ cho đến khi tìm thấy lời giải [1].
Tiếp cận của đề tài sử dụng quá trình suy diễn tiến bằng cách vận dụng tập
luật nhận dạng được xây dựng từ trước để phát hiện các virus đã biết. Suy diễn lùi
khám phá các luật tiềm ẩn trong dữ liệu để tìm kiếm virus lạ đang ẩn náu trên hệ
thống khi các triệu chứng nhiễm bệnh không được quá trình suy diễn tiến phát hiện.
Nhìn chung, kết hợp cả hai kỹ thuật sẽ cho kết quả tốt nhất.
2.6.2. Các hệ Khám phá tri thức từ cơ sở dữ liệu
2.6.2.1. Giới thiệu
Sự bùng nổ của các CSDL lớn vượt quá khả năng diễn dịch và lĩnh hội của
con người. Khám phá tri thức từ cơ sở dữ liệu (KDD – Knowledge Discovery from
Database) là các hệ phân tích dữ liệu tự động, khám phá các quy luật tiềm ẩn trong
CSDL nhằm tạo ra tri thức hữu dụng hỗ trợ cho tiến trình ra quyết định.
- 21 -
Mục đích chính của khám phá dữ liệu là tiên đoán và mô tả. Tiên đoán giúp
phân tích dữ liệu và tìm luật, dự đoán dữ liệu chưa biết hay dữ liệu mới trong tương
lai. Mô tả là quá trình tìm các mẫu mà con người có thể hiểu được để đặc tả dữ liệu.
2.6.2.2. Tiến trình khám phá tri thức
Tiến trình khám phá tri thức gồm các giai đoạn: Chọn dữ liệu (Data
selection), Tinh lọc dữ liệu (Cleaning), Làm giàu dữ liệu (Enrichment), Mã hóa dữ
liệu (Coding), Khai thác dữ liệu (Data mining) và Báo cáo (Reporting) [54]. Trong
mỗi giai đoạn, hệ có thể đi lùi qua một số giai đoạn nhằm cải tiến dữ liệu để đạt
được kết quả tốt nhất (Hình 2.4). Mỗi giai đoạn có các hoạt động như sau:
• Chọn dữ liệu: thao tác trên dữ liệu, tách nhặt thông tin cần thiết từ CSDL và
tổ chức lại cho phù hợp với hệ.
• Tinh lọc: thao tác lọc nhiễu chống dữ liệu trùng lặp (de-duplication) và tinh
chế dữ liệu (data refinement).
• Làm giàu: trong một số trường hợp, cần kết hợp dữ liệu hiện tại với các nguồn
thông tin khác để gia tăng lượng dữ liệu cần cho hệ thống.
• Mã hóa: chuyển đổi kiểu dữ liệu về dạng thuận tiện để tiến hành các thuật
toán khám phá dữ liệu.
Yêu cầu
thông tin
Thực
hiện
Chọn
dữ liệu
Tinh lọc Làm giàu Mã hóa Khai thác Báo cáo
Dữ liệu
bổ sung
Dữ liệu
thao tác Quay lui
Hình 2.4: Tiến trình khám phá tri thức
- 22 -
• Khai thác dữ liệu:
- Luật kết hợp (association rule): Phân tích dữ liệu, tìm mối liên hệ giữa
các biến trong mô hình, các trường trong CSDL.
- Phân lớp (classification): Phân tích dữ liệu để tìm hàm ánh xạ điểm dữ
liệu vào một trong các lớp đã định nghĩa.
- Phân cụm (clustering): Phân tích dữ liệu, phát hiện sự giống nhau giữa các
mục dữ liệu để gom chúng thành từng cụm (nhóm).
- Dự báo (prediction): Phân tích dữ liệu, xây dựng các mô hình hồi quy để
tiên đoán điều gì sẽ xảy ra.
- Tổng kết: Phân tích dữ liệu, phát hiện phương pháp tìm dạng tối giản cho
một mô tả tập dữ liệu.
• Báo cáo: trình bày kết quả khám phá và khai thác dữ liệu bằng các báo cáo
dạng văn bản hoặc báo biểu đồ họa.
2.6.3. Các Hệ học
Trong nhiều tình huống, tri thức là không có sẵn. Phần lớn người lập trình
không có đủ kiến thức thuộc về lĩnh vực chuyên môn của phần mềm nên không biết
cách mô tả các luật trong từng lĩnh vực cụ thể. Do thiếu tri thức nên bài toán không
được biểu diễn tường minh theo luật, sự kiện hay các quan hệ. Vì vậy cần xây dựng
các hệ thống học có khả năng thu nhận kiến thức từ các chuyên gia và học tập từ
các ví dụ do chuyên gia cung cấp.
Máy học (Machine Learning) là các hệ chương trình có khả năng thực thi
công việc dựa trên kinh nghiệm, tự khám phá tri thức bằng các cấu trúc dữ liệu và
thuật giải đặc biệt. Có hai tiếp cận cho hệ thống học là học từ ký hiệu và học từ dữ
liệu số. Học từ ký hiệu bao gồm việc hình thức hóa, sửa chữa các luật tường minh,
sự kiện và các quan hệ. Học từ dữ liệu số áp dụng cho các hệ thống sử dụng các mô
hình có liên quan đến các kỹ thuật tối ưu các tham số [2]. Các hệ học có ưu điểm:
- Xử lý dữ liệu với khối lượng lớn.
- Hỗ trợ các kỹ thuật phân tích, xử lý, trích chọn và chi tiết hóa dữ liệu
- 23 -
- Phát sinh luật chuyên gia từ dữ liệu, thích hợp cho các trường hợp cần tham
khảo ý kiến chuyên gia tư vấn cho các lĩnh vực cụ thể, có tính chuyên sâu.
- Hỗ trợ quyết định xử lý liên quan đến kinh nghiệm của con người…
Các hệ học có hai giai đoạn cơ bản: học dữ liệu và xử lý dữ liệu. Học dữ liệu
là quá trình phân tích và tìm ra những điểm tương đồng trong dữ liệu để sản sinh
luật. Giai đoạn xử lý ước lượng đặc tính dữ liệu mới dựa trên luật đã được phát sinh
ở giai đoạn học. Có thể chia các quá trình học thành hai dạng chính: học có giám sát
(suppervised learning) và học không giám sát (unsuppervised learning).
2.6.3.1. Học giám sát
Quá trình học giám sát được tiến hành trên một tập dữ liệu mẫu với giá trị
được phân loại (gán nhãn) sẵn. Tập dữ liệu luyện gồm:
S = {xi, cj | i = 1,…, M; j = 1,…, C}
Trong đó xi là vectơ n chiều (gọi là đặc trưng của dữ liệu)
cj là số lớp biết trước
Thuật toán học sẽ tìm kiếm trên không gian giả thuyết giải pháp tốt nhất cho
ánh xạ f với c = f(x). Kết quả tìm được phản ánh đặc trưng của mẫu dữ liệu. Các
thuật toán học tìm cách phát sinh một tập giả thuyết bằng cách tìm ra các đặc trưng
và giá trị tương ứng với mẫu dữ liệu của mỗi lớp. Sau đó áp dụng các tập giả thuyết
tìm được để phân loại (classification) các mẫu dữ liệu mới vào các lớp tương ứng.
Bài toán nhận dạng virus đã biết của MAV là quá trình học có giám sát. Thư
viện S chứa k mẫu virus đã biết, mỗi mẫu virus xi có p thuộc tính. Mục tiêu của quá
trình chẩn đoán virus là xác định xem đối tượng có nhiễm virus xi hay không và nếu
nhiễm thì thuộc lớp virus đã biết trước cj nào.
2.6.3.2. Học không giám sát
Thay vì có mục tiêu tường minh, hệ tìm kiếm quy luật hình thành các mẫu và
khám phá mối quan hệ của dữ liệu. Các bài toán gom cụm dữ liệu (clustering) đều
thuộc dạng này. Trong mô hình học có giám sát, số các lớp là biết trước. Ngược lại,
trong mô hình học không giám sát, mẫu học chưa được gán nhãn nên nói chung, số
- 24 -
lớp chưa biết trước. Các hệ học loại này có khả năng tự giám sát quá trình hình
thành và phát sinh của các lớp. Công tác gán nhãn được thực hiện tự động một cách
hệ thống và phân biệt với các lớp khác.
Ở giai đoạn học dữ liệu, MAV sử dụng một cấu trúc dữ liệu và thuật toán đặc
biệt để gán virus vào các nhóm có cùng đặc trưng. Tùy thuộc vào đặc tính phân bố
của dữ liệu, số lớp kết quả và giá trị nhãn lớp sẽ thay đổi. Với mô hình học không
giám sát này, không gian tìm kiếm được giảm thiểu và MAV có thể nhận dạng
nhanh các đối tượng có cùng đặc trưng với các nhóm virus (xem Chương 4).
2.6.3.3. Các hình thức học
• Học vẹt: Hệ tiếp nhận tập khẳng định của các quyết định đúng. Nếu tạo ra một
quyết định không đúng, hệ sẽ đưa ra các luật/quan hệ đúng đã sử dụng. Hình
thức học vẹt cho phép chuyên gia cung cấp tri thức qua tương tác.
Bài toán chẩn đoán lớp C-class của MAV hoạt động theo hình thức học vẹt.
Thư viện virus chứa các khẳng định đúng trên các mẫu virus trong thế giới
thực. Nếu so khớp đúng, hệ sẽ phát cảnh báo (mẫu dữ liệu có dính líu/quan hệ
với một virus cụ thể) và yêu cầu xác nhận hình thức xử lý. Người khai thác sẽ
cung cấp tri thức cho hệ thực hiện các thao tác tiếp theo.
• Học bằng chỉ dẫn: Thay vì đưa ra một luật cụ thể cần áp dụng vào tình huống
cho trước, hệ thống được cung cấp các chỉ dẫn tổng quát. Hệ tự đề ra cách biến
đổi trừu tượng thành các luật phổ dụng.
Trong bài toán chẩn đoán lớp B-class, hệ được cung cấp các chỉ dẫn định
nghĩa các thao tác của mẫu tin khởi động và các hành vi cơ bản của boot
virus. Khi phát hiện hành vi virus, thông tin đối tượng mới sẽ được chuyển
thành luật, bổ sung vào tập luật nhận dạng chung của hệ.
• Học bằng quy nạp: Hệ thống được cung cấp một tập các ví dụ và kết luận của
từng ví dụ. Hệ liên tục học các luật và quan hệ nhằm xử lý và rút ra kết luận
cho từng ví dụ mới.
- 25 -
Trong MAV, mỗi mẫu tin trong CSDL sử dụng cho lớp A-class được tổ chức
thành bộ 〈Ví dụ dữ liệu - Kết luận virus〉. Ngoài công dụng nhận dạng virus
theo mẫu đã biết, MAV còn sử dụng tập các ví dụ này như bộ dữ liệu luyện
nhằm rút ra các quy luật đặc trưng và mối quan hệ giữa chúng, làm cơ sở cho
quá trình nhận dạng các virus mới chưa có trong thư viện mẫu.
• Học bằng tương tự: Hệ thống được cung cấp đáp ứng đúng cho các tác vụ
tương tự nhưng không giống nhau. Hệ thống cần thích ứng đáp ứng trước đó
nhằm tạo ra một luật mới có khả năng áp dụng cho tình huống mới.
Khi phát hiện virus đã biết, MAV xử lý virus bằng cách thi hành tập các hành
động đối xử tương ứng đã được cung cấp trước. Khi phát hiện virus lạ, MAV
sẽ tự phân tích để đề ra tập các hành động đối xử phù hợp dựa vào tập các
hành động đã có. Cơ chế học tương tự được áp dụng cho lớp virus D-class
chứa các virus macro.
• Học dựa trên tình huống: Bất kỳ tình huống nào được hệ thống lập luận đều
được lưu trữ cùng với kết quả cho dù đúng hay sai. Khi gặp tình huống mới, hệ
thống sẽ tự thích nghi dựa vào các tình huống cũ đã được lưu trữ.
Hình thức học tình huống được áp dụng cho bài toán nhận dạng lớp virus E-
class bằng các tác tử canh phòng liên tục cập nhật thông tin hệ thống và phân
tích các tình huống nảy sinh nguy cơ lây nhiễm của file virus.
• Học dựa trên giải thích: Hệ thống phân tích tập các ví dụ nhằm ấn định khả
năng đúng hoặc sai, sau đó tạo ra các giải thích hướng dẫn cách giải các bài
toán tương tự trong tương lai.
2.6.4. Các nghiên cứu máy học nhận dạng virus máy tính
Các hệ học thường sử dụng các kỹ thuật học và rút luật tiêu biểu như thuật
toán Hybrid Algorithms (Clark & Niblett 1989); thuật toán cây quyết định -
Decision Tree Algorithms (C5.0, Quinlan-1993); thuật toán luật kết hợp -
Association Rule Algorithms (Kaufman và Michalski, 1999); các thuật toán CLIP -
Cover Learning Using Integer Linear Programming [20]…
- 26 -
Trong lĩnh vực nhận dạng virus máy tính, tiếp cận máy học cũng được vận
dụng theo nhiều hướng khác nhau. Năm 1995, Lo và cộng sự [57] giới thiệu phương
pháp lọc mã độc dựa vào phân tích đặc trưng và thuộc tính của chúng. Do không sử
dụng mẫu thử nên phương pháp này có ưu điểm là gọn nhẹ. Tuy nhiên các phương
pháp nhận dạng mã độc bán tự động này có độ chính xác không cao, dễ nhận dạng
nhầm với các ứng dụng sạch có đặc trưng thuộc tính giống mã độc.
Năm 1996, IBM đề xuất phương pháp thống kê dựa trên các thuật toán nhận
dạng tiếng nói để chương trình hóa quá trình phân tích chuỗi mã của các chuyên gia
trong thế giới thực, giúp hệ trích chọn chuỗi nhận dạng tự động [36]. Do đầu ra chỉ
là chuỗi mã trích chọn của các đối tượng chẩn đoán nên chưa dự báo được đối
tượng này có phải là mã độc hay không.
Năm 1998, Spafford giới thiệu phương pháp phân tích diễn biến quá trình lây
lan của sâu trình Internet trên cơ sở dữ liệu mã thực thi của sâu trình, phương pháp
tấn công và vị trí các nút mạng bị tấn công [26]. Phương pháp này tái hiện lộ trình
lây lan, qua đó dự báo được các tình huống tấn công tương tự của sâu trình trên các
nút tiềm tàng. Tuy nhiên phương pháp này chạy chậm và chi phí cao, dễ quá tải khi
mở rộng danh sách các nút mạng, cũng như khi bổ sung danh sách sâu trình.
Để giải quyết bài toán nhận dạng mã độc, một nghiên cứu khác của IBM
chọn mô hình mạng trí tuệ nhân tạo ANN (Artificial Neural Networks) để phân lớp
các mẫu tin khởi động (MTKĐ). Kết quả nghiên cứu cho thấy mô hình này nhận
dạng 80-85% các MTKĐ lạ với sai số dưới 1% trên các mẫu dương [31]. Tuy nhiên
khi sử dụng ANN cho các đối tượng thi hành Win32, các chuyên gia IBM cũng
chưa đưa ra được minh chứng thuyết phục nào cho hướng áp dụng này [68].
Trong khi các nhà khoa học tập trung nghiên cứu mô hình máy học nhận
dạng mã độc, các anti-virus tiếp tục sử dụng các kỹ thuật heurisic để trích chọn đặc
trưng và phân lớp thủ công đối tượng chẩn đoán [24].
Năm 2001, các nhà nghiên cứu ở đại học Columbia (Mỹ) công bố kết quả
nhận dạng mã độc sử dụng kỹ thuật học quy nạp Find-S (đạt 87.35%) và các
phương pháp phân lớp Naïve Bayes (đạt 96.7%). Kết quả này cho thấy tiếp cận học
- 27 -
khá phù hợp để nhận dạng các loại mã độc Win32. Tuy nhiên theo các tác giả, đề tài
gặp khó khăn trong việc chuẩn hóa dữ liệu với các thuật toán mã hóa, giải mã phức
tạp và kém hiệu quả trên các đối tượng chưa được phân lớp chính xác. Khi đánh giá
chi phí, các tác giả chỉ nêu hạn chế của mô hình phân lớp Naïve Bayes (sử dụng đến
1 GB bộ nhớ cho 4266 mẫu thử của 3265 mã độc và 1001 ứng dụng sạch) [47] mà
không công bố các chi phí luyện học và tốc độ thực thi của hệ. Thông thường CSDL
của các AV có hơn 10.000 virus. Muốn đạt hiệu quả từ bằng đến hơn các AV truyền
thống, tiếp cận này cần số mẫu nhiều hơn ba lần so với bộ dữ liệu thử nghiệm, tức
là chỉ các hệ thống với ít nhất 3 GB bộ nhớ mới phát huy được hiệu quả của công
nghệ này. Hơn nữa, nghiên cứu này chỉ áp dụng trên định dạng Win32, chưa xây
dựng mô hình tổng quát của một hệ anti-virus theo hướng máy học hoàn chỉnh.
2.6.5. Các nghiên cứu hệ chuyên gia nhận dạng virus máy tính
Tiếp cận hệ chuyên gia anti-virus (Anti-virus Expert System) được tác giả
luận án và nhóm nghiên cứu đề xuất trong tham luận Expert System Approach to
Diagnosing and Destroying Unknown Computer Viruses ở Hội nghị Quốc tế về Trí
tuệ nhân tạo và Tính toán mềm của tổ chức IASTED (The International Association
of Science and Technology for Development), tổ chức ở Mexico năm 1998 [62].
Theo Google (G) và Yahoo (Y), hiện nay (*) trên thế giới có 4 nhóm nghiên
cứu tiếp cận hệ chuyên gia nhận dạng virus máy tính công bố công trình (Bảng 2.3).
Bảng 2.3: Khảo sát tiếp cận hệ chuyên gia nhận dạng virus máy tính
Kết quả Từ khóa
tìm kiếm G Y
Nhóm
nghiên cứu Năm Nguồn
InVircible 2002 www.invircible.com/news
MicroPoint 2005 www.micropoint.cn
Weidian 2005 www.english.people.com.cn
Anti-virus expert
system 41 32
MAV 2005 www.rivf.e-ifi.org/2005
Anti-virus système
d'experte 0 0 #N/A #N/A #N/A
(*) Đã kiểm tra lại nội dung tìm kiếm vào ngày 10-06-2008
- 28 -
Các kỹ thuật của InVircible’s Generic Technology [84] là:
1. Phát hiện các hành vi dối trá, lợi dụng sơ hở hệ thống, lừa người sử dụng như
đổi tên tập tin (jpg.exe, jpg.pif…), giả mạo shortcut kích hoạt mã độc…
2. Phân tích định dạng Win32 Executable nghi mã độc dựa vào cơ sở tri thức
3. Giám sát sự thâm nhập của các loại hình quấy nhiễu như worm, trojan,
backdoor vào hệ thống mạng.
4. Bảo vệ hệ thống theo thời gian thực bằng chính sách theo dõi tiến trình,
thường xuyên kiểm tra toàn vẹn hệ thống.
5. Trong suốt với người dùng.
Tương tự InVircible, MicroPoint [81] sử dụng năm nhóm giải pháp:
1. Phân tích hành vi hướng thông minh nhân tạo
2. Quét mẫu truyền thống kết hợp với kỹ thuật bảo vệ tường lửa
3. Phục hồi trạng thái hệ thống bằng kỹ thuật rollback
4. Giám sát hoạt động hệ thống theo thời gian thực
5. Tái hiện hoạt động hệ thống qua bộ dữ liệu tiền sử đăng nhập
Khác với các nhóm InVircible và MicroPoint, phần mềm Weidian Proactive
Defence Software dựa vào kỹ thuật nhận dạng hướng hành vi phát hiện trojan horse
thâm nhập vào hệ thống đăng ký (System Regsitry) để cài đặt mã độc vào máy đích.
Khi phát hiện virus thâm nhập, hệ sẽ vận dụng các phương pháp suy diễn trên
CSTT đã có để tham vấn người dùng, hỗ trợ quyết định đối xử thích hợp [87].
Ngoài ra, có dự án “A Prescriptive Anti-virus Expert System Automated with
Defensive Actions” do Curtis HK. Tsang và cộng sự ở khoa Khoa học Máy tính, đại
học HongKong (City University of Hong Kong) nghiên cứu [88].
Nhìn chung, nhóm giải pháp nhận dạng virus máy tính hướng hệ chuyên gia
như InVircible, MicroPoint và Weidian đều tập trung giải quyết sâu trình và trojan.
Bên cạnh các kỹ thuật tiên tiến (tiếp cận hệ chuyên gia, tiếp cận hành vi và tiếp cận
ý định), các nghiên cứu này đều có sử dụng nhận dạng chuỗi mã để gia tăng sức
mạnh cho hệ. Kết hợp nhiều kỹ thuật chẩn đoán là xu hướng chung của các hệ anti-
virus trong giai đoạn hiện nay.
- 29 -
2.7. Tổng kết chương
Chương 2 khảo sát virus máy tính và các cơ chế chẩn đoán virus máy tính
(tiếp cận chuỗi mã, tiếp cận hành vi và tiếp cận ý định), tìm hiểu các công trình
nghiên cứu virus máy tính trong và ngoài nước, đánh giá ưu nhược điểm của từng
phương pháp, tìm hiểu các vấn đề mở của công nghệ anti-virus, phân tích nguyên
nhân và đề ra phương pháp mới cho bài toán nhận dạng virus máy tính: hệ phòng
chống virus máy tính hướng tiếp cận máy học và hệ chuyên gia.
Đề tài xây dựng dựa vào ba luận điểm chính: nguồn gốc virus máy tính, nhận
thức về virus máy tính và phương pháp chữa trị. Quan điểm của đề tài là kết hợp hài
hòa giữa truyền thống và hiện đại theo cách (i) sử dụng tiếp cận chuỗi mã để nhận
dạng virus cũ, (ii) ứng dụng tiếp cận máy học để nhận dạng virus mới. Trong một số
trường hợp sẽ (iii) phối hợp tiếp cận hành vi và tiếp cận máy học để dạy cho máy
học các khái niệm và (iv) phối hợp tiếp cận ý định và tiếp cận máy học để giúp hệ
thống tự “quay ngược thời gian trở về quá khứ”.
Hệ được xây dựng theo mô hình của một hệ chuyên gia: mức giao tiếp
chuyên gia, thành phần cốt lõi và mức giao tiếp người dùng. Mức chuyên gia có
nhiệm vụ thu nhận tri thức chuyên gia. Hạt nhân của hệ sẽ chứa động cơ suy diễn và
các bài toán học. Kết quả chẩn đoán được tổng hợp, kết xuất dưới dạng các giao tiếp
hội thoại, tham vấn hỗ trợ quyết định ở mức giao tiếp người dùng.
Sau đây, Chương 3 sẽ giới thiệu các cơ chế máy học chẩn đoán các lớp virus
máy tính A-class, B-class, C-class, D-class và E-class.