Интернет-бизнес

Главная | Регистрация | Вход
Четверг, 16.05.2024, 01:57
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Статьи [28]
БАДы VISION
Главная » Статьи » Статьи

Вирусы

 


Вирусы. Они бывают разные - например, грипп, гепатит, герпес; а бывают еще и компьютерные. Вот о них, родимых, и поговорим. Что же это такое - компьютерный вирус?
 Объяснений, что такое компьютерный вирус, можно привести несколько. Самое простое - бытовое объяснение для домохозяйки, которая ни разу в жизни компьютера не видела, но знает, что Он есть, и что в Нем водятся Вирусы. Объяснение будет дано на примере клерка, работающего исключительно с бумагами. Идея такого объяснения принадлежит Д.Н.Лозинскому.

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

   Что сделает клерк? Дважды перепишет лист, положит его соседям на стол, уничтожит оригинал и перейдет к выполнению второго листа из стопки, т.е. продолжит выполнять свою настоящую работу. Что сделают соседи, являясь такими же аккуратными клерками, обнаружив новое задание? То же, что и первый: перепишут его по два раза и раздадут другим клеркам. Итого, в конторе бродят уже четыре копии первоначального документа, которые и дальше будут копироваться, и раздаваться на другие столы.

   Примерно так же работает и компьютерный вирус, только стопками бумаг-указаний являются программы, а клерком - компьютер. Так же как и клерк, компьютер аккуратно выполняет все команды программы (листы заданий), начиная с первой. Если же первая команда звучит как "скопируй меня в две другие программы", то компьютер так и сделает, - и команда-вирус попадает в две другие программы. Когда компьютер перейдет к выполнению других "зараженных" программ, вирус тем же способом будет расходиться все дальше и дальше по всему компьютеру.

   В приведенном выше примере про клерка и его контору лист-вирус не проверяет, заражена очередная папка заданий или нет. В этом случае к концу рабочего дня контора будет завалена такими копиями, а клерки только и будут что переписывать один и тот же текст и раздавать его соседям - ведь первый клерк сделает две копии, очередные жертвы вируса - уже четыре, затем 8, 16, 32, 64 и т.д., т.е. количество копий каждый раз будет увеличиваться в два раза. Если клерк на переписывание одного листа тратит 30 секунд и еще 30 секунд на раздачу копий, то через час по конторе будет "бродить" более 1.000.000.000.000.000.000 копий вируса! Скорее всего, конечно же, не хватит бумаги, и распространение вируса будет остановлено по столь банальной причине.

   Как это ни смешно (хотя участникам этого инцидента было совсем не смешно), именно такой случай произошел в 1988 году в Америке - несколько глобальных сетей передачи информации оказались переполненными копиями сетевого вируса (вирус Морриса), который рассылал себя от компьютера к компьютеру. Поэтому "правильные" вирусы делают так: "Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа". Проблема решена - "перенаселения" нет, но каждая стопка содержит по копии вируса, при этом клерки еще успевают справляться и с обычной работой.

   "А как же уничтожение данных?" - спросит хорошо эрудированная домохозяйка. Все очень просто - достаточно дописать на лист примерно следующее:
1. Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа.
2. Посмотреть на календарь - если сегодня пятница, попавшая на 13-е число, выкинуть все документы в мусорную корзину.

   Кстати, на примере клерка очень хорошо видно, почему в большинстве случаев нельзя точно определить, откуда, в компьютере появился вирус. Все клерки имеют одинаковые (с точностью до почерка) КОПИИ, но оригинал-то с почерком злоумышленника уже давно в корзине!

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

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

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

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

   Основная же особенность компьютерных вирусов - возможность их самопроизвольного внедрения в различные объекты операционной системы - присуща многим программам, которые не являются вирусами. Например, операционная система MS-DOS имеет в себе все необходимое, чтобы самопроизвольно устанавливаться на не-DOS'овские диски. Для этого достаточно на загрузочный флоппи-диск, содержащий DOS, записать файл AUTOEXEC.BAT следующего содержания:
