ВирусыСоветы хакера

Как работают вирусы

Как работают вирусы. Когда мы рассматривали структуру программы, то говорили о заголовке исполняемого файла.(см. Ресурсы Windows)  В этом заголовке есть точка входа — адрес внутри программы, с которого начинается выполнение. Если вирус должен присоединиться к программе, то он дописывается в ее конец и изменяет точку входа на себя, а программа со старого адреса вызывается после выполнения тела вируса. Таким образом, после старта запускаемого файла сначала активизируется вирус, а потом управление передается основной программе. Особо ленивые писатели вирусов не любят разбираться с заголовками. Они, наоборот, добавляют запускаемый файл другой программы к своему, т. е. тело вируса оказывается в начале файла. Так работает большинство вирусов, которые прикрепляются к программам, и таких до 2000 г. было очень много, особенно в операционной системе MS-DOS. Если вы хотите защититься от вредоносного кода, то минимальным требованием должно быть слежение за заголовками исполняемых файлов. Как только заголовок изменился, нужно бить тревогу, потому что это может быть вирус или червь. Конечно же, вручную это делать тяжело, но необходимо следить хотя бы за размером основных программ, ведь когда к исполняемому файлу прикрепляется вирус, изменяется его размер.

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

Как я уже говорил, такие вирусы властвовали до 2000 г. Тогда Интернет был развит еще не так сильно, как сейчас, и основным средством распространения инфекции были дискеты или файлы, скачанные с BBS (Bulletin Board System, электронная доска объявлений), с помощью которых люди обменивались информацией. Некоторые вирусы записывались не в программу, а в загрузочную область дисков, и выполнялись при первом же обращении. В этом случае после запуска файла с дискеты вирус загружался в память и распространялся по файловой системе, заражая все, что попадалось на пути.

Зачем производился поиск и заражение всех исполняемых файлов? Все очень просто. В MS-DOS была только одна возможность загрузить программу автоматически при старте компьютера — autoexec.bat. В этом файле прописываются программы, которые должны запускаться при загрузке ОС. Если бы все вирусы записывались в этот файл, то антивирусам легко было бы обезвредить внедренный код. Именно поэтому заражались все файлы. После этого при загрузке любой зараженной программы запускался и вирус.

Есть вирусы, которые просто копируют себя в систему и помещаются в раздел  автозапуска.

Как работают вирусы

С распространением Windows именно такие вирусы стали наиболее популярны, потому что здесь уже больше способов их спрятать. В данном случае уже нет смысла сканировать весь диск в поисках исполняемых файлов и заражения их, достаточно записаться в автозагрузку, и дело в шляпе. При каждом старте системы ОС сама запустит вредоносный код. Но теперь такие вирусы не столь признаны, потому что с ними уже научились бороться. В Windows, помимо большого количества способов автоматической загрузки, по- явилось очень много файлов, которые обязательно загружаются при старте OC, например системные динамически подключаемые библиотеки (DLL, Dynamic-Link Library). Это тоже упрощает жизнь вирусам. Если раньше нужно было заражать все, потому что заранее неизвестно, с какими программами работает пользователь, то теперь достаточно инфицировать одну из библиотек или важный исполняемый файл, и нет необходимости в сканировании. Плюс ко всему, появилось множество мест, откуда программа может запуститься при старте системы, а значит, вирусу проще спрятаться. Выходит, если раньше проблема пряталась только в exe- и com-файлах, то теперь источник зла нужно искать и в динамических библиотеках, у которых есть большой недостаток — возможность выполнять код при старте DLL. И если вирус записать в автозапуск важной библиотеки, то он сможет загружаться автоматически. Таким образом, количество потенциальных лазеек в системе резко увеличилось. Ну а если код вируса загрузится раньше кода антивируса, то злостный код может блокировать работу антивируса, и ему проще будет скрыться в системе. Уже были подобные случаи, когда вирусы побеждали за счет блокировки защитных средств. Но были и смешные случаи, когда один злой код при заражении компьютера искал своего конкурента (другой злой код) и уничтожал его. Но динамические библиотеки — не единственное зло. Корпорация Microsoft для упрощения жизни пользователей во многие свои продукты включила элементы языка программирования Visual Basic. Такая поддержка есть почти во всех компонентах пакета MS Office. Это очень удобно, когда с помощью несложного языка можно упростить свою жизнь и расширить возможности используемой программы. Но хакеры увидели в этом очередную лазейку. Большинство пользователей Интернета привыкло, что опасность от вирусов кроется в исполняемых файлах, и никто не мог себе представить, что угроза придет из текстовых документов или электронных таблиц MS Office. Именно поэтому первые вирусы, встроенные в документы Microsoft Word или исполняемые в почтовой программе Microsoft Outlook, заразили громадное количество компьютеров за минимальное время. К таким обстоятельствам не были готовы ни пользователи, ни лучшие антивирусные продукты. Жертвой может оказаться любая программа, которая содержит какой-то скриптовый язык и выполняет какой-то код, и это не обязательно должен быть байт-код классического исполняемого файла. Так, например, в свое время очень опасными были слишком большие возможности JavaScript. Это такой сценарный язык, который встроили в браузеры для придания страницам интерактивности.

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

Лично я сам в 1998 г. как-то написал один вирус, который просто плодился по файловой системе в MS-DOS, но не делал ничего другого. Этот вирус я испытал в своем компьютере и никогда не выпускал в свет. Я даже удалил исполняемый файл и долго хранил только исходный код. Возможно, он даже где-то сохранится на компакт-дисках в архивах. В настоящий момент вирусы распространяются через Интернет и практически не используют в качестве носителя файлы или дискеты (есть ли еще они у кого нибудь?). Основным переносчиком стала электронная почта, веб-страницы и массовые рассылки. Вы получаете письмо, к которому прикреплены вирус и заманчивый текст, убеждающий открыть программу-вложение. Если такой файл запустить, то вирус заражает компьютер и рассылает себя по всем адресам, внесенным в вашу адресную книгу.

Как работают вирусы
Как работают вирусы

 

Как работают вирусы Как работают вирусы