Резидентные вирусы. Самошифрование и полиморфичность Вирусы под операционную систему Windows

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

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

Методы обеспечения информационной безопасности

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

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

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



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

Существует несколько основополагающих методов поиска вирусов, которые применяются антивирусными программами. Наиболее традиционным методом поиска вирусов является сканирование.

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

1. программы-детекторы

2. программы-доктора или фаги

3. программы-ревизоры (инспектора)

4. программы-фильтры (мониторы)

5. программы-вакцины или иммунизаторы

Программы-детекторы

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

4.2 Программы-доктора

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

Программы-ревизоры (инспектора)

Программы-ревизоры (инспектора) относятся к самым надежным средствам защиты от вирусов.

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

Программы - фильтры (мониторы)

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

1. попытки коррекции файлов с расширениями COM, EXE

2. изменение атрибутов файла

4. запись в загрузочные сектора диска

Вакцины или иммунизаторы

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

Сканер

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

Способы организации компьютерной безопасности

Мониторинг сетей

Мониторинг сетей Средства для мониторинга сети и обнаружения в её работе «узких мест» можно разделить на два основных класса: - стратегические; - тактические. Назначение стратегических средств состоит в контроле за широким спектром параметров функционирования всей сети и решении проблем конфигурирования ЛВС. Назначение тактических средств – мониторинг и устранение неисправностей сетевых устройств и сетевого кабеля. К стратегическим средствам относятся: - системы управления сетью - встроенные системы диагностики - распределённые системы мониторинга - средства диагностики операционных систем, функционирующих на больших машинах и серверах. Наиболее полный контроль за работой, осуществляют системы управления сетью, разработанные такими фирмами, как DEC, Hewlett – Packard, IBM и AT&T. Эти системы обычно базируются на отдельном компьютере и включают системы контроля рабочих станций, кабельной системой, соединительными и другими устройствами, базой данных, содержащей контрольные параметры для сетей различных стандартов, а также разнообразную техническую документацию. Одной из лучших разработок для управления сетью, позволяющей администратору сети получить доступ ко всем её элементам вплоть до рабочей станции, является пакет LANDesk Manager фирмы Intel, обеспечивающий с помощью различных средств мониторинг прикладных программ, инвентаризацию аппаратных и программных средств и защиту от вирусов. Этот пакет обеспечивает в реальном времени разнообразной информацией о прикладных программах и серверах, данные о работе в сети пользователей. Встроенные системы диагностики стали обычной компонентой таких сетевых устройств, как мосты, репиторы и модемы. Примерами подобных систем могут служить пакеты Open – View Bridge Manager фирмы Hewlett – Packard и Remote Bridge Management Software фирмы DEC. К сожалению большая их часть ориентирована на оборудование какого – то одного производителя и практически несовместима с оборудованием других фирм. Распределённые системы мониторинга представляют собой специальные устройства, устанавливаемые на сегменты сети и предназначенные для получения комплексной информации о трафике, а также нарушениях в работе сети. Эти устройства, обычно подключаемые к рабочей станции администратора, в основном используются в много сегментных сетях. К тактическим средствам относят различные виды тестирующих устройств (тестеры и сканеры сетевого кабеля), а также устройства для комплексного анализа работы сети – анализаторы протоколов. Тестирующие устройства помогают администратору обнаружить неисправности сетевого кабеля и разъёмов, а анализаторы протоколов – получать информацию об обмене данными в сети. Кроме того, к этой категории средств относят специальное ПО, позволяющее в режиме реального времени получать подробные отчёты о состоянии работы сети.

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

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

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

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

Одним из разновидностей резидентных вирусов являются DOS-вирусы. Создание резидентных моделей происходит двумя легальными путями: драйверами, которые указываются в файле CONFIG.SYS, и используя функцию KEEP. Большинство современных файловых вирусов с целью маскировки своей активности используют совершенно другой способ –специальную обработку системных областей, которые управляют процессом распределением памяти. С этой целью они выделяют свободный участок памяти и тут же помечают его как занятый (для операционной системы). После этого всего благополучно переписывают туда свою копию. И не важно, что находилось в этом месте. Файлы перестают читаться, а восстановить при помощи специальных программ вовсе невозможно.

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

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

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

Третий способ - на протяжении всей активности остаться резидентно или как драйвер отдельный Windows NT.

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

