ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 246
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
типам объектов вычислительной системы, в которые они внедряются. В настоящее время выделяются три типа объектов.
1. Программные файлы операционных систем. Вирусы, поражающие эти объекты, называются файловыми.
2. Системные области компьютеров (в частности, области начальной загрузки операционных систем). Соответствующие вирусы получили название загрузочных вирусов, или Boot-вирусов.
3. Макропрограммы и файлы документов современных систем обработки информации (например, Microsoft Word). Вирусы, связанные с этим типом объектов, именуются макровирусами.
Существует и комбинированный тип – файл-загрузочные вирусы.
Естественно, эта классификация не является единственно возможной.
Как правило, все исследователи проблем компьютерных вирусов предлагают множество различных схем типизации. Анализ основных этапов жизненного цикла вирусов позволяет выделить их различные признаки и особенности, которые могут быть положены в основу дополнительных классификаций.
2 Жизненный цикл вирусов
Как и у любой программы, у компьютерных вирусов можно выделить две основные стадии жизненного цикла – хранение и исполнение. Стадия хранения соответствует периоду, когда вирус просто хранится на диске совместно с объектом, в который он внедрен. На этой стадии вирус является наиболее уязвимым со стороны антивирусного программного обеспечения, так как он не активен и не может контролировать работу операционной системы с целью самозащиты.
Некоторые вирусы на этой стадии используют механизмы защиты своего кода от обнаружения. Наиболее распространенным способом защиты является шифрование большей части тела вируса. Его использование совместно с механизмами мутаций кода делает невозможным выделение устойчивых характеристических фрагментов кода вирусов – сигнатур, что затрудняет обнаружение вирусов антивирусными средствами.
Стадия исполнения компьютерных вирусов, как правило, состоит из пяти этапов:
1) загрузки вируса в память;
2) поиска жертвы;
3) заражения найденной жертвы;
4) выполнения деструктивных функций;
5) передачи управления программе – носителю вируса. Рассмотрим эти этапы подробнее.
Загрузка вируса. Загрузка вируса в память осуществляется операционной системой одновременно с загрузкой исполняемого объекта, в который вирус внедрен. В простейшем случае процесс загрузки вируса представляет собой не что иное, как копирование с диска в оперативную память, сопровождаемое настройкой адресов, после происходит передача управления коду тела вируса. Эти действия выполняются операционной системой, а сам вирус находится в пассивном состоянии. В более сложных ситуациях вирусы могут после получения
управления выполнять дополнительные действия, которые необходимы для его функционирования. В связи с этим рассматриваются два аспекта.
Первый из них связан с тем, что некоторые вирусы, как отмечалось выше, используют для самозащиты в период хранения механизмы криптографической защиты. В этом случае дополнительные действия, которые выполняет вирус на этапе загрузки, состоят в расшифровании основного тела вируса.
Второй аспект связан с так называемыми резидентными вирусами. Так как вирус и объект, в который он внедрен, для операционной системы являются единым целым, то, разумеется, после загрузки они располагаются в едином адресном пространстве. Следовательно, после завершения работы объекта он выгружается из оперативной памяти и при этом выгружается вирус, переходя в пассивную стадию хранения. Однако некоторые типы вирусов способны сохраняться в памяти и оставаться активными после окончания работы вирусоносителя. Эти вирусы получили название резидентных.
Такие вирусы на стадии загрузки должны позаботиться о закреплении своего кода в оперативной памяти. Это можно реализовать различными способами. Например, операционные системы типа MS-DOS содержат стандартные средства поддержки резидентных модулей. Но, как правило, вирусы не пользуются этими механизмами, а переносят свой код либо в самостоятельно отведенные блоки памяти, либо в зарезервированные под нужды операционной системы участки памяти. Однако размещение кода в оперативной памяти– необходимое, но недостаточное действие. Помимо этого, вирус должен позаботиться о том, чтобы этому коду время от времени передавалось управление. Поэтому вирусы должны изменить код системных функций, которые гарантированно используются прикладными программами, добавив в них команды передачи управления своему коду, либо изменить в системной таблице адреса соответствующих системных функций, подставив адреса своих подпрограмм. Такой перехват определенных функций, например чтения (записи) файлов, позволит также вирусу контролировать информационные потоки между операционной системой и прикладными программами. Для многозадачных систем типа Windows вирусы могут обойтись без перехвата системных событий, если не ставится задача контроля информационных потоков. Для того чтобы вирус мог функционировать независимо от программы-носителя, ему достаточно зарегистрировать в системе новую задачу, в контексте которой он будет выполняться.
Перехват системных функций с целью контроля действий операционной системы является обязательным для так называемых стелс-вирусов (Stealth). Эти вирусы способны скрывать свое присутствие в системе и избегать обнаружения антивирусными программами. К примеру, подобные вирусы могут перехватывать системные функции чтения файла для того, чтобы в случае обращения к зараженному файлу эмулировать его чистоту, временно восстанавливая его исходное состояние.
Поиск жертвы. По способу поиска жертвы вирусы можно разделить на два класса. К первому относятся вирусы, осуществляющие активный поиск с использованием функций операционной системы. Примерами являются файловые вирусы, использующие механизм поиска исполняемых файлов в текущем каталоге. Второй класс составляют вирусы, реализующие пассивный механизм поиска, т. е. вирусы, расставляющие ловушки для программных файлов. Как правило, файловые вирусы устраивают подобные ловушки путем перехвата функции Ехес операционной системы, а макровирусы с помощью перехвата команд типа «Save as» из меню «File».
Заражение жертвы. В простейшем случае заражение представляет собой самокопирование кода вируса в выбранный в качестве жертвы объект. Классификация вирусов на этом этапе связана с анализом особенностей этого копирования, а также способов модификации заражаемых объектов.
По способу инфицирования жертвы вирусы можно разделить на два класса. К первому относятся вирусы, которые не внедряют свой код непосредственно в программный файл, а изменяют имя файла и создают под старым именем новый, содержащий тело вируса. Второй класс составляют вирусы, внедряющиеся непосредственно в файлы-жертвы. В зависимости от места внедрения возможны следующие варианты:
1) внедрение в начало файла. При внедрении данным способом вирусы могут либо производить объединение собственного кода и кода программы жертвы, либо переписывать начальный фрагмент файла в конец, освобождая место для себя;
2) внедрение в конец файла. Наиболее распространенный тип внедрения. Передача управления коду вирусов обеспечивается модификацией первых команд программы или заголовка файла;
3) внедрение в середину файла. Как правило, этот способ используется вирусами применительно к файлам с заранее известной структурой или же к файлам, содержащим последовательность байтов с одинаковыми значениями, длина которой достаточна для размещения вируса. Во втором случае вирусы архивируют найденную последовательность и замещают собственным кодом. Помимо этого, вирусы могут внедряться в середину файла, освобождая себе место путем переноса фрагментов кода программы в конец файла или же раздвигая файл.
Особенности этапа заражения для загрузочных вирусов определяются особенностями объектов, в которые они внедряются, — загрузочными секторами гибких и жестких дисков и главной загрузочной записью (MBR) жестких дисков. Основной проблемой является ограниченный размер этих объектов. В связи с этим вирусам необходимо каким-то образом сохранить где-то на диске ту свою часть, которая не уместилась на месте жертвы, а также перенести оригинальный код инфицированного загрузчика.
Помимо простого копирования кода вируса в заражаемый объект, на этом этапе могут использоваться более сложные алгоритмы, обеспечивающие защиту вируса на стадии хранения. Кчислу таких усложнений можно отнести уже упоминавшееся шифрование основного тела вируса.
Выполнение деструктивных функций. Вирусы могут выполнять, помимо самокопирования, деструктивные функции. Согласно классификации вирусы делятся на безвредные, неопасные, опасные и очень опасные. Безвредные вирусы – это вирусы, в которых реализован только механизм самораспространения. Неопасные вирусы – это вирусы, присутствие которых в системе связано с различными визуальными эффектами, но которые не наносят вред программам и данным. Опасные вирусы – это вирусы, которые могут стать причиной сбоя системы. Разрушение программ и данных может стать последствием сбоя. Очень опасные вирусы – это вирусы, непосредственно приводящие к разрушениям программ и данных. Дополняя эту классификацию, можно отметить деление вирусов на вирусы, наносящие вред системе вообще, и вирусы, предназначенные для целенаправленных атак на определенные объекты.
Передача управления программе-носителю вируса. По этому признаку вирусы классифицируют на разрушающие и неразрушающие. Разрушающие вирусы не заботятся отом, чтобы при инфицировании программ сохранять их работоспособность, поэтому для них этот этап функционирования отсутствует. Для неразрушающих вирусов этот этап связан с восстановлением в памяти программы в том виде, в котором она должна корректно исполняться, и передачей управления программе – носителю вируса.
3 Общие вопросы борьбы с компьютерными вирусами
Для борьбы с компьютерными вирусами в настоящее время используются различные средства, которые можно разделить на три класса: административные, юридические и технические.
1. Административные средства, как правило, включают комплекс мер, действующих в рамках предприятий и направленных на снижение ущерба, наносимого компьютерными вирусами. В качестве примеров можно привести программы проведения профилактических мероприятий, планы действия сотрудников в случае, если их компьютер подвергся вирусной атаке, запреты на самостоятельную установку нового программного обеспечения и т. п.
2. Юридические средства сводятся к привлечению к уголовной (или административной) ответственности лиц, по чьей вине наносится ущерб вычислительным системам. В настоящее время законодательство многих стран имеет разделы, посвященные компьютерным преступлениям, к числу которых относится распространение компьютерных вирусов. В частности, в Уголовном кодексе Российской Федерации имеется ст. 273, в которой предусмотрена ответственность «за создание, использование и распространение вредоносных программ для ЭВМ», заключающаяся в «лишении свободы на срок до трех лет со штрафом от двухсот до пятисот минимальных размеров оплаты трудами.
1. Программные файлы операционных систем. Вирусы, поражающие эти объекты, называются файловыми.
2. Системные области компьютеров (в частности, области начальной загрузки операционных систем). Соответствующие вирусы получили название загрузочных вирусов, или Boot-вирусов.
3. Макропрограммы и файлы документов современных систем обработки информации (например, Microsoft Word). Вирусы, связанные с этим типом объектов, именуются макровирусами.
Существует и комбинированный тип – файл-загрузочные вирусы.
Естественно, эта классификация не является единственно возможной.
Как правило, все исследователи проблем компьютерных вирусов предлагают множество различных схем типизации. Анализ основных этапов жизненного цикла вирусов позволяет выделить их различные признаки и особенности, которые могут быть положены в основу дополнительных классификаций.
2 Жизненный цикл вирусов
Как и у любой программы, у компьютерных вирусов можно выделить две основные стадии жизненного цикла – хранение и исполнение. Стадия хранения соответствует периоду, когда вирус просто хранится на диске совместно с объектом, в который он внедрен. На этой стадии вирус является наиболее уязвимым со стороны антивирусного программного обеспечения, так как он не активен и не может контролировать работу операционной системы с целью самозащиты.
Некоторые вирусы на этой стадии используют механизмы защиты своего кода от обнаружения. Наиболее распространенным способом защиты является шифрование большей части тела вируса. Его использование совместно с механизмами мутаций кода делает невозможным выделение устойчивых характеристических фрагментов кода вирусов – сигнатур, что затрудняет обнаружение вирусов антивирусными средствами.
Стадия исполнения компьютерных вирусов, как правило, состоит из пяти этапов:
1) загрузки вируса в память;
2) поиска жертвы;
3) заражения найденной жертвы;
4) выполнения деструктивных функций;
5) передачи управления программе – носителю вируса. Рассмотрим эти этапы подробнее.
Загрузка вируса. Загрузка вируса в память осуществляется операционной системой одновременно с загрузкой исполняемого объекта, в который вирус внедрен. В простейшем случае процесс загрузки вируса представляет собой не что иное, как копирование с диска в оперативную память, сопровождаемое настройкой адресов, после происходит передача управления коду тела вируса. Эти действия выполняются операционной системой, а сам вирус находится в пассивном состоянии. В более сложных ситуациях вирусы могут после получения
управления выполнять дополнительные действия, которые необходимы для его функционирования. В связи с этим рассматриваются два аспекта.
Первый из них связан с тем, что некоторые вирусы, как отмечалось выше, используют для самозащиты в период хранения механизмы криптографической защиты. В этом случае дополнительные действия, которые выполняет вирус на этапе загрузки, состоят в расшифровании основного тела вируса.
Второй аспект связан с так называемыми резидентными вирусами. Так как вирус и объект, в который он внедрен, для операционной системы являются единым целым, то, разумеется, после загрузки они располагаются в едином адресном пространстве. Следовательно, после завершения работы объекта он выгружается из оперативной памяти и при этом выгружается вирус, переходя в пассивную стадию хранения. Однако некоторые типы вирусов способны сохраняться в памяти и оставаться активными после окончания работы вирусоносителя. Эти вирусы получили название резидентных.
Такие вирусы на стадии загрузки должны позаботиться о закреплении своего кода в оперативной памяти. Это можно реализовать различными способами. Например, операционные системы типа MS-DOS содержат стандартные средства поддержки резидентных модулей. Но, как правило, вирусы не пользуются этими механизмами, а переносят свой код либо в самостоятельно отведенные блоки памяти, либо в зарезервированные под нужды операционной системы участки памяти. Однако размещение кода в оперативной памяти– необходимое, но недостаточное действие. Помимо этого, вирус должен позаботиться о том, чтобы этому коду время от времени передавалось управление. Поэтому вирусы должны изменить код системных функций, которые гарантированно используются прикладными программами, добавив в них команды передачи управления своему коду, либо изменить в системной таблице адреса соответствующих системных функций, подставив адреса своих подпрограмм. Такой перехват определенных функций, например чтения (записи) файлов, позволит также вирусу контролировать информационные потоки между операционной системой и прикладными программами. Для многозадачных систем типа Windows вирусы могут обойтись без перехвата системных событий, если не ставится задача контроля информационных потоков. Для того чтобы вирус мог функционировать независимо от программы-носителя, ему достаточно зарегистрировать в системе новую задачу, в контексте которой он будет выполняться.
Перехват системных функций с целью контроля действий операционной системы является обязательным для так называемых стелс-вирусов (Stealth). Эти вирусы способны скрывать свое присутствие в системе и избегать обнаружения антивирусными программами. К примеру, подобные вирусы могут перехватывать системные функции чтения файла для того, чтобы в случае обращения к зараженному файлу эмулировать его чистоту, временно восстанавливая его исходное состояние.
Поиск жертвы. По способу поиска жертвы вирусы можно разделить на два класса. К первому относятся вирусы, осуществляющие активный поиск с использованием функций операционной системы. Примерами являются файловые вирусы, использующие механизм поиска исполняемых файлов в текущем каталоге. Второй класс составляют вирусы, реализующие пассивный механизм поиска, т. е. вирусы, расставляющие ловушки для программных файлов. Как правило, файловые вирусы устраивают подобные ловушки путем перехвата функции Ехес операционной системы, а макровирусы с помощью перехвата команд типа «Save as» из меню «File».
Заражение жертвы. В простейшем случае заражение представляет собой самокопирование кода вируса в выбранный в качестве жертвы объект. Классификация вирусов на этом этапе связана с анализом особенностей этого копирования, а также способов модификации заражаемых объектов.
По способу инфицирования жертвы вирусы можно разделить на два класса. К первому относятся вирусы, которые не внедряют свой код непосредственно в программный файл, а изменяют имя файла и создают под старым именем новый, содержащий тело вируса. Второй класс составляют вирусы, внедряющиеся непосредственно в файлы-жертвы. В зависимости от места внедрения возможны следующие варианты:
1) внедрение в начало файла. При внедрении данным способом вирусы могут либо производить объединение собственного кода и кода программы жертвы, либо переписывать начальный фрагмент файла в конец, освобождая место для себя;
2) внедрение в конец файла. Наиболее распространенный тип внедрения. Передача управления коду вирусов обеспечивается модификацией первых команд программы или заголовка файла;
3) внедрение в середину файла. Как правило, этот способ используется вирусами применительно к файлам с заранее известной структурой или же к файлам, содержащим последовательность байтов с одинаковыми значениями, длина которой достаточна для размещения вируса. Во втором случае вирусы архивируют найденную последовательность и замещают собственным кодом. Помимо этого, вирусы могут внедряться в середину файла, освобождая себе место путем переноса фрагментов кода программы в конец файла или же раздвигая файл.
Особенности этапа заражения для загрузочных вирусов определяются особенностями объектов, в которые они внедряются, — загрузочными секторами гибких и жестких дисков и главной загрузочной записью (MBR) жестких дисков. Основной проблемой является ограниченный размер этих объектов. В связи с этим вирусам необходимо каким-то образом сохранить где-то на диске ту свою часть, которая не уместилась на месте жертвы, а также перенести оригинальный код инфицированного загрузчика.
Помимо простого копирования кода вируса в заражаемый объект, на этом этапе могут использоваться более сложные алгоритмы, обеспечивающие защиту вируса на стадии хранения. Кчислу таких усложнений можно отнести уже упоминавшееся шифрование основного тела вируса.
Выполнение деструктивных функций. Вирусы могут выполнять, помимо самокопирования, деструктивные функции. Согласно классификации вирусы делятся на безвредные, неопасные, опасные и очень опасные. Безвредные вирусы – это вирусы, в которых реализован только механизм самораспространения. Неопасные вирусы – это вирусы, присутствие которых в системе связано с различными визуальными эффектами, но которые не наносят вред программам и данным. Опасные вирусы – это вирусы, которые могут стать причиной сбоя системы. Разрушение программ и данных может стать последствием сбоя. Очень опасные вирусы – это вирусы, непосредственно приводящие к разрушениям программ и данных. Дополняя эту классификацию, можно отметить деление вирусов на вирусы, наносящие вред системе вообще, и вирусы, предназначенные для целенаправленных атак на определенные объекты.
Передача управления программе-носителю вируса. По этому признаку вирусы классифицируют на разрушающие и неразрушающие. Разрушающие вирусы не заботятся отом, чтобы при инфицировании программ сохранять их работоспособность, поэтому для них этот этап функционирования отсутствует. Для неразрушающих вирусов этот этап связан с восстановлением в памяти программы в том виде, в котором она должна корректно исполняться, и передачей управления программе – носителю вируса.
3 Общие вопросы борьбы с компьютерными вирусами
Для борьбы с компьютерными вирусами в настоящее время используются различные средства, которые можно разделить на три класса: административные, юридические и технические.
1. Административные средства, как правило, включают комплекс мер, действующих в рамках предприятий и направленных на снижение ущерба, наносимого компьютерными вирусами. В качестве примеров можно привести программы проведения профилактических мероприятий, планы действия сотрудников в случае, если их компьютер подвергся вирусной атаке, запреты на самостоятельную установку нового программного обеспечения и т. п.
2. Юридические средства сводятся к привлечению к уголовной (или административной) ответственности лиц, по чьей вине наносится ущерб вычислительным системам. В настоящее время законодательство многих стран имеет разделы, посвященные компьютерным преступлениям, к числу которых относится распространение компьютерных вирусов. В частности, в Уголовном кодексе Российской Федерации имеется ст. 273, в которой предусмотрена ответственность «за создание, использование и распространение вредоносных программ для ЭВМ», заключающаяся в «лишении свободы на срок до трех лет со штрафом от двухсот до пятисот минимальных размеров оплаты трудами.