З. Компьютерные вирусы
Файловый резидентный вирус отличается от нерезидентного логической структурой и общим алгоритмом функционирования. Резидентный вирус состоит из так называемого инсталлятора и программ обработки прерываний. Инсталлятор получает управление при активации вирусоносителя и инфицирует оперативную память путем размещения в ней управляющей части вируса и замены адресов в элементах вектора прерываний… Читать ещё >
З. Компьютерные вирусы (реферат, курсовая, диплом, контрольная)
Физическая структура компьютерного вируса достаточно проста, поскольку состоит из головы и, возможно, хвоста. Голова вируса — компонента вируса, получающая управление первой. Хвост — это часть вируса, расположенная в коде зараженной программы отдельно от головы. Вирусы, состоящие из одной головы, называют несегментированными; вирусы, содержащие голову и хвост, — сегментированными.
Жизненный цикл вируса обычно включает следующие периоды:
- • внедрение;
- • инкубационный период;
- • период репликации (саморазмножение);
- • проявление.
В течение инкубационного периода вирус пассивен, что усложняет задачу его поиска и нейтрализации. На этапе проявления вирус выполняет свойственные ему целевые функции, например необратимую коррекцию информации в компьютере или на носителях информации.
Принцип работы вируса.
Принципиальное отличие вируса от троянской программы состоит в том, что вирус после его активации существует самостоятельно (автономно) и в процессе своего функционирования заражает (инфицирует) программы путем включения (имплантации) в них своего кода. Таким образом, компьютерный вирус можно рассматривать как своеобразный «генератор троянских программ». Программы, зараженные вирусом, называются вирусоносителями.
Заражение программы, как правило, выполняется таким образом, чтобы вирус получил управление раньше самой программы. Для этого он либо встраивается в начало программы, либо имплантируется в ее тело так, что первой командой зараженной программы является безусловный переход на компьютерный вирус, текст которого заканчивается аналогичной командой безусловного перехода на команду вирусоносителя, бывшую первой до заражения. Получив управление, вирус выбирает следующий файл, заражает его, возможно, выполняет какие-либо другие действия, после чего отдает управление вирусоносителю.
«Первичное» заражение происходит в процессе поступления инфицированных программ из памяти одной машины в память другой, причем в качестве средства перемещения этих программ могут использоваться как носители информации (CD, флеш-карты и т. п.), так и каналы локальных и глобальных сетей. Вирусы, использующие для размножения сетевые средства, принято называть сетевыми.
Наиболее существенные признаки компьютерных вирусов позволяют классифицировать последние по четырем критериям.
Классификация компьютерных вирусов по критерию «режим функционирования» включает:
- • резидентные вирусы — вирусы, которые после активации постоянно находятся в оперативной памяти компьютера и контролируют доступ к его ресурсам;
- • транзитные вирусы — вирусы, которые выполняются только в момент запуска зараженной программы.
Классификация компьютерных вирусов по критерию «объект внедрения» такова:
• файловые вирусы — вирусы, заражающие файлы.
В свою очередь, файловые вирусы подразделяются на вирусы, заражающие:
- — исполняемые файлы;
- — командные файлы;
- — файлы, составляемые на макроязыках программирования, или файлы, содержащие макросы (макровирусы);
- — файлы с драйверами устройств;
- — файлы с библиотеками исходных, объектных, загрузочных и оверлейных модулей, с библиотеками динамической компоновки и т. п.;
- • загрузочные (бутовые) вирусы — вирусы, заражающие код, хранящийся в системных областях дисков.
Загрузочные вирусы подразделяются на вирусы, заражающие:
- — системный загрузчик, расположенный в загрузочном секторе логических дисков;
- — внесистемный загрузчик, расположенный в загрузочном секторе жестких дисков.
Классификация компьютерных вирусов по критерию «способ заражения» представляет:
- • перезаписывающие вирусы (overwriting);
- • паразитические вирусы (parasitic);
- • вирусы-компаньоны (companion);
- • вирусы-ссылки (.link);
- • вирусы, заражающие объектные модули (OBJ);
- • вирусы, заражающие библиотеки компиляторов (LIB);
- • вирусы, заражающие исходные тексты программ.
Перезаписывающие вирусы записывают свой код вместо кода заражаемого файла, уничтожая его содержимое. Как результат файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как операционная система и приложения довольно быстро перестают работать.
Паразитические вирусы. К таковым относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сами файлы при этом полностью или частично работоспособными.
Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов (prepending), в конец файлов (appending) и в середину файлов (inserting).
Внедрение вируса в начало файла. Известны два способа внедрения паразитического файлового вируса в начало файла. Первый способ заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется на освободившееся место.
При заражении файла вторым способом вирус дописывает заражаемый файл к своему телу. Таким образом, при запуске зараженного файла первым управление получает код вируса. При этом вирусы, чтобы сохранить работоспособность программы, либо лечат зараженный файл, повторно запускают его, ждут окончания его работы и снова записываются в его начало (иногда для этого используется временный файл, в который записывается обезвреженный файл), либо восстанавливают код программы в памяти компьютера и настраивают необходимые адреса в ее теле (т.е. дублируют работу ОС).
Внедрение вируса в конец файла. Наиболее распространенным способом внедрения вируса в файл является дописывание вируса в его конец. При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса. Для того чтобы получить управление при старте файла, вирус корректирует стартовый адрес программы (адрес точки входа). Для этого вирус производит необходимые изменения в заголовке файла.
Внедрение вируса в середину файла. Существует несколько методов внедрения вируса в середину файла. В наиболее простом из них вирус переносит часть файла в его конец или «раздвигает» файл и записывает свой код в освободившееся пространство. Этот способ во многом аналогичен методам, перечисленным выше. Некоторые вирусы при этом компрессируют переносимый блок файла так, что длина файла при заражении практически не изменяется.
Часто используется метод cavity, при котором вирус записывается в заведомо неиспользуемые области файла. Вирус может быть скопирован в незадействованные области заголовка ЕХЕ-файла, в «дыры» между секциями ЕХЕ-файла или в область текстовых сообщений популярных компиляторов.
Существуют вирусы, заражающие только те файлы, которые содержат блоки, заполненные каким-либо постоянным блоком байтов, при этом вирус записывает свой код вместо такого блока. Кроме того, копирование вируса в середину файла может произойти в результате ошибки вируса — в этом случае файл может быть необратимо испорчен.
Вирусы без точки входа. Отдельно следует отметить довольно незначительную группу вирусов, не имеющих точки входа (ЕРО-вирусы — Entry Point Obscuring viruses). К ним относятся вирусы, не изменяющие адрес точки старта в заголовке ЕХЕ-файлов. Такие вирусы записывают команду перехода на свой код в какое-либо место в середину файла и получают управление не непосредственно при запуске зараженного файла, а при вызове процедуры, содержащей код передачи управления на тело вируса. Причем выполняться эта процедура может крайне редко (например, при выводе сообщения о какойлибо специфической ошибке). В результате вирус может долгие годы «спать» внутри файла и «проснуться» только при некоторых ограниченных условиях. Перед тем как записать в середину файла команду перехода на свой код, вирусу необходимо выбрать «правильный» адрес в файле — иначе зараженный файл может оказаться испорченным. Известно несколько способов, с помощью которых вирусы определяют такие адреса внутри файлов, например: поиск в файле последовательности стандартного кода заголовков процедур языков программирования (C/C++), дизассемблирование кода файла или замена адресов импортируемых функций и др.
Вирусы-компаньоны — это вирусы, не изменяющие заражаемых файлов. Алгоритм работы этих вредоносных программ состоит в том, что для заражаемого файла создается файл-двойник, причем при запуске зараженного файла управление получает именно этот двойник.
К вирусам данного типа относятся вирусы, которые при заражении переименовывают файл, запоминают его (для последующего запуска файла-хозяина) и записывают свой код на диск под именем заражаемого файла. Например, файл Notepad. exe переименовывается в Notepad. exd, а вирус записывается под именем Notepad.exe. При запуске управление получает код вируса, который затем запускает оригинальный Notepad, ехе, который был переименован в Notepad.exd.
Существуют и другие типы вирусов-компаньонов, использующих иные оригинальные идеи или особенности операционных систем. Например, path-компаньоны размещают свои копии в основном каталоге Windows, используя тот факт, что этот каталог является первым в списке переменной окружения Path и файлы для запуска Windows в первую очередь будут искать именно его (этот каталог). Данным способом собственного запуска пользуются также многие программычерви и троянские программы.
Вирусы с прочими способами заражения. Существуют вирусы, которые никоим образом не связывают свое присутствие с какимлибо исполняемым файлом. При размножении они всего лишь копируют свой код в какие-либо каталоги дисков «в надежде», что эти новые копии будут когда-либо запущены пользователем. Иногда эти вирусы дают своим копиям «специальные» имена, чтобы подтолкнуть пользователя на запуск своей копии: например, Install. exe или Winstart.bat.
Некоторые вирусы записывают свои копии в архивы (Arj, Zip, Rar), другие записывают команду запуска зараженного файла в бат-файлы (bat-файлы). Link-вирусы также не изменяют физического содержимого файлов, однако при запуске зараженного файла «заставляют» ОС выполнить свой код. Этой цели они достигают модификацией необходимых полей файловой системы.
Классификация компьютерных вирусов по критерию «степень и способ маскировки» включает:
- • вирусы, не использующие средств маскировки;
- • stealth-вирусы — вирусы, пытающиеся быть невидимыми на основе контроля доступа к зараженным элементам данных;
- • вирусы-мутанты (MtE-вирусы) — вирусы, содержащие в себе алгоритмы шифрования, обеспечивающие различие разных копий вируса.
В свою очередь, MtE-вирусы подразделяются на две группы:
- — обычные вирусы-мутанты, в разных копиях которых различаются только зашифрованные тела, а дешифрованные тела вирусов совпадают;
- — полиморфные вирусы, в разных копиях которых различаются не только зашифрованные, но и их дешифрованные тела.
Наиболее распространенные типы вирусов характеризуются следующими основными особенностями.
Файловый транзитный вирус целиком размещается в исполняемом файле, в связи с чем он активируется только в случае активирования вирусоносителя, а по выполнении необходимых действий возвращает управление самой программе. При этом выбор очередного файла для заражения осуществляется вирусом посредством поиска по каталогу.
Файловый резидентный вирус отличается от нерезидентного логической структурой и общим алгоритмом функционирования. Резидентный вирус состоит из так называемого инсталлятора и программ обработки прерываний. Инсталлятор получает управление при активации вирусоносителя и инфицирует оперативную память путем размещения в ней управляющей части вируса и замены адресов в элементах вектора прерываний на адреса своих программ, обрабатывающих эти прерывания. На так называемой фазе слежения, следующей за фазой инсталляции, при возникновении какого-либо прерывания управление получает соответствующая подпрограмма вируса.
В связи с существенно более универсальной по сравнению с нерезидентными вирусами общей схемой функционирования, резидентные вирусы могут реализовывать самые разные способы инфицирования, среди которых наиболее распространенным является инфицирование запускаемых программ, а также файлов при их открытии или чтении. Отличительной особенностью последних является инфицирование загрузочного сектора (бут-сектор) носителя данных. Голова бутового вируса всегда находится в бут-секторе, а хвост — в любой другой области носителя. Наиболее безопасным для вируса способом считается размещение хвоста в так называемых псевдосбойных кластерах, логически исключенных из числа доступных для использования. Существенно, что хвост бутового вируса всегда содержит копию оригинального (исходного) бут-сектора.
Механизм инфицирования, реализуемый бутовыми вирусами, например, при загрузке ОС, таков. При загрузке ОС с инфицированного носителя вирус, в силу своего положения на нем (независимо от того, с CD, флеш-карты или с винчестера производится загрузка), получает управление и копирует себя в оперативную память. Затем он модифицирует вектор прерываний таким образом, чтобы прерывания при обращении к диску обрабатывались собственным обработчиком прерываний вируса, и запускает загрузчик ОС. Посредством перехвата прерываний бутовые вирусы могут реализовывать столь же широкий набор способов инфицирования и целевых функций, сколь и файловые резидентные вирусы.
Stealth-вирусы пользуются слабой защищенностью некоторых операционных систем и заменяют некоторые их компоненты (драйверы дисков, прерывания) таким образом, что вирус становится невидимым (прозрачным) для других программ.
Полиморфные вирусы содержат алгоритм порождения дешифрованных тел вирусов, непохожих друг на друга. При этом в алгоритмах дешифрования могут встречаться обращения практически ко всем командам процессора Intel и даже использоваться некоторые специфические особенности его реального режима функционирования.
Макровирусы распространяются под управлением прикладных программ, что делает их независимыми от операционной системы. Наибольшее число макровирусов функционируют под управлением системы ОС Windows. В то же время известны макровирусы, работающие под управлением и других операционных систем.
Вирусные «скрипты» (скрипт-вирусы) — вирусы, написанные на языках Visual Basic Script, Java Script, BAT и др. Эти вредоносные программы могут как располагаться в отдельных файлах, так и встраиваться в HTML-документ и в таком случае интерпретироваться браузером (причем не только с удаленного сервера, но и с локального диска).
Различают:
- • VBS-вирусы, написанные на языке Visual Basic Script;
- • JS-вирусы, написанные на языке Java Script;
- • ВАТ-вирусы, написанные на языке командного интерпретатора MS-DOS (на ВАТ-языке);
- • PIF-eupyc в формате PIF (Program Information File);
- • WScript-черви, как правило, встроенные в HTML-файлы;
- • РНР-скрипт-вирусы, написанные на языке РНР, либо вирусы, заражающие РНР-файлы;
- • HTML-вирусы, встраиваемые в HTML-страницы;
- • Perl-вирусы, написанные на языке Perl.
Сетевые вирусы наиболее просто реализуют размножение в тех случаях, когда сетевыми протоколами предусмотрен обмен программами. Однако размножение возможно и в тех случаях, когда указанные протоколы ориентированы только на обмен сообщениями. Классическим примером реализации процесса размножения с использованием только стандартных средств электронной почты является репликатор Морриса. Текст репликатора передается от одного компьютера к другому, как обычное сообщение, постепенно заполняющее буфер, выделенный в оперативной памяти компьютера-адресата. В результате переполнения буфера, инициированного передачей, адрес возврата в программу, вызвавшую программу приема сообщения, замещается на адрес самого буфера, где к моменту возврата уже находится текст вируса. Тем самым вирус получает управление и начинает функционировать на компьютере-адресате.
Сетевые черви — вредоносные программы, самостоятельно распространяющиеся через локальные и глобальные компьютерные сети. Классификация программ-червей включает:
- • почтовые программы-черви (Email-Worms) — вредоносные программы, использующие для своего распространения электронную почту. При этом червь отсылает либо свою копию в виде вложения в электронное письмо, либо ссылку на свой файл, расположенный на каком-либо веб-сервере;
- • программы-черви, использующие интернет-пейджеры (IMWorms) — вредоносные программы, использующие для своего распространения рассылку на обнаруженные контакты из контакт-листа интернет-пейджера (программы ICQ, MSN Messenger, Yahoo Messenger, Google Talk, AOL Instant Messenger, Trillian, Miranda, QIP и др.) сообщений, содержащих ссылку на свой файл;
- • программы-черви в IRC-каналах (IRC-Worms) — вредоносные программы, которые распространяются, используя среду IRC каналов СInternet Relayed Chat channels);
- • классические сетевые программы-черви (Net-Worms) — вредоносные программы, использующие для своего распространения уязвимости в операционных системах и прикладном ПО или распространяющиеся с помощью копирования себя на сетевые ресурсы;
- • программы-черви для файлообменных сетей (P2P-Worms) — вредоносные программы, использующие для своего распространения Р2Р-сети (распространяющиеся с помощью программ eMule, eDonkey, Kazzaa, DC++, BitTorrent, Gnutella, FastTrack и др.);
- • вирусные черви — вредоносные программы, которые незаметно перемещаются между узлами вычислительной сети, не нанося никакого вреда до тех пор, пока не доберутся до целевого узла. В нем программа размещается и перестает размножаться.