Резидентные вирусы: что они собой представляют?

Итак, с чем же пользователю предстоит иметь дело? Для упрощенного объяснения структуры и принципов работы данных вирусов необходимо остановится на том, что вообще собой представляет резидентная программа. Считается, что к данному типу программ относятся приложения, которые постоянно работают в режиме мониторинга, не проявляя своих действий. К такому типу программ можно отнести штатные антивирусы. Что же касается угроз, которые могут проникнуть в компьютерные системы, то они не только могут постоянно висеть в памяти персонального компьютера, но и создают свои копии. Таким образом, получается, что копии вирусов постоянно следят за системой и перемещаются по ней. Это существенно затрудняет поиск таких объектов. Некоторые угрозы даже способны менять свою структуру. Детектирование таких угроз на основе общепринятых методов становится практически невозможным. Немного позже мы попробуем рассмотреть, как можно избавиться от вирусов такого типа. Пока остановимся на основных разновидностях резидентный угроз.

DOS угрозы

Изначально, когда операционных систем UNIX и Windows еще не существовало, а общение пользователя с персональным компьютером происходило на уровне команд, существовала операционная система DOS. На пике популярности эта операционная система продержалась достаточно долго. Именно для таких систем начали создаваться резидентные и нерезидентные вирусы. Их действие сначала было направлено на нарушение работоспособности системы и удаление пользовательских папок и файлов. Принцип действия данных угроз широко применяется до сих пор. Он состоит в том, что вредоносные объекты перехватывают обращения к файлам, а затем заражают вызываемые объекты. Большинство угроз, известных на сегодняшний день, работают именно по такому принципу. Проникают в систему вирусы либо посредством создания резидентного модуля, выполненного в виде драйвера, который указывается в файле системной конфигурации Config.sys, либо при использовании специальной функции KEEP для отслеживания прерываний. В том случае, когда резидентные вирусы данного типа используют выделение под себя областей системной памяти, дела обстоят намного хуже. Получается примерно следующая ситуация: вирус сначала «отрезает» кусок свободной памяти, а тем помечает данную область как занятую. После этого он сохраняет в ней свою копию. Печальнее всего то, что копии могут находится в видеопамяти, областях, зарезервированных под буфер обмена и в таблицах векторов прерываний, а также в рабочих областях DOS. Это делает копии вирусных угроз невероятно живучими. В отличие от нерезидентных вирусов, которые работают только тогда, когда запущена какая-то программа или операционная система, данный тип угроз способен активироваться всякий раз после перезагрузки компьютера. Кроме того, вирус при обращении к зараженному объекту способен создавать собственную копию и в оперативной памяти. В результате пользователь сталкивается с моментальным зависанием компьютера. Должно быть уже ясно, что лечение вирусов данного типа осуществляется при помощи специальных сканеров. Желательно использовать для это цели не стационарные антивирусные программы, а портативные, которые способны загружаться с USB-носителей или оптических дисков. Об этом речь пойдет несколько позднее.

Загрузочные угрозы

Загрузочные угрозы могут проникнуть в систему по схожему методу. Ведут они себя утонченно: сначала съедают кусок системной памяти, а затем прописывают туда собственный код в виде копии, а после этого начинают требовать перезагрузку. Это может привести к негативным последствиям, так как после перезагрузки вирус восстанавливает уменьшенный объем памяти до исходного размера, а его копия оказывается вне системной памяти. Помимо отслеживания прерываний такие вирусы также могут прописывать собственные коды в загрузочном секторе – запись MBR. Перехваты DOSиBIOS используются несколько реже. Сами вирусы могут загружаться однократно и при этом проверяют наличие собственной копии.

Вирусы под операционную систему Windows

С появлением операционных систем типа Windows разработки вирусов, к сожалению, вышли на качественно новый уровень. Сегодня именно операционная система Windows любой версии считается наиболее уязвимой несмотря на усилия, которые прилагают специалисты компании Microsoft в области разработки модулей безопасности. Те вирусы, которые рассчитаны на операционную систему Windows, работают по принципам, схожим с DOS угрозами. Однако способов проникновения угроз на компьютер в данном случае намного больше. Из наиболее распространенных способов можно выделить три основных, по которым вирус в системе может прописать собственный код: это регистрация вируса как приложения, работающего в данный момент, выделение блока памяти и запись в него собственной копии, работа в системе под видом драйвера VxD, маскировка под драйвер WindowsNT. Зараженные области системной памяти или файлы можно попробовать вылечить стандартными методами, которые используются в различных антивирусных сканерах. Это такие методы, как детектирование по маске вируса, сравнение с базами сигнатур и т.д. Однако в том случае, если используются простые бесплатные программы, они могут и не определить вирус, а иногда даже выдают ложное срабатывание. Лучше использовать портативные антивирусные утилиты вроде Dr. Web или продукты «Лаборатории Касперского». Сегодня можно найти достаточно количество утилит данного типа.

