вать публичное обсуждение проблемы. Как обстояли дела до
этого момента, видно из содержательной публикации Дж. Крау-
са из Дортмудского университета 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 года Коэн смог провести дополни-
тельные опыты по определению скорости распространения на
системе ВАКС под управлением операционной системы ЮНИКС.
Получившиеся при этом таблицы стоит воспроизвести, однако
они не очень выразительны. Путем соответствующего програм-
мирования агрессивность вируса можно сделать любой.
Данные о распространении, полученные Коэном
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ЪДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ ¦ Система 1 ¦
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДґ
¦ Статус программы ¦ Количество ¦ Инфицировано ¦ Время ¦
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДД†ДДДДДДДДДДДДДД†ДДДДДДДґ
¦ Системное задание ¦ 3 ¦ 33 ¦ 0 ¦
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДД†ДДДДДДДДДДДДДД†ДДДДДДДґ
¦ Администратор ¦ 1 ¦ 1 ¦ 0 ¦
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДД†ДДДДДДДДДДДДДД†ДДДДДДДґ
¦ Пользователь ¦ 4 ¦ 5 ¦ 18 ¦
АДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДЩ
ЪДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ ¦ Система 2 ¦
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДґ
¦ Статус программы ¦ Количество ¦ Инфицировано ¦ Время ¦
- 33 -
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДД†ДДДДДДДДДДДДДД†ДДДДДДДґ
¦ Системное задание ¦ 5 ¦ 160 ¦ 1 ¦
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДД†ДДДДДДДДДДДДДД†ДДДДДДДґ
¦ Администратор ¦ 7 ¦ 78 ¦ 120 ¦
ГДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДД†ДДДДДДДДДДДДДД†ДДДДДДДґ
¦ Пользователь ¦ 7 ¦ 24 ¦ 600 ¦
АДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДЩ