обычной (или необычной), что и 800 Кб для 5 -дюймовых дискет, получалось
то,что и должно было получаться,когда ссорятся двое: радуется только третий.
IBM представляла свои ПЭВМ с MS DOS.Хотя MS DOS существенно медленней,
чем СР/M, "Голубой гигант" за несколько лет наводнил рынок.Это означает,
что рынок наводнили ЭВМ c MS DOS, хотя лишь часть из них могла претендовать
на родство с "Big Bluе". Львиная доля ЭВМ поставлялась другими
изготовителями, а между
тем едва ли хоть один изготовитель заявлял в своей в программе создание
IBM-совместимой ЭВМ. В этом обстоятельстве несомненно отчасти виновата
сама IBM, поскольку в концепции ее персональных компьютеров речь
шла об открытой системе. На практике это
означало, что можно было легко использовать имеющиеся в продаже
стандартные модули и предлагать хорошую документацию,так как не
представляло никаких проблем воспроизводить эти устройства.
- 302 -
Только этим можно обьяснить то обстоятельсво, что пользователям
MS DOS оказалось доступным почти безграничное множество программ, и
что эти программы,которые разрабатывались где-либо, может быть даже
на другом континенте, могли устанавливаться и эксплуатироваться
на местных ЭВМ, а потому вирусы могли распространяться среди пользователей
ЭВМ с MS DOS практически беспрепятственно.
Таким образом, требование пользователей могло бы прозвучать
так: "Снова отменить стандарты!" .
Однако очень маловероятно,чтобы такое требование было высказано.
Слишком велики преимущества,которые пользователь получает от
стандартизированной вычислительной системы. Хотелось бы найти дорогу, на
которой можно сохранить преимущества использования стандартного
програмного обеспечения, и, тем не менее, воспрепятствовать засылке
стандартных вирусов.
Первые шаги
Для работающих под управлением MS-DOS cистем интерфейс пользовательских
программ с аппаратным обеспечением организуется посредством системы прерываний,
которые для всех ЭВМ, поддерживающих MS-DOS, выполняют одинаковые системные
функции, даже если аппаратное обеспечение различно. В техническом
смысле было бы возможно
оборудовать все ЭВМ различными системами прерываний или даже поставлять
пользователю ЭВМ, позволяющие организовывать собственные системы прерываний.
Такая организация позволила бы все системы сделать непрозрачными. Точно также,
каждое программное обеспечение, разрабатываемое для подобной ЭВМ должно
было бы предлагать возможности согласования с измененной системой прерываний.
Согласование программ или организация новой системы прерываний могли бы выпол-
няться по внутриаппаратному паролю. Эффект был бы следующий:
Чужие программы можно было бы использовать только после установки
их лицами, знакомыми с паролем. Вместе с тем возможность установки стандартного
программного обеспечения сохраняется. Собственные программы могут разраба-
тываться и применяться без этих ограничений. Программные вирусы, которые
заносятся извне, в этом случае столь же мало опасны, как и программы ими
зараженные. Проникновение вирусов, таким образом, возможно лишь с помощью лиц,
знакомых с паролем или тех, кто включает тексты программ-вирусов в
программы, находящиеся в стадии разработки. Следовательно, круг возможных
виновников заражения был бы резко ограничен.
Итак, искусственная несовместимость уже обеспечивает довольно
- 303 -
высокую степень защищенности программного обеспечения. Правда,для реализации
подобного рода концепции необходима была бы совместная работа таких
серьезных разработчиков программного обеспечения, как Mikrosoft и т.п.
Поскольку же действительная готовность разработчиков сотрудничать между собой
ничтожно мала, подобная концепция лучше всего реализуется в рамках одного
предприятия. Разумеется, покупатели программного обеспечения могли бы,
обьединившись, потребовать таких разработок, но и это лишь из области
предположений...
Первым шагом по пути защиты программного обеспечения
можно считать уже упомянутую в 8.2 программу RENAME_BATCH (A.G. Buchmeier).
Сначала все файлы EXE переименовываются в *.XXX. Подобным же
образом поступают с файлами COM (переименовывая их, например,
в *YYY). Таким образом, для нормальной программы-вируса жертв больше
нет. Для запуска этих переименованных программ, нужен небольшой командный
файл, который запускается, например, под именем START.BAT:
echo off
ren %.XXX %.EXE
%1
ren %.EXE %1.XXX
Например, если нужно вызвать WORDSTAR, вводят:
START WS
Этот весьма эффективный с точки зрения трудозатрат метод предлагает уже
достаточно хорошую защиту для пользователя. Разумеется, лишь до тех пор,
пока новые расширения остаются неизвестными. Обратите внимание: для того,
чтобы можно было работать с этим командным файлом, нужно знать
расширения исходных программ (COM или EXE). Эта проблема может быть устране-
на посредством небольшого дополнения:
echo off
if exist %1.XXX goto exefile
if exist %1.YYY goto comfile
echo FILE NOT FOUND
goto ende
:exefile
ren %1.XXX %1.EXE
- 304 -
%1
goto ende
:comfile
ren %1YYY %1.COM
%1
ren %1.COM %1.YYY
:ende
Так, посредством создания искусственной несовместимости,
удается несколько сдержать распространение вирусов.
16. Перспективы развития
После всего сказанного возникает естественный вопрос: что делать
делать дальше? Не захлестнет ли волна вирусов наши ЭВМ? Разумеется,
уже сегодня разрабатываются, а в некоторых случаях даже появились на рынке
средства защиты от вирусов. Однако даже самые совершенные защитные
средства не принесут пользы, если опасность не будет осознана каждым
пользователем ЭВМ, заставляя его изменить привычную технику работы с машиной.
Если же все останется также, как было до сих пор, взрыв компьютеной прес-
тупности неминуем.
Однако время приносит не только рост преступлений, реализуемых с помощью
ЭВМ. Растет также число исследований и разработок в области "вирусологии",
правда на сегодня больше в теории, чем на практике.
Автомодифицируемые и авторепродуциремые коды могут открыть
дорогу к новым принципам программирования. Однако раздаются и предупреждения,
в которых также как в отношении генной инженерии, звучит ужас перед
возможной потерей контроля над программами-вирусами.
16.1 Каким видится программное обеспечение будущего ?
Распространение вирулентных программных кодов приводит к радикальным
изменениям в области вычислительных средств. После бума вокруг так называемых
"пакетов защиты" неизбежна мысль о создании защищенного от вирусов
программного обеспечения.
Вирусозащищенность в данном случае означает не только то, что
эти программы должны сопровождаться хорошей документацией, позволяющей
осуществлять контроль на цельность программного обеспечения
- 305 -
и наличие возможных изменений.
Прежде всего в программном обеспечении необходимо отказаться от
нерациональной защиты от копирования и использовать в нем стандартные
программы, осуществляющие самоконтроль программного обеспечения каждый
раз, когда это технически возможно.
О документации
Некоторые виды установки программного обеспечения, особенно того,
которое снабжается защитой тот копирования, требуют такого режима
использования винчестера или рабочих дискет, как если бы изготовители
программных продуктов заплатили за дисководы и носители данных
собственные деньги. Приведем один пример.
Записанная в двух файлах общим объемом 35180 байт программа, имя
которой здесь не будет названо, тем не менее занимает на 360-Кбайтной
дискете 80 Кбайт. Следовательно, на дискете остаются свободными лишь
280 Кбайт памяти. Причину столь удивительного эффекта можно установить
лишь с помощью различных усилий. В действительности на этой дискете
находятся шесть различных файлов, относящихся к данной программе.
Такие структуры программ (естественно, не отраженные в руководстве
пользователя) не слишком затрудняют создателя вирусов, который найдет,
куда "пристроить" свой вирус.
Хорошая документация должна содержать и исходные коды поставляемых
программ. Автор уже слышит возмущенные голоса производителей
программного обеспечения, для которых жизненно важно сохранить в тайне
исходные коды своих программ. Но и покупатели и законодатели настойчиво
требуют изменить сложившуюся практику поставок ПО.
Покупатели могут доверять программам лишь в той мере, в которой они
доверяют разработчикам программы. Поскольку пользователь, как правило,
не знаком с программистом, он вынужден довериться совершенно чужим
людям. В какой другой области коммерсанты столь легковерны?
Законодатели должны потребовать четкого определения защиты авторских
прав разработчиков программного обеспечения, чтобы разработчики были
застрахованы от его тиражирования в тех случаях, когда он поставляет
вместе с программным продуктом его исходный код.
О защите от копирования
Очевидно, что вышеописанные программные структуры характерны не
- 306 -
только для одной, но и для целого класса программ c защитой от копирования.
Наряду с замаскированными файлами эти программы, как правило, создают на
жестком диске или дискете пару дефектных блоков: этот не совсем порядочный
по отношению к пользователю способ необходим только для размещения файлов,
которые нужно замаскировать.Разработчики программного обеспечения часто
относятся по отношению к аппаратуре клиента так, как будто она их собствен-
ная! Для сравнения читатель может представить себе покупку нового легко-
вого автомобиля в рамках арендного контракта: в день получения автомобиля
продавец здоровенной кувалдой делает мощную вмятину на капоте, для того,
как он поясняет, чтобы Вы не смогли тайком перепродать этот автомобиль!
Вообще говоря, защита от копирования для честного покупателя не нужна:
купив оригинальную программу Вы больше не нуждаетесь в копировании ворованой,
если же Вы достали программу каким-то другим образом, Вам нет необходимости
покупать оригинал. В лучшем случае владение похищенной программой может
привести к покупке оригинальной из-за желания получить комплект
соответствующей документации и соответствующую поддержку поставщика.Разумеется,
если поставщик предлагает Вам такую же поддержку, как и похититель, т.е.
никакой, он не смеет жаловаться на похитителя! На самом деле имя
разработчика означает больше, чем право на продажу программ, но это понима-
ют далеко не все.
О самозащите
Чтобы предотвратить манипуляции с программным обеспечением и данными,
необходимо иметь в распоряжении стандартные программы, которые в состоянии
распознавать и указывать пользователю на:
a) изменения программного обеспечения на носителе данных;
b) изменения программного обеспечения в оперативной памяти.
Хорошей основой для этого может послужит закодированная программа,
что весьма сложно сделать "наружнему"(т.е. находящемуся вне фирмы) специалисту,
и которая распознает структуру программ и тем самым затрудняет нежелательное
манипупулирование. Здесь необходимо еще раз подчеркнуть, что механизмы защиты,
включаемые в программное обеспечение лишь затрудняют манипуляции, но не
могут полностью устранить их!
16.2 Надежно защищенный путь к ЭВМ
- 307 -
Времена, когда можно было, надев белый халат, проникнуть в cвятая святых
любого вычислительного центра, давно миновали. Сегодня, почти каждый серьез-
ный пользователь эксплуатирует свою собственную область ЭВМ как "черный