2.7.2. Защита информации от компьютерных вирусов

Понятие компьютерных вирусов

Под компьютерным ви­русом понимается специальная программа, способная самопроиз­вольно присоединяться к другим программам («заражать» их). При запуске последних вирус может выполнять различные нежелательные действия:

· портить файлы и каталоги (при файловой организа­ции программной среды);

· модифицировать и уничтожать данные;

· переполнять машинную память;

· создавать помехи в работе ЭВМ и т.п.

Для маскировки вируса действия по заражению других про­грамм и нанесению вреда могут выполняться не всегда, а при вы­полнении определенных условий. После того как вирус выполнит нужные ему действия, он пере­дает управление той зараженной программе, в которой он находится в момент ее запуска, и она работает так

же, как обычно. Внешне ра­бота зараженной программы выглядит так же, как и незараженной.

Многие разновидности вирусов устроены так, что при запуске зараженной программы вирус остается резидентно в оперативной памяти, вследствие чего до перезагрузки операционной системы он время от времени заражает программы и выполняет вредные дейст­вия на компьютере.

Чтобы предотвратить свое обнаружение, некоторые вирусы применяют довольно хитрые приемы маскировки. Многие рези­дентные вирусы предотвращают свое обнаружение тем, что пере­хватывают обращения операционной системы (и тем самым при­кладных программ) к зараженным файлам и областям диска и вы­дают сведения о них в исходном (неискаженном) виде. Разумеется, этот эффект наблюдается только на зараженном компьютере – на «чистом» компьютере изменения в файлах и загрузочных областях диска можно легко обнаружить.

Другой способ, применяемый вирусами для того, чтобы укрыть­ся от обнаружения, – модификация своего тела. Многие вирусы хранят большую часть своего тела в закодированном виде, чтобы с помощью программ-дизассемблеров нельзя было разобраться в ме­ханизме их работы. Самомодифицирующиеся вирусы используют этот прием и часто меняют параметры кодировки, а кроме того, изменяют и свою стартовую часть, которая служит для раскодировки остальных команд вируса. Таким образом, в теле подобного ви­руса не имеется ни одной постоянной цепочки байтов, по которой можно было бы идентифицировать вирус. Это, затрудняет нахожде­ние таких вирусов программами-детекторами.

Все действия вируса могут выполняться достаточно быстро и без выдачи каких-либо сообщений, поэтому пользователю очень трудно заметить, что в компьютере происходит что-то необычное.

Пока на компьютере заражено небольшое количество программ, наличие вируса может быть практически незаметно. Однако спустя некоторое время на компьютере начинает твориться что-то странное, например:

· некоторые программы перестают работать или начинают ра­ботать неправильно;

· на экран выводятся посторонние сообщения, символы и т.д.;

· работа на компьютере существенно замедляется;

· некоторые файлы оказываются испорченными и т.д.

К этому моменту, как правило, уже большинство программ являются зараженными вирусом, а некото­рые файлы и диски – испорченными. Более того, зараженные про­граммы с одного компьютера могли быть перенесены с помощью цифровых носителей или по локальной сети на другие компьютеры.

Некоторые виды вирусов ведут себя еще более коварно. Они вначале незаметно заражают большое число программ или дисков, а потом причиняют очень серьезные повреждения, например, фор­матируют весь жесткий диск на компьютере. А бывают вирусы, кото­рые стараются вести себя как можно более незаметно, но понемно­гу и постепенно портят данные на жестком диске компьютера.

Методы защиты от компьютерных вирусов

Каким бы ни был вирус, пользователю необходимо знать основ­ные методы защиты от компьютерных вирусов.

Для защиты от вирусов можно использовать:

· общие средства защиты информации – страховку от физиче­ской порчи дисков, неправильно работающих программ или ошибочных действий пользователя;

· профилактические меры,  позволяющие уменьшить вероят­ность заражения вирусом;

· специализированные программы для защиты от вирусов.

Общие средства зашиты информации необходимы не только для защиты от вирусов. Имеются две основные разновидности этих средств:

· средства резервного копирования информации – создание копий файлов и системных областей дисков;

· средства разграничения доступа – предотвращают несанкцио­нированное использование информации, в частности, защиту от изменений программ и данных вирусами, неправильно работающими программами, а также ошибочные действия пользователей.

Несмотря на то, что общие средства защиты информации очень важны, их одних для защиты от вирусов все же недостаточно. По­этому для защиты от вирусов необходимо применять специализи­рованные программы.

В настоящее время имеется большое количество антивирусных средств. Однако все они не обладают свойствами универсальности: каждое рассчитано на конкретные вирусы либо перекрывает неко­торые каналы заражения ПК или распространения вирусов. В связи с этим перспективной областью исследований можно считать при­менение методов искусственного интеллекта к проблеме создания антивирусных средств.

Антивирусным средством называют программный продукт, вы­полняющий одну или несколько из следующих функций:

1) защиту файловой структуры от разрушения;

2) обнаружение вирусов;