Макро-вирусы

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

Вирус на базе технологии «стелс»

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

Файловые разновидности

Все вирусы вообще можно назвать файловыми, так как они в той или иной степени воздействуют на файлы и затрагивают файловую системы, заражая ее собственным кодом или шифруя, делая недоступной по причине удаления или порчи. В качестве наиболее простых примеров можно привести современные вирусы-шифровальщики, а также известный вирус ILOVEYOU. С ними без использования специальных расшифровочных ключей лечение данного типа вирусов выполнить будет не просто сложно, а зачастую вообще невозможно. Здесь бессильны даже ведущие разработчики антивирусного программного обеспечения. В отличие от современных систем шифрования AES256 в данном типе вирусов используется технология AES1024. Как вы сами можете догадаться, на расшифровку зараженных файлов может уйти не один десяток лет, в зависимости от числа возможных вариантов ключа.

Полиморфные угрозы

Еще одной разновидностью угроз являются полиморфные угрозы. В чем же состоит проявление полиморфизма? Дело в том, что вирусы могут постоянно изменять собственный код. Делается это на основе так называемого плавающего ключа. Иначе говоря, угрозу невозможно определить по маске, так как изменяется не только ее структура, которая лежит в основе кода, но и сам ключ к расшифровке. Чтобы бороться с такими угрозами, необходимо использовать специальные полиморфные дешифраторы. Практика показывает, что данные объекты способны расшифровать только самые простые вирусы. Более сложные алгоритмы их воздействую в большинстве случаев просто не поддаются. Стоит отдельно отметить, что изменение кода таких вирусов сопутствует созданию копий с уменьшенной длиной, которая весьма существенно отличается от оригинала.

Способы борьбы с резидентными угрозами

Переходим к вопросу, который касается способов борьбы с резидентными угрозами, а также защиты ПК от угроз любого уровня сложности. Самым простым способом защиты персонального компьютера является установка штатного антивирусного пакета. Лучше использовать для этой цели не бесплатные программы, а хотя бы условно-бесплатные версии от таких разработчиков какDr.Web, Kaspersky, ESETNOD 32 или программы вроде SmartSecurity. Впрочем, даже в этом случае вы не будете застрахованы от проникновения угрозы на компьютер. Если подобная ситуация произошла, для начала рекомендуется применить портативные сканеры, а еще лучше использовать дисковые утилиты RescueDisk. При помощи таких инструментов можно выполнить загрузку интерфейса программы и запустить сканирование еще до старта основной операционной системы. Не рекомендуется использовать программные пакеты типа SpyHunter. Непосвященному пользователю потом будет проблематично избавляться от самого пакета и его сопутствующих компонентов. Также не стоит сразу пытаться удалить зараженные файлы и форматировать жесткий диск. Лечение лучше доверить специальным антивирусным программам.

Итоги

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

