Вредоносные программы и проблемы антивирусной защиты

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

В соответствии со способами распространения и вредоносной нагрузки все вредоносные программы можно разделить на четыре основных типа:

· компьютерные вирусы;

· черви;

· трояны;

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

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

Компьютерные вирусы

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

· способность вируса к саморазмножению;

· способность вируса к модификации вычислительного процесса.

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

· способность к созданию собственных копий, необязательно совпадающих с оригиналом, но обладающих свойствами оригинала (самовоспроизведение);

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

· деструктивность;

· скрытность действий в вычислительной среде.

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

Жизненный цикл любого компьютерного вируса можно разделить на четыре этапа:

· проникновение на чужой компьютер;

· активация;

· поиск объектов для заражения;

· подготовка и внедрение копий.

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

После проникновения следует активация вируса. Это может происходить разными путями (рис. 6.1.), и в зависимости от выбранного метода вирусы делятся на:

Рис. 6.1. Классификация компьютерных вирусов по среде обитания

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

· файловые вирусы – либо внедряются в выполняемые файлы различными способами, либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы) заражают файлы;

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

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

При подготовке своих копий вирусы могут применять для маскировки разные технологии:

· шифрование – в этом случае вирус состоит из двух частей: сам вирус и шифратор;

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

· полиморфные – используют обе технологии маскировки.

Жизненный цикл вирусов

У компьютерных вирусов можно выделить две основные стадии жизненного цикла – хранение и исполнение.

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

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

Стадия исполнения компьютерных вирусов, как правило, включает пять этапов:

1. Загрузка вируса в память.

2. Поиск жертвы.

3. Заражение найденной жертвы.

4. Выполнение деструктивных функций.

5. Передача управления программе-носителю вируса.

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

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

· изменение порядка независимых инструкций;

· замена некоторых инструкций на эквивалентные по результату работы;

· замена используемых в инструкциях регистров на другие;

· введение случайным образом зашумляющих инструкций.

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

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

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

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

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

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

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

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

· вирусы, реализующие пассивный механизм поиска, то есть вирусы, расставляющие «ловушки» для программных файлов. Как правило, файловые вирусы устраивают такие ловушки путем перехвата функции ехес операционной системы, а макровирусы – с помощью перехвата команд типа Save as из меню File.

Заражение жертвы. В простейшем случае заражение представляет собой самокопирование кода вируса в выбранный в качестве жертвы объект.

По способу инфицирования жертвы вирусы можно разделить на:

· вирусы, которые не внедряют свой код непосредственно в программный файл, а изменяют имя файла и создают новый, содержащий тело вируса.

· вирусы, внедряющиеся непосредственно в файлы-жертвы.

Возможны следующие способы внедрения:

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

2. Внедрение в конец файла – передача управления коду вирусов обеспечивается модификацией первых команд программы (СОМ) или заголовка файла (EXE).

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

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

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

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

3. Используются зарезервированные области разделов – вирус переносит необходимый код в области диска, зарезервированные под нужды операционной системы, а потому – неиспользуемые.

4. Короткие вирусы могут уместиться в один сектор загрузчика и полностью взять на себя функции MBR или загрузочного сектора.

Для макровирусов процесс заражения сводится к сохранению вирусного макрокода в выбранном документе-жертве. Для некоторых систем обработки информации это сделать не совсем просто, так как формат файлов документов может не предусматривать возможность сохранения макропрограмм. Так в документах Microsoft Office Word для сохранения макропрограмм необходимо установить тип файла – Документ Word с поддержкой макросов. Поэтому для своего сохранения вирус должен контролировать обработку команды Сохранить как…, которая вызывается всякий раз, когда происходит первое сохранение документа на диск. Этот контроль необходим, чтобы в момент сохранения изменить тип файла – Документ Word (имеющего по умолчанию расширение .docx) на тип файла – Документ Word с поддержкой макросов (имеет расширение .docm). В этом случае на диске окажутся и макрокод вируса, и содержимое документа.

Выполнение деструктивных функций. Вирусы могут выполнять помимо самокопирования деструктивные функции.

По деструктивным возможностям вирусы можно разделить на:

· безвредные;

· неопасные;

· опасные;

· очень опасные.

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

Неопасные вирусы – это вирусы, присутствие которых в системе связано с различными эффектами (звуковыми, видео) и уменьшением свободной памяти на диске, но которые не наносят вред программам и данным.

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

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

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

– вирусы, созданные для работы в MS-DOS, обладают практически неограниченными потенциальными возможностями;

– распространение вирусов под управлением Windows NT/2000 ограничивается системой разграничения доступа;

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

Передача управления программе-носителю вируса.

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

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

Сетевые черви

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

В зависимости от способа проникновения в систему черви делятся на:

· сетевые черви – используют для распространения локальные сети и Интернет;

· почтовые черви – распространяются с помощью почтовых программ;

· IM-черви – используют программы обмена сообщениями в режиме реального времени;

· IRC-черви – распространяются через чаты IRC (Internet Relay Chat);

· Р2Р-черви распространяются при помощи пиринговых файлообменных сетей Р2Р (Peer-to-Peer – равный с равным).

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

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

Черви из второй группы используют ошибки в настройке или бреши в системе безопасности операционной системы.

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

Троянские программы

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

В отличие от вирусов и червей, трояны сами не размножаются. Жизненный цикл троянов состоит всего из трех этапов:

· проникновение в систему;

· активация;

· выполнение вредоносных действий.

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

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

Трояны классифицируются по типу вредоносной нагрузки:

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

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

· логические бомбы – характеризуются способностью при срабатывании заложенных в них условий (в конкретный день, время суток, в ответ на определенное действие пользователя или команды извне) выполнять какое-либо действие, например удаление файлов;

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

· анонимные SMTP- и прокси-серверы – такие трояны на зараженном компьютере организуют несанкционированную отправку электронной почты, что часто используется для рассылки спама;

· утилиты дозвона – в скрытом от пользователя режиме инициируют подключение к платным сервисам Интернета;

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

· организаторы DDoS-атак – это класс троянов наносит вред другим, удаленным компьютерам и сетям, при этом не нарушает работоспособности инфицированного компьютера.

Наши рекомендации