3) нейтрализацию вирусов.

Антивирусные программы можно разделить на несколько видов:

· детекторы;

· доктора (фаги);

· ревизоры;

· доктора-ревизоры;

· фильтры;

· вакцины (иммунизаторы).

Детектором называется программа, осуществляющая поиск вирусов, как на внешних носителях информации, так и в оперативном запоминающем устройстве (ОЗУ). Резуль­татом работы детектора является список инфицированных файлов и (или) областей, возможно, с указанием конкретных вирусов, их за­разивших.

Детекторы делятся на универсальные и специализированные.

Универсальные детекторы проверяют целостность файлов путем подсчета их контрольной суммы и ее сравнения с эталоном. Эталон либо указывается в документации на программный продукт, либо может быть определен в самом начале его эксплуатации.

Специализированные детекторы настроены на конкретные виру­сы, один или несколько. Если детектор способен обнаруживать не­сколько различных вирусов, то его называют полидетектором. Ра­бота специализированного детектора основывается на поиске стро­ки кода, принадлежащей тому или иному вирусу, возможно заданной регулярным выражением. При ее обнаружении в каком-либо файле на экран выводится соответствующее сообщение.

Детектор не способен обнаружить все возможные вирусы. Сле­дует особо подчеркнуть, что программы-детекторы могут выявлять только те вирусы, которые им известны. Некоторые программы-детекторы могут, настраиваться на новые типы вирусов, для этого им лишь необходимо указать комбинации байтов, присущие этим вирусам. Тем не менее, невозможно разработать такую программу, которая могла бы

обнаруживать любой заранее неизвестный вирус. Поэтому очевидно, что из того, что программа не опознается детекторами как зараженная, не следует, что она здорова – в ней может находиться какой-нибудь новый вирус или даже слегка мо­дифицированная версия старого вируса, неизвестные детекторам.

Многие программы-детекторы не умеют обнаруживать зараже­ние «невидимыми» вирусами, если такой вирус активен в памяти компьютера. Дело в том, что для чтения диска они используют функции операционной системы, которые перехватываются виру­сом. Ряд детекторов пытается выявить вирус путем просмотра оперативной памяти, но против некоторых «хитрых» вирусов это не помогает. Так что надежный диагноз программы-детекторы дают толь­ко при загрузке операционной системы (ОС) с «чистой», защищенной от записи дискеты, при этом копия программы-детектора также должна быть запущена с загрузочной дискеты.

Некоторые детекторы умеют ловить «невидимые» вирусы, даже когда они активны. Для этого они читают диск, не используя ко­манды ОС. Правда, этот метод работает не на всех дисководах.

Большинство программ-детекторов имеют функцию «доктора» или фага, т.е. они пытаются вернуть зараженные файлы или облас­ти диска в их исходное состояние. Дезинфектором (доктором, фа­гом) называется программа, осуществляющая удаление вируса как с восстановлением, так и без восстановления среды обитания.

Ряд вирусов искажает среду обитания таким образом, что ее ис­ходное состояние не может быть восстановлено. Те файлы, которые не удалось восстановить, как правило, делаются неработоспособ­ными и удаляются программой-фагом.

Наиболее известными полидетекторами-фагами являются про­граммные пакеты Antiviral Toolkit Pro Евгения Касперского и DrWeb фирмы «ДиалогНаука». Большинство программ-докторов умеют «лечить» только от некоторого фиксированного набора виру­сов, поэтому они быстро устаревают. Но некоторые программы мо­гут обучаться не только способам обнаружения, но и способам ле­чения новых вирусов. К таким программам относится, например, AVSP фирмы «ДиалогНаука».

Программы-ревизоры имеют две стадии работы. Сначала они за­поминают сведения о состоянии программ и системных областей дисков (загрузочного сектора и сектора с таблицей разбиения жесткого диска). Предполагается, что в этот момент программы и системные области дисков не заражены. После этого с помощью программы-ревизора можно в любой момент сравнить состояние программ и системных областей дисков с исходным. О выявленных несоответ­ствиях сообщается пользователю.

Чтобы проверка состояния программ и дисков проходила при каждой загрузке операционной системы, необходимо включить ко­манду запуска программы-ревизора в командный файл AUTOEXEC.ВАТ. Это позволяет обнаружить заражение компьютерным вирусом, когда он еще не успел нанести большого вреда. Более того, та же программа-ревизор сможет найти поврежденные вирусом файлы.

Многие программы-ревизоры являются «интеллекту­альными» – они могут отличать изменения в файлах, вызванные, например, переходом к новой версии программы, от изменений, вносимых вирусом, и не поднимают ложной тревоги. Дело в том, что вирусы обычно изменяют файлы весьма специфическим образом и производят одинаковые изменения в разных программных файлах. Понятно, что в нормальной ситуации такие изменения практически никогда не встречаются, поэтому программа-ревизор, зафиксировав факт таких изменений, может с уверенностью сооб­щить, что они вызваны именно вирусом.

