В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году). Принято разделять вирусы:
· по поражаемым объектам (файловые вирусы, загрузочные вирусы, сценарные вирусы, макровирусы, вирусы, поражающие исходный код);
· файловые вирусы делят по механизму заражения: паразитирующие добавляют себя в исполняемый файл, перезаписывающие невосстановимо портят заражённый файл, «спутники» идут отдельным файлом.
· по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux);
· по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты);
· по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, сценарный язык и др.);
· по дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).