Virus (máy tính)

Trong khoa học máy tính viễn thông, virus máy tính hay virus tin học (thường được người sử dụng gọi tắt là virus) là những đoạn mã chương trình được thiết kế để thực hiện tối thiểu là 2 việc:
 Tự xen vào hoạt động hiện hành của máy tính một cách hợp lệ, để thực hiện tự nhân bản và những công việc theo chủ ý của lập trình viên. Sau khi kết thúc thực thi mã virus thì điều khiển được trả cho trình đang thực thi mà máy không bị "treo", trừ trường hợp virus cố ý treo máy.
 Tự sao chép chính nó, tức tự nhân bản, một cách hợp lệ lây nhiễm vào những tập tin (file) hay các vùng xác định (boot, FAT sector) ở các thiết bị lưu trữ như đĩa cứng, đĩa mềm, thiết bị nhớ flash (phổ biến là USB)... thậm chí cả EPROM chính của máy.

Trước đây, virus thường được viết bởi một số người am hiểu về lập trình muốn chứng tỏ khả năng của mình nên thường virus có các hành động như: cho 1 chương trình không hoạt động đúng, xóa dữ liệu, làm hỏng ổ cứng... hoặc gây ra những trò đùa khó chịu.

Những virus mới được viết trong thời gian gần đây không còn thực hiện các trò đùa hay sự phá hoại đối với máy tính của nạn nhân bị lây nhiễm nữa, mà đa phần hướng đến việc lấy cắp các thông tin cá nhân nhạy cảm (các mã số thẻ tín dụng) mở cửa sau cho tin tặc đột nhập chiếm quyền điều khiển hoặc các hành động khác nhằm có lợi cho người phát tán virus.

Chiếm trên 90% số virus đã được phát hiện là nhắm vào hệ thống sử dụng hệ điều hành họ Windows chỉ đơn giản bởi hệ điều hành này được sử dụng nhiều nhất trên thế giới. Do tính thông dụng của Windows nên các tin tặc thường tập trung hướng vào chúng nhiều hơn là các hệ điều hành khác. Cũng có quan điểm cho rằng Windows có tính bảo mật không tốt bằng các hệ điều hành khác (như Linux) nên có nhiều virus hơn, tuy nhiên nếu các hệ điều hành khác cũng thông dụng như Windows hoặc thị phần các hệ điều hành ngang bằng nhau thì cũng lượng virus xuất hiện có lẽ cũng tương đương nhau. Ngoài ra hiện nay virus máy tính không chỉ xuất hiện trên các máy tính hệ điều hành Windows nói riêng và toàn bộ các máy tính thuộc tất cả các hệ điều hành nói chung mà nó còn xuất hiện trên cả các điện thoại di động thuộc các hệ điều hành Android và IOS (với tỷ lệ thấp hơn vì IOS có độ bảo mật cao hơn).

Cách thức hoạt động 
Viết virus và chống virus tăng cường bảo mật là cuộc đấu tranh phức tạp và tốn kém giữa 2 giới lập trình. Tuy nhiên cách thức hoạt động của virus thì có thể được diễn giải khái quát như sau .

Các máy tính hoạt động bằng các chỉ thị (hay lệnh, instruction) ở dạng mã máy theo trình tự hợp lý để thực thi 1 công việc (task) nào đó. Mã máy là dãy số nhị phân và việc lập trình (hay thảo chương) trực tiếp mã máy rất nhức đầu, nên giới điện toán thiết kế ra các ngôn ngữ lập trình (như C, C++, Java...) để người lập trình ứng dụng thảo chương bằng những ký hiệu và tên gọi dễ nhớ, sau đó dịch sang mã máy để máy thi hành. Nếu lập trình không hợp lý thì máy bị treo, không làm được gì.

Kỹ thuật lập trình dẫn đến những công việc xác định được lặp lại nhiều lần thường được tổ chức thành modul riêng gọi là "trình con", trong ngôn ngữ lập trình gọi là routine hay subroutine, và khi cần thực hiện công việc vốn ấn định cho routine đó thì trình đang chạy thực hiện lệnh gọi (call) đến routine đó để thực thi. Lệnh call có tham số là địa chỉ routine trong bộ nhớ, khi thực thi lệnh call thì chuyển địa chỉ này vào con trỏ lệnh của CPU và trao quyền chạy cho routine đó. Cấu trúc routine có điểm vào (entry) là nơi bắt đầu, và điểm ra (exit) trả lại điều khiển cho trình gọi (caller) sau khi hoàn tất công việc.

Virus được viết ra là dạng 1 routine, thực hiện sửa tham số địa chỉ của một số lệnh call trỏ đến địa chỉ của nó, và kết thúc virus thì chuyển điều khiển đến routine vốn được gọi của trình. Những gì virus làm thì gói trong dãy mã lệnh virus, trong đó có kỹ năng tự sao lây nhiễm, và tùy thuộc trình độ người viết virus.

Sự tương tự của mã trình với mã DNA sinh học, và hoạt động của virus tin học, dẫn đến tên gọi "virus". Dẫu vậy sự khác nhau căn bản, là virus sinh học phát tác ngay và đồng thời trong tế bào, còn virus tin học chỉ phát tác khi được gọi với tư cách mã lệnh. Nếu nạp virus tin học với tư cách dữ liệu (data) vào bộ nhớ để xem (dump) thì nó không làm được gì cả. Nó cho thấy vai trò cảnh giác khi click vào file có virus (tức là có thể view, edit, delete... nhưng đừng double click).

