Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Безруков Н.Н. Весь текст 1232.53 Kb

Компьютерная вирусология ч. 1

Предыдущая страница Следующая страница
1 ... 8 9 10 11 12 13 14  15 16 17 18 19 20 21 ... 106
телям. Особую  опасность с точки зрения распространения компьютер-
ных вирусов  представляют любители  компьютерных игр, обычно слабо
знающие операционную систему и не вполне понимающие смысл выполня-
емых ими действий. Такие пользователи подвергают значительному ри-
ску своих коллег, работающих с ними на одной ПЭВМ.
  Упрощенно процесс  заражения вирусом  программных  файлов  можно
представить следующим образом. Код зараженной программы обычно из-
менен таким образом, чтобы вирус получил управление первым, до на-
чала работы  программы-вирусоносителя (рис.2). При передаче управ-
ления вирусу,  он каким-то  способом находит новую программу и вы-
полняет вставку собственной копии в начало (рис.2б) или добавление
ее в конец этой, обычно еще не зараженной, программы (рис.2а). Ес-
ли вирус  дописывается в  конец программы,  то он корректирует код
программы, чтобы  получить управление первым. Для этого первые не-
сколько байтов  запоминаются в теле вируса, а на их место вставля-
ется команда  перехода на начало вируса. Этот способ является наи-
более распространенным.  Получив управление, вирус восстанавливает
"спрятанные" первые  байты, а после отработки своего тела передает
управление программе-вирусоносителю, и та нормально выполняет свои
функции. Возможны  случаи, когда вирус включает себя куда-то в се-
редину программы,  например, в  область стека  (рис.2в). Последние
случаи встречаются редко.

+------------------+  +-------------+ +------------------+
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|+Команда перехода+|+ |+++++++++++++| |+Команда перехода+|+
|++++++++++++++++++|| |+Тело вируса+| |++++++++++++++++++||
|------------------|| |+++++++++++++| |------------------||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|+  ЗАРАЖЕННАЯ  +++|| |+++++++++++++| |+   НАЧАЛО     +++||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|+  ПРОГРАММА    ++|| |+++++++++++++| |+  ЗАРАЖЕННОЙ  +++||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|+ (COM - ФАЙЛ)  ++|| |+++++++++++++| |+  ПРОГРАММЫ    ++||
|++++++++++++++++++|| |+ЗАРАЖЕННАЯ +| |++++++++++++++++++||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|++++++++++++++++++|+ |+ПРОГРАММА  +| |++++++++++++++++++|+
|++++Тело вируса+++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+COM - ФАЙЛ)+| |++++Тело вируса+++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|+Спрятанные байты+|  |+++++++++++++| |+Спрятанные байты+|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
+------------------+  +-------------+ |------------------|
        а                    б        |++++++++++++++++++|
                                      |+    КОНЕЦ     +++|
 Рис. 2.                              |++++++++++++++++++|
 Схема заражения вирусом COM-файлов:  |+  ЗАРАЖЕННОЙ  +++|
  а - в конец программы;              |++++++++++++++++++|
  б - в начало программы;             |+  ПРОГРАММЫ    ++|
  в - в середину программы.           |++++++++++++++++++|
                                      +------------------+
                                               в



                2.4. Анатомия компьютерного вируса

  Наиболее распространенными  типами компьютерных вирусов в MS DOS
являются файловые  нерезидентные, файловые  резидентные и  бутовые
вирусы. Многие  из пользователей  имеют ограниченный опыт работы с
МS DOS. В то же время, для понимания функционирования файловых ви-
русов и  средств защиты  от них  важно понимать структуру файловой
системы и  прерываний MS  DOS. Поэтому  в приложении  6 приводится
краткий обзор  структуры файловой системы MS DOS, в приложении 7 -
структуры исполняемых  файлов и  некоторых управляющих блоков, а в
приложениях 8 и 9 є сведения о прерываниях. Более подробные сведе-
ния можно  получить в учебниках по языку ассемблера [Скенлон89], в
электронном справочнике  TECHHELP, а  также книгах П.Нортона [Нор-
тон90] и  Жордена. Разбор  анатомии компьютерных  вирусов начнем с
анализа структуры  нерезидентного файлового вируса, как простейшей
разновидности этого класса системных программ.
  Структурно компьютерный  вирус можно  представить  состоящим  из
