Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Глава 5. КОМПЬЮТЕРНЫЕ ВИРУСЫ





И АНТИВИРУСНЫЕ ПРОГРАММЫ

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

Компьютерный вирус — это специально написанная, небольшая по размерам программа (т. е. некоторая совокупность выполняемого кода), которая может «приписывать» себя к другим программам («заражать» их), создавать свои копии и внедрять их в файлы, системные области компьютера и т. д., а также выполнять различные нежелательные действия на компьютере.

По-видимому, самым ранним примером могут служить первые прототипы будущих вирусов — программы-кролики. Не причиняя разрушений, они тем не менее были сконструированы так, что многократно копируя себя, захватывали большую часть ресурсов системы, отнимая процессорное время у других задач. История их создания доподлинно не известна. Возможно, они явились следствием программной ошибки, которая приводила к зацикливанию и наделяла программу репродуктивными свойствами. Первоначально кролики (rabbits) встречались только на локальных машинах, но с появлением сетей быстро «научились» распространяться по последним.

Затем, в конце 60-х годов была обнаружена саморазмножающаяся по сети APRAnet программа, известная сегодня как Creeper (Вьюнок), которая будто бы была написана Бобом Томасом (Bob Thomas).

Вьюнок проявлял себя текстовым сообщением

" i'm the creeper... catch me.if you can"

(" я вьюнок... поймай меня, если сможешь")

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

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

Первым шагом в борьбе против Вьюнка стал Жнец (Reaper), репродуцирующийся наподобие Вьюнка, но уничтожающий все встретившиеся ему копии последнего. Неизвестно, чем закончилась борьба двух программ. Так или иначе от подобного подхода к защите впоследствии отказались. Однако копии обеих программ еще долго бродили по сети.

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

• способности к саморазмножению;

• высокой скорости распространения;

• избирательности поражаемых систем (каждый вирус поражает только определенные системы или однородные группы систем);

• способности «заражать» еще незараженные системы;

• трудности борьбы с вирусами и т. д.

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

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

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

Например, вирус Anti-MIT ежегодно 1 декабря разрушает всю информацию на жестком диске, вирус Tea Time мешает вводить информацию с клавиатуры с 15:10 до 15:13, а знаменитый One Half незаметно шифрует данные на жестком диске. В 1989 году американский студент сумел создать вирус, который вывел из строя около 6000 компьютеров Министерства обороны США. Эпидемия известного вируса Dir-II разразилась в 1991. году. Вирус использовал действительно оригинальную, принципиально новую технологию и на первых порах сумел широко распространиться за счет несовершенства традиционных антивирусных средств. Кристоферу Пайну удалось создать вирусы Pathogen и Queeq, а также вирус Smeg. Именно последний был самым опасным, его можно было накладывать на первые два вируса и из-за этого после каждого прогона программы они меняли конфигурацию. Поэтому их было невозможно уничтожить. Чтобы распространить вирусы, Пайн скопировал компьютерные игры и программы, заразил их, а затем отправил обратно в сеть. Пользователи загружали в свои компьютеры зараженные программы и инфицировали диски. Ситуация усугубилась тем, что Пайн умудрился занести вирусы и в программу, которая с ними боролась. Запустив ее, пользователи вместо уничтожения вирусов получали еще один. В результате действий этого вируса были уничтожены файлы множества фирм, убытки составили миллионы фунтов стерлингов.

Широкую известность получил американский программист Мор-рис. Он известен как создатель вируса, который в ноябре 1988 года заразил порядка 7 тысяч персональных компьютеров, подключенных к Internet.

Первые исследования саморазмножающихся искусственных конструкций проводились в середине прошлого столетия. Термин «компьютерный вирус» появился позднее — официально его автором считается сотрудник Лехайского университета (США) Ф.Коэн, который ввел его в 1984 году на 7-й конференции по безопасности информации.

Эксперты считают, что на сегодняшний день число существующих вирусов перевалило за 50 тысяч, причем ежедневно появляется от 6 до 9 новых. «Диких», то есть реально циркулирующих, вирусов в настоящее время насчитывается около 260.

Классификация вирусов

Один из авторитетнейших «вирусологов» страны Евгений Касперский предлагает условно классифицировать вирусы по следующим признакам:

• по среде обитания вируса;

• по способу заражения среды обитания;

• по деструктивным возможностям;

• по особенностям алгоритма вируса.

Более подробная классификация внутри этих групп представлена на рис. 5.1.

Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с Дискеты, содержащей вирус. Такое заражение может быть и случайным, например если дискету не вынули из дисковода А: и перезагрузили компьютер, при этом дискета может быть и несистемной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление.

Способы заражения программ

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

• метод оттеснения. Код вируса располагается в начале зараженной программы, а тело самой программы приписывается к концу.

• метод вытеснения. Из начала (или середины) файла «изымается» фрагмент, равный по объему коду вируса, и приписывается к концу файла. Сам вирус записывается в освободившееся место. Разновидность метода вытеснения — когда оригинальное начало файла не сохраняется вообще. Такие программы являются «убитыми насмерть» и не могут быть восстановлены никаким антивирусом.

• прочие методы. Сохранение вытесненного фрагмента программы в «кластерном хвосте» файла и пр.

Структура СОМ- и ЕХЕ-программ

СОМ-программа представляет собой участок кода и данных, начинающийся с исполняемой команды и занимающий не более 64Кбайт. Например, такую структуру имеет командный процессор COMMAND.СОМ операционной системы MSDOS, версий до 6.22 включительно.

ЕХЕ-программа имеет гораздо более сложную структуру. В начале файла ЕХЕ-программы располагается заголовок длиной. 28 байт, содержащий следующие данные:

• MZш — признак ЕХЕ-файла;

• PartPag — длина файла по модулю 512;

• PageCnt — длина файла в 512-байтовых страницах;

• ReloCnt — размер настроечной таблицы;

• HdrSize—размер заголовка;

• MinMem—минимум требуемой памяти;

• MaxMem — максимум требуемой памяти;

• Relo-SS — относительный сегмент стека;

• ExeSP — смещение указателя стека;

• ChkSum — контрольная сумма файла;

• ExelP — смещение точки входа;

• ReloCS — относительный сегмент точки входа;

• TablOff— смещение настроечной таблицы;

• Overlay — номер оверлейного сегмента.

Поля ReloCS и ExelP определяют местоположение точки входа в программу, поля ExeSP и ReloSS — местоположение стека, поля PartPag и PageCnt — размер корневого сегмента программы.

Вычисленный по PartPag и PageCnt размер программы может не совпадать с реальным размером файла. Такие программы называются «сегментированными» или «содержащими внутренние оверлеи». Грамотные авторы вирусов избегают заражать такие программы.

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

Стандартные методы заражения.

Случай СОМ-программы. Тело вируса приписывается к концу файла, где-то внутри его сохраняются несколько (обычно, три) байтов оригинального начала программы, на их место записываются команды перехода на начало вируса. Когда вирус заканчивает выполнение предусмотренных им действий, он восстанавливает оригинальные байты начала программы и передает туда управление.

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

Как работает вирус

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

Эта программа тестирует оборудование и при успешном завершении проверок пытается найти дискету в дисководе А:

Всякая дискета размечена на секторы и дорожки, секторы объединяются в кластеры.

Среди секторов есть несколько служебных, используемых операционной системой для собственных нужд (в этих секторах не могут размещаться данные пользователя). Среди служебных секторов представляет интерес один — т. н. сектор начальной загрузки (boot-sector).

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

Таким образом, нормальная схема начальной загрузки следующая:







ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.