более изощренных средств защиты; программисты и администраторы систем,
жутко ругаясь, отлавливают вирусы в своих системах; большинство
пользователей находятся в состоянии благоговейного ужаса перед одним
упоминанием вирусов вслух, а вся остальная масса простых смертных,
непосвященных в таинства компьютерного мира, с полным непониманием, но
тем не менее с большим интересом типа "Ну надо же!", периодически
читают в газетах маленькие заметки о "кровожадных" компьютерных
вирусах, неизвестно откуда нападающих на ЭВМ.
Вообще феномен компьютерных вирусов стоит перед компьютерным
обществом давно, во всяком случае первое официальное сообщение об этом
явлении относится к 1978 году, хотя и эту дату нельзя считать днем
рождения проблемы.
______________________________
[A3] ISO - International Standards Organization - официально
размещается в Женеве. Представителем ISO в США является Национальный
институт стандартизации - American National Standards Institute -
ANSI.
[A4] Transmission Control Protocol/Internet Protocol - протокол
управления передачей и взаимодействия между сетями.
стр. 6
Сам термин "вирус" в отношении определенного вида компьютерных
программ впервые употребил Фред Кохен в 1984 году на конференции по
вопросам безопасности компьютерных систем в докладе о своих
исследованиях. Своим названием компьютерные вирусы обязаны
определенному сходству с вирусами естественными: способности к
саморазмножению; высокой скорости распространения; избирательности
поражаемых систем (каждый вирус поражает только определенные системы
или однородные группы систем); способности "заражать" еще незараженные
системы; трудности в борьбе с вирусами и т.д. В последнее время к
этим особенностям, характерным для вирусов компьютерных и
естественных, можно добавить еще и постоянно увеличивающуюся быстроту
появления модификаций и новых поколений вирусов. Только если в случае
вирусов естественных эту скорость можно объяснить могуществом и
изобретательностью природы, то вирусы компьютерные обязаны скоростью
возникновения новых штаммов исключительно недосмотру или бредовым
идеям людей определенного склада.
Однако серьезного отношения компьютерные вирусы потребовали к
себе относительно недавно; настолько недавно, что американский
институт стандартов до сих пор не дал четкого определения
компьютерного вируса, благодаря чему в трудах и работах
специалистов-компьютерщиков царит полнейший плюрализм в трактовке
этого термина. Лично я придерживаюсь определения, данного в книге
"Кризис компьютерных вирусов":
Компьютерный вирус - программа, производящая в вашей
компьютерной системе действия, в которых вы не нуждаетесь и о
которых не подозреваете.
Попадая тем или иным способом в компьютерную систему, вирус в
общем случае самокопируется в различные места системы, а затем - либо
одновременно с этим - производит в системе изменения, в лучшем случае
не приводящие к катастрофическим последствиям - вроде высвечивания на
экране терминала некоторого сообщения, - а в худшем делающие вашу
систему неработоспособной.
В широком потоке литературы по проблеме вирусов, хлынувшей в
последнее время на нас, приводится масса классификаций и описаний
вирусов, так что интересующихся этой проблемой всерьез я с чувством
глубокого облегчения отсылаю к специальным публикациям, большей
частью, правда, далеких от совершенства и законченности. Однако с
этого момента считаю, что имею дело с людьми, достаточно хорошо
представляющими, что такое компьютерный вирус, чтобы не примешивать к
этой проблеме какие-либо потусторонние силы. Компьютерные вирусы - в
отличие от вирусов естественных - полностью дело ума и рук
человеческих, поэтому их можно - и нужно! - изучать, анализировать и
успешно бороться с ними.
Специалисты классифицируют вирусы по самым различным признакам,
что вносит определенную неразбериху: по степени опасности
производимых вирусом действий; по способу проникновения вируса в
системы; по длине; по местам размещения вируса в системе и т.д.
стр. 7
Имея в виду последующее изложение, я остановлюсь только на одной
характеристике вирусов, позволяющей разбить все их множество на две
пока неравноценные по мощности группы - на автономности вирусов.
Большинство вирусов паразитирует на конкретных программах или
файлах - "своих" для каждого вируса, - присоединяя свое тело к телу
программы или к определенным файлам, гарантированно присутствующим в
инфицируемой системе. Аналогично, большинство вирусов имеет
собственные "излюбленные" места в инфицируемой системе, в которых
вирус размещается сразу после проникновения в систему. Знание этих
особенностей, уникальных для каждого семейства вирусов, значительно
облегчает обнаружение вирусов в системе и борьбу с ними. Собственно
это "большинство" вирусов и называется вирусами в общепринятом
понимании этого термина. Вполне понятно, что отсутствие в системе
пользователя какого-либо программного продукта на 100% гарантирует,
что система не будет поражена вирусом, паразитирующим именно на этой
программе. Хуже обстоит дело с вирусами, нацеленными на системные
программы и файлы, однако именно эта нацеленность облегчает борьбу с
заразой.
Но есть относительно небольшая - пока, и далее я объясню почему -
группа программ, которые с полной уверенностью можно отнести к вирусам
в соответствии с приведенным выше определением, отличающихся
повышенной степенью автономности в своей работе - так называемые
"черви".
Если обычный вирус активизируется при запуске пользователем
программы, на которой паразитирует вирус или при отработке системой
конкретных событий - например, прерываний, - то червь самостоятельно
управляет запуском своих копий.
Если обычный вирус размещается в более-менее определенных местах
системы, то место размещения в системе червя предсказать крайне
сложно, поскольку ему все равно, где размещаться - было бы достаточно
места.
Черви нацелены не на конкретные программы или файлы, а на системы
конкретной архитектуры. Черви гораздо опаснее вирусов именно в силу
своей автономности, т.е. независимости от наличия в поражаемых
системах некоторых уникальных условий, например, наличия определенных
файлов.
Платой за повышенную автономность является повышенная сложность
червя как программы и, как следствие, значительно больший, нежели у
обычных вирусов, размер. Обычно черви состоят из нескольких модулей -
сегментов - кода, слишком больших, чтобы быть спрятанными в файлах
операционной системы. Однако этот "маленький" недостаток с лихвой
окупается размером ущерба, который может причинить червяк, поскольку
догадаться о наличии в системе именно червя, локализовать его и
бороться с ним, по сравнению с обычными вирусами, сложнее.
Появление, развитие и быстрое распространение вычислительных
сетей вызвало к жизни подвид червей - так называемых "сетевых червей".
Сетевые черви - еще более сложное образование. Они характерны тем,
что распространяются по сети, используя для распространения сетевые
средства коммуникации - "электронные почты" всевозможных видов,
специальные сетевые утилиты и т.д - и используют атакуемые узлы в
собственных интересах (для саморазмножения и дальнейшего
распространения по сети). При этом очень быстро наступает полная
стр. 8
блокировка сети.
Первые исследования и эксперименты с сетевыми червями были
проведены на сети Ethernet в исследовательском центре фирмы Xerox в
Пало Алто. Червь в этих экспериментах существовал в виде сегментов,
выполнявшихся на разных узлах сети под управлением головного сегмента.
При этом четко проявилась опасность этого вида червей, поскольку в
процессе работы червь мог затирать своей информацией страницы памяти
инфицируемых систем, что неминуемо вело к остановке последних.
Специалисты, должно быть, уже поняли, что сетевые черви являются
побочным - и вряд ли ожидавшимся - детищем исследований в области
распределенной обработки информации.
Но отчего же все-таки проблема вирусов - в основном в плане
борьбы с ними - приобрела в последнее время такое значение? Насколько
и чем оправданы усилия нашей компьютерной братии от пользователей до
профессионалов, затрачиваемые на изучение и борьбу с компьютерной
заразой?
Причин такого положения дел достаточно много, но главных,
пожалуй, две:
- во-первых, деятельность большинства вирусов изначально
небезобидна: большинство вирусов либо сознательно рассчитано
на повреждение или искажение используемых в вычислительной
системе данных и программ (в том числе и системных), либо
допускает подобные эффекты вследствие своей работы;
- во-вторых, масштабы распространения вирусов самым
непосредственным и теснейшим образом связаны с масштабами
распространения технического чуда последнего десятилетия -
персональных компьютеров.
Немного поясню.
Первое утверждение очевидно: вряд ли кто-нибудь из нормальных
людей добровольно согласится на то, чтобы продукт его труда - иногда
весьма длительного, - был уничтожен или безнадежно испорчен буквально
в мгновение ока. Учитывая все возрастающую зависимость деловых,
финансовых, правительственных и военных кругов от предоставляемых
компьютерами услуг, становится понятным ужас и ненависть, испытываемые
этими кругами по отношению к компьютерным вирусам.
Ситуация подогревается также тем, что внедрение вирусов в системы
происходит зачастую через "дыры" в подсистемах безопасности, а это не
может не волновать разнообразные органы, которые у нас называют
компетентными. Поскольку эти органы весьма заботятся о сохранности
своей информации, они справедливо считают, что если вирус пролез в
"дыру", то почему бы в эту же "дыру" не пролезть кому-либо из племени
любопытных длинноносых варвар. Взять тот же вирус: отчего бы ему не
быть запрограммированным на то, чтобы, пробравшись незамеченным в
систему компетентного органа, разместиться в самом дальнем и укромном
уголке и, продолжая оставаться незамеченным для хозяев, не разрушать
хозяйские данные, а периодически посылать их своему разработчику.
стр. 9
Чувствуете прелесть! Само собой разумеется, насколько такая
перспектива желательна компетентным органам одной стороны, настолько
она ненавистна компетентным органам стороны другой.
Вторая причина популярности компьютерных вирусов менее очевидна,
но от этого ничуть не становится менее истинным тот факт, что
наблюдаемое в последнее годы глобальное распространение вирусов - и
сопутствующих им проблем - во многом определяется массовым выпуском и
распространением микрокомпьютеров, которые наиболее беззащитны для
вирусов в силу стандарности своей архитектуры и архитектуры
математического обеспечения.
Большие системы практически не имеют проблем с вирусами в силу
своей уникальности, обеспечиваемой тем, что, во-первых, каждая большая
система проходит стадию генерации, во время которой многочисленные
системные параметры образуют уникальное сочетание; во-вторых, большие