Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
защита билеты.docx
Скачиваний:
89
Добавлен:
21.09.2019
Размер:
346.96 Кб
Скачать

26. Компьютерные вирусы. Классификация вирусов по деструктивным действиям.

Вирус

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

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

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

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

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

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

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

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

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

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

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

27. Что такое «Люк», «Троянский конь», «Логическая бомба», «Атака салями»?

Люк

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

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

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

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

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

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

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

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

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

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

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

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