Trong thiết kế các máy tính địa chỉ các routine cơ bản được bố trí như sau:
Địa chỉ các routine của máy chứa trong BIOS thì sau khởi động được đặt trong bộ nhớ ở nơi gọi là "bảng địa chỉ Interrupt".
 Khởi động của ổ đĩa (mềm, cứng, USB...) được đặt ở boot sector, còn địa chỉ file trong ổ đĩa đặt ở bảng FAT của đĩa.

Virus lục lọi các bảng này để tìm cách thâm nhập thích hợp. Trước đây các virus thường ngắn, có thể gắn thêm vào tệp mã. Ngày nay virus có thể lưu trữ phần thân ở dạng file riêng và ẩn dấu đâu đó trong đĩa hoặc trên mạng, và nội dung file này có thể là dạng macro hoặc html. Các hệ điều hành đã tăng cường bảo mật những điểm dễ bị tấn công. Vì thế virus phải cố tìm các lỗ hổng bảo mật để xâm nhập, và việc tìm ra lỗ hổng đòi hỏi khả năng phân tích mã lệnh phức tạp hơn. Một số virus thì xuất hiện ở dạng chương trình tự lập, thực chất là phần mềm phá hoại, và thực hiện đánh lừa bằng cách hiện ra là 1 biểu tượng (icon) hay đường link để người thiếu cảnh giác click vào đó .

Lịch sử của virus 

Có nhiều quan niệm khác nhau về lịch sử của virus điện toán. Ở đây chỉ nêu rất vắn tắt khái quát những điểm chung nhất, qua đó, chúng ta có thể hiểu chi tiết hơn về các loại virus:

 Năm 1949: John von Neumann (1903-1957) phát triển nền tảng lý thuyết tự nhân bản của 1 chương trình cho máy tính.
 Vào cuối thập niên 1960 đầu thập niên 1970 đã xuất hiện trên các máy Univax 1108 1 chương trình gọi là "Pervading Animal" tự nó có thể nối với phần sau của các tập tin tự hành, lúc đó chưa có khái niệm về virus.
 Năm 1981: Các virus đầu tiên xuất hiện trong hệ điều hành của máy tính Apple II.
 Năm 1983: Tại Đại học miền Nam California, tại Hoa Kỳ, Fred Cohen lần đầu đưa ra khái niệm "Virus máy tính" (computer virus) như định nghĩa ngày nay.
 Năm 1986: Virus "the Brain", virus cho máy tính cá nhân (PC) đầu tiên, được tạo ra tại Pakistan bởi Basit và Amjad. Chương trình này nằm trong phần khởi động (boot sector) của 1 đĩa mềm 360Kb và nó sẽ lây nhiễm tất cả các ổ đĩa mềm. Đây là loại "stealth virus" đầu tiên.
 Cũng trong tháng 12 năm này, virus cho DOS được khám phá ra là virus "VirDem". Nó có khả năng tự chép mã của mình vào các tệp tự thi hành (executable file) và phá hoại các máy tính VAX/VMS.
 Năm 1987: Virus đầu tiên tấn công vào command.com là virus "Lehigh".
 Năm 1988: Virus Jerusalem tấn công đồng loạt các đại học và các công ty trong các quốc gia vào ngày thứ Sáu 13. Đây là loại virus hoạt động theo đồng hồ của máy tính (giống bom nổ chậm cài hàng loạt cho cùng 1 thời điểm).
