Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IBIZI.doc
Скачиваний:
38
Добавлен:
21.04.2019
Размер:
2.31 Mб
Скачать

Вопросы по теме

11Программы с потенциально опасными последствиями

Программой с потенциально опасными последствиями назовем программу или часть программы, которая способна выполнить одно из следующих действий:

  • скрыть признаки своего присутствия в программной среде ПЭВМ;

  • самодублироваться, ассоциировать себя с другими программами и/или переносить свои фрагменты в какие-либо области оперативной или внешней памяти, не принадлежащие программе;

  • изменять код программ в оперативной или внешней памяти;

  • сохранять фрагменты информации из оперативной памяти в некоторых областях внешней памяти (локальных или удаленных);

  • искажать произвольным образом, блокировать и/или подменять выводимый во внешнюю память или канал связи массив информации, образовавшийся в результате работы прикладных программ, или уже находящиеся во внешней памяти массивы данных.

Программы с потенциально опасными последствиями можно условно подразделить на:

  • классические программы-"вирусы";

  • программы типа "программный червь" или "троянский конь" и фрагменты программ типа "логический люк";

  • программы типа "логическая бомба";

  • программные закладки - обобщенный класс программ с потенциально опасными последствиями.

Кроме того, такие программы можно классифицировать по методу и месту их внедрения и применения (то есть по "cпособу доставки" в систему):

  • закладки, связанные с программно-аппаратной средой (BIOS);

  • закладки, связанные с программами первичной загрузки;

  • закладки, связанные с драйвером DOS, командным интерпретатором, сетевыми драйверами, то есть с загрузкой и работой операционной среды;

  • закладки, связанные с прикладным программным обеспечением общего назначения (встроенные в клавиатурные и экранные драйверы, программы тестирования ПЭВМ, утилиты, файловые оболочки);

  • исполняемые модули, содержащие только код закладки (как правило, внедряемые в пакетные файлы типа BAT);

  • модули-имитаторы, совпадающие по внешнему виду с легальными программами, требующими ввода конфеденциальной информации;

  • закладки, маскируемые под программные средства оптимизационного назначения (архиваторы, ускорители и т.д.);

  • закладки, маскируемые под программные средства игрового и развлекательного назначения (как правило, используются для первичного внедрения других закладок; условное название - "исследователь").

    1. Вирус

Первые исследования саморазмножающихся искусственных конструкций проводились в середине прошлого столетия: в работах фон Неймана, Винера и др. дано определение и проведен математический анализ конечных автоматов, в том числе самовоспроизводящихся. Термин "компьютерный вирус" появился позднее - официально считается, что его впервые употребил сотрудник Лехайского университета (США) Фред Коэн в 1984 году на 7-й конференции по безопасности информации, проходившей в США.

Компьютерным вирусом называется программа, которая может создавать свои копии (не обязательно совпадающие с оригиналом) и внедрять их в файлы, системные области компьютера, сети и так далее. При этом копии сохраняют способность дальнейшего распространения.

Вирусы можно разделить на классы по следующим признакам:

  • по среде обитания вируса;

  • по способу заражения среды обитания;

  • по деструктивным возможностям.

По среде обитания различают вирусы сетевые, файловые, загрузочные и специальные. Сетевые вирусы распространяются по компьютерной сети, файловые внедряются в выполняемые файлы, загрузочные в загрузочный сектор диска(Boot) или сектор, содержащий системный загрузчик винчестера(Master Boot Record). Специальные ориентированы на конкретные особенности ПО, например вирус, заражающий документы редактора Word. Существуют сочетания - например, файлово-загрузочные вирусы, заражающие и файлы и загрузочные сектора дисков. Кроме того, по сети могут распространятся вирусы любых типов.

Способы заражения делятся на резидентный и нерезидентный. Резидентный вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращение операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и остаются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.

По деструктивным возможностям вирусы можно разделить на:

  • безвредные, никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);

  • неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и прочими эффектами;

  • опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера;

  • очень опасные вирусы, которые могут привести к потере программ, уничтожить данные, способствовать ускоренному износу или повреждению частей механизмов(например, головок винчестеров).

    1. Люк

Люком называется не описанная в документации на программный продукт возможность работы с этим программным продуктом. Сущность использования люков состоит в том, что при выполнении пользователем некоторых не описанных в документации действий он получает доступ к возможностям и данным, которые в обычных условиях для него закрыты (в частности - выход в привилегированный режим).

Люки чаще всего являются результатом забывчивости разработчиков. В процессе разработки программы разработчики часто создают временные механизмы, облегчающие ведение отладки за счет прямого доступа к отлаживаемым частям продукта. По окончанию отладки большинство люков убирается из программы; но люди есть люди - зачастую они забывают о существовании каких-то мелких "лючков".

Одним из наиболее показательных примеров использования "забытых" люков является, пожалуй, широко известный в компьютерном мире инцидент с вирусом Морриса. Одной из причин, обусловивших возможность распространения этого вируса, была ошибка разработчика программы электронной почты, входящей в состав одной из версий операционной системы UNIX, приведшая к появлению малозаметного лючка. Для вас, наверное, будет небесполезно знать, что американские специалисты оценивают ущерб, нанесенный в результате этого инцидента, более чем в 100 миллионов долларов.

Люки могут образовываться также в результате часто практикуемой технологии разработки программных продуктов "сверху вниз". При этом программист приступает сразу к написанию сразу управляющей программы, заменяя предполагаемые в будущем подпрограммы так называемыми "заглушками". В теории моментом завершения разработки конечной программы по такой технологии можно считать момент замены последней заглушки реальной подпрограммой.

В действительности дело обстоит несколько сложнее. Вся беда в том, что авторы часто оставляют заглушки в конечном программном продукте, передаваемом в эксплуатацию. Делают это порой неумышленно: например, на ранних стадиях разработки предполагалось наличие в конечном программном продукте некоторой подпрограммы, однако в процессе разработки выяснилось, что эта подпрограмма в силу каких-либо причин не нужна. Но заглушка-то осталась! Удалить заглушку, не заменяя ее подпрограммой, бывает весьма сложно. Это может спровоцировать программиста оставить заглушку "до лучших времен".

Возможен вариант, когда заглушки оставляются в конечной программе сознательно, в расчете на подключение в дальнейшем к работающей программе новых подпрограмм, реализующих некоторые новые возможности, либо предполагая возможное подключение к программе тестирующих средств для более точной настройки программы. Кто может дать гарантию, что в один прекрасный день такой заглушкой кто-нибудь не воспользуется для подключения к программе совсем иной подпрограммы, работающей в интересах этого "кого-нибудь", а не законного владельца?

Наконец, еще одним распространенным источником люков является так называемый "неопределенный ввод". Не так уж редка ситуация, когда программа создается неопытным программистом, исходящим из предположения, что пользователи будут работать с его программой всегда корректно. В этом случае реакция на неопределенный ввод может быть в лучшем случае непредсказуемой; гораздо хуже, если программа в случае одинакового неопределенного ввода выполняет некоторые повторяющиеся действия - это дает потенциальному захватчику возможность планировать свои действия по нарушению безопасности.

Таким образом, люк (или люки) может присутствовать в программе ввиду того, что программист:

  1. забыл удалить его;

  2. умышленно оставил его в программе для обеспечения тестирования или выполнения оставшейся части отладки;

  3. умышленно оставил его в программе в интересах облегчения окончательной сборки конечного программного продукта;

  4. умышленно оставил его в программе с тем, чтобы иметь скрытое средство доступа к программе уже после того, как она вошла в состав конечного продукта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]