Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программные средства защиты информации

.doc
Скачиваний:
21
Добавлен:
13.08.2013
Размер:
39.42 Кб
Скачать

Программные средства защиты информации. Программы защиты программ

(источник: http://netdefence.ru/post/programmnye_sredstva_zacshity_informacii_programmy_zacshity_programm/)

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

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

В соответствии с этим необходимо использовать следующие меры по защите программ:

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

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

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

  • предупреждение несанкционированного использования программ в процессе функционирования системы.

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

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

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

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

  3. Организация специальных точек входа, т.е. нескольких нестандартных (сохраняемых в тайне и периодически изменяемых) адресов обращения к программам и их отдельным блокам.

  4. Дублирование программ с обязательным сравнение перед исполнением, хотя бы двух копий защищаемых программ.

  5. Криптографическое закрытие программ, причем снятие шифра должно осуществляться непосредственно перед использованием.

Все перечисленные меры сравнительно несложно реализуются программным путем, причем содержание соответствующих программ очевидно.

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

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

Защита от копирования

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

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

Сформулируем некоторые априорные требования, выполнение которых существенно повысит надежность системы защиты от копирования.

  • Некопируемость дисков (если это необходимо по условиям распространения) автоматическими копировщиками. Данный пункт гарантирует, что для понимания принципа некопируемости необходимо будет ручное изучение структуры диска.

  • Невозможность применения стандартных отладочных средств при изучении ими логики работы защищенных программ без дополнительных манипуляций с кодом программы или без платы аппаратного отладчика. В данном случае непрофессионал или программист средней квалификации скорее всего не сможет “пройти” защищенную программу отладчиком.

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

  • Невозможность трассировки по существенно важным прерываниям с помощью стандартных средств. При этом будет скрыт обмен программы с “внешним миром”, — диском, DOS и т.д.

  • Затрудненность изучения структуры распознавания индивидуальных параметров АС или технологического анализа применяемых аппаратных средств защиты. Подразумевается необходимость такого выбора индивидуальных параметров, чтобы они редко повторялись и трудно обнаруживались; в случае применения аппаратных ключей — чтобы их вскрытие не давало существенной информации об их работе.

Системы защиты от копирования, как правило, состоят из следующих компонентов.

  • Модуль проверки недублированной или оригинальной информации — проверяет наличие некопируемых признаков на дискете или оригинальной для данной АС информации.

  • По размещению этого модуля можно выделить три основных типа системы защиты.

  • система с “навесным” проверочным модулем, созданным по технологии файлового вируса;

  • системы с внешним проверочным модулем, вынесенным в отдельную программу;

  • системы с внутренними функциями проверки.

  • Модуль защиты от просмотра и анализа логики системы.

  • Модуль согласования с защищенными структурами — обеспечивает правильную работу защищенных программ и адекватное восприятие защищенных данных в случае легальных копий.