¦ АДДДДДДДДДДДДДДД¬
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Эти вычисления позволяют понять, почему так опасны
вирусы. Хотя размножение вирусов на практике происходит
медленнее, чем показано в примере, отличие действия вирусов
от известных до сих пор методов обработки совершенно ясно.
3.1 Предание о положительных вирусах
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Во всех дискуссиях на тему вирусов можно услышать о по-
ложительных эффектах, которых можно достичь при помощи виру-
сов. В качестве классического примера называют чаще всего
так называемый вирус сжатия (см. 2.1), о котором впервые на-
писал Коэн. Этот вирус должен быть однажды введен в систему,
затем он должен инфицировать все исполняемые программы и при
помощи собственного задания на обработку - сжатие данных
посредством кода Хаффмана*) - уменьшить объем памяти, заня-
тый пораженным программным обеспечением соответствующей мас-
совой памяти.
ДДДДДДДДДДДДДДДДДДДДДД
*) Код Хаффмана: Разработан Давидом ХафФманом, метод,
работающий на основе двоичного дерева, предназначенный для
минимизации избыточности файла. При этом может быть умень-
шена потребность в памяти программных файлов - в зависимос-
ти от их структуры - на 50-80 процентов от исходного объ-
- 53 -
ема. Для текстовых и графических файлов экономия памяти еще
больше. (Прим. автора).
Сжатая программа, конечно,не может быть непосредствен-
но выполнена, перед выполнением она должна быть опять
приведена в исходное состояние. Таким образом, эта задача
должна выполняться вирусом сразу после загрузки программы,
а это значит, что сам вирус не может быть сжатым. На прак-
тике этот процесс мог бы выглядеть следующим образом:
- 54 -
Программа, инфицированная вирусом сжатия, запус-
кается.¦
¦
ЪДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДД¬
¦ Поиск неинфицированной программы ¦
АДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДЩ
¦
ЪДДДДБДДДДД¬
¦ Найдена? ¦
АВДДДДДДДДВЩ
¦ ¦
ЪДДДДБ¬ ЪДБДД¬
¦ НЕТ ¦ ¦ ДА ¦
АДДДДВЩ АДВДДЩ
¦ ¦
¦ ЪДБДДДДДДДДДДДДДДДДДДДДДД¬
¦ ¦ Инфицировать найденную ¦
¦ ¦ программу ¦
¦ АДВДДДДДДДДДДДДДДДДДДДДДДЩ
¦ ¦
¦ ЪДБДДДДДДДДДДДДДДДДДДД¬
¦ ¦Сжать инфицированную ¦
¦ ¦ программ ¦
¦ АДВДДДДДДДДДДДДДДДДДДДЩ
¦ ¦
¦ ЪДБДДДДДДДДДДДДДДДДДДДДДД¬
¦ ¦Записать инфицированную ¦
¦ ¦ программу ¦
¦ АДВДДДДДДДДДДДДДДДДДДДДДДЩ
¦ ¦
ЪДДДДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДД¬
¦ Декомпрессировать коды программы ¦
АДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДЩ
¦
ЪДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ Запустить декомпрессированную программу ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
- 55 -
С теоретической точки зрения эта программа-вирус дейс-
твительно выглядит вполне положительно. Если же более вни-
мательно рассмотреть структуру программы и вытекающие из
нее взаимосвязи, на практике возникают весьма серьезные
проблемы. Прежде всего увеличивается время выполнения прог-
рамм, во-первых, из-за необходимости декомпрессирования
программы перед каждым ее выполнением, во-вторых, из-за то-
го, что прежде должен быть выполнен поиск несжатой програм-
мы по всему массиву программ, а возможно и сжатие найденной
программы. Кроме того, такое сжатие целесообразно лишь в
том случае, если сжимаемая программа хотя бы на пятьдесят
процентов больше самой программы-вируса, так как в против-
ном случае сжатая программа, инфицированная вирусом, займет
больше места в памяти, чем исходная. В некоторых случаях
возникают еще и правовые проблемы, так как программное
обеспечение нельзя сжимать, по крайней мере тогда, когда
пользователь хочет, чтобы изготовитель отвечал за возможные
ошибки в программах.
В настоящее время проблема сжатия данных становится
все менее актуальной из-за снижения цен на устройства мас-
совой памяти.
Выводы: Пользователи бытовых и персональных ЭВМ не ис-
пользуют такое программное обеспечение из-за чрезмерного
увеличения времени выполнения программ, пользователи мини-
и больших ЭВМ имеют достаточный объем памяти, чтобы также
не пользоваться вирусом сжатия. В обоих случаях не послед-
нюю роль играет страх перед неконтролируемыми изменениями,
вносимыми в программное обеспечение.
Дополнительные примеры возможных задач обработки прог-
рамм-вирусов приведены в главе 7. При рассмотрении приве-
денных там примеров очень быстро становится ясным, как
сильно влияет точка зрения на оценку обработки (полезная
или вредная).
В заключение - персональное мнение автора о "положи-
тельных вирусах":
Использование вирулентного программного обеспечения це-
лесообразно только в системах, предназначенных для разработ-
ки совершенно нового структурированного программного обеспе-
чения (искусственный интеллект, см. 16.5). В традиционных
- 56 -
системах все виды обработки, обеспечиваемые вирусами, дости-
жимы другими программными средствами, поддающимися контролю.
Исключение составляют случаи, в которых контроль или возмож-
ность контроля являются нежелательными. Читатель должен сам
решить, какие случаи использования он считает допустимыми.
3.2 Установление виновника вряд ли возможно
Как уже говорилось,большая опасность программ-вирусов заклю-
чается в возможности использования вирусов в криминальных целях с
относительно малым риском. Особенно трудно установить источник
появления программ-вирусов в сетях и на больших ЭВМ. Однако проб-
лема заключается не только в "необозримости" сетевых структур.
Приложив некоторые усилия, можно полностью скрыть происхождение
программ-вирусов. Этому способствует еще тот факт, что програм-
му-носитель можно удалить из системы после однократного запуска.
Уже из одного этого факта возможный злоумышленник может извлечь
большую пользу, так как при отсутствии программы-носителя нельзя
установить виновника.
Если продолжить эту мысль, можно прийти к выводу, что после
удачного внедрения и размножения сам вирус следует уничтожить или
преобразовать в безвредную "незаразную" программу, чтобы умень-
шить риск обнаружения до минимума. Продолжая эти рассуждения
дальше, мы придем к такому типу вируса, который мало отличается
от органического: программы, которые не поражают явно свою прог-
рамму-носитель, а после нескольких удачных размножений удаляют
себя из этой программы.
Насколько трудно в этом случае установить виновника, каждый
читатель может представить сам. Для самого злоумышленника обычно
почти никакого риска нет, так как обычно он не записывает в прог-
рамму свое авторское право. Таким образом, если не удается обна-
ружить источник программ-вирусов техническими средствами, остает-
ся лишь проследить путь, пройденный вирусом, чтобы определить
злоумышленника.
Если вирус осуществляет обработку в пользу А, это, конечно
указывает на то, что А хочет получить финансовые выгоды (или В
хочет направить подозрение на А). Некоторые возможности для обна-
ружения злоумышленника предоставляет анализ типа обработки; круг
поиска уменьшается до минимума, если речь идет о деструктивном
- 57 -
типе обработки (например, "FORMAT C:").
Этим подтверждается высказывание из 3.1 о том, что если кто-
то хочет выполнять обработку для собственной выгоды, то должен
учитывать возможность своего разоблачения по виду обработки.
Здесь, однако, следует не забывать о том, что убытки А могут
означать одновременно выгоду В, если, например, А является конку-
рентом В.
Независимо от того, каким образом обработана система, было
бы ошибкой при обнаружения заражения вирусом уничтожать все мас-
сивы данных и программ, так как при этом теряется возможность
обнаружения злоумышленника посредством задачи обработки данного
вируса.
Пока единственной реакцией на обнаружение инфекции будет
непременное уничтожение всех массивов данных и программ, програм-
мисты вирусов могут спокойно использовать свои программы в сомни-
тельных целях.
3.3 От программного обеспечения к программной войне
В качестве первого отчета о компьютерных вирусах была
опубликована чрезвычайно противоречивая дискуссия о возмож-
ных последствиях. Основным инициатором этой дискуссии в спе-
циальной прессе является отчет в журнале KES (выпуски 3 и
4/85, издательство Петер Холь). Насколько непредсказуема бы-
ла реакция, можно усмотреть из того, что, как уже упомина-
лось, только в выпуске 4/85 Р.Дирштайн был указан как соста-
витель статьи.
Но почему такая осторожность?
Объяснение очевидно: если кто-то при каких-то обстоятельст-
вах усомнится в общепринятых знаниях и решениях, да еще, чего
доброго, и популярно разъяснит свои сомнения, он может быть объя-
влен врагом этих решений.
До тех пор пока не победило утверждение, что земля
круглая, ученый должен был считаться с тем,что распростране-
ние новых неудобных знаний могло быть объявлено ересью. Это
относится также к такой области, как электронная обработка
информации, и особенно, к проблеме компьютерных вирусов.
Нельзя говорить о компьютерных вирусах и не думать при этом
о возможных последствиях. Насколько проблематично получение поло-
- 58 -
жительного эффекта от компьютерных вирусов, уже было объяснено в
разделе 3.1. Разработку, которая при поверхностном рассмотрении
может иметь только отрицательные последствия, очень трудно обсуж-
дать публично и не быть при этом заподозренным в криминальных,
если даже не террористических замыслах. В последнее время это
особенно относится к организации Хаос Компьютер Клаб (ССС).
Действительно, представление о человеке, сидящем за термина-
лом жизненно важной системы и активизирующем вирус, не
успокаивает.Разве не существует серьезной опасности вмешательства
в действия правового государства при помощи этих новых програм-
мных стратегий? Не будут ли вирусы "коктейлем Молотова" в
будущем?
Очень много вопросов , на которые сложно ответить однозначно
ДА-НЕТ. Будущее развитие очень трудно предсказать хотя бы потому,
что оно очень сильно зависит от имеющегося на рынке аппаратного и
программного обеспечения. Однако события в "в мире бытовых ком-
пьютеров" можно предсказать довольно уверенно. Уже известная по
защите от копирования борьба между "защитниками" и "взломщиками"
повторяется в области вирусов. Собственно говоря, первый раунд
уже закончен. Так, например, в MS-DOS существует атрибут "только
чтение", благодаря которому определенные массивы данных и програ-
ммы защищены от перезаписи. С точки зрения программирования уда-
ление такой программы защиты от записи программными же средствами
можно оценить не как блестящее достижение, а как первый шаг к
новому рандеву "программной войне". Это разумеется, один уровень,