NailMan - Зачем и как работают компьютерные вирусы?
АКЦИЯ от www.R3.ru - хостинг сайтов 72р. в месяц. Домен в подарок!


05.09.09 (00:21:02) Зачем и как работают компьютерные вирусы?


Зачем и как работают компьютерные вирусы?
Зачем и как работают компьютерные вирусы?Зачем и как работают компьютерные вирусы?

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

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

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

  • замедляет работу системы,
  • засоряют накопители и ОЗУ ненужной информацией
  • и повышают риск сбоев в системе из-за непредусмотренного вмешательства в ее работу.

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

Макро-вирусы, заражающие документы с автоматическим выполнением макросов, должны заразить систему в которой производится подготовка таких документов (в случае с MS-Word это осуществляется путем заражения основного шаблона системы - файла normal.dot как обыкновенного документа).

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

Для ПК, работающего под управлением однопользовательских одноранговых ОС типа MS-DOS или MS-Windows 95 наиболее опасными являются файловые, бутовые и смешанные вирусы. Файловые вирусы переносятся вместе с содержимым файлов, заражают их путем дописывания в начало конец или средину файла программного модуля и активируются только при выполнении данного файла. Такие вирусы, в основном, являются кодами реального режима с инструкциями процессора 80х86 и при работе в защищенном режиме бездействуют.

Однако, в последнее время участились случаи встречи с вирусами, которые все больше используют возможности защищенного режима и доступа к расширенной памяти. Такие вирусы будут активны и под управлением ОС в защищенном режиме (например в среде графического интерфейса MS-Windows 95).

При запуске зараженного файла сначала стартует не код программы, а код тела вируса, который обеспечивает его локализацию в ОЗУ - ее заражение и возможность дальнейшей активации посредством механизма перехвата векторов прерываний в реальном режиме. Напомним, что в реальном режиме работы центрального процессора первый килобайт ОЗУ занимают 256 четырехбайтовых элементов, представляющих собой дальние адреса (указатели) на точки входа в различные процедуры, как ОС, так и BIOS. Данные процедуры носят названия обработчики прерываний. Под "программным прерыванием" понимается событие, состоящее в передаче управления по адресу точки входа, записанному в каком-либо из 256-ти векторов прерываний. Для его осуществления существует специальная отдельная инструкция центрального процессора.

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

После этого основной задачей вируса является размножение. Он конечно перехватывает все жизненно важные для ОС прерывания и таким образом всегда "знает", что делает система. На данном этапе его интересуют файловые операции. На стадии выполнения файловой операции, например, копирования, или запуска файла, вирус может заразить запускаемый или копируемый файл, а также, структуры носителя, с которым выполняются файловые операции. Если вирус является бутовым или смешанным, то после заражения ОЗУ, или сразу перед ним, производится попытка заражения дискового носителя, путем записи в загрузочные сектора собственного кода. Этот код может быть активирован - "оживет" лишь при загрузке с зараженного носителя.

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

В зависимости от степени сложности вируса и от изощренности и квалификации его автора, файловые вирусы могут быть достаточно интеллектуальными и принимать меры против их обнаружения. Так например, в зараженной системе у зараженных файлов якобы не изменяется длина, что затрудняет обнаружение заражения по размеру файла. Однако, безотказно действую ревизоры, рассчитывающие и сверяющие контрольные суммы файлов. Известный бутовый вирус под названием "One half" отслеживает чтение нулевой дорожки и показывает не истинное, а первозданное ее содержимое (нули), что затрудняет его обнаружение путем сличения при работе на зараженной системе (однако, запись некоторой сигнатуры - ненулевых повторяющихся значений помогает легко определить текущее состояние).


Автор: Admin
Опубликовано на сайте: http://nailman.wallst.ru
Прямая ссылка: http://nailman.wallst.ru/index.php?set=news&mc=readfull&do=20090905002102