Phần mềm diệt virus là phần mềm có tính năng phát hiện, loại bỏ các virus máy tính, khắc phục (một phần hoặc hoàn toàn) hậu quả của virus gây ra và có khả năng được nâng cấp để nhận biết các loại virus trong tương lai.
Để đạ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 tập tin để 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.Toàn bộ các phần mềm diệt virus đều sử dụng kỹ thuật này để quét virus. Kỹ thuật so sánh với mẫu có thể mô tả đơn giản như sau: Các file cần kiểm tra virus được phân tích và so sánh với các mẫu virus đã biết trước, nếu phát hiện một đoạn mã virus thì file đó có thể bị lây nhiễm virus và phần mềm thực hiện biện pháp loại bỏ virus khỏi file bị lây nhiễm. Tất nhiên đây là việc mô tả đơn giản, các hành động cụ thể của các phần mềm này phức tạp hơn nhiều để có thể quét nhanh nhất, loại bỏ sự nhầm lẫn và việc sửa chữa file không làm hư hỏng file.
Kỹ thuật so sánh mẫu virus khiến cho các phần mềm liên tục phải cập nhật cơ sở dữ liệu để có khả năng nhận biết các loại virus mới cùng các biến thể của nó. Có hai dạng cập nhật cơ sở dữ liệu:
Cập nhật bằng hình thức tải file từ Internet: Hình thức này có thể tải một lần file cập nhật để có thể cập nhật cho nhiều máy khác nhau, tuy nhiên kích thước file tải lớn, đa số các file cơ sở dữ liệu của các phần mềm diệt virus thông dụng và được nhiều người sử dụng có kích thước file từ 16 Mb trở lên.Cập nhật trực tiếp bằng tính năng tự động cập nhật của phần mềm diệt virus: Cách này phù hợp với những người sử dụng cá nhân: Phần mềm chỉ tải các cơ sở dữ liệu của các loại virus mới nên mỗi lần cập nhật chỉ cần tải xuống một dung lượng thấp (thường chỉ vài trăm Kb/lần cập nhật).Như ta đã biết về virus với cơ chế lây nhiễm của nó vào các file: Chúng gắn chính đoạn mã của bản thân vào một phần của file để được kích hoạt khi thực thi file này. Kỹ thuật so sánh mẫu sẽ phát hiện ra các đoạn mã của virus giống như dấu hiệu nhận biết trong cơ sở dữ liệu của phần mềm diệt virus, phần mềm sẽ tiến hành loại bỏ các đoạn mã này. Quá trình này có thể xảy ra các vấn đề:
Để đảm bảo các phần cập nhật có dung lượng không quá lớn, cơ sở dữ liệu có thể được lược giản, do đó khi sửa chữa file bị lây nhiễm có thể chỉ xóa một đoạn mã đặc trưng, quan trọng nên có thể phần mềm khác (với cơ chế so sánh ở một đặc điểm khác) có thể vẫn phát hiện file đó bị nhiễm virus.Việc xóa các đoạn mã được coi là của một virus nào đó có thể dẫn đến phần mềm vô tình xóa đoạn mã nhận dạng ở một file hoàn toàn không bị lây nhiễm virus: Đây là hiện tượng nhận nhầm không thể tránh khỏi bởi người viết phần mềm không thể lường hết mọi file của mọi phần mềm trên thế giới, tuy nhiên cần hạn chế đến mức tối thiểu và phải được sửa đổi ngay khi phát hiện ra sự nhầm lẫn.Nhiều file được gắn các "chữ ký điện tử" nhằm xác nhận file có nguồn gốc, đảm bảo an toàn, sau khi bị lây nhiễm virus và được diệt bởi một phần mềm diệt virus, file có thể không còn chữ ký, do đó cần thay thế file đó bằng file nguyên bản hoặc cài đặt lại phần mềm.Việc sửa chữa file đã bị nhiễm virus cũng có thể còn gây nên hư hỏng file nên các phần mềm diệt virus thường lưu lại file trước khi sửa chữa (vẫn nguyên tình trạng bị nhiễm virus) dưới dạng nén lại hoặc mã hóa để không thể lây nhiễm ngược trở lại. Ở đây có thể cần hai trường hợp: Nếu phần mềm diệt virus được cập nhật các thuật toán mới (nâng cấp engine) thì nên phục hồi để diệt lại; Nếu hệ điều hành hoặc các phần mềm khác bị nhiễm quá nhiều thể loại virus mà đã được diệt nhưng hệ thống không ổn định thì nên cài đặt lại hệ điều hành (hoặc phần mềm) để có được các file nguyên bản.Nhận dạng hành vi đáng ngờ[sửa | sửa mã nguồn]Nhận dạng các hành vi đáng ngờ là một chức năng "thông minh" mà không phải bất kỳ phần mềm diệt virus nào cũng có. Hiểu một cách đơn giản thì phần mềm diệt virus sẽ theo dõi sự hoạt động bất thường của hệ thống để có thể phát hiện các virus chưa được biết đến (trong dữ liệu của nó) hoặc các phần mềm độc hại để từ đó đưa ra cảnh báo người sử dụng, cô lập virus để sẵn sàng gửi mẫu đến hãng bảo mật phân tích và cập nhật vào bản nâng cấp cơ sở dữ liệu kế tiếp.
Chức năng này ở các phần mềm diệt virus thường cho phép lựa chọn kích hoạt hoặc không, mức độ hoạt động (sử dụng ở mức độ hoạt động tích cực, hoạt động trung bình ở mức đề cử, hay hoạt động ở mức độ thấp - mặc định thiết lập thường là kích hoạt sẵn ở mức độ đề cử) bởi đa số chúng có thể chiếm tài nguyên và làm chậm hệ thống đối với các máy tính không đủ mạnh.
Kiểm soát liên tục[sửa | sửa mã nguồn]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ờ của chúng.
Kết hợp mọi phương thức[sửa | sửa mã nguồn]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.