Tháng 11 cùng năm, Robert Morris, 22 tuổi, chế ra worm chiếm cứ các máy tính của ARPANET, làm liệt khoảng 6.000 máy. Morris bị phạt tù 3 năm và 10.000 dollar. Mặc dù vậy anh ta khai rằng chế ra virus vì "chán đời" (boresome).
 Năm 1990: Chương trình thương mại chống virus đầu tiên ra đời bởi Norton.
 Năm 1991: Virus đa hình (polymorphic virus) ra đời đầu tiên là virus "Tequilla". Loại này biết tự thay đổi hình thức của nó, gây ra sự khó khăn cho các chương trình chống virus.
 Năm 1994: Những người thiếu kinh nghiệm, vì lòng tốt đã chuyển cho nhau 1 điện thư cảnh báo tất cả mọi người không mở tất cả những điện thư có cụm từ "Good Times" trong dòng bị chú (subject line) của chúng. Đây là một loại virus giả (hoax virus) đầu tiên xuất hiện trên các điện thư và lợi dụng vào "tinh thần trách nhiệm" của các người nhận được điện thư này để tạo ra sự luân chuyển.
 Năm 1995: Virus văn bản (macro virus) đầu tiên xuất hiện trong các mã macro trong các tệp của Word và lan truyền qua rất nhiều máy. Loại virus này có thể làm hư hệ điều hành. Macro virus là loại virus viết ra bằng công cụ VBA (Visual Basic for Applications) và tùy theo khả năng, có thể lan nhiễm trong các ứng dụng văn phòng của Microsoft như Word, Excel, PowerPoint, OutLook.... Loại macro này, nổi tiếng có virus Baza và virus Laroux, xuất hiện năm 1996, có thể nằm trong cả Word hay Excel. Sau này, virus Melissa, năm 1997, tấn công hơn 1 triệu máy, lan truyền bởi 1 tệp đính kèm kiểu Word bằng cách đọc và gửi đến các địa chỉ của Outlook trong các máy đã bị nhiễm virus. Virus Tristate, năm 1999, có thể nằm trong các tệp Word, Excel và PowerPoint.
 Năm 2000: Virus Love Bug, còn có tên ILOVEYOU, đánh lừa tính hiếu kì của mọi người. Đây là một loại macro virus. Đặc điểm là nó dùng đuôi tập tin dạng "ILOVEYOU.txt.exe", lợi dụng điểm yếu của Outlook thời bấy giờ: theo mặc định sẵn, đuôi dạng.exe sẽ tự động bị giấu đi. Ngoài ra, virus này còn có 1 đặc tính mới của spyware: nó tìm cách đọc tên và mã nhập của máy chủ và gửi về cho tay hắc đạo. Khi truy cứu ra thì đó là 1 sinh viên người Philippines. Tên này được tha bổng vì lúc đó Philippines chưa có luật trừng trị những người tạo ra virus cho máy tính.
 Năm 2002: Tác giả của virus Melissa, David L. Smith, bị xử 20 tháng tù.
 Năm 2003: Virus Slammer, một loại worm lan truyền với vận tốc kỉ lục, truyền cho khoảng 75.000 máy tính trong 10 phút.
 Năm 2004: Đánh dấu 1 thế hệ mới của virus là worm Sasser. Với virus này thì người ta không cần phải mở đính kèm của điện thư mà chỉ cần mở lá thư là đủ cho nó xâm nhập vào máy. Cũng may là Sasser không hoàn toàn hủy hoại máy mà chỉ làm cho máy chủ trở nên chậm hơn và đôi khi nó làm máy tự khởi động trở lại. Tác giả của worm này cũng lập 1 kỉ lục khác: tay tin tặc nổi tiếng trẻ nhất, chỉ mới 18 tuổi, Sven Jaschan, người Đức. Tuy vậy, vì còn nhỏ tuổi, nên vào tháng 7/2005, tòa án Đức chỉ phạt anh này 3 năm tù treo và 30 giờ lao động công ích.
 Năm 2017: Vụ tấn công của WannaCry vào ngày 12/5/2017 đang tiếp tục phát tán. WannaCry (tạm dịch là "Muốn khóc") còn được gọi là WannaDecryptor 2.0, là 1 phần mềm độc hại mã độc tống tiền tự lan truyền trên các máy tính sử dụng Microsoft Windows. Vào tháng 5/2017, 1 cuộc tấn công không gian mạng quy mô lớn sử dụng nó được đưa ra, tính tới ngày 15/5 (3 ngày sau khi nó được biết đến) gây lây nhiễm trên 230.000 máy tính ở 150 quốc gia, yêu cầu thanh toán tiền chuộc từ 300 - 600 Euro bằng bitcoin với 20 ngôn ngữ (bao gồm tiếng Thái và tiếng Trung Quốc). Hiện thời người ta biết tới 5 tài khoản bitcoin của họ, đến nay chỉ có không hơn 130 người chịu trả tiền, thu nhập tối đa chỉ khoảng 30.000 Euro.
 Với khả năng của các tay tin tặc, virus ngày nay có thể xâm nhập bằng cách bẻ gãy các rào an toàn của hệ điều hành hay chui vào các chỗ hở của các phần mềm nhất là các chương trình thư điện tử, rồi từ đó lan tỏa khắp nơi theo các nối kết mạng hay qua thư điện tử. Do đó, việc truy tìm ra nguồn gốc phát tán virus sẽ càng khó hơn nhiều. Chính Microsoft, hãng phần mềm tạo ra các phần mềm phổ biến, cũng là 1 nạn nhân. Họ đã phải nghiên cứu, sửa chữa và phát hành rất nhiều các phần mềm nhằm sửa các khiếm khuyết của phần mềm cũng như phát hành các cập nhật của gói dịch vụ (service pack) nhằm giảm hay vô hiệu hóa các tấn công của virus. Nhưng dĩ nhiên với các phần mềm có hàng triệu dòng mã nguồn thì mong ước chúng hoàn hảo theo ý nghĩa của sự an toàn chỉ có trong lý thuyết. Đây cũng là cơ hội cho các nhà sản xuất các loại phần mềm bảo vệ, sửa lỗi phát triển.
 Trong tương lai không xa, virus sẽ có thêm các bước biến đổi khác, nó bao gồm mọi điểm mạnh sẵn có (polymorphic, sasser hay tấn công bằng nhiều cách thức, nhiều kiểu) và còn kết hợp với các thủ đoạn khác của phần mềm gián điệp (spyware). Đồng thời nó có thể tấn công vào nhiều hệ điều hành khác nhau chứ không nhất thiết nhắm vào 1 hệ điều hành độc nhất như trong trường hợp của Windows hiện giờ. Và có lẽ virus sẽ không hề (thậm chí là không cần) thay đổi phương thức tấn công: lợi dụng điểm yếu của máy tính cũng như chương trình.

Các khái niệm có liên quan

Phần mềm ác tính (malware) 
(chữ ghép của malicious và software) chỉ chung các phần mềm có tính năng gây hại như virus, worm và Trojan horse...

Sâu máy tính (worm) 
Là các chương trình cũng có khả năng tự nhân bản tự tìm cách lan truyền qua hệ thống mạng (thường là qua hệ thống thư điện tử). Điểm cần lưu ý ở đây, ngoài gây tác hại cho máy bị nhiễm, nhiệm vụ chính của worm là phá các mạng (network) thông tin chia sẻ, làm giảm khả năng hoạt động hay ngay cả hủy hoại các mạng này. Nhiều nhà phân tích cho rằng worm khác với virus, họ nhấn mạnh vào đặc tính phá hoại mạng nhưng ở đây worm được cho là một loại virus đặc biệt.

