Противодействие обнаружению
Во времена MS-DOS были распространены стелс-вирусы, перехватывающие прерывания для обращения к операционной системе. Вирус таким образом мог скрывать свои файлы из дерева каталогов или подставлять вместо зараженного файла исходную копию.
С широким распространением антивирусных сканеров, проверяющих перед запуском любой код на наличие сигнатур или выполнение подозрительных действий, этой технологии стало недостаточно. Сокрытие вируса из списка процессов или дерева каталогов для того, чтобы не привлекать лишнее внимание пользователя, является базовым приемом, однако для борьбы с антивирусами требуются более изощренные методы. Для противодействия сканированию на наличие сигнатур применяется шифрование кода и полиморфизм. Эти техники часто применяются вместе, поскольку для расшифрования зашифрованной части вируса необходимо оставлять расшифровщик незашифрованным, что позволяет обнаруживать его по сигнатуре. Поэтому для изменения расшифровщика применяют полиморфизм — модификацию последовательности команд, не изменяющую выполняемых действий. Это возможно благодаря весьма разнообразной и гибкой системе команд процессоров Intel, в которой одно и то же элементарное действие, например, сложение двух чисел, может быть выполнено несколькими последовательностями команд.
Также применяется перемешивание кода, когда отдельные команды случайным образом разупорядочиваются и соединяются безусловными переходами. Передовым фронтом вирусных технологий считается метаморфизм, который часто путают с полиморфизмом. Расшифровщик полиморфного вируса относительно прост, его функция — расшифровать основное тело вируса после внедрения, то есть после того, как его код будет проверен антивирусом и запущен. Он не содержит самого полиморфного движка, который находится в зашифрованной части вируса и генерирует расшифровщик. В отличие от этого, метаморфный вирус может вообще не применять шифрование, поскольку сам при каждой репликации переписывает весь свой код.
Классификация
В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году). Принято разделять вирусы:
- по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, вирусы, поражающие исходный код);
- по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux);
- по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты, трояны);
- по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.);
- по дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты, спам и др.).
Файловый вирус (англ. File infector) — компьютерный вирус, распространяющийся путем внедрения своего кода в тело исполняемых файлов. При каждом запуске такого заражённого файла сначала выполняется код вируса, и только потом — код самой программы.
Объектом вирусного поражения могут выступать исполняемые двоичные файлы (EXE, COM), файлы динамических библиотек (DLL), драйверы (SYS), командные файлы (BAT, CMD) и другие. Заражая файл, вирус может внедриться в его начало, конец или середину. Наиболее распространенным способом является внедрение в конец файла. При этом основной код дописывается в конец файла, а в его начало записывается команда перехода к телу вируса. Чтобы скрыть свое присутствие в системе, файловый вирус может предварительно сохранить дату и время последней модификации и значения атрибутов заражаемого файла, восстановив эти данные уже после заражения.
После того как вирус получил управление, он выполняет следующие действия:
- Восстанавливает в оперативной памяти компьютера исходную программу для последующего её выполнения.
- Осуществляет дальнейшее заражение, инфицируя другие файлы или оперативную памятькомпьютера.
- Выполняет иные деструктивные действия.
При этом все действия вируса, как правило, незаметны для пользователя программы.
Различают резидентные и нерезидентные файловые вирусы. Первые загружают в оперативную память резидентную часть, которая впоследствии может отслеживать открываемые пользователем файлы, заражая их. Нерезидентные вирусы, после того как получили управление, производят поиск файлов для заражения в текущем и (или) корневом каталогах, либо в каталогах, указанных в системной переменной среды PATH.
Наиболее распространённые в эпоху DOS файловые вирусы — так называемые «паразитирующие» (большая часть информации в этой статье именно о них). «Паразиты» стараются вести себя как можно более незаметно, не портя функциональности программы, и поэтому излечимы антивирусом. Также выделяют перезаписывающие вирусы, которые при заражении необратимо портят программу, и вирусы-спутники, которые представляют собой отдельный файл. Обратимое заражение Win32-программы не так тривиально, как в DOS, поэтому большинство файловых вирусов для этой ОС было именно спутниками.
Загрузочный вирус (англ. Boot viruses) — компьютерный вирус, записывающийся в первый сектор гибкого или жесткого диска и выполняющийся при загрузке компьютера.
При включении или перезагрузки компьютера Boot-вирус заменяет собой загрузочный код, и таким образом получает управление ещё до непосредственного запуска операционной системы. Вместо операционной системы загружается вирус, размещая в памяти свое тело, которое хранит в неиспользованных секторах, идущих после MBR, но до первого загрузочного сектора раздела. Перехватив обращения к дискам, вирус продолжает загрузку операционной системы. Размножается вирус записью в загрузочную область других накопителей компьютера.
Простейшие загрузочные вирусы, находясь в памяти зараженного компьютера, обнаруживают в компьютере незараженный диск и производят следующие действия:
- выделяют некоторую область диска и делают её недоступной операционной системе;
- замещают программу начальной загрузки в загрузочном секторе диска, копируя корректную программу загрузки, а также свой код, в выделенную область диска;
- организуют передачу управления так, чтобы вначале выполнялся бы код вируса и лишь затем — программа начальной загрузки.
Загрузочные вирусы очень редко «уживаются» вместе на одном диске из-за того, что используют одни и те же дисковые сектора для размещения своего кода/данных. В результате код/данные первого вируса оказываются испорченными при заражении вторым вирусом, и система либо зависает, либо зацикливается при загрузке.
Макровирус — это разновидность компьютерных вирусов разработанных на макроязыках, встроенных в такие прикладные пакеты ПО, как Microsoft Office. Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносятся из одного зараженного файла в другие. Большая часть таких вирусов написана для MS Word.
Полиморфизм компьютерного вируса (греч. πολυ- — много + греч. μορφή — форма, внешний вид) — специальная техника, используемая авторами вредоносного программного обеспечения для снижения уровня детектирования вредоносной программы классическими антивирусными продуктами.
Описание метода
Полиморфизм заключается в формировании программного кода вредоносной программы «на лету» — уже во время исполнения, при этом сама процедура, формирующая код, также не должна быть постоянной и видоизменяется при каждом новом заражении. Зачастую, изменение кода достигается путем добавления операторов, не изменяющих алгоритм работы программного кода (например, оператор NOP).
Постоянное видоизменение программного кода вредоносной программы не позволяет создать универсальную сигнатуру для данного образца вредоносной программы. На сегодняшний день, для противодействия данному методу в антивирусном программном обеспечении применяются такие технологии, как эвристический анализ и эмуляция.
История
Первый известный полиморфный вирус был написан Марком Вашбёрном (Mark Washburn). Вирус, который назывался 1260, был создан в 1990 году. Более известный полиморфный вирус был внедрён в 1992 году болгарским взломщиком Dark Avenger (псевдоним), создавшим MtE (Mutation Engine).
На сегодняшний день известно большое количество вредоносных программ, которые используют именно полиморфизм в качестве средства для затруднения анализа и создания сигнатуры.
Пример алгоритма
Алгоритм, который использует переменные A и B, но не использует переменную C, может оставаться работоспособным даже если добавить множество различных команд, которые будут изменять содержимое переменной C.
Стелс-вирус (англ. stealth virus — вирус-невидимка) — вирус, полностью или частично скрывающий свое присутствие в системе, путем перехвата обращений к операционной системе, осуществляющих чтение, запись, чтение дополнительной информации о зараженных объектах (загрузочных секторах, элементах файловой системы, памяти и т. д.)
Название данного типа вирусов происходит от названия малозаметных истребителей «Стелс». Оно подчеркивает, что такие вирусы могут оставаться незамеченными для антивирусных программ.
Дата добавления: 2016-01-20; просмотров: 1863;