Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Программированиеи компьютеры /

Компьютерные вирусы

←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 



Скачать реферат


последовательности команд подобного типа крайне подозрительно:

Start:

call Metka

Metka: pop

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

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

- Подозрение вызывают расположенные в начале программы, написанной на языке высокого уровня, фрагменты видоизменения собственного кода, вызовы DOS- или BIOS-прерываний и прочее. Желательно визуально помнить характерные начала программ, скомпилированных в той или иной системе программирования (на-пример, начала программ, написанных на Turbo Pascal, содержат большое количество дальних вызовов подпрограмм call xxxx:xxxx).

- Наконец, о наличии вируса могут свидетельствовать строки типа внутри файла.

7. Ловля вируса . Итак, допустим, что наличие вируса в системе доказано одним из предложенных выше методов, и зараженные вирусом объекты определены. Теперь можно начать изучение вируса и, вслед за этим, попытаться удалить его с машины. Желательно послать образец вируса профессиональным вирусологам. А для этого необходимо выделить вирус в чистом виде.

а) Выделение загрузочного вируса. Как уже говорилось выше, есливи рус заразил винчестер, необходимо при помощи программы DiskEditor сохранить в файле образ зараженного объекта (например, сектора 0/0/1 или всей нулевой дорожки). Но, как известно, загрузочные вирусы только в системных областях винчестера, размножаются же они, заражая системные области дискет. Поэтому смотрим на лицевую панель компьютера. Еслив наличии дисководы обоих типов (3.5" и 5.25"), то придется отформатировать 4 дискеты на 4 стандартных формата: 360 Кбайт, 720 Кбайт, 1.2 Мбайт и 1.44 Мбайт. Затем при помощи программы DiskEditor внимательно рассмотрим и постараемся запомнить внешний вид boot-секторов этих дискет (0/0/1), хотя бы первые байты (естественно, все это делается на чистой машине). Вставляем не защищенные от записи дискеты по очереди в дисководы машины и (обязательно) обращаемся к ним: пытаемся прочитать каталог, записать, прочитать и удалить какие-либо файлы. Наконец, на чистой машине при помощи DiskEditor вновь просматриваем сектор 0/0/1. Если на какой-либо дискетеон изменился, при помощи того же DiskEditor снимаем образ всей дискеты в файл. Вирус пойман. Можно упаковать файл каким-нибудь архиватором и послать его вирусологу. Некоторые хитрые вирусы хранят свое тело на дополнительной, специально отформатированной дорожке, так называемом инженерном цилиндре дискеты. В этом случае без пакета копирования ключевых дискет типа fda, teledisk или copymaster не обойтись.

б) Выделение резидентного вируса. Как известно, резидентный вирус постоянно находится в памяти ПЭВМ, выбирая жертву для заражения. Наиболее часто в качестве жертв выступают запускаемые программы. Однако файлы программ могут заражаться при открытии, копировании на дискету или с нее (вирус OneHalf), вовремя поиска при помощи DOS-функций FindFirst или FindNext. Необходимо подобрать подходящего претендента на заражение - небольшую программу простой структуры, приманку. Некоторые вирусы пытаются распознать приманку и отказываются от ее заражения. Не подходят для таких целей слишком короткие программы или такие, большая часть которых состоит из повторяющихся байт (например, 90h - код команды NOP). В качестве приманки с большим успехом можно использовать программы test.coin и test.exe. Вот их исходные текстына языке Assembler.

test.com

cseg segment

assume cs:cseg, ds:cseg, ss:cseg

org 100h

Start:

db 1249 dup (OFAh,90h,OFBh,OF8h)

mov ah,4Ch

int 21 h

cseg ends

End Start

test.exe

cseg segment

assume cs:cseg, ds:cseg

Start:

db 1000 dup (0FAh,90h,0FBh,0F8h)

mov ah,4Ch

int 21 h

cseg ends

sseg segment stack

assume ss:sseg

db 118 dup (OFAh,90h,OFBh,OF8h)

sseg ends

End Start

Скопируем приманки на зараженную машину. Выполним над ними как можно больше операций: запустим, скопируем в другое место винчестера и на дискету, переместим, просмотрим их в NC и DOS (командой dir). При этом желательно несколько раз поменять системное время и дату, потому что вирусы нередко активны не каждый день и не круглые сутки. Чтобы исключить Stealth-эффект, загрузимся с чистой дискеты и рассмотрим внимательно эти файлы. Как правило, достаточно бывает проконтролировать размер файлов и просмотреть их код припомощи F3 - наличие вируса определить несложно.