Worm nổi tiếng nhất được tạo bởi Robert Morris vào năm 1988. Nó có thể làm hỏng bất kì hệ điều hành UNIX nào trên Internet. Tuy vậy, có lẽ worm tồn tại lâu nhất là virus happy99, hay các thế hệ sau đó của nó có tên là Trojan. Các worm này sẽ thay đổi nội dung tệp wsok32.dll của Windows và tự gửi bản sao của chính chúng đi đến các địa chỉ cho mỗi lần gửi điện thư hay message.

Trojan Horse 
Đây là loại chương trình cũng có tác hại tương tự như virus chỉ khác là nó không tự nhân bản ra. Như thế, cách lan truyền duy nhất là thông qua các thư dây chuyền. Để trừ loại này người chủ máy chỉ việc tìm ra tập tin Trojan Horse rồi xóa nó đi là xong. Tuy nhiên, không có nghĩa là không thể có hai con Trojan horse trên cùng 1 hệ thống. Chính những kẻ tạo ra các phần mềm này sẽ sử dụng kỹ năng lập trình của mình để sao lưu thật nhiều con trước khi phát tán lên mạng. Đây cũng là loại virus cực kỳ nguy hiểm. Nó có thể hủy ổ cứng, hủy dữ liệu.

Phần mềm gián điệp (spyware) 
Đây là loại virus có khả năng thâm nhập trực tiếp vào hệ điều hành mà không để lại "di chứng". Thường một số chương trình diệt virus có kèm trình diệt spyware nhưng diệt khá kém đối với các đợt "dịch".

Phần mềm quảng cáo (adware) 
Loại phần mềm quảng cáo, rất hay có ở trong các chương trình cài đặt tải từ trên mạng. Một số phần mềm vô hại, nhưng một số có khả năng hiển thị thông tin kịt màn hình, cưỡng chế người sử dụng.

Botnet 
Là những máy tính bị bắt cóc và điều khiển bởi người khác thông qua Trojan, virus...

Điều đặc biệt nguy hiểm là các botnet được phơi bày từ các tin tặc không cần kỹ thuật lập trình cao. Nó được rao bán với giá từ 20 USD trở lên cho các tin tặc. Hậu quả của nó để lại không nhỏ: mất tài khoản. Nếu liên kết với 1 hệ thống máy tính lớn, nó có thể tống tiền cả 1 doanh nghiệp.

Nhóm của Sites ở Sun Belt cùng với đội phản ứng nhanh của công ty bảo mật iDefense Labs đã tìm ra 1 botnet chạy trên nền web có tên là Metaphisher. Thay cho cách sử dụng dòng lệnh, tin tặc có thể sử dụng giao diện đồ họa, các biểu tượng có thể thay đổi theo ý thích, chỉ việc dịch con trỏ, nhấn chuột và tấn công.

Theo iDefense Labs, các bot do Metaphisher điều khiển đã lây nhiễm hơn 1 triệu PC trên toàn cầu. Thậm chí trình điều khiển còn mã hóa liên lạc giữa nó và bot "đàn em" và chuyển đi mọi thông tin về các PC bị nhiễm cho người chủ bot như vị trí địa lý, các bản vá bảo mật của Windows và những trình duyệt đang chạy trên mỗi PC.

Những công cụ tạo bot và điều khiển dễ dùng trên góp phần làm tăng vọt số PC bị nhiễm bot được phát hiện trong thời gian gần đây. Thí dụ, Jeanson James Ancheta, 21 tuổi, người Mỹ ở bang California, bị tuyên án 57 tháng tù vì đã vận hành 1 doanh nghiệp "đen" thu lợi bất chính dựa vào các botnet điều khiển 400.000 "thành viên" và 3 tay điều khiển bot bị bắt mùa thu năm trước ở Hà Lan chính là trung tâm "đầu não" điều khiển hơn 1,5 triệu PC!

Mặc dù đã có luật để bắt những tội phạm kiểu này, nhưng do dễ dàng có được những công cụ phá hoại nên luôn có thêm người mới gia nhập hàng ngũ tin tặc vì tiền hay vì tò mò.

Keylogger 
Là phần mềm ghi lại chuỗi phím gõ của người dùng. Nó có thể hữu ích cho việc tìm nguồn gốc lỗi sai trong các hệ thống máy tính và đôi khi được dùng để đo năng suất làm việc của nhân viên văn phòng. Các phần mềm kiểu này rất hữu dụng cho ngành luật pháp và tình báo - ví dụ, cung cấp 1 phương tiện để lấy mật khẩu hoặc các khóa mật mã và nhờ đó qua mắt được các thiết bị an ninh. Tuy nhiên, các phần mềm Keylogger được phổ biến rộng rãi trên Internet và bất cứ ai cũng có thể sử dụng cho mục đích lấy trộm mật khẩu và chìa khóa mã hóa.

Phishing 
Là 1 hoạt động phạm tội dùng các kỹ thuật lừa đảo. Kẻ lừa đảo cố gắng lừa lấy các thông tin nhạy cảm, chẳng hạn như mật khẩu và thông tin về thẻ tín dụng, bằng cách giả là 1 người hoặc 1 doanh nghiệp đáng tin cậy trong 1 giao dịch điện tử. Phishing thường được thực hiện bằng cách sử dụng thư điện tử hoặc tin nhắn, đôi khi còn sử dụng cả điện thoại.