двух частей:  головы и  хвоста. Головой  называется часть  вируса,
которая первой получает управление. Хвост вируса - это части виру-
са, расположенные  отдельно от  головы. В  простейшем случае вирус
может состоять  из одной  головы, и  действительно файловые вирусы
обычно так  и устроены.  Такие вирусы будем называть несегментиро-
ванными. В отличие от них сегментированные вирусы имеют располага-
ющийся отдельно хвост и в какой-то мере аналогичны оверлейным фай-
лам. Примером  сегментированных вирусов  являются бутовые  вирусы,
хотя возможна реализация сегментированных файловых вирусов.


         2.4.1. Структура файлового нерезидентного вируса

  Файловые вирусы  являются  наиболее  распространенной  разновид-
ностью компьютерных  вирусов. Принципиально они заражают любой тип
исполняемых файлов,  существующих в  MS DOS:  COM, EXE, OVL и т.д.
Однако основными  объектами заражения  являются файлы  типа COM  и
файлы типа  EXE. Некоторые сведения о структуре этих файлов приве-
дены в  прил. 6. Наиболее просто осуществляется заражение COM-фай-
лов, которые  представляют собой почти точную копию участка памяти
с загруженной программой. Единственная требуемая настройка при за-
грузке COM-файлов состоит в загрузке сегментных регистров значени-
ями, соответствующими месту загрузки программы. Значительная часть
COM-файлов начинается  с команды  перехода, обходящей содержащие в
начале программы данные.
  При заражении  COM-файлов вирус  запоминает в  своем теле первые
три или больше байтов программы и вместо них записывает переход на
начало собственного кода. Так поступает большинство файловых виру-
сов, заражающих  COM-файлы, но не все. Дело в том, что при дописы-
вании тела вируса в конец заражаемого файла весь код вируса должен
быть написан специальным образом, обычно называемым позиционно-не-
зависимым программированием:  при выполнении  программы все ссылки
должны адресоваться через соответствующее смещение, которое обычно
хранится в одном из регистров.
  Некоторые вирусы используют более примитивный подход: вместо до-
писывания своего тела в конец заражаемого COM-файла они перемещают
туда первые  несколько блоков  программы, а  сами записываются  на
место освободившихся  блоков. Так,  например, поступает вирус RCE-
1813. В  этом случае только программа восстановления исходного со-
стояния программы должна быть позиционно-независимой или она долж-
на размещаться  где-то в  фиксированных адресах  памяти, используя
какой-то неиспользуемый ее участок.
   Простейший  нерезидентный компьютерный  вирус, заражающий  COM-
файлы в  текущем каталоге  и дописывающий свое тело в конец файла,
можно представить в виде следующей неформальной спецификации.
  Шаг 1: Восстановить  первые   три  байта  программы.  Три  байта
зараженной программы,  сохраненные в  теле вируса, пересылаются на
свое старое место.
  Шаг 2: Проверить среду.  Проверить версию  операционной системы.
Если не подходящая, то перейти к шагу 11.
  Шаг 3: Найти очередную  жертву(ы). Найти в текущем каталоге оче-
редной файл типа COM. При неудаче перейти к шагу 11.
  Шаг 4: Проверить зараженность  потенциальной жертвы. Считать об-
ласть, позволяющую  установить, заражен ли уже данный файл вирусом
или нет. Проверить содержимое этой области. Если файл уже заражен,
то перейти к шагу 3, иначе перейти к шагу 5.
  Шаг 5: Проверить, подходит  ли жертва  для заражения. Если длина
файла + длина вируса больше 64К, перейти к шагу 3, иначе перейти к
шагу 6.
  Шаг 6: Снять атрибут READ ONLY, запомнить дату создания програм-
мы. Снять указанный атрибут и запомнить в своем теле дату создания
программы.
  Шаг 7: Обеспечить передачу управления вирусу. Считать первые три