в) Выделение нерезидентного файла. Самый неприятный случай. Помимо того, что вирус нередко привередничает, распознавая приманку, и по-прежнему отказывается работать , так еще и заражаемость программ сильно зависит от их расположения на винчестере. Одни нерезидентные вирусы заражают только в текущем каталоге, другие - только в подкаталогах 1-го уровня, третьи - в каталогах, указанных в строке path системной среды (Vienna), четвертые - вообще во всех каталогах винчестера. Поэтому воспользуемся программой типа rt, чтобыскопировать приманки во все каталоги диска (запускаем из корневого каталога):

rt copy a:test.* .

Точка в конце - символ текущего каталога. Потом их можно будет

удалить:

rt del test.*

Теперь выбираем заведомо зараженную программу и запускаем ее N раз,постоянно изменяя время и дату. Проконтролировать изменение длины поможет та же программа rt:

rt dir test.* >test.txt

Получаем файл test.txt, содержащий список файлов test.* с указаниемих длины. Выбираем тот файл приманки, который изменил длину.

Вот вирус и пойман.

Как исследовать алгоритм работы вируса

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

1. Прежде чем перейти к рассмотрению этого вопроса, вспомним неко-торые принципы функционирования MS DOS.Структура СОМ- и ЕХЕ-программ. Вообще говоря, следует отличать СОМ- и ЕХЕ-программы от СОМ- и ЕХЕ-файлов. Дело в том, что в настоящее время расширение СОМ или ЕХЕ является просто признаком (кстати, необязательным) запускаемой программы. Способ загрузки программы в память и ее запуска определяется операционной системой по внутреннему формату программы. Этот факт часто не учитывали авторы первых вирусов, что приводило к уничтожению некоторых программ вместо их заражения. СОМ-программа представляет собой часть кода и данных, которая начинается с исполняемой команды и занимает не более 64Кбайт. Например, такую структуру имеет командный процессор COMMAND.СОМ операционной системы MSDOS до версии 6.22 включительно. Структура ЕХЕ-программы гораздо сложнее. В начале файла ЕХЕ-программы располагается заголовок (см. приложение). Поля ReloCS и ExelP определяют расположение точки входа в программу, поля ExeSP и ReloSS - расположение стека, поля PartPagи PageCnt - размер корневого сегмента программы. Размер некоторых программ, вычисленный по полям PartPag и PageCnt, может не совпадать с реальным размером файла. Такие программы называются или . Опытные авторы вирусов избегают заражать такие программы. После заголовка может размещаться специальная таблица, точное месторасположения которой определяется полем TablOff, а размер - полем ReloCnt. В этой таблице хранятся адреса тех слов в коде программы, которые модифицируются операционной системой во времязагрузки программы. Например, просматривая файл программы припомощи утилиты HackerView, можно видеть команду call0000:1234h. В процессе загрузки программы MS-DOS подставит вместо нулей нужный сегментный адрес, и все будет работать корректно. Кстати, если в поле TablOff указано число 40h или больше, то, скорее всего, это программа в формате Windows. Подобный формат имеет, например, командный процессор Windows 95 COMMAND.COM. Несмотря на свое расширение, он имеет в начале знаменитые символы и длину 95Кбайт.

2. Приступаем к исследованию конкретного файлового вируса и разработке алгоритма его лечения. В качестве жертвы возьмем широко известный в начале 90-х годов вирус SVC-1740. Выбор определился следующими обстоятельствами:

- это очень простой вирус с четкой структурой;

- он не содержит деструктивных функций;

- не содержит грубых ошибок в алгоритме;

- он стандартно заражает СОМ- и ЕХЕ-программы.Запустив SVC вирус на своей машине, можно наблюдать следующие его проявления.

а) В MS-DOS успели заразиться файлы ARCVIEW.EXE,HIEW.EXE и LEX.EXE. В результате HackerView, проверяющий целостность своего кода, отказался работать, сообщив: .

6) Windows 3.11 и Windows 95 сначала запустились корректно, нозатем продемонстрировали разноцветные горизонтальные полосы в видеорежиме 800х600х256 (вирус не заражал какие-либо драйвера, просто в момент старта Windows в памяти находился вирусный обработчик прерывания INT 21h). Излечение пришло после использования антивирусов: DrWeb с: /с р /а1 и AidsTest с: /f /g /q

3. При помощи ранее описанных методов

←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 



Copyright © 2005—2007 «Mark5»