Rootkit 
Là 1 bộ công cụ phần mềm dành cho việc che giấu các tiến trình đang chạy, các file hoặc dữ liệu hệ thống. Rootkit có nguồn gốc từ các ứng dụng tương đối hiền, nhưng những năm gần đây, rootkit đã bị sử dụng ngày càng nhiều bởi các phần mềm ác tính, giúp kẻ xâm nhập hệ thống giữ được đường truy nhập 1 hệ thống trong khi tránh bị phát hiện. Người ta đã biết đến các rootkit dành cho nhiều hệ điều hành khác nhau chẳng hạn Linux, Solaris và một số phiên bản của Microsoft Windows. Các rootkit thường sửa đổi một số phần của hệ điều hành hoặc tự cài đặt chúng thành các driver hay các module trong nhân hệ điều hành (kernel module).

Khi hay tin CD nhạc của Sony cài đặt rookit để giấu file chống sao chép xuất hiện vào tháng 11 năm ngoái, giới tin tặc hân hoan và nhanh chóng khai thác ứng dụng của Sony. Phần mềm của Sony giấu bất kỳ file hay tiến trình bắt đầu với "$sys$", những kẻ viết phần mềm độc hại đã đổi tên file để lợi dụng đặc điểm này.

Vào tháng 3, nhà sản xuất phần mềm chống virus ở Tây Ban Nha là Panda Software cho biết họ đang tìm biến thể của sâu Bagle cực kỳ độc hại có trang bị khả năng của rootkit. Trầm trọng hơn, tương tự như các "nhà sản xuất" chương trình botnet, những kẻ tạo phần mềm rootkit còn bán hoặc phát tán miễn phí các công cụ, giúp những tay viết phần mềm độc hại dễ dàng bổ sung chức năng rootkit cho các virus cũ như Bagle hay tạo loại mới.

1 dự án do Microsoft và các nhà nghiên cứu của đại học Michigan thực hiện đã mở đường cho nghiên cứu rootkit, tạo ra 1 phương thức mới gần như "đặt" hệ điều hành chạy trên phần mềm có tên SubVirt (tên của dự án nghiên cứu). Hệ điều hành vẫn làm việc bình thường, nhưng "máy ảo" điều khiển mọi thứ hệ điều hành nhìn thấy và có thể dễ dàng giấu chính nó.

May mắn là kỹ thuật này không dễ thực hiện và người dùng dễ nhận ra vì làm chậm hệ thống và làm thay đổi những file nhất định. Hiện giờ, loại siêu rootkit này chỉ mới ở dạng ý tưởng, cần nhiều thời gian trước khi tin tặc có thể thực hiện phương thức tấn công này.

Phần mềm tống tiền (Ransomware) 
Là loại phần mềm sử dụng 1 hệ thống mật mã để mã hóa dữ liệu thuộc về 1 cá nhân và đòi tiền chuộc thì mới khôi phục lại.

Backdoor 
Backdoor, nghĩa là "cửa hậu" hay lối vào phía sau. Trong 1 hệ thống máy tính, "cửa hậu" là 1 phương pháp vượt qua thủ tục chứng thực người dùng thông thường hoặc để giữ đường truy nhập từ xa tới 1 máy tính, trong khi cố gắng không bị phát hiện bởi việc giám sát thông thường. Cửa hậu có thể có hình thức 1 chương trình được cài đặt (ví dụ Back Orifice hoặc cửa hậu rookit Sony/BMG rootkit được cài đặt khi 1 đĩa bất kỳ trong số hàng triệu đĩa CD nhạc của Sony được chơi trên 1 máy tính chạy Windows), hoặc có thể là 1 sửa đổi đối với 1 chương trình hợp pháp - đó là khi nó đi kèm với Trojan.

Danh sách các đuôi tệp có khả năng di truyền và bị lây nhiễm 
Các tập tin trên hệ điều hành Windows mang đuôi mở rộng sau có nhiều khả năng bị virus tấn công (xếp theo thứ tự bảng chữ cái tiếng Anh):

.bat: Microsoft Batch File (Tệp xử lý theo lô nhiều câu lệnh)
.chm: Compressed HTML Help File (Tệp tài liệu dưới dạng nén HTML)
.cmd: Command file for Windows NT (Tệp thực thi của Windows NT)
.com: Command file (program) (Tệp thực thi)
.cpl: Control Panel extension (Tệp của Control Panel)
.doc: Microsoft Word (Tệp của chương trình Microsoft Word)
.exe: Executable File (Tệp thực thi)
.hlp: Help file (Tệp nội dung trợ giúp người dùng)
.hta: HTML Application (Ứng dụng HTML)
.js: JavaScript File (Tệp JavaScript)
.jse: JavaScript Encoded Script File (Tệp mã hoá JavaScript)
.lnk: Shortcut File (Tệp đường dẫn)
.msi: Microsoft Installer File (Tệp cài đặt)
.pif: Program Information File (Tệp thông tin chương trình)
.reg: Registry File (Tệp can thiệp và chỉnh sửa Registry)
.scr: Screen Saver (Portable Executable File)
.sct: Windows Script Component
.shb: Document Shortcut File
.shs: Shell Scrap Object
.vb: Visual Basic File
.vbe: Visual Basic Encoded Script File
.vbs: Visual Basic File (Tệp được lập trình bởi Visual Basic)
.wsc: Windows Script Component
.wsf: Windows Script File
.wsh: Windows Script Host File
.{*}: Class ID (CLSID) File Extensions

Các hình thức lây nhiễm của virus máy tính