байта зараженной  программы и  записать их в своем теле. Сформиро-
вать команду  перехода на  байт, следующий  за концом программы, и
записать соответствующие  три байта в начало заражаемой программы.
При неудаче перейти к шагу 11, иначе перейти к шагу 8.
  Шаг 8: Дописать тело  вируса в конец заражаемой программы. Пере-
двинуть указатель файла в конец программы и установить режим доза-
писи. Переписать  свое тело в конец заражаемой программы. При неу-
даче перейти к шагу 11, иначе перейти к шагу 9.
  Шаг 9: Восстановить дату создания зараженной программы. Записать
в элемент  каталога, соответствующий  заражаемой программе,  дату,
сохраненную в теле вируса.
  Шаг 10: Восстановить атрибут  READ ONLY.  Присвоить  заражаемому
файлу атрибуты, установленные у файла до заражения и сохраненные в
теле вируса.  При неудаче  перейти к шагу 11, иначе перейти к шагу
10.
  Шаг 11: Выход. Восстановить  содержимое регистров и передать уп-
равление программе-вирусоносителю.
  Как видно из приведенной схемы, данный вирус распространяется не
мгновенно по  всей файловой системе, а постепенно, по мере зараже-
ния файлов в текущем каталоге. Поэтому от момента появления в фай-
ловой системе первого зараженного файла до заражения всех файлов в
каталоге должно пройти некоторое время, зависящее от интенсивности
использования зараженной программы.
  Наиболее уязвимыми с точки зрения блокирования размножения виру-
са являются  шаг 6 (попытка снятия атрибута READ ONLY), шаги 7,8 є
запись в  файл, содержащий  исполняемую программу, и шаг 9 є уста-
новка даты создания файла, отличающейся от текущей. Для блокирова-
ния этих шагов обычно используются различные резидентные программы
(см. ниже). Кроме того, если на шаге 4 вирус использует для марки-
ровки зараженных  файлов легко  воспроизводимый признак (например,
простановку в  поле даты значения 62 секунды є излюбленный признак
для файловых вирусов), можно блокировать его распространение, при-
своив этот  признак всем  заражаемым данным  вирусом файлам.  Этот
прием используется  так называемыми программами-вакцинами (см. ни-
же).
  Вставка тела  вируса при заражении может выполняться не только в
хвост. Код вируса может имплантироваться в начало, конец или сере-
дину файла.
  1) Вставка  в начало  файла. В этом случае первые блоки (или все
тело) заражаемой  программы обычно переписываются в конец, поэтому
до передачи управления зараженной программе вирус должен предвари-
тельно переписать  эти блоки (или все тело) на первоначальное мес-
то, заменив ими собственный код. С этой целью вирус должен переме-
стить свое  тело или хотя бы соответствующую часть своего кода та-
ким образом, чтобы она не была затерта в процессе операции переза-
писи. Некоторые  примитивные вирусы, записываясь в начало заражае-
мого файла,  не сохраняют  его содержимого. При этом, естественно,
зараженный файл  уничтожается, а вирус, получив управление, должен
как- то  замаскировать тот факт, что вызываемая программа является
неработоспособной. Для  этой цели иногда используется какое-нибудь
подходящее сообщение об ошибке.
  2) Вставка в конец файла. При этом необходимо обеспечить переда-
чу управления  коду вируса  до начала работы зараженной программы.
Для файлов  типа COM  это обеспечивается заменой нескольких первых
байтов программы  (обычно трех  в соответствии с размером кода ко-
манды перехода  микропроцессора 8088/8086)  на команду  перехода к
началу вируса  (инсталлятору). При  этом сами  первые байты обяза-
тельно должны быть сохранены где-то в теле вируса, что обеспечива-
ет возможность их восстановления (операция поиска этих трех байтов
является составной  частью работы  любого фага). Когда инсталлятор
вируса получает  управление, то  обычно в  начале своей  работы он
Предыдущая страница Следующая страница
1 ... 8 9 10 11 12 13 14  15 16 17 18 19 20 21 ... 106
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (3)

Реклама