В данной части бюллетеня использована информация Лаборатории Касперского (http://www.avp.ru) - самой известной и популярной российской компании, выпускающей антивирусное программное обеспечение.

Резидентные вирусы

Под термином "резидентность" (DOS"овский термин TSR - Terminate and Stay Resident) понимается способность вирусов оставлять свои копии в системной памяти, перехватывать некоторые события (например, обращения к файлам или дискам) и вызывать при этом процедуры заражения обнаруженных объектов (файлов и секторов). Таким образом, резидентные вирусы активны не только в момент работы зараженной программы, но и после того, как программа закончила свою работу. Резидентные копии таких вирусов остаются жизнеспособными вплоть до очередной перезагрузки, даже если на диске уничтожены все зараженные файлы. Часто от таких вирусов невозможно избавиться восстановлением всех копий файлов с дистрибутивных дисков или backup-копий. Резидентная копия вируса остается активной и заражает вновь создаваемые файлы. То же верно и для загрузочных вирусов - форматирование диска при наличии в памяти резидентного вируса не всегда вылечивает диск, поскольку многие резидентные вирусы заражают диск повторно, после того как он отформатирован.

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

DOS-вирусы

DOS предусматривает два легальных способа создания резидентных модулей: драйверами, указываемыми в CONFIG.SYS, и при помощи функции KEEP (INT 21h, AH=31h или INT 27h). Многие файловые вирусы для маскировки своего распространения используют другой способ - обработку системных областей, управляющих распределением памяти (MCB). Они выделяют для себя свободный участок памяти (включая UMB), помечают его как занятый и переписывают туда свою копию. Некоторые вирусы внедряют свои TSR-копии в свободные участки памяти в таблице векторов прерываний, в видео-память, в рабочие области DOS, в память, отведенную под системные буферы и в HMA-память. После выделения блока памяти вирус копирует в него своей код и переопределяет одно или несколько прерываний, необходимых ему для поиска заражаемых файлов, для выполнения деструктивных действий или звуковых и видеоэффектов.

При инфицировании файлов нерезидентные и некоторые резидентные вирусы ищут на диске (дисках) эти файлы при помощи функций DOS FindFirst и FindNext (INT 21h, AH=11h,12h,4Eh,4Fh). Резидентные вирусы используют более широкий список функций DOS, при обращении к которым происходит заражение файла. Фактически в этом списке присутствуют все функции, по значениям входных или выходных параметров которых можно определить имя файла, к которому идет обращение (к таким параметрам относятся значения соответствующих регистров или областей памяти). В результате к "вирусоопасным" функциям прерывания 21h относятся функции выполнения (EXEC, AX=4B00), загрузки в память (AH=4Bh), поиска (FindFirst и FindNext, AH=11h,12h,4Eh,4Fh), создания (Create, AH=3Ch), открытия (Open, AH=3Dh), закрытия (Close, AH=3Eh), изменения атрибутов (ChMode, AH=43h), переименования (Rename, AH=56h) и некоторые другие функции работы с файлами.

Известны несколько способов проверки резидентным вирусом наличия своей копии в памяти компьютера. Первый заключается в том, что вирус вводит новую функцию некоторого прерывания, действие которой заключается в возврате значения "я здесь". При старте вирус обращается к ней, и если возвращенное значение совпадает со значением "я здесь", значит память компьютера уже заражена и повторное заражение не производится. При проверке вторым способом вирус записывает значение "я здесь" в какую-либо редко используемую область памяти - в таблице векторов прерываний или в области данных BIOS (0040:00??). При последующих стартах зараженных программ вирус проверяет это значение и не вызывает процедуру заражения памяти. Существуют, конечно же, и другие способы, например, некоторые вирусы просто сканирует память компьютера.

Некоторые резидентные файловые вирусы (как правило, вирусы, созданные при помощи конструкторов типа VCL и PS-MPC) определяют свою TSR-копию некорректно и копируют себя в оперативную память при каждом запуске зараженного файла. Естественно, что в этом случае компьютер либо сразу зависает, либо через некоторое время перестает выполнять программы по причине нехватки свободной памяти.

Загрузочные вирусы

Подавляющее большинство резидентных загрузочных вирусов для выделения системной памяти для своей резидентной копии использует один и тот же прием: они уменьшают объем DOS-памяти (слово по адресу 0040:0013) и копируют свой код в "отрезанный" блок памяти. Объем DOS-памяти обычно уменьшается на единицу (один килобайт) в случае коротких загрузочных вирусов, код которых занимает один сектор дискового пространства (512 байт). Вторая половина килобайта используется такими вирусами как буфер чтения/записи при заражении дисков. Если же размер вируса больше одного килобайта или он использует нестандартные методы заражения, требующие большего объема буфера чтения/записи, объем памяти уменьшается на несколько килобайт (среди известных вирусов максимальное значение у вируса RDA.Fighter - 30 Kб).

В дальнейшем некоторые вирусы "ждут" загрузки DOS и восстанавливают первоначальное значение объема системной памяти - в результате они оказываются расположенными не за пределами DOS, а как отдельный блок DOS-памяти. Некоторые загрузочные вирусы вообще не используют и не изменяют значение объема системной памяти. Они копируют себя в какую-либо область памяти, неиспользуемую вплоть до загрузки DOS, ждут загрузки DOS и затем инсталлируют свой код в системе всеми возможными в DOS способами.

Такими вирусами используются несколько способов перехвата момента загрузки DOS. Наиболее "популярный" способ - проверка значения INT 21h (прерывание DOS-функций). Если это значение изменилось, вирусы считают, что инсталляция DOS завершена. Проверка значения INT 21h проводится при вызовах INT 8, 1Ch (прерывания таймера, для этого вирусы, помимо прерываний обращения к дискам, перехватывают также прерывания таймера) или при вызовах INT 13h. Менее популярный способ - проверка данных, считываемых с диска (для этого требуется только перехват INT 13h). Если буфер чтения содержит заголовок EXE-файла, вирусы считают, что загрузка DOS завершена, поскольку в память для выполнения загружается EXE-файл.

Для того чтобы перехватить обращения к дискам, большинство загрузочных вирусов перехватывают INT 13h - основное прерывание для работы с дисками. Реже используется перехват INT 40h - прерывание для работы с флоппи-дисками. Еще реже используются различные экзотические способы перехвата прерываний BIOS и DOS, возникающих при работе с дискетами.

В случае перехвата INT 13h/40h вирусы обрабатывают команды чтения/записи секторов (AH=2,3), проверяют диск на зараженность и записывают в его загрузочный сектор или MBR винчестера свой код. Реже перехватываются другие команды - от команды Reset Disk (AH=0) вплоть до команд "длинного" чтения/записи (AH=0Ah,0Bh).

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

Часть вирусов проверяют наличие своей копии - для этого используются либо специальные вызовы INT 13h с каким-либо нестандартным значением, либо помечается какой-либо заведомо неиспользуемый байт (или слово) в таблице векторов прерываний или в области данных BIOS (0040:00??). Существуют, конечно же, и другие способы детектирования своей TSR-копии.

Windows-вирусы

Для того чтобы оставить выполняемый код в памяти Windows, существует три способа, причем все три способа (за исключением Windows NT) уже применялись различными вирусами.

Самый простой способ - зарегистрировать программу как одно из приложений, работающих в данный момент. Для этого программа регистрирует свою задачу, окно которой может быть скрытым, регистрирует свой обработчик системных событий и т.д. Второй способ - выделить блок системной памяти при помощи DPMI-вызовов и скопировать в него свой код (вирус Ph33r). Третий способ - остаться резидентно как VxD-драйвер (Wnidows 3.xx и Windows95) или как драйвер Windows NT.

Перехват обращений к файлам производится одним из двух способов - либо перехватываются вызовы INT 21h (Hook_V86_Int_Chain, Get/Set_V86_Int_Vector, Get/Set_PM_Int_Vector), либо перехватывается системный вызов API. Затем резидентные Windows-вирусы действуют примерно так же, как и DOS-вирусы: перехватывают обращения к файлам и заражают их.

Для обнаружения уже присутствующей в памяти резидентной копии используются примерно те же способы, что описаны выше, за исключением VxD-вирусов. Известные VxD-вирусы загружаются в память при загрузке Windows. Для этого они записывают команду запуска в файл конфигурации Windows SYSTEM.INI. Если в этом файле уже есть команда запуска вирусного VxD-файла, то вирус не производит повторной регистрации своего VxD-файла.

Макро-вирусы

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

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

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

Что такое резидентные вирусы?

Итак, с чем же имеет дело пользователь? Для упрощенного объяснения структуры и принципов работы таких вирусов для начала стоит остановиться на объяснении того, что такое резидентная программа вообще.

Вам будет интересно:

Считается, что к такому типу программ относятся приложения, работающие постоянно в режиме мониторинга, явным образом не проявляя своих действий (например, те же штатные антивирусные сканеры). Что же касается угроз, проникающих в компьютерные системы, они не только висят постоянно в памяти компьютера, но и создают собственные дубли. Таким образом, копии вирусов и постоянно следят за системой, и перемещаются по ней, что существенно затрудняет их поиск. Некоторые угрозы способны еще и менять собственную структуру, а их детектирование на основе общепринятых методов становится практически невозможным. Чуть позже рассмотрим, как избавиться от вирусов такого типа. А пока остановимся на основных разновидностях резидентных угроз.