Virus lây nhiễm theo cách cổ điển 
Cách cổ điển nhất của sự lây nhiễm, bành trướng của các loai virus máy tính là thông qua các thiết bị lưu trữ di động: Trước đây đĩa mềm và đĩa CD chứa chương trình thường là phương tiện bị lợi dụng nhiều nhất để phát tán. Ngày nay khi đĩa mềm rất ít được sử dụng thì phương thức lây nhiễm này chuyển qua các ổ USB, các đĩa cứng di động hoặc các thiết bị giải trí kỹ thuật số.

Virus lây nhiễm qua thư điện tử 
Khi mà thư điện tử (email) được sử dụng rộng rãi trên thế giới thì virus chuyển hướng sang lây nhiễm thông qua thư điện tử thay cho các cách lây nhiễm truyền thống.

Khi đã lây nhiễm vào máy nạn nhân, virus có thể tự tìm ra danh sách các địa chỉ thư điện tử sẵn có trong máy và nó tự động gửi đi hàng loạt (mass mail) cho những địa chỉ tìm thấy. Nếu các chủ nhân của các máy nhận được thư bị nhiễm virus mà không bị phát hiện, tiếp tục để lây nhiễm vào máy, virus lại tiếp tục tìm đến các địa chỉ và gửi tiếp theo. Chính vì vậy số lượng phát tán có thể tăng theo cấp số nhân khiến cho trong 1 thời gian ngắn hàng hàng triệu máy tính bị lây nhiễm, có thể làm tê liệt nhiều cơ quan trên toàn thế giới trong 1 thời gian rất ngắn.

Khi mà các phần mềm quản lý thư điện tử kết hợp với các phần mềm diệt virus có thể khắc phục hành động tự gửi nhân bản hàng loạt để phát tán đến các địa chỉ khác trong danh bạ của máy nạn nhân thì chủ nhân phát tán virus chuyển qua hình thức tự gửi thư phát tán virus bằng nguồn địa chỉ sưu tập được trước đó.

Phương thức lây nhiễm qua thư điển tử bao gồm:
 Lây nhiễm vào các file đính kèm theo thư điện tử (attached mail). Khi đó người dùng sẽ không bị nhiễm virus cho tới khi file đính kèm bị nhiễm virus được kích hoạt (do đặc điểm này các virus thường được "trá hình" bởi các tiêu đề hấp dẫn như sex, thể thao hay quảng cáo bán phần mềm với giá vô cùng rẻ).
 Lây nhiễm do mở 1 liên kết trong thư điện tử. Các liên kết trong thư điện tử có thể dẫn đến 1 trang web được cài sẵn virus, cách này thường khai thác các lỗ hổng của trình duyệt và hệ điều hành. một cách khác, liên kết dẫn tới việc thực thi 1 đoạn mã, và máy tính bị có thể bị lây nhiễm virus.
 Lây nhiễm ngay khi mở để xem thư điện tử: Cách này vô cùng nguy hiểm bởi chưa cần kích hoạt các file hoặc mở các liên kết, máy tính đã có thể bị lây nhiễm virus. Cách này thường khai thác các lỗi của hệ điều hành.

Virus lây nhiễm qua mạng Internet 
Theo sự phát triển rộng rãi của Internet trên thế giới mà hiện nay các hình thức lây nhiễm virus qua Internet trở thành các phương thức chính của virus ngày nay. Có các hình thức lây nhiễm virus và phần mềm độc hại thông qua Internet như sau:
 Lây nhiễm thông qua các file tài liệu, phần mềm: Là cách lây nhiễm cổ điển, nhưng thay thế các hình thức truyền file theo cách cổ điển (đĩa mềm, đĩa USB...) bằng cách tải từ Internet, trao đổi, thông qua các phần mềm...
 Lây nhiễm khi đang truy cập các trang web được cài đặt virus (theo cách vô tình hoặc cố ý): Các trang web có thể có chứa các mã hiểm độc gây lây nhiễm virus và phần mềm độc hại vào máy tính của người sử dụng khi truy cập vào các trang web đó.
 Lây nhiễm virus hoặc chiếm quyền điều khiển máy tính thông qua các lỗi bảo mật hệ điều hành, ứng dụng sẵn có trên hệ điều hành hoặc phần mềm của hãng thứ ba: Điều này có thể khó tin đối với một số người sử dụng, tuy nhiên tin tặc có thể lợi dụng các lỗi bảo mật của hệ điều hành, phần mềm sẵn có trên hệ điều hành (ví dụ Windows Media Player) hoặc lỗi bảo mật của các phần mềm của hãng thứ ba (ví dụ Acrobat Reader) để lây nhiễm virus hoặc chiếm quyền kiểm soát máy tính nạn nhân khi mở các file liên kết với các phần mềm này.

Biến thể 
1 hình thức trong cơ chế hoạt động của virus là tạo ra các biến thể của chúng.

Biến thể của virus là sự thay đổi mã nguồn nhằm các mục đích tránh sự phát hiện của phần mềm diệt virus hoặc làm thay đổi hành động của nó. Một số loại virus có thể tự tạo ra các biến thể khác nhau gây khó khăn cho quá trình phát hiện và tiêu diệt chúng. Một số biến thể khác xuất hiện do sau khi virus bị nhận dạng của các phần mềm diệt virus, chính tác giả hoặc các tin tặc khác (biết được mã của chúng) đã viết lại, nâng cấp hoặc cải tiến chúng để tiếp tục phát tán.

