Понятие компьютерных вирусов
Под компьютерным вирусом понимается специальная программа, способная самопроизвольно присоединяться к другим программам («заражать» их). При запуске последних вирус может выполнять различные нежелательные действия:
· портить файлы и каталоги (при файловой организации программной среды);
· модифицировать и уничтожать данные;
· переполнять машинную память;
· создавать помехи в работе ЭВМ и т.п.
Для маскировки вируса действия по заражению других программ и нанесению вреда могут выполняться не всегда, а при выполнении определенных условий. После того как вирус выполнит нужные ему действия, он передает управление той зараженной программе, в которой он находится в момент ее запуска, и она работает так
же, как обычно. Внешне работа зараженной программы выглядит так же, как и незараженной.
Многие разновидности вирусов устроены так, что при запуске зараженной программы вирус остается резидентно в оперативной памяти, вследствие чего до перезагрузки операционной системы он время от времени заражает программы и выполняет вредные действия на компьютере.
Чтобы предотвратить свое обнаружение, некоторые вирусы применяют довольно хитрые приемы маскировки. Многие резидентные вирусы предотвращают свое обнаружение тем, что перехватывают обращения операционной системы (и тем самым прикладных программ) к зараженным файлам и областям диска и выдают сведения о них в исходном (неискаженном) виде. Разумеется, этот эффект наблюдается только на зараженном компьютере – на «чистом» компьютере изменения в файлах и загрузочных областях диска можно легко обнаружить.
Другой способ, применяемый вирусами для того, чтобы укрыться от обнаружения, – модификация своего тела. Многие вирусы хранят большую часть своего тела в закодированном виде, чтобы с помощью программ-дизассемблеров нельзя было разобраться в механизме их работы. Самомодифицирующиеся вирусы используют этот прием и часто меняют параметры кодировки, а кроме того, изменяют и свою стартовую часть, которая служит для раскодировки остальных команд вируса. Таким образом, в теле подобного вируса не имеется ни одной постоянной цепочки байтов, по которой можно было бы идентифицировать вирус. Это, затрудняет нахождение таких вирусов программами-детекторами.
Все действия вируса могут выполняться достаточно быстро и без выдачи каких-либо сообщений, поэтому пользователю очень трудно заметить, что в компьютере происходит что-то необычное.
Пока на компьютере заражено небольшое количество программ, наличие вируса может быть практически незаметно. Однако спустя некоторое время на компьютере начинает твориться что-то странное, например:
· некоторые программы перестают работать или начинают работать неправильно;
· на экран выводятся посторонние сообщения, символы и т.д.;
· работа на компьютере существенно замедляется;
· некоторые файлы оказываются испорченными и т.д.
К этому моменту, как правило, уже большинство программ являются зараженными вирусом, а некоторые файлы и диски – испорченными. Более того, зараженные программы с одного компьютера могли быть перенесены с помощью цифровых носителей или по локальной сети на другие компьютеры.
Некоторые виды вирусов ведут себя еще более коварно. Они вначале незаметно заражают большое число программ или дисков, а потом причиняют очень серьезные повреждения, например, форматируют весь жесткий диск на компьютере. А бывают вирусы, которые стараются вести себя как можно более незаметно, но понемногу и постепенно портят данные на жестком диске компьютера.
Методы защиты от компьютерных вирусов
Каким бы ни был вирус, пользователю необходимо знать основные методы защиты от компьютерных вирусов.
Для защиты от вирусов можно использовать:
· общие средства защиты информации – страховку от физической порчи дисков, неправильно работающих программ или ошибочных действий пользователя;
· профилактические меры, позволяющие уменьшить вероятность заражения вирусом;
· специализированные программы для защиты от вирусов.
Общие средства зашиты информации необходимы не только для защиты от вирусов. Имеются две основные разновидности этих средств:
· средства резервного копирования информации – создание копий файлов и системных областей дисков;
· средства разграничения доступа – предотвращают несанкционированное использование информации, в частности, защиту от изменений программ и данных вирусами, неправильно работающими программами, а также ошибочные действия пользователей.
Несмотря на то, что общие средства защиты информации очень важны, их одних для защиты от вирусов все же недостаточно. Поэтому для защиты от вирусов необходимо применять специализированные программы.
В настоящее время имеется большое количество антивирусных средств. Однако все они не обладают свойствами универсальности: каждое рассчитано на конкретные вирусы либо перекрывает некоторые каналы заражения ПК или распространения вирусов. В связи с этим перспективной областью исследований можно считать применение методов искусственного интеллекта к проблеме создания антивирусных средств.
Антивирусным средством называют программный продукт, выполняющий одну или несколько из следующих функций:
1) защиту файловой структуры от разрушения;
2) обнаружение вирусов;
3) нейтрализацию вирусов.
Антивирусные программы можно разделить на несколько видов:
· детекторы;
· доктора (фаги);
· ревизоры;
· доктора-ревизоры;
· фильтры;
· вакцины (иммунизаторы).
Детектором называется программа, осуществляющая поиск вирусов, как на внешних носителях информации, так и в оперативном запоминающем устройстве (ОЗУ). Результатом работы детектора является список инфицированных файлов и (или) областей, возможно, с указанием конкретных вирусов, их заразивших.
Детекторы делятся на универсальные и специализированные.
Универсальные детекторы проверяют целостность файлов путем подсчета их контрольной суммы и ее сравнения с эталоном. Эталон либо указывается в документации на программный продукт, либо может быть определен в самом начале его эксплуатации.
Специализированные детекторы настроены на конкретные вирусы, один или несколько. Если детектор способен обнаруживать несколько различных вирусов, то его называют полидетектором. Работа специализированного детектора основывается на поиске строки кода, принадлежащей тому или иному вирусу, возможно заданной регулярным выражением. При ее обнаружении в каком-либо файле на экран выводится соответствующее сообщение.
Детектор не способен обнаружить все возможные вирусы. Следует особо подчеркнуть, что программы-детекторы могут выявлять только те вирусы, которые им известны. Некоторые программы-детекторы могут, настраиваться на новые типы вирусов, для этого им лишь необходимо указать комбинации байтов, присущие этим вирусам. Тем не менее, невозможно разработать такую программу, которая могла бы
обнаруживать любой заранее неизвестный вирус. Поэтому очевидно, что из того, что программа не опознается детекторами как зараженная, не следует, что она здорова – в ней может находиться какой-нибудь новый вирус или даже слегка модифицированная версия старого вируса, неизвестные детекторам.
Многие программы-детекторы не умеют обнаруживать заражение «невидимыми» вирусами, если такой вирус активен в памяти компьютера. Дело в том, что для чтения диска они используют функции операционной системы, которые перехватываются вирусом. Ряд детекторов пытается выявить вирус путем просмотра оперативной памяти, но против некоторых «хитрых» вирусов это не помогает. Так что надежный диагноз программы-детекторы дают только при загрузке операционной системы (ОС) с «чистой», защищенной от записи дискеты, при этом копия программы-детектора также должна быть запущена с загрузочной дискеты.
Некоторые детекторы умеют ловить «невидимые» вирусы, даже когда они активны. Для этого они читают диск, не используя команды ОС. Правда, этот метод работает не на всех дисководах.
Большинство программ-детекторов имеют функцию «доктора» или фага, т.е. они пытаются вернуть зараженные файлы или области диска в их исходное состояние. Дезинфектором (доктором, фагом) называется программа, осуществляющая удаление вируса как с восстановлением, так и без восстановления среды обитания.
Ряд вирусов искажает среду обитания таким образом, что ее исходное состояние не может быть восстановлено. Те файлы, которые не удалось восстановить, как правило, делаются неработоспособными и удаляются программой-фагом.
Наиболее известными полидетекторами-фагами являются программные пакеты Antiviral Toolkit Pro Евгения Касперского и DrWeb фирмы «ДиалогНаука». Большинство программ-докторов умеют «лечить» только от некоторого фиксированного набора вирусов, поэтому они быстро устаревают. Но некоторые программы могут обучаться не только способам обнаружения, но и способам лечения новых вирусов. К таким программам относится, например, AVSP фирмы «ДиалогНаука».
Программы-ревизоры имеют две стадии работы. Сначала они запоминают сведения о состоянии программ и системных областей дисков (загрузочного сектора и сектора с таблицей разбиения жесткого диска). Предполагается, что в этот момент программы и системные области дисков не заражены. После этого с помощью программы-ревизора можно в любой момент сравнить состояние программ и системных областей дисков с исходным. О выявленных несоответствиях сообщается пользователю.
Чтобы проверка состояния программ и дисков проходила при каждой загрузке операционной системы, необходимо включить команду запуска программы-ревизора в командный файл AUTOEXEC.ВАТ. Это позволяет обнаружить заражение компьютерным вирусом, когда он еще не успел нанести большого вреда. Более того, та же программа-ревизор сможет найти поврежденные вирусом файлы.
Многие программы-ревизоры являются «интеллектуальными» – они могут отличать изменения в файлах, вызванные, например, переходом к новой версии программы, от изменений, вносимых вирусом, и не поднимают ложной тревоги. Дело в том, что вирусы обычно изменяют файлы весьма специфическим образом и производят одинаковые изменения в разных программных файлах. Понятно, что в нормальной ситуации такие изменения практически никогда не встречаются, поэтому программа-ревизор, зафиксировав факт таких изменений, может с уверенностью сообщить, что они вызваны именно вирусом.
Следует заметить, что многие программы-ревизоры не умеют обнаруживать заражение «невидимыми» вирусами, если такой вирус активен в памяти компьютера. Но некоторые программы-ревизоры, например ADinf фирмы «ДиалогНаука», все же умеют делать и это, не используя вызовы операционной системы для чтения диска (правда, они работают не на всех дисководах). Другие программы часто используют различные полумеры: пытаются обнаружить вирус в оперативной памяти, требуют вызова из первой строки файла AUTOEXEC.BAT, надеясь работать на «чистом» компьютере, и т.д. Увы, против некоторых «хитрых» вирусов все это бесполезно.
Для проверки того, не изменился ли файл, некоторые программы-ревизоры проверяют длину файла. Но одна такая проверка недостаточна – некоторые вирусы не изменяют длину зараженных файлов. Более надежная проверка – прочесть весь файл и вычислить его контрольную сумму. Изменить файл так, чтобы его контрольная сумма осталась прежней, практически невозможно.
В последнее время появились очень полезные гибриды ревизоров и докторов, т.е. доктора-ревизоры. Это такие программы, которые не только обнаруживают изменения в файлах и системных областях дисков, но и могут в случае изменений автоматически вернуть их в исходное состояние. Такие программы могут быть гораздо более универсальными, чем программы-доктора, поскольку при лечении они используют заранее сохраненную информацию о состоянии файлов и областей дисков. Это позволяет им вылечивать файлы даже от тех вирусов, которые не были созданы на момент написания программы.
Но даже такие программы, как доктора-ревизоры, могут лечить не от всех вирусов, а только от тех, которые используют «стандартные», известные на момент написания программы механизмы заражения файлов.
Вирус-фильтром (монитором, сторожем) называется резидентная программа, обеспечивающая контроль выполнения характерных для вирусов действий и требующая от пользователя подтверждения на производство действий. Контроль осуществляется путем подмены обработчиков соответствующих прерываний. В качестве контролируемых действий могут выступать:
· обновление программных файлов;
· прямая запись на диск (по физическому адресу);
· форматирование диска;
· резидентное размещение программы в ОЗУ.
Программы-фильтры располагаются резидентно в оперативной памяти компьютера, перехватывают обращения к операционной системе, которые используются вирусами для размножения и нанесения вреда, и сообщают о них пользователю. Пользователь может разрешить или запретить выполнение соответствующей операции.
Некоторые программы-мониторы не отслеживают подозрительные действия, а проверяют вызываемые на выполнение программы на наличие вирусов. Это вызывает замедление работы компьютера. Однако преимущества использования программ-фильтров весьма значительны – они позволяют обнаружить многие вирусы на самой ранней стадии, когда вирус еще не успел размножиться и что-либо испортить. Тем самым можно свести убытки от вируса к минимуму.
Иммунизатором (вакциной) называют программу, предотвращающую заражение среды обитания или памяти конкретными вирусами. Иммунизаторы решают проблему нейтрализации вируса не посредством его уничтожения, а путем блокирования его способности к размножению.
Программы-вакцины, или иммунизаторы, модифицируют программы и диски таким образом, что это не отражается на работе программ, но тот вирус, от которого
производится вакцинация, считает эти программы или диски уже зараженными. Эти программы малоэффективны, поэтому в настоящее время практически не используются.
Ни один тип антивирусных программ по отдельности не дает полной защиты от вирусов. Лучшей стратегией защиты от вирусов является многоуровневая, «эшелонированная» оборона. Опишем структуру этой обороны. Это неформальное описание позволит лучше понять методику применения антивирусных средств.
Средствам разведки в «обороне» от вирусов соответствуют программы-детекторы, позволяющие проверять вновь полученное программное обеспечение на наличие вирусов.
На переднем крае обороны находятся программы-фильтры. Эти программы могут первыми сообщить о работе вируса и предотвратить заражение программ и дисков.
Второй эшелон обороны составляют программы-ревизоры, программы-доктора и доктора-ревизоры.
Самый глубокий эшелон обороны – это средства разграничения доступа. Они не позволяют вирусам и неверно работающим программам, даже если они проникли в компьютер, испортить важные данные.
В «стратегическом резерве» находятся архивные копии информации. Это позволяет восстановить информацию при ее повреждении.
При заражении компьютера вирусом (или при подозрении на это) важно соблюдать четыре правила:
1) прежде всего не надо торопиться и принимать опрометчивых решений. Непродуманные действия могут привести не только к потере части файлов, но к повторному заражению компьютера;
2) надо немедленно выключить компьютер, чтобы вирус не продолжал своих разрушительных действий;
3) все действия по обнаружению вида заражения и лечению компьютера следует выполнять при загрузке компьютера с защищенного от записи диска с ОС (обязательное правило).