Cơ chế quét Virus

Ngay những ngày đầu khi tiếp xúc với máy tính chắc hẳn trong chúng ta đã phải sử dụng ít nhất một hoặc vài chương trình diệt virus (AV). Tuy nhiên không phải ai cũng hiểu được cơ chế quét virus của các phần mềm quan trọng này. Trong bài viết, mình sẽ giới thiệu tới các bạn một vài cơ chế quét virus.

Để đạt được các mục tiêu tối thiểu trên và mở rộng tính năng, phần mềm diệt virus thường hoạt động trên các nguyên lý cơ bản nhất như sau:

  • Kiểm tra (quét) các file để phát hiện các virus đã biết trong cơ sở dữ liệu nhận dạng về virus của chúng.
  • Phát hiện các hành động của các phần mềm giống như các hành động của virus hoặc các phần mềm độc hại.

So sánh với mẫu virus biết trước

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ị xóa (clean) nhầm.

Nhận dạng 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.

Nhận dạng ý định

Do hãng Sandrasoft (Ấn Độ) đề xướng từ năm 2005, tiếp cận intention-based (tên mã Rudra) 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 có Norton Ghost và Norton Goback; VMware có System Image Snapshot; Faronics 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.

Kiểm soát liên tục

Phần mềm diệt virus máy tính thường thực hiện kiểm soát liên tục theo thời gian thực để bảo vệ hệ thống. Hình thức kiểm soát liên tục sẽ quét virus mọi file mà hệ thống truy cập đến, mọi file ngay từ khi bắt đầu được copy vào hệ thống thông qua hình thức nhận biết so sánh mẫu và theo dõi hành động đáng ngờ.

Kết hợp mọi phương thức

Nếu chỉ đơn thuần sử dụng kỹ thuật so sánh mẫu thì một phần mềm diệt virus sẽ thất bại bởi chúng chỉ giải quyết hậu quả các file bị nhiễm chứ chưa tìm đến nguyên nhân dẫn đến file bị nhiễm. Khi sử dụng một số phần mềm chưa đủ mạnh bạn sẽ nhận thấy trường hợp: Phần mềm đã diệt được hoàn toàn virus trong máy, nhưng ngay sau khi phiên khởi động kế tiếp của hệ điều hành, phần mềm lại phát hiện ra virus chính virus đó. Đây có thể không phải là phần mềm nhận dạng được nhưng không diệt được, mà là virus lại được lây nhiễm trở lại bởi phần mềm đã không thể giám sát quá trình khởi động hệ điều hành ngay từ khi bios trao quyền điều khiển.
Chính vì vậy, phần mềm cần phải kết hợp mọi phương thức để kiểm soát và ngăn chặn các hành vi của virus. Virus có thể đặt các dòng lệnh trong registry để lây nhiễm virus từ một file nén nào đó hoặc vô hiệu hóa phần mềm diệt virus; Cũng có thể virus thiết lập tải về ngay khi sử dụng trình duyệt để kết nối vào mạng Internet. Do vậy phần mềm diệt virus cần phải kết hợp mọi phương thức để ngăn chặn virus. Chính những yếu tố này làm lên sự khác biệt giữa các phần mềm diệt virus hiện nay, không lẫn nó với vô vàn phần mềm diệt virus khác khi mà ngay một sinh viên cũng có thể viết một phần mềm diệt virus nếu chịu khó sưu tầm các mẫu virus trên mạng Internet hiện nay.

Lê Chân Thiện Tâm

Tham khảo:

  • Vi.wikipedia.org
  • Tài liệu Luận án tiến sĩ toán học đề tài “Tiếp cận máy học và hệ chuyên gia để nhận dạng, phát hiện virus” của Trương Minh Nhật Quang

Bài liên quan:

  1. Đánh giá phần mềm diệt virus BKAV

Share in Google Buzz