VX Heavens

Library Collection Sources Engines Constructors Simulators Utilities Links Forum
Minimize
Bookmark

Являются ли "хорошие" компьютерные вирусы по-прежнему плохой идеей?

Vesselin Bontchev

[Вернуться к списку] [Комментарии (0)]

Vesselin Bontchev - ассистент Вирусного Исследовательского Центра, Университет Гамбурга Vogt-Koelln-Str. 30, 22527 Гамбург, Германия bontchev@fbihh.informatik.uni-hamburg.de

Перевод Климентьев К., Самара 1997

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

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

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

1. Что такое - Компьютерный Вирус?

Широкая публика обычно связывает термин "компьютерный вирус" с маленькой, противной программой, которая стремится уничтожать информацию на их машинах. Как и обычно, понимание широкой публикой термина - неправильно. Имеется много видов разрушительного или злонамеренного компьютерного программного обеспечения, и компьютерные вирусы - только один из них. Такие программы включают "люки" (backdoors), логические бомбы, троянских коней и пр. [Bontchev94]. Кроме того, многие компьютерные вирусы изначально не разрушительны - они просто выдают сообщения, играют мелодии или даже не делают ничего особенного вообще. Важным, однако, является то, что даже эти изначально не разрушительные вирусы небезопасны - они наносят значительный ущерб в смысле времени, денег и ресурсов, потраченных на их устранение, потому что они вообще нежелательны, и пользователь хочет избавиться от них.

Наиболее точное и научное определение термина "компьютерный вирус" было предложено доктором Fred Cohen в его работе [Cohen84]. Это определение математически определяет компьютерный вирус как последовательность символов на ленте машины Тьюринга. Определение довольно трудно выразить точно на человеческом языке, но приблизительная интерпретация заключается в том, что компьютерный вирус - "программа, которая способна инфицировать другие программы, изменяя их, чтобы внедрить в них максимально идентичную копию себя".

К сожалению, имеется несколько проблем с этим определением. Одна из них состоит в том, что не упоминается способность вируса инфицировать программу без того, чтобы изменять ее - вставлением себя в последовательность запусков. Некоторые типичные примеры - вирусы в загрузочном секторе и вирусы-спутники [Bontchev94]. Однако, это недостаток только варианта определения на "человеческом языке" - математическое определение включает понятия "программа" и "изменение", так что включает виды вирусов, упомянутые выше.

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

Третьей, намного более серьезной проблемой с определением доктора Cohen'а является то, что оно слишком широко может быть полезно для практических целей. Фактически, его определение классифицирует как "компьютерные вирусы" даже такие случаи, как компилятор, который компилирует собственный исходный текст; менеджер файлов, который используется, чтобы копировать себя; и даже программу DISKCOPY, когда она находится на загрузочной дискете, - потому что эта комбинация может использоваться, чтобы произвести точную копию программ на этой дискете.

Чтобы понять причину вышеупомянутой проблемы, мы должны обратить внимание на цель, для которой определение доктора Cohen'а было разработано. Его цель состояла в том, чтобы доказать несколько интересных теорем относительно вычислительных аспектов компьютерных вирусов [Cohen89]. Чтобы сделать это, он был должен развить математическую (формальную) модель компьютерного вируса. Для этой цели требуется математическая модель компьютера. Одна из наиболее обычно используемых моделей - машина Тьюринга (TM). Действительно, имеется несколько других моделей (например, цепи Маркова, машина Поста и т.д.), но они не так удобны, как TM, и доказано, что все они эквивалентны.

К сожалению, в терминах модели TM мы не можем говорить о "программах", которые изменяют "другие программы" - просто потому, что TM имеет только одну-единственную программу - содержимое ленты этой TM. Именно поэтому модель компьютерного вируса рассматривает историю состояний ленты TM. Если последовательность символов на этой ленте появляется в более поздний момент где-нибудь еще на ленте, тогда эта последовательность символов, как можно сказать, является компьютерным вирусом для этого конкретного TM. Важно заметить, что компьютерный вирус должен всегда рассматриваться, как привязанный к некоторой конкретной вычислительной среде - к конкретной TM. Может быть доказано ([Cohen89]), что для любой конкретной TM существует последовательности символов, которая является вирусом для этой конкретной TM.