Следует заметить, что многие программы-ревизоры не умеют обнаруживать заражение «невидимыми» вирусами, если такой вирус активен в памяти компьютера. Но некоторые программы-ревизоры, например ADinf фирмы «ДиалогНаука», все же умеют делать и это, не используя вызовы операционной системы для чтения диска (правда, они работают не на всех дисководах). Другие программы часто используют различные полумеры: пытаются обнаружить ви­рус в оперативной памяти, требуют вызова из первой строки файла AUTOEXEC.BAT, надеясь работать на «чистом» компьютере, и т.д. Увы, против некоторых «хитрых» вирусов все это бесполезно.

Для проверки того, не изменился ли файл, некоторые програм­мы-ревизоры проверяют длину файла. Но одна такая проверка не­достаточна – некоторые вирусы не изменяют длину зараженных файлов. Более надежная проверка – прочесть весь файл и вычис­лить его контрольную сумму. Изменить файл так, чтобы его кон­трольная сумма осталась прежней, практически невозможно.

В последнее время появились очень полезные гибриды ревизо­ров и докторов, т.е. доктора-ревизоры. Это такие программы, кото­рые не только обнаруживают изменения в файлах и системных об­ластях дисков, но и могут в случае изменений автоматически вер­нуть их в исходное состояние. Такие программы могут быть гораздо более универсальными, чем программы-доктора, поскольку при ле­чении они используют заранее сохраненную информацию о состоя­нии файлов и областей дисков. Это позволяет им вылечивать фай­лы даже от тех вирусов, которые не были созданы на момент напи­сания программы.

Но даже такие программы, как доктора-ревизоры, могут лечить не от всех вирусов, а только от тех, которые используют «стандарт­ные», известные на момент написания программы механизмы за­ражения файлов.

Вирус-фильтром (монитором, сторожем) называется резидентная программа, обеспечивающая контроль выполнения характерных для вирусов действий и требующая от пользователя подтверждения на производство действий. Контроль осуществляется путем подмены обработчиков соответствующих прерываний. В качестве контроли­руемых действий могут выступать:

· обновление программных файлов;

· прямая запись на диск (по физическому адресу);

· форматирование диска;

· резидентное размещение программы в ОЗУ.

Программы-фильтры располагаются резидентно в оперативной памяти компьютера, перехватывают обращения к операционной системе, которые используются вирусами для размножения и нане­сения вреда, и сообщают о них пользователю. Пользователь может разрешить или запретить выполнение соответствующей операции.

Некоторые программы-мониторы не отслеживают подозритель­ные действия, а проверяют вызываемые на выполнение программы на наличие вирусов. Это вызывает замедление работы компьютера. Однако преимущества использования программ-фильтров весьма значительны – они позволяют обнаружить многие вирусы на самой ранней стадии, когда вирус еще не успел размножиться и что-либо испортить. Тем самым можно свести убытки от вируса к минимуму.

Иммунизатором (вакциной) называют программу, предотвра­щающую заражение среды обитания или памяти конкретными ви­русами. Иммунизаторы решают проблему нейтрализации вируса не посредством его уничтожения, а путем блокирования его способно­сти к размножению.

Программы-вакцины, или иммунизаторы, модифицируют про­граммы и диски таким образом, что это не отражается на работе про­грамм, но тот вирус, от которого

производится вакцинация, считает эти программы или диски уже зараженными. Эти программы малоэф­фективны, поэтому в настоящее время практически не используются.

Ни один тип антивирусных программ по отдельности не дает пол­ной защиты от вирусов. Лучшей стратегией защиты от вирусов яв­ляется многоуровневая, «эшелонированная» оборона. Опишем струк­туру этой обороны. Это неформальное описание позволит лучше понять методику применения антивирусных средств.

Средствам разведки в «обороне» от вирусов соответствуют про­граммы-детекторы, позволяющие проверять вновь полученное про­граммное обеспечение на наличие вирусов.

На переднем крае обороны находятся программы-фильтры. Эти программы могут первыми сообщить о работе вируса и предотвра­тить заражение программ и дисков.

Второй эшелон обороны составляют программы-ревизоры, про­граммы-доктора и доктора-ревизоры.

Самый глубокий эшелон обороны – это средства разграничения доступа. Они не позволяют вирусам и неверно работающим программам, даже если они проникли в компьютер, испортить важные данные.

В «стратегическом резерве» находятся архивные копии информа­ции. Это позволяет восстановить информацию при ее повреждении.

При заражении компьютера вирусом (или при подозрении на это) важно соблюдать четыре правила:

1) прежде всего не надо торопиться и принимать опрометчивых решений. Непродуманные действия могут привести не только к по­тере части файлов, но к повторному заражению компьютера;

2) надо немедленно выключить компьютер, чтобы вирус не про­должал своих разрушительных действий;

3) все действия по обнаружению вида заражения и лечению ком­пьютера следует выполнять при загрузке компьютера с защищенного от записи диска с ОС (обязательное правило).