Virus có khả năng vô hiệu hoá phần mềm diệt virus 
Một số virus có khả năng vô hiệu hoá hoặc can thiệp vào hệ điều hành làm tê liệt các phần mềm diệt virus. Sau hành động này chúng mới tiến hành lây nhiễm và tiếp tục phát tán. Một số khác lây nhiễm chính vào phần mềm diệt virus (tuy khó khăn hơn) hoặc ngăn cản sự cập nhật của các phần mềm diệt virus. Kể cả cài lại hệ điều hành máy tính và cài diệt sau đó nhưng đã quá trễ.

Các cách thức này không quá khó nếu như chúng nắm rõ được cơ chế hoạt động của các phần mềm diệt virus và được lây nhiễm hoặc phát tác trước khi hệ thống khởi động các phần mềm này. Chúng cũng có thể sửa đổi file host của hệ điều hành Windows để người sử dụng không thể truy cập vào các website và phần mềm diệt virus không thể liên lạc với server của mình để cập nhật.

Cách phòng chống virus và ngăn chặn tác hại của nó 
Để không bị lây nhiễm virus thì giải pháp triệt để nhất là ngăn chặn mọi kết nối thông tin vào thiết bị máy tính bao gồm ngắt kết nối mạng chia sẻ, không sử dụng ổ mềm, ổ USB hoặc copy bất kỳ file nào vào máy tính, đặc biệt các dạng file có nguy cơ cao. Điều này thực sự hiệu quả khi mà hiện nay sự tăng trưởng số lượng virus mới hàng năm trên thế giới rất lớn.

Tuy nhiên, trong thời đại "bùng nổ thông tin", đa số mọi người đều có nhu cầu truy cập vào "không gian số", không thể khẳng định chắc chắn bảo vệ an toàn 100% cho máy tính trước hiểm hoạ virus và các phần mềm không mong muốn, nhưng chúng ta có thể hạn chế đến tối đa với các biện pháp bảo vệ dữ liệu của mình:

Sử dụng phần mềm diệt virus 
Bảo vệ bằng cách trang bị thêm một phần mềm diệt virus có khả năng nhận biết nhiều loại virus máy tính và liên tục cập nhật dữ liệu để phần mềm đó luôn nhận biết được các virus mới.

Trên thị trường Việt Nam hiện có rất nhiều các tên tuổi phần mềm diệt virus như: 
 Do người Việt Nam viết: Bkav, D32, CMC...
 Của nước ngoài: Norton-Symantec, Kaspersky, Avira, AVG, ESET, Avast, BitDefender...
 Phát hành bởi Microsoft: Microsoft Security Essentials, Windows Defender (từ Windows 7 trở đi)

Sử dụng tường lửa cá nhân
Tường lửa cá nhân (Personal Firewall) không phải một cái gì đó quá xa vời hoặc chỉ dành cho các nhà cung cấp dịch vụ Internet (ISP) mà mỗi máy tính cá nhân cũng cần phải sử dụng tường lửa để bảo vệ trước virus và các phần mềm độc hại. Khi sử dụng tường lửa, các thông tin vào và ra đối với máy tính được kiểm soát một cách vô thức hoặc có chủ ý. Nếu 1 phần mềm độc hại đã được cài vào máy tính có hành động kết nối ra Internet thì tường lửa có thể cảnh báo giúp người sử dụng loại bỏ hoặc vô hiệu hoá chúng. Tường lửa giúp ngăn chặn các kết nối đến không mong muốn để giảm nguy cơ bị kiểm soát máy tính ngoài ý muốn hoặc cài đặt vào các chương trình độc hại hay virus máy tính.

Tường lửa được chia hai loại: 
 Sử dụng tường lửa bằng phần cứng: Nếu người sử dụng kết nối với mạng Internet thông qua 1 modem hoặc 1 card chuyên dụng có chức năng này. Thông thường ở chế độ mặc định của nhà sản xuất thì chức năng "tường lửa" bị tắt, người sử dụng có thể truy cập vào modem để cho phép hiệu lực (bật). Sử dụng tường lửa bằng phần cứng không phải tuyệt đối an toàn bởi chúng thường chỉ ngăn chặn kết nối đến trái phép, do đó kết hợp sử dụng tường lửa bằng các phần mềm.
 Sử dụng tường lửa bằng phần mềm: Ngay các hệ điều hành họ Windows ngày nay đã được tích hợp sẵn tính năng tường lửa bằng phần mềm, tuy nhiên thông thường các phần mềm của hãng thứ ba có thể làm việc tốt hơn và tích hợp nhiều công cụ hơn so với tường lửa phần mềm sẵn có của Windows. Ví dụ bộ phần mềm ZoneAlarm Security Suite của hãng ZoneLab là 1 bộ công cụ bảo vệ hữu hiệu trước virus, các phần mềm độc hại, chống spam, và tường lửa.

Cập nhật các bản vá lỗi của hệ điều hành 
Hệ điều hành Windows (chiếm đa số) luôn luôn bị phát hiện các lỗi bảo mật chính bởi sự thông dụng của nó, tin tặc có thể lợi dụng các lỗi bảo mật để chiếm quyền điều khiển hoặc phát tán virus và các phần mềm độc hại. Người sử dụng luôn cần cập nhật các bản vá lỗi của Windows thông qua trang web Microsoft Update (cho việc nâng cấp tất cả các phần mềm của hãng Microsoft) hoặc Windows Update (chỉ cập nhật riêng cho Windows). Cách tốt nhất hãy đặt chế độ nâng cấp (sửa chữa) tự động (Automatic Updates) của Windows. Tính năng này chỉ hỗ trợ đối với các bản Windows mà Microsoft nhận thấy rằng chúng hợp pháp.