Наконец, технические эксперты по компьютерам обычно используют определения для термина "компьютерный вирус", которые являются менее точными, чем модель доктора Cohen'а, намного более полезными с практической точки зрения и все еще гораздо более правильными, чем неопределенное понимание широкой публики термина. Одно из самых лучших определений - ([Seborg]):

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

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

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

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

Действительно, доктор Cochen, являющийся одним из наиболее активных проводников идеи [Cohen91], задал некоторому количеству людей этот вопрос. Небольшое количество квалифицированных людей попытались даже осуществить идею, но потерпели неудачу (см. раздел 3). Естественно спросить - почему? Давайте рассмотрим причины, почему идея относительно "хорошего" вируса обычно отклоняется широкой публикой. Чтобы сделать это, мы предположим, почему люди думают, что компьютерный вирус является всегда вредным и не может использоваться для выгодных целей.

2. Почему Компьютерные Вирусы воспринимаются как вредные?

Около года назад мы опросили участников электронного форума Virus-L/comp.virus , который был посвящен обсуждению проблем компьютерных вирусов, чтобы внести в список все причины, на основании которых можно рассматривать идею "полезного" вируса, как плохую. Далее следует систематизированый и обобщенный список этих причин.

2.1. Технические Причины.

Эта секция вносит в список аргументы против идеи "полезного вируса", которые имеют технический характер. Они - обычно наиболее объективные.

2.1.1. Неконтролируемость.

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

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

2.1.2. Трудность распознавания.

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

К сожалению, вообще теоретически невозможно даже различить вирусы и невирусные программы ([Cohen89]). Не имеется никаких причин думать, что различение между "хорошими" и "плохими" вирусами будет намного более легким. В то время, как могло бы существовать различение между ними с использованием специально ориентированного анти-вирусного программного обеспечения (например, сканеров), мы не должны забывать, что много людей полагаются на примитивную анти-вирусную защиту, например основанную на проверке целостности. Такие системы предназначены, чтобы обнаруживать модификации, а не определенные вирусы, и поэтому будут реагировать на "полезный" вирус, также порождая нежелательную тревогу. Опыт показывает, что затраты на обработку таких ложных срабатываний аналогична возникающей от реальной инфекции злонамеренным вирусом - потому что пользователи тратят впустую множество времени и ресурсов, ища несуществующую проблему.

2.1.3. Трата Ресурсов

Компьютерный вирус использует дисковое пространство, время ЦПУ и ресурсы памяти во время размножения. Компьютерный вирус - самокопирующийся пожиратель ресурсов. Один типичный пример - Сетевой Червь, случайно выпущенный студентом университета Carnegie-Mellon. Он не был предназначен, чтобы быть изначально разрушительным, но в процессе размножения многократные копии его использовали так много ресурсов, что фактически "посадили" большую часть Интернета.

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

2.1.4. Дефекты размещения.

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

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

2.1.5. Проблемы Совместимости.

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

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

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

2.1.6. Эффективность.

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

2.2. Этические и Юридические Причины.

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

2.2.1. Неправомочная Модификация Данных.

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

2.2.2. Авторское право и Проблемы Собственности.

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

Мы встречались с таким примером в VTC-Hamburg. Один из пользователей, позвавших нас для помощи в проблеме с компьютерным вирусом, был адвокатом-надомником, и он использовал специальное программное обеспечение Windows; чтобы просматривать документы, он работал с большим шрифтом на экране - так, чтобы он мог бы читать их. Его система была инфицирована относительно безвредным вирусом. Однако, когда производители программного обеспечения узнал, что машина была инфицирована, они отказались от любой технической поддержки пользователю, пока инфекция не была удалена, и его программное обеспечение не установлено с чистых оригиналов.

2.2.3. Возможное Неправильное употребление.

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

2.2.4. Ответственность.

Объявление некоторых вирусов "хорошими" и "полезными" только обеспечило бы оправдание толпе безответственных вирусных авторов и способствовало бы их действиям и уверениям, что они фактически выполняют некоторое "исследование". Фактически, это уже случается - люди, упомянутые выше, часто используют идеи доктора Fred Cohen'а для полезных вирусов как оправдание своей деятельности, - часто без малейшего отношения к реальным высказываниям Cohen'а.

2.3. Психологические Причины.

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

2.3.1. Трастовые Проблемы (Проблемы Доверия).

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

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

2.3.2. Общий негативный смысл.

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

.........

[Вернуться к списку] [Комментарии (0)]
deenesitfrplruua