Особую опасность в настоящее время представляет проблема компьютерных вирусов, так как с учетом большого быстрорастущего числа разновидностей вирусов (в сентябре 2008 г. – около полумиллиона, а в сентябре 2012 г. – уже более трёх миллионов) надежной защиты против них разработать не удается. Все остальные пути несанкционированного доступа поддаются надежной блокировке при правильно разработанной и реализуемой на практике системе обеспечения безопасности.
Вирус – программа, которая может приписывать себя к другим программам, т.е. «заражать» их, а также выполнять различные нежелательные действия в компьютере. Основным свойством компьютерного вируса является возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять их в вычислительные сети и(или) файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Вирусы можно разделить на классы по следующим основным признакам:
– среда обитания (заражаемые объекты);
– тип операционной системы, платформы;
– особенности алгоритма работы;
– деструктивные возможности и вредоносная функциональность.
По среде обитания можно выделить следующие типы вирусов: файловые; загрузочные; макро-; сетевые.
Файловые вирусы различными способами внедряются в выполняемые файлы (первоначально – наиболее распространенный тип вирусов).
Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера Master Boot Record (MBR), либо меняют указатель на активный boot-сектор. При инфицировании диска вирус в большинстве случаев переносит оригинальный boot-сектор (или MBR) в какой-либо другой сектор диска (например, в первый свободный). Причиной первой эпидемии в 1987 году стал загрузочный вирус Brain, заразивший десятки тысяч компьютеров.
Для загрузочных вирусов в качестве длины принимается полная длина тела вируса, т.е. число занимаемых вирусом секторов, умноженное на число байт в секторе.
Макровирусы являются программами на макроязыках, встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т.д.). Наибольшее распространение получили макровирусы для Microsoft Word, Excel и остальных программ MS Office. Существуют также макровирусы, заражающие документы текстового редактора AmiPro, графического редактора CorelDRAW и системы автоматического проектирования AutoCAD.
Сетевые вирусы, их также называют сетевыми червями (worms), используют для своего распространения протоколы или команды компьютерных сетей и электронной почты. Основным принципом работы сетевого вируса является возможность самостоятельно (не заражая других файлов) передать свой код на удаленный сервер или рабочую станцию. Первый массовый сетевой вирус был создан Робертом Морриса в 1988 г. Червь Морриса поразил за которкое время тысячи компьютеров. В результате вирусной атаки большинство сетей вышло из строя на срок до пяти суток.
Заражаемая операционная система (ОС или платформа, объекты которой подвержены заражению) является вторым уровнем деления вирусов на классы. Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких ОС (DOS, OS/2, Windows, Unix, Linux и т.д.). Макровирусы заражают файлы форматов Word, Excel, MS Office. Загрузочные вирусы также ориентированы на конкретные форматы расположения системных данных в загрузочных секторах дисков.
По особенностям алгоритма работы вирусов выделяются следующие разновидности:
– стелс-вирусы (англ. stealth virus – вирус-невидимка);
– полиморфные вирусы (англ. polymorphic viruses. от греч. πολυ – много, μορφή – форма, вид);
– использование нестандартных приемов.
Использование стелс-алгоритмов позволяет вирусам полностью или частично скрыть себя в заражённой системе. Наиболее распространенным стелс-алгоритмом является перехват запросов OC на чтение/запись зараженных объектов (загрузочных секторов, элементов файловой системы, памяти и т. д.). Стелс-вирусы при этом временно лечат их, либо «подставляют» вместо себя незараженные участки информации. Часто вирусы ограничивают возможности их обнаружения путём изменения системных настроек. Например, запрещая запуск диспетчера задач. В случае макровирусов наиболее популярный способ – запрет вызовов меню просмотра макросов.
Полиморфичность, а также самошифрование, используются практически всеми типами вирусов для того, чтобы максимально усложнить процедуру детектирования вируса. Полиморфик-вирусы – это достаточно труднообнаружимые вирусы, не имеющие сигнатур, т.е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик-вируса не будут иметь ни одного совпадения.
Различные нестандартные приемы часто используются в вирусах для того, чтобы как можно глубже спрятать себя в ядре OC, защитить от обнаружения свою резидентную копию, затруднить лечение от вируса (например, поместив свою копию в Flash-BIOS) и т.д. Многие вирусы используют имеющиеся в программном обеспечении ошибки и уязвимости. Такие вирусы и аналогичные программы называют эксплойтами (англ. exploit – эксплуатировать).
Существует большое количество вирусов, сочетающих в себе различные признаки. Например, файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора дисков. Такие вирусы, как правило, имеют довольно сложный алгоритм работы, часто применяют оригинальные методы проникновения в систему, используют стелс- и полиморфик-технологии. Другой пример такого сочетания – сетевой макровирус, который не только заражает редактируемые документы, но и рассылает свои копии по электронной почте.
По деструктивным возможностям вирусы делятся на следующие типы:
– безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
– неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и прочими эффектами;
– опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера;
– очень опасные, в алгоритм работы которых заведомо заложены процедуры, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти;
– отдельно следует отметить блокировщики, которые парализуют работу программы во время её загрузки (чаще всего – операционной системы, реже – браузера, а иногда и других), перехватывая управление ею и требуя ввода специального кода для продолжения. Опасность заражения состоит в том, что в большинстве случаев пользователи, перечислившие по требованию блокировщиков-вымогателей средства, никакого «излечивающего» кода не получают, оказываясь жертвами преступного обмана (иногда и повторно).
Но даже если в алгоритме вируса не найдено ветвей, наносящих ущерб системе, этот вирус нельзя с полной уверенностью назвать безвредным, так как проникновение его в компьютер может вызвать непредсказуемые и порой катастрофические последствия.
К вредоносным и нежелательным, помимо вирусов, примыкают следующие программы: конструкторы вирусов, полиморфик-генераторы; «троянские кони», к которым относятся всевозможные кейлоггеры, «ворующие» пароли и прочую конфиденциальную информацию; сканеры, снифферы (прослушиватели сети); люки – утилиты скрытого администрирования удаленных компьютеров (backdoor); логические бомбы; руткиты (англ. rootkit – набор инструментов root'а, то есть суперпользователя, учётная запись которого в UNIX по умолчанию именуется root – корень), предназначенные для «заметания следов» вторжения злоумышленника, маскировки вредоносной программы, а также самого присутствия руткита в системе путём сокрытия файлов и процессов; программы взлома (crack) защитных функций лицензионного ПО и другие.