Vận dụng kinh nghiệm sử dụng máy tính 
Cho dù sử dụng tất cả các phần mềm và phương thức trên nhưng máy tính vẫn có khả năng bị lây nhiễm virus và các phần mềm độc hại bởi mẫu virus mới chưa được cập nhật kịp thời đối với phần mềm diệt virus. Người sử dụng máy tính cần sử dụng triệt để các chức năng, ứng dụng sẵn có trong hệ điều hành và các kinh nghiệm khác để bảo vệ cho hệ điều hành và dữ liệu của mình. Một số kinh nghiệm tham khảo như sau:
 Phát hiện sự hoạt động khác thường của máy tính: Đa phần người sử dụng máy tính không có thói quen cài đặt, gỡ bỏ phần mềm hoặc thường xuyên làm hệ điều hành thay đổi - có nghĩa là 1 sự sử dụng ổn định - sẽ nhận biết được sự thay đổi khác thường của máy tính. Ví dụ đơn giản: Nhận thấy sự hoạt động chậm chạp của máy tính, nhận thấy các kết nối ra ngoài khác thường thông qua tường lửa của hệ điều hành hoặc của hãng thứ ba (thông qua các thông báo hỏi sự cho phép truy cập ra ngoài hoặc sự hoạt động khác của tường lửa). Mọi sự hoạt động khác thường này nếu không phải do phần cứng gây ra thì cần nghi ngờ sự xuất hiện của virus. Ngay khi có nghi ngờ, cần kiểm tra bằng cách cập nhật dữ liệu mới nhất cho phần mềm diệt virus hoặc thử sử dụng 1 phần mềm diệt virus khác để quét toàn hệ thống.
 Kiểm soát các ứng dụng đang hoạt động: Kiểm soát sự hoạt động của các phần mềm trong hệ thống thông qua Task Manager hoặc các phần mềm của hãng thứ ba (chẳng hạn: ProcessViewer) để biết 1 phiên làm việc bình thường hệ thống thường nạp các ứng dụng nào, chúng chiếm lượng bộ nhớ bao nhiêu, chiếm CPU bao nhiêu, tên file hoạt động là gì... ngay khi có điều bất thường của hệ thống (dù chưa có biểu hiện của sự nhiễm virus) cũng có thể có sự nghi ngờ và có hành động phòng ngừa hợp lý. Tuy nhiên cách này đòi hỏi 1 sự am hiểu nhất định của người sử dụng.
 Loại bỏ một số tính năng tự động của hệ điều hành có thể tạo điều kiện cho sự lây nhiễm virus: Theo mặc định Windows thường cho phép các tính năng tự chạy (autorun) giúp người sử dụng thuận tiện cho việc tự động cài đặt phần mềm khi đưa đĩa CD hoặc đĩa USB vào hệ thống. Chính các tính năng này được một số loại virus lợi dụng để lây nhiễm ngay khi vừa cắm ổ USB hoặc đưa đĩa CD phần mềm vào hệ thống (một vài loại virus lan truyền rất nhanh trong thời gian gần đây thông qua các ổ USB bằng cách tạo các file autorun.inf trên ổ USB để tự chạy các virus ngay khi cắm ổ USB vào máy tính). Cần loại bỏ tính năng này bằng các phần mềm của hãng thứ ba như TWEAKUI hoặc sửa đổi trong Registry.
 Quét virus trực tuyến: Sử dụng các trang web cho phép phát hiện virus trực tuyến.
(Xem thêm phần "Phần mềm diệt virus trực tuyến" tại bài phần mềm diệt virus)

Bảo vệ dữ liệu máy tính 
Nếu như không chắc chắn 100% rằng có thể không bị lây nhiễm virus máy tính và các phần mềm hiểm độc khác thì bạn nên tự bảo vệ sự toàn vẹn của dữ liệu của mình trước khi dữ liệu bị hư hỏng do virus (hoặc ngay cả các nguy cơ tiềm tàng khác như sự hư hỏng của các thiết bị lưu trữ dữ liệu của máy tính). Trong phạm vi về bài viết về virus máy tính, bạn có thể tham khảo các ý tưởng chính như sau:

 Sao lưu dữ liệu theo chu kỳ là biện pháp đúng đắn nhất hiện nay để bảo vệ dữ liệu. Bạn có thể thường xuyên sao lưu dữ liệu theo chu kỳ đến một nơi an toàn như: các thiết bị nhớ mở rộng (ổ USB, ổ cứng di động, ghi ra đĩa quang...), hình thức này có thể thực hiện theo chu kỳ hàng tuần hoặc khác hơn tuỳ theo mức độ cập nhật, thay đổi của dữ liệu của bạn.
 Tạo các dữ liệu phục hồi cho toàn hệ thống không dừng lại các tiện ích sẵn có của hệ điều hành (ví dụ System Restore của Windows Me, Windows XP...) mà có thể cần đến các phần mềm của hãng thứ ba, ví dụ bạn có thể tạo các bản sao lưu hệ thống bằng các phần mềm ghost, các phần mềm tạo ảnh ổ đĩa hoặc phân vùng khác.

Thực chất các hành động trên không chắc chắn là các dữ liệu được sao lưu không bị lây nhiễm virus, nhưng nếu có virus thì các phiên bản cập nhật mới hơn của phần mềm diệt virus trong tương lai có thể loại bỏ được chúng.

Chú thích

Liên kết ngoài 

Virus (máy tính)
Phần mềm gián điệp
Phần mềm độc hại
Bảo mật mạng máy tính
Khai thác lỗi bảo mật máy tính