- •16.1 Резервное копирование файлов
- •16.2 Контроль доступа
- •16.2.1 Контроль доступа, ориентированный на пользователя
- •16.2.2 Контроль доступа, ориентированный на данные
- •16.2.3 Уязвимость паролей
- •16.3 Зловредное программное обеспечение
- •16.3.1 Зловредные программы
- •16.3.2 Подходы к борьбе с вирусами
- •16.3.2.1 Обобщенное дешифрование
- •16.3.2.2 Цифровая иммунная система
- •16.3.2.3 Антивирусные средства
16.3 Зловредное программное обеспечение
Зловредные программы — это программы, которые предназначены для того, чтобы причинить вред или использовать ресурсы компьютера, выбранного в качестве мишени. Они часто маскируются в легальных программах или выдаются за них. В некоторых случаях они распространяются сами по себе, переходя на другие компьютеры по электронной почте или через зараженные файлы или дискеты.
16.3.1 Зловредные программы
Угрозы этого вида можно разделить на две категории: те, которые используют программу-носитель, и те, которые являются независимыми. К первой категории в основном относятся фрагменты программ, которые не могут существовать независимо от программы-носителя, в роли которой может выступать приложение, утилита или системная программа. Ко второй категории относятся отдельные независимые программы, которые могут планироваться и запускаться операционной системой.
Опасные программы разделяются на такие, которые не воспроизводят себя, и такие, которые делают это. К программному обеспечению первого вида относятся фрагменты программ, которые должны активизироваться во время определенных действий главной программы. В программное обеспечение второго вида входят либо фрагменты программ (вирусы), либо независимые программы (черви), способные при запуске создавать одну или несколько копий самих себя; эти копии позже активизируются в этой же или в какой-то другой системе.
Люки. Люк — это скрытая точка входа в программу, которая позволяет каждому, кто о ней знает, получать доступ к программе в обход обычных процедур, предназначенных для обеспечения безопасности. Многие годы люки использовались программистами для отладки и тестирования программ. Обычно это происходит тогда, когда программист разрабатывает приложение, в которое входит процедура регистрации, или которое нужно долго настраивать, вводя при запуске много различных значений. Разработчик может захотеть предоставить программе, предназначенной для отладки, особые привилегии или иметь возможность избегать процесса настройки и аутентификации. Программисту также может понадобиться иметь в своем распоряжении надежный метод, позволяющий активизировать программу в случае возможных сбоев в работе встроенной в приложение процедуры регистрации. Люк — это код, распознающий некую особую последовательность входных данных или включающийся при запуске с определенным идентификатором пользователя, либо в результате маловероятной последовательности событий.
Если люки используются недобросовестными программистами для получения несанкционированного доступа, они становятся угрозой. В качестве примера можно привести случай, произошедший при разработке системы Multics, испытание на проникновение в которую проводилось группой военно-воздушных сил США, изображавшей противника. Один из тактических ходов заключался в том, чтобы отправить на узел, работающий под управлением Multics, подложную обновленную версию операционной системы. Версия содержала в себе троянского коня (эти программы описаны далее), которого можно было активизировать с помощью люка, и который позволил команде получить доступ к системе. Угроза была реализована так хорошо, что разработчики системы Multics не смогли найти ее даже тогда, когда их проинформировали о ее наличии.
Логические бомбы. Логические бомбы — один из самых ранних видов программ, представляющих угрозу. Они являются предшественниками вирусов и червей. Логическая бомба — это код, помещенный в какую-то легальную программу и устроенный так, что при определенных условиях он "взрывается". Условием, использующимся для включения логической бомбы, может быть наличие или отсутствие определенных файлов, определенный день недели или дата, а также запуск приложения определенным пользователем. Включившись, бомба может изменить или удалить данные или целые файлы, стать причиной остановки машины или причинить какой-нибудь другой вред.
Троянские кони. Троянский конь — это полезная или кажущаяся таковой программа или процедура, в которой спрятан код, способный в случае срабатывания выполнить некоторую нежелательную или вредную функцию.
Троянские кони могут использоваться для выполнения тех функций, которые несанкционированный пользователь не мог бы выполнить непосредственно. Например, некий пользователь-злоумышленник хочет получить доступ к файлам другого пользователя. Для этого он может написать программу, которая при запуске изменяла бы права доступа к файлам вызвавшего ее пользователя так, чтобы эти файлы могли прочитать все другие пользователи. Затем, поместив эту программу в общий каталог и присвоив ей имя, похожее на имя какой-нибудь полезной утилиты, автор программы мог бы добиться того, чтобы интересующий его пользователь запустил ее. Примером маскирующей программы может быть программа, которая якобы выводит листинг файлов пользователя в нужном формате. После того как ничего не подозревающий пользователь запустит программу, ее автор сможет получить доступ к информации, которая находится в файлах этого пользователя. Примером трудно обнаруживаемого троянского коня является компилятор, измененный таким образом, чтобы при компиляции он вставлял в определенные программы (например, программы регистрации в системе) дополнительный код. С помощью такого кода в программе регистрации можно создать люк, позволяющий автору входить в систему с помощью специального пароля. Такого троянского коня нельзя обнаружить в исходном коде программы регистрации.
Троянские кони также широко используются для уничтожения данных. Все выглядит так, будто программа выполняет полезную функцию (например, программа-калькулятор), но при этом она может незаметно удалять файлы пользователя.
Вирусы. Вирус — это программа, которая может "заражать" другие программы, изменяя их; к числу изменений относится копирование программы-вируса в программу, которая затем может заразить другие программы.
Подобно своему биологическому прототипу компьютерный вирус содержит в своем коде рецепт того, как точно копировать самого себя. Попав в компьютер, типичный вирус временно берет на себя управление операционной системой компьютера. Затем при любом контакте зараженного компьютера с незараженным фрагментом программного обеспечения в новую программу внедряется новоиспеченная копия вируса. Таким образом, ничего не подозревающие пользователи могут передавать заражение от одного компьютера другому в процессе переписывания программ с одного диска на другой или их пересылки по сети. Сетевая среда, предоставляющая возможность получать доступ к приложениям и системным сервисам, которые находятся на других компьютерах, создает идеальные условия для распространения вирусов.
Черви. Сетевые программы-черви используют сетевые соединения, чтобы переходить из одной системы в другую. Однажды активизировавшись а системе, сетевой червь может вести себя как компьютерный вирус, порождать троянских коней или выполнять любые другие разрушительные или деструктивные действия.
Для самовоспроизведения сетевой червь использует некоторое транспортное средство. В качестве примеров можно привести следующие.
электронная почта. Червь рассылает свою копию другим системам по электронной почте,
возможности удаленного запуска программ. Червь запускает свою копию на другой системе,
возможность удаленной регистрации. Червь входит в удаленную систему под видом пользователя, а затем с помощью стандартных команд копирует себя из одной системы в другую.
Затем новая копия программы-червя запускается на удаленной системе, где копия продолжает распространяться таким же образом.
Сетевой червь обладает такими же характеристиками, что и компьютерный вирус: фаза покоя, фаза размножения и фаза выполнения. В фазе размножения обычно выполняются такие функции.
1. Поиск других систем для заражения путем проверки списков узлов или других хранилищ адресов удаленных систем.
2. Установление связи с удаленной системой.
3. Копирование самого себя в удаленную систему и запуск новой копии.
Перед тем как копировать себя на какую-то систему, сетевой червь может также попытаться определить, инфицирована ли эта система. Кроме того, в многозадачной системе он может маскироваться, присваивая своим копиям имена системных процессов или какие-то другие имена, которые будет трудно заметить системному оператору.
Сетевым червям так же трудно противостоять, как и вирусам. Однако продуманные и правильно реализованные меры безопасности, предусматривающие как безопасность сетей, так и безопасность отдельных систем, сводят угрозу проникновения червей к минимуму.
Зомби. Зомби — это программа, которая скрытно соединяется с другим подключенным в Internet компьютером, а затем использует этот компьютер для запуска атак, что усложняет отслеживание пути к создателю программы-зомби. Зомби используются при атаках с отказом в обслуживании, которые обычно направлены против выбранных в качестве мишени WEB-узлов. Зомби распространяются на сотни компьютеров, принадлежащих ничего не подозревающим третьим лицам, а затем используются для поражения выбранного в качестве мишени WEB-узла при помощи огромного увеличения сетевого графика.
Виды вирусов. Наиболее значительные виды вирусов:
Вирус-паразит. Традиционная и наиболее распространенная форма вируса. Вирус-паразит прикрепляется к исполняемым файлам и размножается в процессе работы зараженной программы, отыскивая и заражая другие исполняемые файлы.
Резидентный вирус. Проникает в основную память вместе с резидентной системной программой и заражает все запускаемые программы.
Вирус в загрузочном секторе. Этот тип вирусов заражает главную загрузочную запись или загрузочную запись диска, а затем распространяется при условии, что система загружается с диска, который содержит этот вирус.
Вирус-невидимка. Разновидность вирусов, специально разработанная так, чтобы скрываться от антивирусных программ,
Полиморфный вирус. Вирус, который может видоизменяться при каждом новом заражении, в связи с чем выявить вирус с использованием некоторой последовательности байтов его кода (сигнатуры) невозможно.
Макровирусы. В последние годы резко возросло количество вирусов на корпоративных узлах. Это связано преимущественно с распространением одного из новейших типов вирусов — макровирусов.
Эти вирусы являются особенно опасными по нескольким причинам.
Макровирусы являются независимыми от платформы. Почти все макровирусы заражают документы, созданные в редакторе Microsoft Word. Все аппаратные платформы и операционные системы, поддерживающие Word, подвержены заражению.
Макровирусы заражают не исполняемую часть кода, а документы. Большинство информации, содержащейся в компьютерной системе, находится в форме документов, а не в форме программ.
Макровирусы легко распространяются. Очень часто для этого применяется электронная почта.