SYS A:
COPY *.* A:\
SYS B:
COPY *.* B:\
SYS C:
COPY *.* C:\

   Модифицированная таким образом DOS сама станет самым настоящим вирусом с точки зрения практически любого существующего определения компьютерного вируса.

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

   Мнений по поводу даты рождения первого компьютерного вируса очень много. Доподлинно известно только одно: на машине Беббиджа его не было, а на Univac 1108 и IBM-360/370 они уже были ("Pervading Animal" и "Christmas tree"). Таким образом, первый вирус появился где-то в самом начале 70-х или даже в конце 60-х годов, хотя "вирусом" его никто еще не называл.

   Поговорим о новейшей истории: "Brain", "Vienna", "Cascade" и далее. Те, кто начал работать на IBM-PC аж в середине 80-х, еще не забыли повальную эпидемию этих вирусов в 1987-89 годах. Буквы сыпались на экранах, а толпы пользователей неслись к специалистам по ремонту дисплеев (сейчас все наоборот: винчестер сдох от старости, а валят на неизвестный передовой науке вирус). Затем компьютер заиграл чужеземный гимн "Yankee Doodle", но чинить динамики уже никто не бросился - очень быстро разобрались, что это - вирус, да не один, а целый десяток.

   Так вирусы начали заражать файлы. Вирус "Brain" и скачущий по экрану шарик вируса "Ping-pong" ознаменовали победу вируса и над Boot-сектором.

   Время шло, вирусы плодились. Все они были чем-то похожи друг на друга, лезли в память, цеплялись к файлам и секторам, периодически убивали файлы, дискеты и винчестеры. Одним из первых "откровений" стал вирус "Frodo.4096" - файловый вирус-невидимка (стелс). Этот вирус перехватывал INT 21h и, при обращении через DOS к зараженным файлам, изменял информацию таким образом, что файл появлялся перед пользователем в незараженном виде. Но это была только надстройка вируса над MS-DOS. Не прошло и года, как электронные тараканы полезли внутрь ядра DOS (вирус-невидимка "Beast.512"). Идея невидимости продолжала приносить свой плоды и далее: летом 1991 года пронесся, кося компьютеры как бубонная чума, вирус "Dir_II".

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

   Первый полиморфный вирус появился в начале 90-х кодов - "Chameleon", но по-настоящему серьезной проблема полиморфик-вирусов стала лишь год спустя - в апреле 1991-го, когда практически весь мир был охвачен эпидемией полиморфик-вируса "Tequila".

   Год 1995-й, август. Все прогрессивное человечество, компания Microsoft и Билл Гейтс лично празднуют выход новой операционной системы Windows95. На фоне шумного торжества практически незамеченным прошло сообщение о появлении вируса, использующего принципиально новые методы заражения - вируса, заражающего документы Microsoft Word.

   А вирус, получивший к тому времени имя "Concept", продолжал победное движение по планете. Появившись, скорее всего, в каком-то из подразделений Microsoft, "Concept" в мгновение ока завладел тысячами (если не миллионами) компьютеров. Это неудивительно, ведь передача текстов в формате MS Word стала де-факто одним из стандартов, а для того, чтобы заразиться вирусом, требуется всего лишь открыть зараженный документ, и все остальные документы, редактируемые в зараженном Word'e, также оказываются зараженными. В результате, получив по Интернету зараженный файл и прочитав его, пользователь, не зная того сам, оказывался "разносчиком заразы", и вся его переписка (если, конечно же, она велась при помощи MS Word) также оказывалась зараженной! Таким образом, возможность заражения MS Word, помноженная на скорость Интернета, стала одной из самых серьезных проблем за всю историю существования вирусов.

   Не прошло и года, как летом 1996-го года появился вирус "Laroux" ("Лару"), заражающий таблицы MS Excel. Как и в случае с вирусом "Concept", новый макро-вирус был обнаружен "в природе" практически одновременно в разных фирмах. Кстати, в 1997 году этот вирус стал причиной эпидемии в Москве.

   В том же 1996 году появились первые конструкторы макро-вирусов, а в начале 1997 года появились первые полиморфик-макро-вирусы для MS-Word и первые вирусы для MS Office97. Плюс к тому непрерывно росло число разнообразных макро-вирусов, достигшее нескольких сотен к лету 1997-го.

   Так что же происходит, когда вирус попадает в машину?

   Так как вирус - программа, которую написал человек, то, естественно, как и все программы, он имеет структуру, которая присуща и другим вирусам. Что главное для вируса? Основным параметром вируса является размножение, если, конечно, его не писали для определенных целей, типа добавить денег на счет "писателя" в каком-то банке. Поэтому главный блок любого вируса - это блок размножения. Как же строится этот "главный" блок вируса? Сколько разных идей было придумано программистами в этих целях? В первых модификациях только "заражали" файлы .cом, .exe, .sys, т.е. те, которые непосредственно содержали исполнимый код. Это понятно, но как искать эти файлы, ведь на диске так много каталогов? Первые модели брали пути, которые они прописывают в переменной PATH, и по ним искали "новые жертвы". Более поздние обыскивали весь диск, открывая по очередности все каталоги системы (очень долгий процесс, поэтому на компьютерах того времени это занимало довольно большой отрезок времени и сразу было видно - вирус). Позже стали делать "резиденты-вирусы". Они "вешались" в памяти и следили за тем, что делает ДОС. Как только ловили обращение системы к какому-то файлу - мгновенно заражали этот файл-бедняжку. Вот так-то. С этим, вроде, решили (как найти жертвы).

   Теперь непосредственно о заражении. Сперва поговорим о .com вирусах, т.е. заражающих .com файлы. Если вирус помещает свое тело в начале программы, его местоположение всегда жестко закреплено, при запуске этой зараженной программы он выполняется первым, при этом его легко "поймать", притом после своей работы он должен возвращать ту часть программы, на месте которой он расположился. Если тело вируса лежит в середине, то его максимально трудно поймать и вылечить файл, так как необходимо вычислить, где именно он находится, зато у вируса возникают проблемы - необходимо переносить после работы на свое место блок, который был там до заражения. Еще один подводный камень для вируса, передача ему управления. Ему необходимо где-то в начале сделать переход на точку выполнения, но вот только как делается такой переход? Был придуман "фиктивный" переход. Первый из них - это дописать в начале программы переход типа jmp addr, где addr - точка запуска вируса, а после выполнения "черных дел" вирус вернет на место этого jmp-а старый код, но при просмотре программ эту подмену можно легко заметить. Поэтому сейчас применяют более изощренный метод. Дело в том, что команда jmp и call - очень распространенные команды, и их использует практически любая программа. Поэтому вирус ищет в начале программы код, соответствующий jmp addr или call addr и вместо адреса в операнде подставляет свой, а после своего выполнения делает переход на старый адрес. Увидеть подмену адреса - довольно сложный процесс. Если же тело вируса лежит в конце, то у вируса возникают проблемы с запуском и возможностью легкого обнаружения, но при этом нет необходимости переносить блоки, на месте которых находится вирус.

   Теперь немного о заражении .exe файлов. У них есть заголовок, в котором прописаны очень важные данные, как-то: требуемый размер памяти, сегмент стека, и, что более важно, точка запуска программы. Следовательно, эту точку можно поменять так, чтобы она как раз попадала на вирус, который может располагаться опять-таки, в трех местах (об этом говорилось выше). Теперь, казалось бы, берется метод заражения файла с допиской тела вируса в конец, и меняется точка запуска на точку запуска вируса. Но при таком расположение вируса его легко обнаружить (антивирусы ругают те программы, у которых точка пуска лежит в конце, ибо это редкость). Еще один камушек для вируса - существование у .exe файлов оверлеев, т.е. кусков кода, которые при запуске не грузятся в память, а их по необходимости подгружают впоследствии. Так, если вирус цепляется в конце файла, то у него нет гарантии, что он будет находиться в памяти после запуска. Для этого находится абсолютный конец, т.е. такой участок, где заканчивается сама программа и начинаются оверлеи. Потом сюда вписывается вирус, а оверлеи сдвигают на длину вируса. Другие методы с допиской вируса в начало или середину тоже используются при написании .exe вирусов. Но они для запуска тела в коде программы уже ищут не jmp addr и call adrr, а jmp far addr и call far addr, т.к. .exe файлы нередко превышают длину одного сегмента. Не стоит забывать и о заражении boot и master-boot секторов. Этот способ повел за собой целую цепочку бутовых вирусов. Дело в том, что в boot-записи, которая, для незнающих, находится на диске, в 1 секторе, 0 головке, 0 цилиндре, записана программа, которая "загружает" ОС. Эта программа пускается в самом начале работы, т.е. как только определено наличие жесткого диска. Именно программа, записанная в этой записи, "выкрикивает" известное сообщение: Non system disk or disk error!!!

   Так вот туда и помещают вирус, который получает управление еще до загрузки операционной системы. Конечно, он не может использовать дисковых операций на уровне DOS, но может, в крайнем случае, "повесится" резидентом в память. Следует заметить еще одну интересную вещь. При заражении "умные" вирусы стараются заразить, прежде всего, дискеты, т.к. эти дискеты могут перенести на другой компьютер и... тады ой.

   После блока заражения идет второй уже "необязательный" блок - тот, которого боятся все пользователи. Это блок действия. Именно этот блок является "приятной неожиданностью" в работе вируса. Обычно он запускается не сразу. Только "глупый" вирус выдает свое присутствие сразу. Умный сначала размножится так, чтобы система была уже "обречена", и узнает о существовании вируса пользователь или нет - уже не имеет значения. Чаще всего в теле вируса имеется некий счетчик (Counter), в котором учитывается число "успешных" заражений. После того, как счетчик достигнет определенного значения, идет запуск блока действия. А в еще более изощренных модификациях существуют 2 счетчика. Первый тоже содержит число зараженных файлов, а второй - число зараженных файлов на дискетах. И только когда оба счетчика достигнут определенного значения, запускается блок действия. Зачем это делается? Да ведь если вирус, скажем, заразит на жестком диске 1000 файлов и отформатирует его, то он сам себя и убьет. И не достигнет основной цели - выжить. Именно содержимое блока действия создало такое pазнообpазие вирусов, что очень трудно перечислить все модификации, но основные виды можно попробовать. Первый тип - безобидные демонстpатоpы. Они не делают ничего плохого, только мешают пользователю в работе. Скажем, вдруг на экране появляется красный теннисный мячик и, отбиваясь от символов, скачет по экрану. Или ни с того ни с сего начинают опадать буквы вниз (а-ля листопад). Далее следует группа так называемых пугающих вирусов. В принципе их можно отнести к первой группе, но действие этих вирусов очень интересно. Они обычно очень правдиво и популярно рассказывают пользователю о том, что сейчас, к примеру, его жесткий диск будет отформатирован. И потихоньку рисуют быстро меняющийся индикатор процентов очищенного пространства. Новичок-пользователь увидев это (скорее всего), потеряет сознание или, что еще хуже, получит разрыв сердца. Чаще всего, конечно, это шутки, хотя не всегда. Следом идет не менее обширная группа так называемых разрушающих вирусов. Их задачей, естественно, является разрушение. Самое примитивное, что они могут сделать, это отформатировать жестокий диск, дискету или стереть BIOS. Но при этом вирус убьет и себя. Интереснее было бы сделать так, чтобы вирус показал свое присутствие, но в то же время пользователь не мог так просто от него избавиться. Извращенные умы нашли и здесь очень тонкий метод. Представьте себе картину: вирус закодировал вам жесткий диск. И только в том случае, если вирус запущен и находится в памяти, DOS в состоянии прочесть ту закодированную информацию. Таким образом, пользователь просто обязан запускать вирус. Тем самым вирусописатель достиг высшей стадии, когда уже вирус не должен искать лазейки для своего запуска, а сам пользователь уже его запускает. Вот это метод! Или, скажем, считать FAT и скопировать его в абсолютно другое место на диске, а на его месте написать всякую белиберду. Опять же без запуска вируса у пользователя система не будет корректно работать.

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

   И напоследок небольшая памятка:

  • вирус не может передаться по воздуху или через другую среду, его можно только принести на дискете, скачать из Сети или загрузить с жесткого диска, запустив зараженный файл;
  • если компьютер стоит выключенный, то вирусы не могут ничего там испортить;
  • если вы просто вставили дискету и не запустили с нее ни одного файла, а также не стартовали с нее систему, то вирус с дискеты не попадет в компьютер, т.е. вы можете смело просматривать содержимое дискет, не боясь заражений;
  • по сети нельзя просто так заразиться вирусом. Можно только получить заразный файл, который заразит ваш компьютер только после своего запуска;
  • если наступила пятница 13, а вы вчера проверяли компьютер на наличие вирусов, то смело запускайте компьютер, это не такой уж знаменательный день. Вирус может активизироваться и, например, 23 июля;
  • не верьте сплетням о том, что вирусы разрушили у кого-то "железо" на компе. Все это бред, максимум, что возможно, так это отформатировать носитель, ну или стиреть BIOS;
  • и вообще, если вы будете проверять антивирусными средствами все приходящие файлы (на дисках и/или по сети), и раз в неделю проверять весь компьютер, то смело можете, не боятся вирусов;
  • если уж вирус на вашем компе, то не отчаивайтесь, а запустите антивирус;
  • если антивирус обнаружил и излечил файлы на вашем компе от вирусов, а они вскоре опять появились, то подумайте, что вы успели поназапускать за прошедшее от момента тестирования время. Если вы распаковывали архив и запускали файлы из него, значит, наверняка там вирус и сидит. Не в файле-архиве, а в заархивированном в нем файле. Необходимо распаковать архив, проверить и снова запаковать;
  • постоянно обновляйте антивирусные базы;
  • если вы получили вирус по почте, не стоит писать в ответ гневное письмо - скорее всего, отправитель сам стал жертвой, а вирус отослал себя сам, с его машины, найдя ваш почтовый адрес в базе компьютера.

При написании заметки использовался материал статей Евгения Касперского и Дениса Морозова.

Категория: Статьи | Добавил: TinMan (09.07.2009)
Просмотров: 1518 | Рейтинг: 5.0/1 |
Всего комментариев: 0
Форма входа

WMR-бонус на свой кошелек!

WMR-бонус на свой кошелек!
Web-IP.ru - Система Активной Рекламы WMmail.ru - сервис почтовых рассылок

Tin Man © 2024 | Бесплатный конструктор сайтов - uCoz