Информационная безопасность
Люки в программах
Люк - это не описанная в документации на программный продукт возможность работы с этим программным продуктом.
Люк является самым популярным способом нарушения безопасности информационных систем, поскольку является одним из наиболее простых.
Сущность использования люков состоит в том, что при выполнении пользователем некоторых, не описанных в документации действий, он получает доступ к возможностям и данным, которые в обычных условиях для него закрыты (в частности, выход в привилегированный режим).
Люки чаще всего являются результатом забывчивости разработчиков. В качестве люка может быть использован временный механизм прямого доступа к частям продукта, созданный для облегчения процесса отладки и не удаленный по ее окончании. Люки могут образовываться также в результате часто практикуемой технологии разработки программных продуктов «сверху вниз»: в их роли будут выступать оставленные по каким-либо причинам в готовом продукте «заглушки» – группы команд, имитирующие или просто обозначающие место подсоединения будущих подпрограмм.
Наконец, еще одним распространенным источником люков является так называемый «неопределенный ввод» – ввод «бессмысленной» информации, абракадабры в ответ на запросы системы. Реакция недостаточно хорошо написанной программы на неопределенный ввод может быть, в лучшем случае, непредсказуемой (когда при повторном вводе той же неверной команды программа реагирует каждый раз по-разному); гораздо хуже, если программа в результате одинакового «неопределенного» ввода выполняет некоторые повторяющиеся действия, – это дает возможность потенциальному захватчику планировать свои действия по нарушению безопасности.
Неопределенный ввод – частная реализация прерывания. То есть в общем случае захватчик может умышленно пойти на создание в системе некоторой нестандартной ситуации, которая бы позволила ему выполнить необходимые действия. Например, он может искусственно вызвать аварийное завершение программы, работающей в привилегированном режиме, с тем, чтобы перехватить управление, оставшись в этом привилегированном режиме.
Борьба с возможностью прерывания, в конечном счете, выливается в необходимость предусмотреть при разработке программ комплекса механизмов, образующих так называемую «защиту от дурака». Смысл этой защиты состоит в том, чтобы гарантированно отсекать всякую вероятность обработки неопределенного ввода и разного рода нестандартных ситуаций (в частности, ошибок) и тем самым не допускать нарушения безопасности компьютерной системы даже в случае некорректной работы с программой.
Таким образом, люк (или люки) может присутствовать в программе ввиду того, что программист:Ø Ø забыл удалить его;
Ø Ø умышленно оставил его в программе для обеспечения тестирования или выполнения оставшейся части отладки;
Ø Ø умышленно оставил его в программе в интересах облегчения окончательной сборки конечного программного продукта;
Ø Ø умышленно оставил его в программе с тем, чтобы иметь скрытое средство доступа к программе уже после того, как она вошла в состав конечного продукта.
Люк – первый шаг к атаке системы, возможность проникнуть в компьютерную систему в обход механизмов защиты.
- Войдите на сайт для отправки комментариев