- •Кафедра судовой автоматики и измерений
- •Часть 1
- •Санкт-Петербург
- •Введение
- •1 Угрозы, атаки и уязвимости
- •1.1 Угрозы и атаки
- •1.2 Уязвимости
- •2 Каналы утечки информации
- •3.1 Основные понятия политики безопасности
- •3 Политика безопасности
- •3.2 Структура политики безопасности организации
- •3.2.1 Базовая политика безопасности
- •3.2.2 Специализированные политики безопасности
- •3.2.3 Процедуры безопасности
- •3.3 Разработка политики безопасности организации
- •3.3.1 Основные этапы обеспечения безопасности
- •3.3.2 Компоненты архитектуры безопасности
- •3.3.3 Роли и ответственности в безопасности сети
- •3.3.4 Аудит и оповещение
- •4. Компьютерные сети
- •4.1 Модели osi
- •4.2 Сетевые протоколы
- •4.2.1 Протокольный стек tcp/ip
- •4.2.2 Адресация в ip
- •4.3 Проводные сети
- •4.3.1 Базовые топологии
- •4.3.1.1 Топология «шина»
- •4.3.1.2 Топология «звезда»
- •4.3.1.3 Топология «кольцо»
- •4.3.1.4 Комбинированные топологии
- •4.4 Кабельная подсистема
- •4.4.1 Коаксиальный кабель
- •4.4.2 Витая пара
- •4.4.3 Оптоволоконный кабель
- •4.4.4 Защита информации в кабельных сетях
- •4.4.4.1 Механическая защита кабельной сети
- •4.4.4.2 Экранирование кабельных каналов
- •4.5 Беспроводные сети
- •4.5.1 Стандарты беспроводных сетей
- •4.5.2 Сравнение стандартов беспроводной передачи данных
- •4.5.3 Архитектура беспроводных сетей
- •4.5.4 Технологии беспроводных сетей
- •4.5.5 Защита информации в беспроводных сетях
- •5 Отказоустойчивые системы хранения данных: raid - массивы
- •6 Антивирусная защита информации
- •6.1 Классификация компьютерных вирусов
- •6.2 Жизненный цикл вирусов
- •6.3 Основные каналы распространения вирусов и других вредоносных программ
- •6.4 Методы построения антивирусной защиты
- •7 Роль стандартов информационной безопасности
- •7.1 Международные стандарты информационной безопасности
- •7.1.1 Стандарты iso/iec 17799:2002 (bs 7799:2000)
- •7.1.2 Германский стандарт bsi
- •7.1.3 Международный стандарт iso 15408 «Общие критерии безопасности информационных технологий»
- •7.1.4 Стандарты информационной безопасности в Интернете
- •7.2 Отечественные стандарты безопасности информационных технологий
- •Список использованных источников
6.2 Жизненный цикл вирусов
Как и у любой программы, у компьютерных вирусов можно выделить две основные стадии жизненного цикла - хранение и исполнение.
Стадия хранения соответствует периоду, когда вирус просто хранится на диске совместно с объектом, в который он внедрен. На этой стадии вирус является наиболее уязвимым со стороны антивирусного программного обеспечения, так как он не активен и не может контролировать работу операционной системы с целью самозащиты.
Некоторые вирусы на этой стадии используют механизмы защиты своего кода от обнаружения. Наиболее распространенным способом защиты является шифрование большей части тела вируса. Его использование совместно с механизмами мутации кода (об этом идет речь ниже) делает невозможным выделение сигнатур - устойчивых характеристических фрагментов кода вирусов.
Стадия исполнения компьютерных вирусов, как правило, включает пять этапов:
Загрузка вируса в память.
Поиск жертвы.
Заражение найденной жертвы.
Выполнение деструктивных функций.
Передача управления программе-носителю вируса.
Рассмотрим эти этапы подробнее [32, 34].
Загрузка вируса в память.
Загрузка вируса в память осуществляется операционной системой одновременно с загрузкой исполняемого объекта, в который вирус внедрен. Например, если пользователь запустил на исполнение программный файл, содержащий вирус, то, очевидно, вирусный код будет загружен в память как часть этого файла. В простейшем случае процесс загрузки вируса представляет собой не что иное как копирование с диска в оперативную память, сопровождаемое иногда настройкой адресов, после чего происходит передача управления коду тела вируса. Эти действия выполняются операционной системой, а сам вирус находится в пассивном состоянии. В более сложных ситуациях вирус может после получения управления выполнять дополнительные действия, которые необходимы для его функционирования. В связи с этим рассматриваются два аспекта.
Первый из них связан с максимальным усложнением процедуры обнаружения вирусов. Для обеспечения защиты на стадии хранения некоторые вирусы используют достаточно сложные алгоритмы. К таким усложнениям можно отнести шифрование основного тела вируса. Однако использование только шифрования является полумерой, так как в открытом виде должна храниться та часть вируса, которая обеспечивает дешифрование вируса на стадии загрузки. Для избегания подобной ситуации разработчики вирусов используют механизмы «мутаций» кода десшифровщика. Суть этого метода состоит в том, что при внедрении в объект копии вируса часть ее кода, относящаяся к расшифровщику, модифицируется так, чтобы возникли текстуальные различия с оригиналом, но результаты работы остались неизменными. Обычно применяют следующие приемы модификации кода:
изменение порядка независимых инструкций;
замену некоторых инструкций на эквивалентные по результату работы;
замену используемых в инструкциях регистров на другие;
введение случайным образом зашумляющих инструкций.
Вирусы, использующие подобные механизмы мутации кода, получили название полиморфных вирусов. При совместном использовании механизмов шифрования и мутации внедряемая копия вируса окажется отличной от оригинала, так как одна ее часть будет изменена, а другая окажется зашифрованной на ключе, сгенерированном специально для этой копии вируса. А это существенно осложняет выявление вируса в вычислительной системе.
Полиморфные вирусы - это трудно обнаруживаемые вирусы, не имеющие сигнатур, то есть не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфного вируса не будут иметь ни одного совпадения. Полиморфизм встречается в вирусах всех типов - файловых, загрузочных и макровирусах. Дополнительные действия, которые выполняют полиморфные вирусы на этапе загрузки, состоят в дешифровании основного тела вируса.
При использовании стелс-алгоритмов вирусы могут полностью или частично скрыть себя в системе. Наиболее распространенный стелс-алгоритм осуществляет перехват системных запросов с целью контроля действий операционной системы. Вирусы, использующие стелс-алгоритмы, носят название «стелс-вирусы».
Стелс-вирусы способны скрывать свое присутствие в системе и избегать обнаружения антивирусными программами. Эти вирусы могут перехватывать запросы операционной системы на чтение/запись зараженных файлов, при этом они либо временно лечат эти файлы, либо «подставляют» вместо себя незараженные участки информации, эмулируя чистоту зараженных файлов.
Нередко в вирусах используются различные нестандартные приемы с целью глубже спрятаться в ядре ОС, либо защитить от обнаружения свою резидентную копию, либо затруднить лечение от вируса и т.п.
Второй аспект связан с так называемыми резидентными вирусами. Поскольку вирус и объект, в который он внедрен, являются для операционной системы единым целым, то после загрузки они располагаются, естественно, в едином адресном пространстве. После завершения работы объекта он выгружается из оперативной памяти, при этом одновременно выгружается и вирус, переходя в пассивную стадию хранения. Однако некоторые типы вирусов способны сохраняться в памяти и оставаться активными после окончания работы вирусоносителя. Эти вирусы получили название резидентных.
Резидентные вирусы при инфицировании компьютера оставляют в оперативной памяти свою резидентную часть, которая затем перехватывает обращения операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки операционной системы.
Резидентными можно считать макровирусы, так как для большинства из них выполняются основные требования - постоянное присутствие в памяти компьютера на все время работы зараженного редактора и перехват функций, используемых при работе с документами. При этом роль операционной системы берет на себя редактор, а понятие «перезагрузка операционной системы» трактуется как выход из редактора.
Нерезидентные вирусы не заражают память компьютера и сохраняют активность ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
Следует отметить, что деление вирусов на резидентные и нерезидентные справедливо в основном для файловых вирусов. Загрузочные вирусы, как и макровирусы, относятся к резидентным вирусам.
Поиск жертвы.
По способу поиска жертвы вирусы можно разделить на два класса.
К первому относятся вирусы, осуществляющие активный поиск с использованием функций операционной системы. Примером являются файловые вирусы, использующие механизм поиска исполняемых файлов в текущем каталоге.
Второй класс составляют вирусы, реализующие пассивный механизм поиска, то есть вирусы, расставляющие «ловушки» для программных файлов. Как правило, файловые вирусы устраивают такие ловушки путем перехвата функции exec операционной системы, а макровирусы - с помощью перехвата команд типа Save as (Сохранить как) из меню File (Файл).
Заражение жертвы.
В простейшем случае заражение представляет собой самокопирование кода вируса в выбранный в качестве жертвы объект. Классификация вирусов на этом этапе связана с анализом особенностей этого копирования, а также способов модификации заражаемых объектов.
Рассмотрим сначала особенности заражения файловыми вирусами.
По способу инфицирования жертвы вирусы можно разделить на два класса.
К первому относятся вирусы, которые не внедряют свой код непосредственно в программный файл, а изменяют имя файла и создают новый, содержащий тело вируса.
Второй класс составляют вирусы, внедряющиеся непосредственно в файлы-жертвы.
Они характеризуются местом внедрения. Возможны следующие варианты.
Внедрение в начало файла. Этот способ является наиболее удобным для СОМ- файлов MS-DOS, так как данный формат не предусматривает наличия служебных заголовков. При внедрении данным способом вирусы могут либо производить конкатенацию собственного кода и кода программы-жертвы, либо переписывать начальный фрагмент файла в конец, освобождая место для себя.
Внедрение в конец файла. Это наиболее распространенный тип внедрения. Передача управления коду вирусов обеспечивается модификацией первых команд программы (СОМ) или заголовка файла (ЕХЕ).
Внедрение в середину файла. Как правило, этот способ используется вирусами применительно к файлам с заранее известной структурой (например, к файлу COMMAND.COM) или же к файлам, содержащим последовательность байтов с одинаковыми значениями, длина которой достаточна для размещения вируса. Во втором случае вирусы архивируют найденную последовательность и замещают ее собственным кодом. Помимо этого вирусы могут внедряться в середину файла, освобождая себе место путем переноса фрагментов кода программы в конец файла или же «раздвигая» файл.
Для загрузочных вирусов особенности этапа заражения определяются особенностями объектов, в которые они внедряются, - загрузочными секторами гибких и жестких дисков и главной загрузочной записью (MBR) жестких дисков. Основной проблемой является ограниченный размер этих объектов. В связи с этим вирусам необходимо сохранить на диске ту свою часть, которая не уместилась на месте жертвы, а также перенести оригинальный код инфицированного загрузчика. Существуют различные способы решения этой задачи. Ниже приводится классификация, предложенная Е. Касперским [32, 33]:
Используются псевдосбойные сектора. Вирус переносит необходимый код в свободные сектора диска и помечает их как сбойные, защищая тем самым себя и загрузчик от перезаписи.
Используются редко применяемые сектора в конце раздела. Вирус переносит необходимый код в эти свободные сектора в конце диска. С точки зрения операционной системы эти сектора выглядят как свободные.
Используются зарезервированные области разделов. Вирус переносит необходимый код в области диска, зарезервированные под нужды операционной системы, а потому - неиспользуемые.
Короткие вирусы могут уместиться в один сектор загрузчика и полностью взять на себя функции MBR или загрузочного сектора.
Выполнение деструктивных функций.
Вирусы могут выполнять помимо самокопирования, деструктивные функции. По деструктивным возможностям вирусы можно разделить на безвредные, неопасные, опасные и очень опасные [33].
Безвредные вирусы - это вирусы, в которых реализован только механизм само-распространения. Они не наносят вред системе, за исключением расхода свободной памяти на диске в результате своего распространения.
Неопасные вирусы - это вирусы, присутствие которых в системе связано с различными эффектами (звуковыми, видео) и уменьшением свободной памяти на диске, но которые не наносят вред программам и данным.
Опасные вирусы - это вирусы, которые могут привести к серьезным сбоям в работе компьютера. Последствием сбоя может стать разрушение программ и данных.
Очень опасные вирусы - это вирусы, в алгоритм работы которых заведомо заложены процедуры, непосредственно приводящие к разрушению программ и данных, а также к стиранию информации, записанной в системных областях памяти и необходимой для работы компьютера.
На степень опасности вирусов оказывает существенное влияния та среда, под управлением которой вирусы работают.
Так, вирусы, созданные для работы в MS-DOS, обладают практически неограниченными потенциальными возможностями.
Распространение вирусов под управлением Windows 95/98/XP слабо ограничивается операционной системой. Windows Vista и 7 имеют расширенный анализ попыток несанкционированного доступа к ресурсам системы и предупреждают об этом пользователя.
Дополняя эту классификацию, можно отметить также деление вирусов на наносящие вред системе вообще и предназначенные для целенаправленных атак на определенные объекты.
Передача управления программе-носителю вируса.
Здесь следует указать на деление вирусов на разрушающие и неразрушающие.
Разрушающие вирусы не заботятся о том, чтобы при инфицировании программ сохранять их работоспособность, поэтому для них этот этап функционирования отсутствует.
Для неразрушающих вирусов этот этап связан с восстановлением в памяти программы в том виде, в котором она должна корректно исполняться, и передачей управления программе-носителю вируса.
Вредоносные программы других типов.
Кроме вирусов принято выделять еще несколько видов вредоносных программ. Это «троянские» программы; логические бомбы; хакерские утилиты скрытого ад-министрирования удаленных компьютеров; программы, ворующие пароли доступа к ресурсам Интернета и прочую конфиденциальную информацию. Четкого разделения между ними не существует: «троянские» программы могут содержать вирусы, в вирусы могут быть встроены логические бомбы и т.д.
«Троянские» программы не размножаются и не рассылаются сами. Внешне «троянс-кие» программы выглядят совершенно безобидно и даже предлагают полезные функции. Но когда пользователь загрузит такую программу в свой компьютер и запустит ее, она может незаметно выполнять вредоносные функции. Чаще всего «троянские» программы используются для первоначального распространения вирусов, для получения удаленного доступа к компьютеру через Интернет, кражи данных или их уничтожения.
Логической бомбой называется программа или ее отдельные модули, которые при определенных условиях выполняют вредоносные действия. Логическая бомба может, например, сработать по достижении определенной даты или тогда, когда в базе данных появится или исчезнет запись, и т.п. Такая бомба может быть встроена в вирусы, «троянские» программы и даже в обычные программы.
