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

Một phần của tài liệu 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 (Trang 26)

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 tồ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 hồ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”.

Ngồ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

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

- 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 đố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 á t h m i l p Prg-32 Prg-16 Binary Text Macro (a) (b)

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 đố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 đố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 tồn cho virus. Khi AV so mẫu chẩn đố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 (adsbygoogle = window.adsbygoogle || []).push({});

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ớ ngồi đủ lớn để lưu tồ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 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 Hồ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

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 tồ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 ngồi.

2.3.2. Các sản phẩm nước ngồi

Cĩ nhiều AV nước ngồ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 hố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” hồ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 tố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 đốn boot virus khá tốt. Để tăng cường độ tin cậy và an tồn hệ thống, tác giảđề xuất một khơng gian chẩn đốn đặc biệt gọi là máy ảo chẩn đố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 tốn cho file virus. Đề tài rút ra kết luận: máy ảo chỉ thích hợp để chẩn đốn boot virus. Khi chẩn đố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].

2.4.2. Tình hình nghiên cứu, ứng dụng ở nước ngồ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 tố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ữ tồ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 - (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu 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 (Trang 26)