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
Tex t
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
Mac ro
(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: