17.05 13:25Келли Брук купается в море обнаженной (Фото)[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
17.05 11:10Мэри-Кейт и Эшли Олсен обнажаться для Playboy?[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
17.05 10:58Влад Топалов признался, что был наркоманом[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
17.05 10:55Папарацци застукали Мэрайю Кэри топлесс (ФОТО)[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
16.05 20:01Пенсионеры разделись, требуя повышения пенсий[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
16.05 18:29ЭтноГламур уходит с молотка[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
16.05 18:21Мадонне разрешили усыновить мальчика из Малави[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
16.05 18:19Элтон Джон споет в гостинице на Рублевке за $5.000.000[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
16.05 18:00Хоакин Феникс записывает дебютный альбом с лидером The Charlatans[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
16.05 17:59Кейт Бланшетт не нравится ее прическа в новой серии "Индиана Джонс"[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
Какая из вечных ценностей самая быстротечная:
Результат
Архив

Главная / Учебники / Учебники на русском языке / Компьютерные науки / Большой справочник по компьютерным вирусам


Компьютерные науки - Учебники на русском языке - Скачать бесплатно


ем пользователя; 1974 и "программы-червяки" - ранние опыты
с распределенными вычислениями; 1982), в ФРГ обсуждение са-
мовоспроизводящегося программного обеспечения началось
только после появления статьи в Шпигеле в 1984 году.
С появлением публикации в таком влиятельном журнале,
как Шпигель, влиятельные круги уже не могли больше сдержи-
вать публичное обсуждение проблемы. Как обстояли дела до
этого момента, видно из содержательной публикации Дж. Крау-
са из Дортмудского университета 1980/81 (!!) года. Хотя в
этой работе содержатся даже листинги вирусов, она неизвест-
на даже многим специалистам. Чем эта работа так примеча-
тельна, будет подробнее пояснено ниже; почему она неизвест-
на - хотя появилась за четыре года до работы Коэна,-
объяснить трудно.

- 26 -
Исследование источников, проведенное для этой книги,
позволяет представить развитие следующим образом ( за иск-
лючением публикаций Коэна приводятся только легкодоступные
публикации на немецком языке объемом более двух страниц):

70-е годы Различные публикации о троянских конях, червяках
и вирусах (например, Гун. Использование функций
вирусов... Ассоциация по вычислительной технике,
1974)
Gunn, Use of Virus Function... ACM, 1974.

1980/81 Дж. Краус
Самовоспроизводящееся программное обеспечение
Дортмундский университет
J.Kraus.Selbstreproduzierende Software.
Universitat Dortmund.

1983-1984 Ф.Коэн
Компьютерные вирусы, теория и эксперименты
Университете Южной Калифорнии
F. Cohen. Computerviruses, Thory and Experiments
University of Southern California

11/84 Шпигель
Скрытая команда
47/84 Отчет по работе Коэна

3/85 ВНР выборочно переводит работу Коэна
Bayrische Hackerpost,c/o Basis
Adalbertstr. 41b, 8000 Munchen 40

3/85 Р. Дирштайн
Компьютерные вирусы
содержит рекомендации по защите от вирусов
R. Dierstain Computerviren
KES, Peter Hohl Verlag

7/86 Р. Дирштайн
Компьютерные вирусы,

- 27 -
Немецкая научно-исследовательская лаборатория
авиации и космонавтики, внутренний отчет IB 562/6
R. Dierstain Computerviren

11/86 Программы-вирусы
Персональные ЭВМ

12/86 Б. Фикс
Дополнительные источники вирусов
Зарегистрированное общество Хаос компьютер клуб
(ССС)
Schwenkestr. 85, 2000 Hamburg 20
Datenschleuder

12/86 Конгресс ССС
Представляются вирусы для персональных ЭВМ

1/87 Эберхард Шенебург
Компьютерные вирусы
Дорниер Пост

2/87 Цифровые картины ужасов
Экономическая неделя

2/87 С. Вернери
Вирусы в персональных ЭВМ
Справочник по защите данных
Pattweg 8,Pulcheim-Dansweiler

2/87 С. Вернери
Обсуждение проблемы вирусов в персональных ЭВМ
Datenschleuder

3/4/87 С. Вернери
Эксперименты с компьютерными вирусами
KES, Peter Hohl Verlag

4/87 Э.Крабель
Вирусы идут

- 28 -
c't Heise Verlag

4/87 Э. Шмидт
Компьютерные вирусы
Computerwoche; CW Publikation

4/87 Mailbox CLINCH
Правовые аспекты компьютерных вирусов
С. Аккерман

4/87 Аппаратные вирусы
Heppy Computer, Markt & Technik

6/87 Х. Шумахер
Страхование
Хандельсблат

7/87 Компьютерные вирусы
64'er
Markt & Technik

9/87 С. Вернери
Новая опасность - компьютерные вирусы
CHIP,Vogel-Verlag

10/87 Программы-вирусы: грозит ли нам компьютерный СПИД
PM-Computer

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

2.1 Гласность? Исследование Фреда Коэна
-----------------------------------------
Работой на тему компьютерных вирусов, привлекшей к се-
бе наибольшее внимание, несомненно является работа Фреда
Коэна "Компьютерные вирусы, теория и эксперименты". Основой

- 29 -
этой популярности является очень полное и понятное изложе-
ние Коэном темы вирусов, а также результаты практических
исследований на вычислительных системах. В этой главе опи-
сываются основные моменты работы Коэна.
Во введении Коэн пытается познакомить читателя с прин-
ципом действия программ-вирусов. (Его определение вируса,
конечно, нельзя считать полным с научной точки зрения.)
We define a computer 'virus' as a program that can
'infect' other programs by modifying them to include a
possibly evolved copy of itself. With the infection
property, a virus can spread throughout a computer sistem
or network using the authorizations of every user using it
to infect thir programs. Every program that gets infected
may also act as a virus and thus the infection grows".

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

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

Простой вирус V описывается следующим образом:

program virus:=
12345678;

subroutine infect_executeble:=
loop: file = get_random_executable_file;
if first_line_offile=12345678 then goto loop;
prepend virus to file;


- 30 -
subroutine do_damage:=
whatever damage is to be done

subroutine trigger_pulled:=
return true if some condition holds

main programm:=
infect_executable;
if triger_pulled then do_damage;
goto next;
next:

Описание
--------
Подпрограмма "infect_executable" ищет исполняемый файл
и проверяет, содержит ли этот файл идентификатор вируса
"12345678". Наличие идентификатора говорит о присутствии
инфекции и инициирует дальнейший поиск. ПРи отсутствии
идентификатора вирус помещается перед файлом.
Подпрограмма "do_damage" содержит произвольно опреде-
ляемую задачу обработки.
Подпрограмма "trigger_pulled" проверяет, выполняется
ли определенное условие. Если выполняется,
"trigger_pulled" становится ИСТИННЫМ.
"main_program" сначала инфицирует здоровую программу,
затем проверяет наличие условия и, при благоприятном исходе
проверки, инициирует задачу обработки.
Коэн описывает здесь уже исключительно коварный вари-
ант компьютерного вируса, так называемый "спящий вирус", т.
е. вирус, ожидающий наступления инициирующего события. Пос-
ледующие авторы работ о вирусах почувствовали, очевидно,
особую симпатию к вирусам этого типа, и почти во всех пуб-
ликациях Вы найдете пример вируса, который первого апреля
стирает все данные и программы.
Для Коэна основной риск составляют многопользователь-
ские системы, так как он пишет: Если V инфицировал одну из
исполняемых программ Е пользователя А, а пользователь А за-
тем запустил эту программу, V поразит также и файлы пользо-
вателя В.

- 31 -
Коэну принадлежит легенда о положительном вирусе, су-
ществование которого он доказывает при помощи "вируса
сжатия". Бессмысленность такой формы положительного вируса
показана в разделе 3.1.

Вирус сжатия Коэна
-----------------
program Compretion_virus:=
{ 01234567;
subroutine infect_executable:=
{loop:file = get_random_executable_file;
if first_line_of_file = 01234567 then goto loop;
compress file;
prepend compression_virus to file;}
main_program:=
if ask_permission then infect_executble;
uncompress the_rest_of_this_file into tmpfile;
run tmpfile;}

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

Эксперименты Коэна
------------------
Первый опыт состоялся 10.09.83 в Университете Южной
калифорнии на полностью загруженной системе ВАКС 11/750 под
управлением операционной системы НИКС в рамках Семинара по
безопасности. Для подготовки программы-носителя "vd" потре-
бовалось лишь восемь часов работы специалиста
("expertwork"). Чтобы исключить неконтролируемое распрост-
ранение, были приняты многочисленные защитные меры, такие
как встроенная трассировка и кодирование. Вирус предостав-
лял экспериментатору на короткое время (в среднем тридцать,
минимум - пять минут) все ресурсы системы. На занесение ин-
фекции требовалось при этом менее500 мс, из-за чего инфек-

- 32 -
ция не регистрировалась другими пользователями.
Все прошло так, как и должно было пройти: Коэн получил
в свое распоряжение все ресурсы системы.
После этого Коэн планировал опыты на системах
Tops-20, VMS-VM/370 и на сети из нескольких этих систем.
Программы, время разработки которых составляет от шести до
тридцати часов, должны были:
а/ найти программы, которые можно инфицировать,
б/ инфицировать их и
в/ выполнить их с нарушением границ пользователя.
Однако эти эксперименты никогда не были осуществлены из-за
"реакции страха" ответственных за систему (по крайней мере,
так пишет Коэн в своей работе).
В начале августа 1984 года Коэн смог провести дополни-
тельные опыты по определению скорости распространения на
системе ВАКС под управлением операционной системы ЮНИКС.
Получившиеся при этом таблицы стоит воспроизвести, однако
они не очень выразительны. Путем соответствующего програм-
мирования агрессивность вируса можно сделать любой.

Данные о распространении, полученные Коэном
--------------------------------------------
--------------------T-----------------------------------¬
¦ ¦ Система 1 ¦
+-------------------+------------T--------------T-------+
¦ Статус программы ¦ Количество ¦ Инфицировано ¦ Время ¦
+-------------------+------------+--------------+-------+
¦ Системное задание ¦ 3 ¦ 33 ¦ 0 ¦
+-------------------+------------+--------------+-------+
¦ Администратор ¦ 1 ¦ 1 ¦ 0 ¦
+-------------------+------------+--------------+-------+
¦ Пользователь ¦ 4 ¦ 5 ¦ 18 ¦
L-------------------+------------+--------------+--------


--------------------T-----------------------------------¬
¦ ¦ Система 2 ¦
+-------------------+------------T--------------T-------+
¦ Статус программы ¦ Количество ¦ Инфицировано ¦ Время ¦

- 33 -
+-------------------+------------+--------------+-------+
¦ Системное задание ¦ 5 ¦ 160 ¦ 1 ¦
+-------------------+------------+--------------+-------+
¦ Администратор ¦ 7 ¦ 78 ¦ 120 ¦
+-------------------+------------+--------------+-------+
¦ Пользователь ¦ 7 ¦ 24 ¦ 600 ¦
L-------------------+------------+--------------+--------

Количество: Количество пользователей

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

Там, где есть путь от А к В и от В к С, там есть и
путь от А к С.

Отсюда следует логичный вывод, что распространение ви-
руса можно остановит при помощи изоляции. Различные подходы
к решению, основанные на модели целостности и на модели Бел
-ля Падула (Bell-La Padula), а также протоколирование пере-
мещения данных не дают удовлетворительных результатов. По
крайней мере, в тех случаях, когда необходим быстрый и ин-
тенсивный обмен данными.
Если нельзя предотвратить инфицирование, значит следу-
ет искать стратегии распознавания вирусов. Коэн пытался
обосновать невозможность целенаправленной стратегии поиска
на примере программы, которую можно назвать логическим ко-
лебательным контуром.Эта программа выглядит следующим обра-
зом:

program contradictory_virus:=
{ 12345678;

subroutine infect_executable:=

- 34 -
{ loop:file = get_random_executable_file;
if first_line_of_file = 12345678 then goto loop;
prepend virus to file;}

subroutine do_damage:=
{ whatever damage is to be done}

subroutine trigger_pulled:=
{ return true if some condition holds}

main program:=
{ if not D(contradictory_virus) then
{ infect_executable;
if trigger_pulled then do_damage;
goto next;}}

next:}

Причем "D" должна представлять собой подпрограмму, ко-
торая решает, является ее аргумент программой-вирусом,
т.е.: D(x) ИСТИННО, если х является вирусом. D( x) ЛОЖНО,
если х не является вирусом. Таким образом, при отрицатель-
ном результате инициируется заражение ( внесение инфекции),
при положительном результате - нет.
Так как резкие нападки автора на практику аргументации
Коэна вызвали появление некоторых критических статей с уп-
реками, такая аргументация должна быть научно обоснованной,
и по этому приведенная выше программа-вирус Коэна должна
быть рассмотрена более подробно. Так как речь идет о псев-
доязыке программирования, эту программу можно сразу описать
на общепринятом языке.
( Программы "do_damage" и "trigger_pulled" для после-
дующего рассмотрения не важны, они опускаются.)

программа вируса противоречивости:=
{ 12345678;

подпрограмма инфицирования:=
{ цикл:файл = поиск_какой-либо_программы;

- 35 -
если первая_строка_Ды = 12345678 то переход на цикл;
запись_вируса_перед_файлом;}

основная программа:=
{ если не D(противоречие) то
инфицировать;
если инициировано то повредить;
перейти на дальше;}

дальше:}

Эту логику можно использовать и для других целей. Так,
можно составить программу такого типа на тему истории о де-
ревенском брадобрее, который бреет только тех, кто не умеет
бриться сам.
(Между прочим: Бреется ли сам брадобрей, или, может ли
он бриться?)
программа брадобрей:=

подпрограмма бритье:=
{ цикл: файл = поиск_какого-либо_мужчины;
если мужчина = безбородый то переход на цикл;
бритье_мужчины;}

основная программа:=
{ если не D( брадобрей) то
бритье;
перейти на дальше
дальше:}

Причем "D" представляет собой подпрограмму, которая
решает, является ли ее аргумент брадобреем. Т.е.: D(х) ИС-
ТИННО, если х брадобрей. D( х) ЛОЖНО, если х не брадобрей.
Таким образом приведено доказательство того, что нельзя ре-
шить, является ли произвольный мужчина брадобреем или нет.
Об этом можно судить только в том случае, если этого
мужчину кто-то побрил.
Ошибка заключается в том, что свойство объекта, кото-
рое можно обнаружить только после выполнения действия, сна-

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

Еще раз то же самое для любителей Бейсика:
10 if a=3 then a=5
20 if a=5 then a=3
30 goto 10

Являются ли такого типа программы содержательными,
каждый читатель может судить сам.
В следующей программе из работы Коэна речь идет об
"эволюционирующем вирусе", т.е. о вирусе с изменяющейся
формой проявления:
program evolutionary_virus:=
{12345678;

subroutine infect_executable:=
{loop: file = get_random_executable_file;
if first_line_of_file = 12345678 then goto loop;
prepend virus to file;}

subroutine do_damage:=
{whatever damage is to be done}

subroutine trigger_pulled:=

- 37 -
{return true if some condition holds}

subroutine print_random_statement:=
{print random_variable_name,=,random_variable_name;
loop: if random_bit = 0 then
{print random_operator,random_variable_name;
goto loop}
print semicolon;}

subroutine copy_virus_with_random_insertations:=
{loop: copy_evolutionary_virus to virus till
semicolon_found;
if random_bit = 1 then print_random_statement;
if not end_of_input_file goto loop;}

main program:=
{ copy_virus_with_random_insertations;
infect_executable;
if trigger_pulled then do_damage;
goto next;}

next:}

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

program undecidable_evolutionary_virus:=
{12345678;

subroutine infect_executable:=
{loop:file = get_random_executable_file;
if first_line_of_file = 12345678 then goto loop;
prepend virus to file;}


- 38 -
subroutine do_damage:=
{whatever damage is to be done}

subroutine trigger_pulled:=
{ return true if some condition holds}

subroutine copy_with_undecidable_assertion to file till
line_starts_with_zzz;
if file=P1 then print "if D(P1,P2) then print 1;"
if file=P2 then "if D(P1,P2) then print 0;"
copy undecidable_evolutionary_virus to file till
end_of_input_file;}

main program:=
{if random_bit=0 then file=P1 otherwise file=P2;
{copy_with_undecidable_assertion;
zzz:
infect_executable;
if trigger_pulled then do_damage;
goto next;}

next:}

При этом D представляет собой процедуру сравнения, ко-
торая сравнивает два своих аргумента. Смысл этой программы
можно было бы представить следующим образом:
СТАРТ:
Проверить два предмета на совпадение; если они одина-
ковы, сделать их неодинаковыми.
Проверить два предмета на несовпадение; если они нео-
динаковы, сделать их одинаковыми.
Перейти на СТАРТ.

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

- 39 -
можно сделать ее защищенной от действия этого вируса; в
этом случае вирус поведет себя так, как будто программа уже
инфицирована. Новое заражение в этом случае было бы невоз-
можным. Дополнительную информацию о возможностях защиты при
помощи идентификаторов вирусов Вы найдете в разделе 15.3.
Коэн поставил еще один интересный вопрос: какова веро-
ятность того, что программа-вирус возникнет случайно?
Коэн считает, что при благоприятных условиях ( длина
вируса 1000 битов, 50-процентное задание) 500!/1000**500.
Прав ли он и какова действительно потенциальная опас-
ность, Вы узнаете в разделе 13.3.
В конце Коэн приходит к выводу, что существующие сис-
темы не предоставляют достаточных возможностей для защиты
от вирусов. Предстоит еще очень много сделать...
Вывод: Работа Коэна не внесла той ясности, которая
ожидалась.Все же его работа полезна тем, что он помог осоз-
нать возникшую опасность, а также обратил внимание на тема-
тику и связанные с ней проблемы.

2.2 Другие исследования
------------------------
В первую очередь здесь следует рассмотреть работу спе-
циалиста по информатике из Дортмундского университета Дж.
Крауса "Самовоспроизводящееся программное обеспечение". Эта
работа Крауса интересна не только тем, что здесь определено
самовоспроизведение программного обеспечения и приведены ас-
семблерные распечатки на реально существующем языке програм-
мирования - ВАссемблере фирмы Сименс, - но и указанны парал-
лели между органическими и компьютерными вирусами. При этом
не следует забывать, что эта работа появилась примерно за
четыре года до публикации Коэна. Так как получить экземпляр
этой работы весьма сложно, автор обратился к работе Крауса
1981 года с тем же названием.

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

- 40 -
ческим страхом: о "жизни" на уровне вычислительной системы.
Краус поясняет взаимосвязь между жизнью и сложностью окру-
жающей среды и приходит к выводу:
"Если верно представление о том, что возникновение или
существование жизни является следствием сложности, то спе-
кулятивным является предположение даже о возможности жизни
на уровне ЭВМ".
Он признает воспроизводство и мутацию необходимыми для
возникновения жизни и приходит к выводу, что самовоспроиз-
водящиеся программы весьма плодотворны в этом смысле. Само-
модификация - т.е. мутация - определяется обычной частотой
ошибок в вычислительной системе. Он делает вывод:
"Так как электронные вычислительные системы не обеспе-
чивают 100-процентное отсутствие ошибок, всегда существует
возможность неверного вывода текста программы, т.е. мута-
ции. Таким образом, самовоспроизводящаяся программа не мо-
жет считаться носителем жизни на уровне ЭВМ".
Более подробно тема "Жизнь" на уровне ЭВМ будет обсуж-
даться в разделе 16.4.
Краус видит существенное различие между программами,
написанными на ассемблере, и на языках программирования вы-
сокого уровня:
"Ассемблерные программы могут адресовать и читать об-
ласть памяти, в которой они находятся. Поэтому они в состо-
янии копировать свои собственные коды в рабочей памяти, а
следовательно, самовоспроизводиться. Программы на языках
высокого уровня, напротив, не могут читать собственные ма-
шинные коды в рабочей памяти, а следовательно, не могут их
копировать. Программы на языках высокого уровня могут само-
воспроизводиться, лишь записывая собственный исходный текст
на устройстве внешней памяти. Этот процесс, однако, требует
трансляции копии в машинные коды, что не требуется при ко-
пировании ассемблерных программ".
В настоящее время такое разделение, наверное, уже не-
действительно, что показано в разделах главы 10. Современ-
ные языки высокого уровня позволяют читать и копировать
области памяти, а также компилировать копии программ на
языке высокого уровня.
Так как Краус видит существенное различие между само-

- 41 -
воспроизведением программ в машинных кодах и программ на
языке высокого уровня, он вводит также различные определе-
ния:
"Пусть П есть (синтаксически корректная) программа из
S.
(1) Если П не требует ввода и выводит ( точно) свой текст
программы П,то П называется (строго) самовоспроизводя-
щейся.
(2) Если П требует ввода и при каждом допустимом вводе вы-
водит (точно) свой текст программы Р, то П назы-
вается (строго) самовоспроизводящейся."
"Пусть П является действительной программой на Ас-
семблере М.
(1) Если П не требует ввода и выводит или воспроизводит в
рабочей памяти ( точно ) свои машинные коды, то П
называтся (строго) самовоспроизводящейся.
(2) Если П требует ввода и при каждом вводе выводит или
воспроизводит в рабочей памяти (точно) свои машиные
коды, то П называется (строго) самовоспроизводящейся".

Он пришел к выводу, что в отличие от самовоспроизводя-
щихся ассемблерных программ существование самовоспроизводя-
щихся программ на языке высокого уровня не очевидно.
При программировании Краус - как в последствии и Коэн
- воспользовался псевдоязыком программирования (ПЛ(А)), ко-
торый он очень тщательно определил. Распечатки программ
здесь не приводятся, так как только определение ПЛ(А)-ко-
манд потребовало бы несколько страниц.
Приведены, однако, программы на реально существующих
языках, которые без доработок не работоспособны. Краус ссы-
лается здесь на свою работу 1980 года, в которой описаны
соответствующие доработки. Эта работа, однако, недоступна
широкой публике. Краус формулирует постановку задачи разра-
ботки самовоспроизводящейся программы следующим образом:
"Множество D печатных символов, необходимых для сос-
тавления текста программы П на языке программирования S
объединяют в массив символов С [0: maxchar] . Благодаря
этому печатные символы упорядочены, а слова из D могут быть
отображены натуральными числами при помощи стандартной ге-

- 42 -
делизации. Так как может быть определена обратная функция
этого отображения, каждое натуральное число представляет
слово из D*. Следовательно, самовоспроизводящуюся программу
из D* можно представить натуральным числом q и, наоборот,
реконструировать из q."
Если перевести эту научную формулировку на общеприня-
тый язык, получится: Самовоспроизводящаяся программа должна
хранить свой собственный исходный текст в переменой (в це-
почке символов). Затем программа может быть реконструирова-
на из этой переменной. Кроме многократно самовоспроизводя-
щихся программ и иерархии воспроизведения, Краус говорит
также о самовоспроизводящихся программах с дополнительными
свойствами. Он признает:
"Можно не только примерами доказать, что такие прог-
раммы существуют, напротив, любой алгоритм можно выполнить
в форме самовоспроизводящейся программы."
В конце своей работы Краус еще раз приходит к паралле-
лям с биологической жизнью и ставит вопрос:
"Следуя биологии, можно, наверное, говорить даже о жи-
вых программах?"
Краус, конечно, не имеет в виду обмен веществ. Однако
воспроизводство и мутации позволяют провести явные аналогии
с биологической жизнью.
Таким образом Краус добрался, наконец, до вирусов и
определил:
"Ключевыми процессами жизни (биологических) вирусов
являются лишь воспроизводство и мутация, и притом лишь в
том случае, если чужой механизм обмена веществ предоставля-
ет строительный материал и энергию. Эти взаимосвязи в той
же форме следует установить и для самовоспроизводящихся
программ."
Очень известной работой является работа Р. Дирштайна
"Компьютерные вирусы". Так в этой работе в основном речь
идет о переводе/переработке работы Коэна "Компьютерные ви-
русы", мы не будем подробно на ней останавливаться. Следует
лишь предупредить о заведомо неверном утверждении. Дирштайн
пишет в первой редакции:
"Если известна дата занесения вируса, удаляют все фай-
лы, которые были созданы в ЭВМ после этой даты."

- 43 -
То, что эти действия не приведут к успеху, станет яс-
ным, если представлять себе, что, разумеется, поражаются и
все старые программные компоненты. Практическое доказатель-
ство бессмысленности этого мероприятия приведено в разделах
главы 10. Впоследствии эта ошибка была устранена.
Здесь следует еще кратко упомянуть Восьмой отчет о де-
ятельности Уполномоченных по защите данных Баварии. Этот
отчет подтверждает выводы автора, когда он рекомендует:
"[...] перед выполнением защищенной таким образом программы
выполните сравнение с записанной в памяти версией. Если
есть разница, она является признаком того, что данные и
программы, записанные в системе, подвергнуты обработке."
Следующей едва известной работой является "Угроза бе-
зопасности от компьютерных вирусов - первые подходы к реше-
нию". В этой работе, выполненной Ф. Хофмайстером в 1987 го-
ду в Дортмундском университете, явно ощущается влияние
публикаций Крауса, появившихся до 4/87. Работа начинается с
расплывчатого определения понятия вируса. Затем описываются
несколько форм вирусов и пути их распространения, чтобы за-
тем обосновать опасность, исходящую от компьютерных виру-
сов. Хофмайстер повторяет также ошибочное утверждение о
том, что можно достичь положительного действия вирусов на
обычные вычислительные системы. Он пишет:
"Компьютерные вирусы не являются зловредными в принци-
пе, они опасны лишь в том случае, если зловредность являет-
ся их функциональным признаком."
Напротив, следует придерживаться мнения:
"Любое неконтролируемое изменение данных и программ в
обычных системах следует считать нежелательным".
Затем Хофмайстер возвращается к "логическому колеба-
тельному контору" Коэна и поясняет читателям то, что Коэн
недостаточно полно описал при помощи своего "contradictory_
virus" (вирус противоречивости).
Следующие затем подходы к решению известны, по меньшей
мере, с момента появления публикаций Дирштейна.

1) Принцип четырех глаз
2) Регулярная проверка программных компонентов
3) Изоляция отдельных групп пользователей друг от друга

- 44 -

Далее Хофмайстер дошел до того, что отклонил, как не-
достаточно надежный, единственный надежный способ защиты
(запись программы в ПЗУ - постоянное запоминающее устройс-
тво). Вместо этого он предлагает трудоемкую технику кодиро-
вания.
Подходы к решению, предложенные Хофмайстером (предло-
женные Б. Фиксом уже в декабре 1986 и находящиеся в
настоящее время в стадии отладки), ограничиваются, как и
все названные до сих пор возможности защиты, функциональны-
ми возможностями системы.

2.3 Отклики печати
-------------------
Если в предыдущих разделах мы говорили о научных публи-
кациях, обратимся теперь к публикациям в прессе. Здесь будет
показано по возможности полно - но без претензий на абсолют-
ную полноту,- каковы были мнения и поведение немецких орга-
нов печати в отношении публикаций на тему вирусов. (Все ци-
таты относятся к пункту 2 перечня источников).
Если следовать хронологии, прежде всего, конечно, сле-
дует упомянуть Шпигель, которому, как это уже бывало,
удалось пробить стену молчания публикацией "Скрытая коман-
да". Споры были уже тогда. "Джером Лобель, консультант по
безопасности ЭФМ фирмы Honeywell Informations Systems, пре-
дупреждал: То, что придумал Коэн, не должны публично обсуж-
дать "ни Коэн, ни сознающие ответственность эксперты". Коэн
возражал: "Все дело в том, что если до этого додумался я,
то может додуматься и любой другой", и возможно, он окажет-
ся "Bad guy" ("плохим парнем").
После статьи в "Шпигеле" в прессе появилась серия па-
нических сообщений. Временами тому или иному пользователю
казалось, что его ЭВМ заражена. Однако не находился "сумас-
шедший, который это проверит", и интерес публики к проблеме
постоянно угасал.
Весной 1985 года появился третий выпуск журнала Бава-
рише Хакерпост" (ВНР) с переводом важнейших текстов из ра-
боты Коэна.
Весной же 1985 года появился очередной отчет по этой

- 45 -
теме в журнале KES. Там в предисловии указывается, что уже
имеются публикации на тему вирусов на немецком языке, та-
кие, как в "Баварише Хакерпост", поэтому авторов можно было
не подозревать в содействии распространению вирусной инфек-
ции. Статья, состоящая из двух частей, появилась сначала
без указания автора - вероятно, не ясна была реакция на по-
добную публикацию, и автор решил немного повременить с ука-
занием своей фамилии. Во второй части стало ясно, что авто-
ром является Р. Дирштайн, причем это стало ясно уже из
содержания публикации, так как именно в работах Дирштайна
идет речь о комментированном переводе работы Коэна.
Весной 1986 года журнал "Шпигель" опять привлек к себе
внимание автора, опубликовав небольшую заметку. Там сообща-
лось, что в США на различных персональных ЭВМ появились ви-
русы, которые портили данные и программы на подключенных к
ЭВМ дисководах. Эта заметка, которая едва обратила на себя
внимание, побудила автора более интенсивно заняться своими
исследованиями в области компьютерных вирусов.
В ноябре 1986 года в "Компьютер перзенлих"- уже в ко-
торый раз - появился комментированный перевод работы Коэна
под названием "Программы-вирусы - серьезная угроза или нео-
сознанная опасность". В этой статье также не отказались от
интерпретации в качестве доказательства "интеллектуального
короткого замыкания" Коэна и сообщили еще об одном подходе
к использованию вирусов (шпионаж). В качестве сюрприза в
статье приведена распечатка программы-вируса для ЭВМ Apple
II.
В декабре журнал ССС "Датеншлейдер" поместил небольшую
статью Б. Фикса. В этой статье описан MS-DOS - вирус "час
пик", который, конечно, никакой угрозы не представляет.
Подробнее он описан в разделе 10.1.
В феврале 1987 года Экономическая неделя преподнесла
"цифровые картины ужасов" - о маленьких червячках, пожираю-
щих дискеты. Так как этот журнал не является специальным
журналом в области вычислительной техники, ожидать от него
обсуждения узко-специальных вопросов не приходится. Однако
в статье высказано несколько интересных моментов. Так, нап-
ример, упомянуто и одновременно подвергнуто сомнению выска-
зывание специалиста фирмы IBM по защите данных - "нет необ-

- 46 -
ходимости заново разрабатывать опробованные на практике
операционные системы". Конечно, со ссылкой на спорный слу-
чай, произошедший в 1986 году в Берлинском университете.
В феврале появилось издание Конгресса Датеншлейдер с
добавлениями Хаос Комьюникейшн Конгресса с опубликованной
там информацией автора. Подробная информация об издании
Конгресса Датеншлейдер приведена в 4.1.
В то же время как в KES, так и в "Датеншутц бератер"
появился отчет о декабрьском Хаос Комьюникейшн Конгрессе.
Этот отчет также основан - по крайней мере все, что касает-
ся технических деталей - на исследованиях автора. Здесь
впервые был публично показан демонстрационный вирус для
операционной системы MS-DOS.
Вскоре после этого - в марте - появился "Компьютерво-
хе" с новым, основанным на переводе и комментариях Дирштай-
на, обсуждением работы Ф. Коэна.
В апреле 1987 было весело. "Хеппи компьютер" сообщил
об аппаратном вирусе (вирусе, который имитирует программа-
тор ЭППЗУ и повреждает ЭВМ). Автор получил от обеспокоенных
читателей множество запросов по этой статье. Правда, тот,
кто потрудился и ввел напечатанный в статье фильтр против
вируса, избавил себя от вопросов. Программа выводит: "Тот,
кто верит апрельским шуткам и не смеется над ними..." и т.д.
В апреле c't также почувствовал, что созрел для статьи
на тему вирусов. В этой статье Э.Крабель предостерегает от
злых-злых хакеров. Цитата: "Здесь я хотел бы предупредить
всех хакеров, обладающих высокой квалификацией и завидным
терпением,необходимым для разработки таких программ. Если
вирусы умышленно или не умышленно выйдут из под контроля,
они могут причинить большой ущерб."
Что можно сказать об авторе, который после такого выс-
казывания приводит распечатку вируса с таким комментарием:
"Только бессовестный гангстер будет набивать эту программу."
Каждый читатель может иметь свое собственное мнение.
Нельзя надежно предостеречься от людей, которые рекомендуют
использовать программы-вирусы в качестве защиты от вирусов,
предупреждая при этом, что при использовании этой защиты
все остальные программы работать не смогут.
В качестве предпоследней работы следует кратко упомя-

- 47 -
нуть статью из 64r(7/87), которая указывает на распростра-
нение программ-вирусов на ЭВМ С64.
В заключение следует остановиться на двух телевизион-
ных отчетах по теме "вирусы". Первым является отчет WDR
Компьютерклабс, вышедший весной 1986 года. Под конец пере-
дачи коснулись темы вирусов. Ведущий продемонстрировал
действие вируса - хотя из распечатки видно, что на экране
должна появиться надпись "WDR тест" - на экран выводится
надпись "WDR вирус". Ведущий, который, очевидно, был чрез-
вычайно доволен этой демонстрацией, - в конце концов, он
сам написал вирус на Бейсике, сияя, пояснил, что причиной
такого поведения программы явилось наличие в видимой распе-
чатке Бейсик-программы некоторых невидимых операторов. Де-
монстрация вируса для ЭВМ Apple - написанная уже не самим
ведущим - прошла несколько интереснее, хотя тоже не показа-
ла ничего существенного. Единственным просветом в передаче
был Ф. Хофмайстер (см. 10.), который, правда, ставил весьма
банальные вопросы.
Второй отчет по этой теме, сделанный NDR,был гораздо
более информативен. Здесь высказались такие деятели, как
Глисс, Брунштайн и Вернери.
Глисс (редактор "Датеншутц-бератер"):
"Программы-вирусы для ЭВМ представляют собой, пожалуй,
самый грустный вид компьютерного саботажа, который мне
встречался."

Вернери (Хаос Компьютер Клаб, Гамбург):
"До сих пор промышленность и торговля не предоставляет
никакой информации о грозящей опасности; пользователи ЭВМ
не в курсе дела и совершенно не представляют, какая опас-
ность им грозит."

Брунштайн (профессор информатики, Гамбургский универ-
ситет):
"В то время как в коммерческих вычислительных центрах
ущерб весьма ощутимый и при известных условиях может быть
выражен в марках и пфеннингах, ущерб в вычислительных цент-
рах высшей школы скорее не материален."


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

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

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


3. Чем опасны компьютерные вирусы?
-----------------------------------
Обработка данных и программ известна с тех пор, как
известны ЭВМ. Почему же программы-вирусы привлекли такое
пристальное внимание? Возможно, немалую роль в этом сыграло
новое название этих программ. Словотворчество специалистов
по информатике как раз совпало с публичным обсуждением проб-
лемы СПИДа.Обыватель всегда пугается если машина становится
похожей на человека, а многих, наверняка, потрясло вторжение
машин - ЭВМ - в типично человеческую область, в область мыш-
ления. ТО, что ЭВМ может к тому же поражаться вирусами, еще
более приблизило машину к Гомо Сапиенс.
Главная опасность вирулентных программных кодов заклю-
чается в том, что программы-вирусы начинают жить собствен-
ной жизнью, практически не зависящей от разработчика прог-
раммы, после первого же размножения. Так же, как в цепной

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

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

- 50 -




Назад
 


Новые поступления

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

281311062 (руководитель проекта)
401699789 (заказ работ)
© il.lusion,2007г.
Карта сайта
  
  
 
МЕТА - Украина. Рейтинг сайтов Союз образовательных сайтов