Менее 15 лет тому назад компьютерные вирусы были еще мало известны [8], а интерес к ним проявлялся лишь в научных кругах. Сегодня они представляют собой серьезную угрозу для всех аспектов обработки данных с применением автоматизированных систем и ИВС. Всему миру уже известна способность компьютерных вирусов уничтожать или изменять массивы информации и программные средства. Однако в принципе вирусы могут выводить из строя некоторые узлы компьютеров, например, прецизионные механические системы дисководов, вводя их в резонанс.
В наибольшей опасности находятся пользователи операционной системы (ОС) MS-DOS/Windows и ее разновидностей как наиболее часто употребляемой и широко распространенной, однако в последние несколько лет наметилась отчетливая тенденция к расширению “сферы влияния” компьютерных вирусов [34]. Так, в некоторых странах НАТО в открытой печати публиковались материалы о случаях полной или частичной потери работоспособности боевых ракет вследствие неправильного функционирования средств программного обеспечения в системах пуска и наведения.
Было, например, точно установлено, что отказ системы автоматического пуска ракет “Пэтриот” (Patriot), размещенных в ходе конфликта в Персидском заливе в 1991 году в Турции, был обусловлен ошибкой в одной из программ компьютера пусковой установки, попавшей туда, как полагают, уже в процессе эксплуатации. После тщательного анализа эксперты США пришли к выводу, что эта же ошибка стала причиной и самопроизвольного пуска одной ракеты “Пэтриот” в Турции в районе города Инсирлик.
Кроме того, в ходе учебных пусков французских противокорабельных ракет “Экзосет” (Exocet) в том же году было зарегистрировано несколько случаев полного отказа системы наведения ракет на цель. В ходе тщательного анализа французские специалисты установили, что эти отказы вызваны компьютерным вирусом, попавшим в бортовую систему наведения ракеты, наиболее вероятно, на этапе производства и сборки. Среди прочих версий попадания вируса в программное обеспечение не исключают также возможность его намеренного ввода фирмой-производителем для получения в последующем прибылей за счет выполнения дорогостоящего ремонта.Были зарегистрированы также и другие случаи попадания в боевые системы компьютерных вирусов и программных ошибок с более легкими последствиями.
Анализ всех этих фактов свидетельствует о достаточно реальных возможностях преднамеренного ввода программных ошибок и компьютерных вирусов в программное обеспечение средств управления системами военного назначения как на этапе сборки и отладки, так и в процессе эксплуатации. При этом можно заранее предусмотреть желаемое нарушение в работе аппаратных средств за счет ввода вируса, а сам вирус можно замаскировать под обычную непреднамеренную ошибку программирования.
Таким образом, проблема компьютерных вирусов чрезвычайно актуальна и перспективна. Для ее исследования создаются новые и расширяются действующие научно-исследовательские органы; возникли сотни частных компаний, специализирующихся на изучении компьютерных вирусов и разработке средств борьбы с ними.
Технология компьютерных вирусов предоставляет возможность осуществления почти анонимных диверсий. Например, если бы Роберт Моррис не признался в содеянном в знаменитом случае внедрения “червя” в сеть Internet [42], вряд ли бы его удалось привлечь к ответственности в соответствии с законодательством. Правда, здесь необходимо сделать оговорку в отношении анонимности. Данное утверждение верно, если злоумышленник не оставляет за собой следа, например не использует вирусы для получения денег по именному документу. Так, остались анонимными большинство разработчиков компьютерных вирусов, не преследующих цели наживы, а большая часть искателей наживы была так или иначе изобличена.Структура и классификация компьютерных вирусовК настоящему времени имеется достаточное количество фактов, позволяющих провести анализ структуры и классификацию компьютерных вирусов.
Вирусы (к которым не относятся программы типа “троянский конь”) состоят, по крайней мере, из двух функционально разделенных компонентов. Один из них отвечает за размножение, а другой – за нанесение ущерба.Компонент, ответственный за размножение, реализует все те функции, которые необходимы для распространения вируса, в частности поиск неинфицированных программ, внесение в них изменений, внедрение в оперативную память и, наконец, выполнение маскировочных мероприятий.
Компонент, реализующий нанесение ущерба, вступает в действие, как правило, после завершения работы той части вируса, которая отвечает за размножение. Почти всегда для этого компонента четко определяются условия начала его работы (пуска) и предусматривается их проверка при каждой активизации вируса. Если эти условия не соблюдены, то работа данного компонента прекращается и не происходит ничего, что могло бы броситься в глаза. Это объясняет, почему вирусные инфекции очень часто могут оставаться незамеченными на протяжении длительного времени. Вирус “спит”, пока не наступит определенный момент.
Если же указанные условия соблюдаются, то вступает в действие компонент, выполняющий разрушительную функцию. Последствия при этом могут быть разными: от невинных эффектов на экране, необъяснимых нарушений работы операционной системы до полной потери всех данных на жестких дисках или на дискетах. Довольно часто происходит весьма сложное искажение данных так, что ущерб в полной мере можно обнаружить только по истечении значительного времени.Все вирусы с технической точки зрения делятся на две большие группы, отличающиеся друг от друга по объекту внедрения: 1) файловые и 2) системные (рис.2.1).
Файловые вирусы составляют наиболее многочисленную группу и, в свою очередь, разделяются по способу воздействия на две подгруппы: вирусы необратимой модификации и вирусы гибкой модификации.Вирусы необратимой модификации разрушают программы (файлы), благодаря своему механизму размножения, в результате чего начало программы сразу же заменяется машинным кодом вируса. Измененные программы становятся неработоспособными после воздействия на них, и поэтому данный тип вирусов быстро обнаруживается и его возможности по распространению и нанесению ущерба ограничены.
Вирусы гибкой модификации, называемые также прикрепляющимися вирусами, более опасны, поскольку их присутствие в системе обнаружить нелегко. Такие вирусы “повисают” на программах и, несмотря на произведенные изменения, способны восстановить прежний вид этих программ непосредственно перед их пуском. Обычно заражение вирусом можно обнаружить только путем сравнения размеров файла с оригиналом.
По способу использования оперативной памяти файловые вирусы подразделяются на резидентные (размещаемые в памяти резидентно) и нерезидентные (удаляются из памяти вместе с выгружаемой инфицированной программой). В специальной терминологии резидентные вирусы называются вирусами непрямого действия, а нерезидентные – вирусами прямого действия.
Большинство файловых вирусов при вызове зараженных ими программ резидентно инсталлируются в оперативную память, благодаря чему они в той или иной степени могут контролировать систему и, таким образом, эффективно распространяться. Передача инфекции происходит не прямым способом, т.е. не в момент загрузки зараженной программы, а в результате последующего функционирования системы, например, при последовательной загрузке еще не зараженных программ. Большинство представителей этого подвида вирусов заражают программы только при выполнении определенных команд ОС, связанных с загрузкой и запуском программ, в момент обращения к этим командам. Однако некоторые вирусы обладают более совершенным механизмом, способным распространять инфекцию при выполнении всего перечня файловых команд, осуществляющих открытие, закрытие, копирование и перенос файлов. Поэтому простая проверка программных файлов (путем их открытия для просмотра) на предмет инфекции в этом случае принесет больше вреда, чем пользы.
Другой подвид файловых вирусов (прямого действия) не остается в оперативной памяти резидентно, а только лишь при запуске инфицированной программы такой вирус начинает искать другие программы и пытается их заразить. В этом случае при загрузке неинфицированной программы не происходит ни ее заражения, ни дальнейшего распространения инфекции.
Системные (бутовые) вирусы работают на более глубоком уровне, внедряясь в дисковую структуру ОС, связанную с базовыми функциями ввода/вывода информации и запуска компьютера, затрагивающими пусковые (Boot)-секторы.
Активизация такого типа вируса, в отличие от других, происходит только при запуске (перезапуске) компьютера с зараженного диска, после чего вирус резидентно инсталлируется в оперативной памяти и начинает манипулировать пусковым сектором (загрузчиком) и другими элементами дисковой структуры. Распространение инфекции происходит при обращении ОС к другим дискам.
Обнаружить такой вирус и освободиться от него весьма трудно. Это объясняется, в первую очередь, тем, что он попадает в оперативную память в процессе запуска компьютера, т.е. еще до того, как сможет заработать какая-либо антивирусная программа. Единственная возможность обнаружить инфекцию заключается в проверке оперативной памяти сразу же после загрузки. При обнаружении вируса компьютер следует немедленно выключить и загрузить с неинфицированного диска.В зависимости от конечного объекта внедрения различают два подтипа системных вирусов: вирусы пускового сектора и декомпозиционные вирусы. Разница между ними заключается лишь в том, что вирус пускового сектора “оккупирует” пусковой сектор системного диска, а декомпозиционный вирус проникает в первый (пусковой) сегмент логического несистемного диска. Дальнейшее описание будет сосредоточено на вирусе пускового сектора, являющегося наиболее сложным и эффективным.
Вирусы пускового сектора появились совсем недавно. Вообще раньше считалось, что создать такой, более или менее функционирующий вирус нельзя, поскольку размер пускового сектора ограничен и там почти невозможно разместить какую-либо действующую программу вместе с пусковой записью. Однако по мере развития техники программирования был изобретен механизм, благодаря которому эту задачу удалось решить другим путем.
Детальный механизм работы вируса пускового сектора заключается в том, что сам вирус размещается в первом (пусковом) секторе, заменяя пусковую запись своим кодом. Оригинал же пусковой записи он копирует на свободное место на диске. При загрузке ОС загрузчик размещает вирус в оперативной памяти. Данный механизм позволяет создавать вирусы этого типа, сложные по структуре и значительно превышающие по размеру пусковой сектор. В этом случае вирус компонуется из двух частей: загрузочной, ограниченной по размеру для размещения в пусковом секторе, и функциональной, размещаемой на свободном дисковом пространстве. После того, как загрузочная часть, попав в оперативную память, берет на себя управление, она находит на диске и загружает в память функциональную часть, затем происходит загрузка пусковой записи.
Необходимо особо отметить, что вирус пускового сектора может распространяться не только через системный диск. “Гениальность” описанного выше механизма заключается в том, что пусковой сектор имеется на любом диске единственно, что не все они содержат пусковую запись. Если же пользователь по ошибке попытается запустить компьютер с несистемного (не имеющего пусковой записи) диска, инфицированного вирусом пускового сектора, то компьютер выдаст на экран монитора сообщение об ошибке и попросит сменить диск. Однако считывание пускового сектора происходит в любом случае и, если он содержит вирус, то последний немедленно попадает в оперативную память. После устранения ошибки и смены диска компьютер оказывается зараженным. Существует, правда, простой способ защиты от попадания вирусов пускового сектора с несистемных дисков: после ошибочной попытки запуска необходимо произвести полную перезагрузку компьютера, т.е. очистить оперативную память.
Воздействие системных вирусов чаще всего носит исключительно разрушительный характер. Например, механизм действия известного вируса “disk-killer” (разрушитель дисков) основан на последовательном преобразовании двоичных записей дорожек с помощью функции XOR, после чего содержание файлов (частей файлов), использующих преобразованные дорожки, превращается в бессмыслицу.В заключение следует отметить, что в последнее время появились сообщения о достижении существенного прогресса в реализации концепции гибридных “диверсионных программ”, сочетающих в себе преимущества файлового и системного вирусов. Внешне такая “диверсионная программа” ведет себя как файловый вирус. Однако после его обнаружения и удаления (повторной инсталляции) зараженных файлов он вновь распространяется по диску, инфицируя файлы из оперативной памяти, куда он попадет с пускового сектора (сегмента).2.3.3. Механизмы вирусной атакиВсе вирусы различаются способом размещения, методом распространения в вычислительной среде, способом активизации, характером наносимого ущерба [5, 7, 8, 28, 30, 64 и др.].Компьютерный вирус может находиться в операционной среде, где он сцепляется с программами, расположенными в системной части накопителя на гибком или жестком магнитном диске. Его внутренние поля могут располагаться в структуре файлов типа EXE – в области между таблицей адресов и загрузочным модулем программы или в свободной памяти файла за программой, в библиотеках компиляторов (наиболее эффективный вариант размещения вируса, поскольку он при этом может автоматически внедряться в любую программу, составляемую компилятором), в сетевом драйвере, в “плохих” или специальных секторах на диске, в постоянном запоминающем устройстве (ПЗУ) в качестве программно-технической закладки.Компьютерный вирус может распространяться транзитно или резидентно. В первом случае, находясь в оперативном запоминающем устройстве (ОЗУ) компьютера, вирус дописывает себя в другие программы, хранимые на диске. Во втором случае вирус, введенный в память ЭВМ (в часть, где находятся программы ОС), при обращениях к ОС “заражает” программы (диски), вызываемые на выполнение.
Активизироваться вирус может с момента внедрения в средства вычислительной техники, по наступлении определенного события (дата, заданное число обращений к зараженной программе) и случайно (по показанию датчика случайных чисел, содержащегося в вирусе).Среди вирусов есть такие, которые не создают серьезных помех работе средств вычислительной техники, вызывают нарушения, поддающиеся исправлению, и производят необратимые изменения и разрушения. Наибольшую опасность представляют вирусы, имеющие деструктивную функцию. Эти вирусы наносят следующие виды ущерба вычислительным средствам: 1) изменение данных в файлах, изменение назначенного магнитного диска, в результате чего данные записываются на другой диск. Например, данные могут быть направлены на квазидиск в ОС и потеряны после выключения ЭВМ; 2) уничтожение специальных файлов, содержащих выполняемые программы и данные; 3) уничтожение информации форматированием диска или отдельных треков на нем; 4) уничтожение каталога диска; 5) уничтожение (выключение) программ, постоянно находящихся в ОС; 6) нарушение работоспособности ОС, при которой она не воспринимает внешних воздействий и требует полной загрузки.