Компьютерные вирусы (работа 4)
Компьютерный вирус - это специально написанная небольшая по размерам программа, которая может "приписывать" себя к другим программам (т.е. "заражать" их),а также выполнять различные нежелательные действия на компьютере. Программа, внутри которой находится вирус, называется "зараженной". Когда такая программа начинает работу, то сначала управление получает вирус. Вирус находит и "заражает" другие программы, а также выполняет какие-нибудь вредные действия (например, портит файлы или таблицу размещения файлов на диске, "засоряет" оперативную память и т.д.). Для маскировки вируса действия по заражению других программ и нанесению вреда могут выполняться не всегда, а, скажем, при выполнении определенных условий. После того как вирус выполнит нужные ему действия, он передает управление той программе, в которой он находится, и она работает также, как обычно. Тем самым внешне работа зараженной программы выглядит так же, как и незараженной.
Многие разновидности вирусов устроены так, что при запуске зараженной программы вирус остается резидентно, т.е. до перезагрузки DOS, в памяти компьютера и время от времени заражает программы и выполняет вредные действия на компьютере.
Компьютерный вирус может испортить, т.е. изменить ненадлежащим образом, любой файл на имеющих в компьютере дисках. Но некоторые виды файлов вирус может "заразить". Это означает, что вирус может "внедриться" в эти файлы, т.е. изменить их так, что они будут содержать вирус, который при некоторых обстоятельствах может начать свою работу.
Следует заметить, что тексты программ и документов, информационные файлы без данных, таблицы табличных процессоров и другие аналогичные файлы не могут быть заражены вирусом, он может их только испортить.
ПРОЯВЛЕНИЕ НАЛИЧИЯ ВИРУСА В РАБОТЕ НА ПЭВМ
Все действия вируса могут выполняться достаточно быстро и без выдачи каких-либо сообщений, поэтому пользователю очень трудно заметить, что в компьютере происходит что-то необычное.
Пока на компьютере заражено относительно мало программ, наличие вируса может быть практически незаметно. Однако по прошествии некоторого времени на компьютере начинает твориться что-то странное, например:
* некоторые программы перестают работать или начинают работать неправильно;
* на экран выводятся посторонние сообщения, символы и т.д.;
* работа на компьютере существенно замедляется;
* некоторые файлы оказываются испорченными и т.д.
К этому моменту, как правило, уже достаточно много (или даже большинство) программ являются зараженными вирусом, а некоторые файлы и диски - испорченными. Более того, зараженные программы с одного компьютера могли быть перенесены с помощью дискет или по локальной сети на другие компьютеры.
Некоторые виды вирусов ведут себя еще более коварно. Они вначале незаметно заражают большое число программ или дисков, а потом причняют очень серьезные повреждения, например формируют весь жесткий диск на компьютере. А бывают вирусы, которые стараются вести себя как можно более незаметно, но понемногу и постепенно портят данные на жестком диске компьютера.
Таким образом, если не предпринимать мер по защите от вируса, то последствия заражения компьютера могут быть очень серьезными.
РАЗНОВИДНОСТИ КОМПЬЮТЕРНЫХ ВИРУСОВ
Каждая конкретная разновидность вируса может заражать только один или два типа файлов. Чаще всего встречаются вирусы, заражающие исполнимые файлы. Некоторые вирусы заражают и файлы, и загрузочные области дисков. Вирусы, заражающие драйверы устройств, встречаются крайне редко, обычно такие вирусы умеют заражать и исполнимые файлы.
В последнее время получили распространение вирусы нового типа - вирусы, имеющие файловую систему на диске. Эти вирусы обычно называются DIR. Такие вирусы прячут свое тело в некоторый участок диска (обычно - в последний кластер диска) и помечают его в таблице размещения файлов (FAT) как конец файла.
Чтобы предотвратить свое обнаружение, некоторые вирусы применяют довольно хитрые приемы маскировки. Я расскажу о двух из них: "невидимых" и самомодифицирующихся вирусах.
"НЕВИДИМЫЕ" вирусы. Многие резидентные вирусы (и файловые, и загрузочные) предотвращают свое обнаружение тем, что перехватывают обращения DOS (и тем самым прикладных программ) к зараженным файлам и областям диска и выдают их в исходном (незараженном) виде. Разумеется, этот эффект наблюдается только на зараженном компьютере - на "чистом" компьютере изменения в файлах и загрузочных областях диска можно легко обнаружить.
САМОМОДИФИЦИРУЮЩИЕСЯ вирусы. Другой способ, применяемый вирусами для того, чтобы укрыться от обнаружения, - модификация своего тела. Многие вирусы хранят большую часть своего тела в закодированном виде, чтобы с помощью дизассемблеров нельзя было разобраться в механизме их работы. Самомодифицирующиеся вирусы используют этот прием и часто меняют параметры этой кодировки, а кроме того, изменяют и свою стартовую часть, которая служит для раскодировки остальных команд вируса. Таким образом, в теле подобного вируса не имеется ни одной постоянной цепочки байтов, по которой можно было бы идентифицировать вирус. Это, естественно, затрудняет нахождение таких вирусов программами-детекторами.
"ТРОЯНСКИЙ КОНЬ"
Способ "троянский конь" состоит в тайном введении в чужую программу таких команд, которые позволяют осуществить новые, не планировавшиеся владельцем программы функции, но одновременно сохранять и прежнюю работоспособность. С помощью "троянского коня" преступники, например, отчисляют на свой счет определенную сумму с каждой операции.
Компьютерные программные тексты обычно чрезвычайно сложны. Они состоят из сотен тысяч, а иногда и миллионов команд. Поэтому "троянский конь" из нескольких десятков команд вряд ли может быть обнаружен, если, конечно, нет подозрений относительно этого. Но и в послед -- нем случае экспертам-программистам потребуется много дней и недель, чтобы найти его.
Интересен случай использования "троянского коня" одним американским программистом. Он вставил в программу компьютера фирмы, где работал, команды, не отчисляющие деньги, а не выводящие на печать для отчета определенные поступления. Эти суммы, особым образом маркированные, "существовали" только в системе. Вульгарным образом украв бланки, он заполнял их с указанием своей секретной маркировки и получал эти деньги, а соответствующие операции по-прежнему не выводились на печать и не могли подвергнуться ревизии.
Есть еще одна разновидность "троянского коня". Ее особенность состоит в том, что в безобидно выглядящий кусок программы вставляются не команды, собственно выполняющие "грязную" работу. а команды, формирующие эти команды и после выполнения уничтожающие их. В это случае программисту, пытающемуся найти "троянского коня", необходимо искать не его самого, а команды, его формирующие. Развивая эту идею, можно представить себе команды, которые создают команды и т. д.(сколь угодно большое число раз), которые создают "троянского коня".
В США получила распространение форма компьютерного вандализма, при которой "троянский конь" разрушает через какой-то промежуток времени все программы, хранящиеся в памяти машины. Во многих поступивших в продажу компьютерах оказалась "временная бомба", которая "взрывается" в самый неожиданный момент, разрушая всю библиотеку данных.
К сожалению, очень многие заказчики прекрасно знают, что после конфликтов с предприятием-изготовителем их программное обеспечение, которое до сих пор прекрасно работало, вдруг начинало вести себя самым непредсказуемым образом и наконец полностью отказывало. Нетрудно догадаться, что и копии на магнитных лентах или дисках, предусмотрительно сделанные, положения нисколько не спасали.
Оставался один путь -- идти с повинной к разработчику.
РАЗРАБОТКА И РАСПРОСТРАНЕНИЕ КОМПЬЮТЕРНЫХ ВИРУСОВ.
"Троянские кони" типа сотри все данные этой программы, перейди в следующую и сделай то же самое" обладают свойствами переходить через коммуникационные сети из одной системы в другую, распространяясь как вирусное заболевание.
Выявляется вирус не сразу: первое время компьютер "вынашивает инфекцию", поскольку для маскировки вирус нередко используется в комбинации с "логической бомбой" или "временной бомбой". Вирус наблюдает за всей обрабатываемой информацией и может перемещаться, используя пересылку этой информации. Все происходит, как если бы он заразил белое кровяное тельце и путешествовал с ним по организму человека. Начиная действовать (перехватывать управление), вирус дает команду компьютеру, чтобы тот записал зараженную версию программы. После этого он возвращает программе управление. Пользователь ничего не заметит, так как его компьютер находится в состоянии "здорового носителя вируса". Обнаружить этот вирус можно, только обладая чрезвычайно развитой программистской интуицией, поскольку никакие нарушения в работе ЭВМ в данный момент не проявляют себя. А в один прекрасный день компьютер "заболевает".
Экспертами собрано досье писем от шантажистов, требующих перечисления крупных сумм денег в одно из отделений американской фирмы "ПК Сиборг"; в случае отказа преступники грозятся вывести компьютеры из строя. По данным журнала "Бизнес уорлд", дискеты-вирусоносители получены десятью тысячами организаций, использующих в своей работе компьютеры.
Для поиска и выявления злоумышленников созданы специальные отряды английских детективов.
Все вирусы можно разделить на две разновидности, обнаружение которых различно по сложности: "вульгарный вирус" и "раздробленный вирус". Программа "вульгарного вируса" написана единым блоком, и при возникновении подозрений в заражении ЭВМ эксперты могут обнаружить ее в самом начале эпидемии (размножения). Эта операция требует, однако, крайне тщательного анализа всей совокупности операционной системы ЭВМ.
Программа "раздробленного вируса" разделена на части, на первый взгляд, не имеющие между собой связи. Эти части содержат инструкции которые указывают компьютеру как собрать их воедино, чтобы воссоздать и, следовательно, размножить вирус. Таким образом, он почти все время находится в "распределенном" состоянии, лишь на короткое время своей работы собираясь в единое целое. Как правило, создатели вируса указывают ему число репродукций, после достижения которого он становится агрессивным.
Вирусы могут быть внедрены в операционную систему, в прикладную программу или в сетевой драйвер.
Варианты вирусов зависят от целей, преследуемых их создателем. Признаки их могут быть относительно доброкачественными, например, замедление в выполнении программ или появление светящейся точки на экране дисплея (т. н. "итальянский попрыгунчик"). Признаки могут быть эволютивными, и "болезнь" будет обостряться по мере своего течения. Так по непонятным причинам программы начинают переполнять магнитные диски, в результате чего существенно увеличивается объем программных файлов. Наконец, эти проявления могут быть катастрофическими и привести к стиранию файлов и уничтожению программного обеспечения,
Каковы способы распространения компьютерного вируса? Они основываются на способности вируса использовать любой носитель передаваемых данных в качестве "средства передвижения". То есть с начала заражения имеется опасность, что ЭВМ может создать большое число средств передвижения и в последующие часы вся совокупность файлов и программных средств окажется зараженной. Таким образом, дискета или магнитная лента, перенесенные на другие ЭВМ, способны заразить их. И наоборот, когда "здоровая" дискета вводится в зараженный компьютер, она может стать носителем вируса. Удобными для распространения обширных эпидемий оказываются телекоммуникационные сети. Достаточно одного контакта, чтобы персональный компьютер был заражен или заразил тот, с которым контактировал. Однако самый частый способ заражения - это копирование программ, что является обычной практикой у пользователей персональных ЭВМ. Так скопированными оказываются и зараженные программы.
Специалисты предостерегают от копирования ворованных программ. Иногда, однако, и официально поставляемые программы могут быть источником заражения. Например, фирма "Альдус" выпустила несколько тысяч зараженных дискет с графическими программами.
Часто с началом компьютерной эпидемии связывают имя уже упоминаемого Роберта Морриса студента Корнеллского университета (США), в результате действий которого зараженными оказались важнейшие компьютерные сети восточного и западного побережий США . Эпидемия охватила более б тысяч компьютеров и 70 компьютерных систем. Пострадавшими оказались, в частности, компьютерные центры НАСА, Диверморской лаборатории ядерных исследований, Гарвардского, Питсбургского, Мэрилендского, Висконсинского, Калифорнийского, Стзнфордского университетов. Пикантность ситуации в том, что отец Р. Морриса -- высокопоставленный сотрудник отдела безопасности компьютеров Агентства национальной безопасности .
А изобретателем вируса является, однако, совсем другой человек В августе 1984 года студент Калифорнийского университета Фред Коуэн, выступая на одной из конференций, рассказал про свои опыты с тем, что один его друг назвал "компьютерным вирусом". Когда началось практическое применение вирусов, неизвестно, ибо банки, страховые компании, предприятия, обнаружив, что их компьютеры заражены вирусом, не допускали, чтобы сведения об этом просочились наружу.
В печати часто проводится параллель между компьютерным вирусом и вирусом "AIDS". Только упорядоченная жизнь с одним или несколькими партнерами способна уберечь от этого вируса. Беспорядочные связи со многими компьютерами почти наверняка приводят к заражению. Замучу, что пожелание ограничить использование непроверенного программного обеспечения скорее всего так и останется практически невыполнимым. Это связано с тем, что фирменные программы на "стерильных" носителях стоят немалых денег в конвертируемой валюте. Поэтому избежать их неконтролируемого копирования почти невозможно.
Справедливости ради следует отметить, что распространение компьютерных вирусов имеет и некоторые положительные стороны. В частности, они являются, по-видимому, лучшей защитой от похитителей программного обеспечения. Зачастую разработчики сознательно заражают свои дискеты каким-либо безобидным вирусом, который хорошо обнаруживается любым антивирусным тестом. Это служит достаточно надежной гарантией, что никто не рискнет копировать такую дискету,
МЕТОДЫ ЗАЩИТЫ ОТ КОМПЬЮТЕРНЫХ ВИРУСОВ
Каким бы не был вирус, пользователю необходимо знать основные методы защиты от компьютерных вирусов.
Для защиты от вирусов можно использовать:
* общие средства защиты информации, которые полезны также и как страховка от физической порчи дисков, неправильно работающих программ или ошибочных действий пользователя;
* профилактические меры, позволяющие уменьшить вероятность заражения вирусом;
* специализированные программы для защиты от вирусов.
Общие средства защиты информации полезны не только для защиты от вирусов. Имеются две основные разновидности этих средств:
* копирование информации - создание копий файлов и системных областей дисков;
* разграничение доступа предотвращает несанкционированное использование информации, в частности, защиту от изменений программ и данных вирусами, неправильно работающими программами и ошибочными действиями пользователей.
Несмотря на то, что общие средства защиты информации очень важны для защиты от вирусов, все же их недостаточно. Необходимо и применение специализированных программ для защиты от вирусов. Эти программы можно разделить на несколько видов: детекторы, доктора (фаги), ревизоры, доктора-ревизоры, фильтры и вакцины (иммунизаторы).
ПРОГРАММЫ-ДЕТЕКТОРЫ позволяют обнаруживать файлы, зараженные одним из нескольких известных вирусов. Эти программы проверяют, имеется ли в файлах на указанном пользователем диске специфическая для данного вируса комбинация байтов. При ее обнаружении в каком-либо файле на экран выводится соответствующее сообщение.
Многие детекторы имеют режимы лечения или уничтожения зараженных файлов.
Следует подчеркнуть, что программы-детекторы могут обнаруживать только те вирусы, которые ей "известны". Программа Scan фирмы McAfee Associates и Aidstest Д.Н. Лозинского позволяют обнаруживать около 1000 вирусов, но всего их более пяти тысяч! Некоторые программы-детекторы, например Norton AntiVirus или AVSP фирмы "Диалог-МГУ", могут настраивать на новые типы вирусов, им необходимо лишь указать комбинации байтов, присущие этим вирусам. Тем не менее невозможно разработать такую программу, которая могла бы обнаруживать любой заранее неизвестный вирус.
Таким образом, из того, что программа не опознается детекторами как зараженная, не следует, что она здорова - в ней могут сидеть какой-нибудь новый вирус или слегка модифицированная версия старого вируса, неизвестные программам-детекторам.
Многие программы-детекторы (в том числе и Aidstest) не умеют обнаруживать заражение "невидимыми" вирусами, если такой вирус активен в памяти компьютера. Дело в том, что для чтения диска они используют функции DOS, а они перехватываются вирусом, который говорит, что все хорошо. Правда, Aidstest и другие детекторы пытаются выявить вирус путем просмотра оперативной памяти, но против некоторых "хитрых" вирусов это не помогает. Так что надежный диагноз программы-детекторы дают только при загрузке DOS с "чистой", защищенной от записи дискеты, при этом копия программы-детектора также должна быть запущена с этой дискеты.
Некоторые детекторы, скажем, ADinf фирмы "Диалог-Наука", умеют ловить "невидимые" вирусы, даже когда они активны. Для этого они читают диск, не используя вызовы DOS. Правда, этот метод работает не на всех дисководах.
Большинство программ-детекторов имеют функцию "доктора", т.е. они пытаются вернуть зараженные файлы или области диска в их исходное состояние. Те файлы, которые не удалось восстановить, как правило, делаются неработоспособными или удаляются.
Большинство программ-докторов умеют "лечить" только от некоторого фиксированного набора вирусов, поэтому они быстро устаревают. Но некоторые программы могут обучаться не только способам обнаружения, но и способам лечения новых вирусов.
К таким программам относится AVSP фирмы "Диалог-МГУ".
ПРОГРАММЫ-РЕВИЗОРЫ имеют две стадии работы. Сначала они запоминают сведения о состоянии программ и системных областей дисков (загрузочного сектора и сектора с таблицей разбиения жесткого диска). Предполагается, что в этот момент программы и системные области дисков не заражены. После этого с помощью программы-ревизора можно в любой момент сравнить состояние программ и системных областей дисков с исходным. О выявленных несоответствиях сообщается пользователю.
Чтобы проверка состояния программ и дисков проходила при каждой загрузке операционной системы, необходимо включить команду запуска программы-ревизора в командный файл AUTOEXEC.BAT. Это позволяет обнаружить заражение компьютерным вирусом, когда он еще не успел нанести большого вреда. Более того, та же программа-ревизор сможет найти поврежденные вирусом файлы.
Многие программы-ревизоры являются довольно "интеллектуальными" - они могут отличать изменения в файлах, вызванные, например, переходом к новой версии программы, от изменений, вносимых вирусом, и не поднимают ложной тревоги. Дело в том, что вирусы обычно изменяют файлы весьма специфическим образом и производят одинаковые изменения в разных программных файлах. Понятно, что в нормальной ситуации такие изменения практически никогда не встречаются, поэтому программа-ревизор, зафиксировав факт таких изменений, может с уверенностью сообщить, что они вызваны именно вирусом.
Следует заметить, что многие программы-ревизоры не умеют обнаруживать заражение "невидимыми" вирусами, если такой вирус активен в памяти компьютера. Но некоторые программы-ревизоры, например ADinf фирмы "Диалог-Наука", все же умеют делать это, не используя вызовы DOS для чтения диска (правда, они работают не на всех дисководах). Другие программы часто используют различные полумеры – пытаются обнаружить вирус в оперативной памяти, требуют вызовы из первой строки файла AUTOEXEC.BAT, надеясь работать на "чистом" компьютере, и т.д. Увы против некоторых "хитрых" вирусов все это бесполезно.
Для проверки того, не изменился ли файл, некоторые программы-ревизоры проверяют длину файла. Но эта проверка недостаточна - некоторые вирусы не изменяют длину зараженных файлов. Более надежная проверка - прочесть весь файл и вычислить его контрольную сумму. Изменить файл так, чтобы его контрольная сумма осталась прежней, практически невозможно.
В последнее время появились очень полезные гибриды ревизоров и докторов, т.е. ДОКТОРА-РЕВИЗОРЫ, - программы, которые не только обнаруживают изменения в файлах и системных областях дисков, но и могут в случае изменений автоматически вернуть их в исходное состояние. Такие программы могут быть гораздо более универсальными, чем программы-доктора, поскольку при лечении они используют заранее сохраненную информацию о состоянии файлов и областей дисков. Это позволяет им вылечивать файлы даже от тех вирусов, которые не были созданы на момент написания программы.
Но они могут лечить не от всех вирусов, а только от тех, которые используют "стандартные", известные на момент написания программы, механизмы заражения файлов.
Существуют также ПРОГРАММЫ-ФИЛЬТРЫ, которые располагаются резидентно в оперативной памяти компьютера и перехватывают те обращения к операционной системе, которые используются вирусами для размножения и нанесения вреда, и сообщают о них пользователя. Пользователь может разрешить или запретить выполнение соответствующей операции.
Некоторые программы-фильтры не "ловят" подозрительные действия, а проверяют вызываемые на выполнение программы на наличие вирусов. Это вызывает замедление работы компьютера.
Однако преимущества использования программ-фильтров весьма значительны – они позволяют обнаружить многие вирусы на самой ранней стадии, когда вирус еще не успел размножиться и что-либо испортить. Тем самым можно свести убытки от вируса к минимуму.
ПРОГРАММЫ-ВАКЦИНЫ, или ИММУНИЗАТОРЫ, модифицируют программы и диски таким образом, что это не отражается на работе программ, но тот вирус, от которого производится вакцинация, считает эти программы или диски уже зараженными. Эти программы крайне неэффективны.
Ни один тип антивирусных программ по отдельности не дает полной защиты от вирусов. Лучшей стратегией защиты от вирусов является многоуровневая, "эшелонированная" оборона. Опишу структуру этой обороны.
Средствам разведки в "обороне" от вирусов соответствуют программы-детекторы, позволяющие проверять вновь полученное программное обеспечение на наличие вирусов.
На переднем крае обороны находятся программы-фильтры. Эти программы могут первыми сообщить о работе вируса и предотвратить заражение программ и дисков.
Второй эшелон обороны составляют программы-ревизоры, программы-доктора и доктора-ревизоры.
Самый глубокий эшелон обороны - это средства разграничения доступа. Они не позволяют вирусам и неверно работающим программам, даже если они проникли в компьютер, испортить важные данные.
В "стратегическом резерве" находятся архивные копии информации. Это позволяет восстановить информацию при её повреждении.
Это неформальное описание позволяет лучше понять методику применения антивирусных средств.
ДЕЙСТВИЯ ПРИ ЗАРАЖЕНИИ ВИРУСОМ
При заражении компьютера вирусом (или при подозрении на это) важно соблюдать 4-е правила:
1) Прежде всего не надо торопиться и принимать опрометчивых решений.
Непродуманные действия могут привести не только к потери части файлов, но к повторному заражению компьютера.
2) Надо немедленно выключить компьютер, чтобы вирус не продолжал своих разрушительных действий.
3) Все действия по обнаружению вида заражения и лечению компьютера следует выполнять при загрузке компьютера с защищенной от записи дискеты с ОС (обязательное правило).
4) Если Вы не обладаете достаточными знаниями и опытом для лечения компьютера, попросите помочь более опытных коллег.