Реферат: Методы защиты информации от несанкционированного доступа и копирования
- Равностойкость звеньев. Звенья – это элементы защиты, преодоление любого из которых означает преодоление всей защиты. Понятно, что нельзя слабость одних звеньев компенсировать усилением других. В любом случае, прочность защиты (или ее уровня, см. ниже) определяется прочностью самого слабого звена. И если нелояльный сотрудник готов за 100 долларов «скинуть на дискету» ценную информацию, то злоумышленник вряд ли будет выстраивать сложную хакерскую атаку для достижения той же цели.
- Непрерывность. В общем-то, та же равностойкость, только во временной области. Если мы решаем, что будем что-то и как-то защищать, то надо защищать именно так в любой момент времени. Нельзя, например, решить по пятницам делать резервное копирование информации, а в последнюю пятницу месяца устроить «санитарный день». Закон подлости неумолим: именно в тот момент, когда меры по защите информации будут ослаблены, произойдет то, от чего мы защищались. Временный провал в защите, так же, как и слабое звено, делает ее бессмысленной.
- Многоуровневость. Многоуровневая защита встречается повсеместно, достаточно побродить по руинам средневековой крепости. Зачем защита строится в несколько уровней, которые должен преодолевать как злоумышленник, так и легальный пользователь (которому, понятно, это делать легче)? К сожалению, всегда существует вероятность того, что какой-то уровень может быть преодолен либо в силу непредвиденных случайностей, либо с ненулевой вероятностью. Простая математика подсказывает: если один уровень гарантирует защиту в 90%, то три уровня (ни в коем случае не повторяющих друг друга) дадут вам 99,9%. Это, кстати, резерв экономии: путем эшелонирования недорогих и относительно ненадежных средств защиты можно малой кровью добиться очень высокой степени защиты.
Учет этих принципов поможет избежать лишних расходов при построении системы защиты информации и в то же время добиться действительно высокого уровня информационной безопасности бизнеса.
4. Оценка эффективности систем защиты программного обеспечения
Системы защиты ПО широко распространены и находятся в постоянном развитии, благодаря расширению рынка ПО и телекоммуникационных технологий. Необходимость использования систем защиты (СЗ) ПО обусловлена рядом проблем, среди которых следует выделить: незаконное использование алгоритмов, являющихся интеллектуальной собственностью автора, при написании аналогов продукта (промышленный шпионаж); несанкционированное использование ПО (кража и копирование); несанкционированная модификация ПО с целью внедрения программных злоупотреблений; незаконное распространение и сбыт ПО (пиратство).
Системы защиты ПО по методу установки можно подразделить на системы, устанавливаемые на скомпилированные модули ПО; системы, встраиваемые в исходный код ПО до компиляции; и комбинированные.
Системы первого типа наиболее удобны для производителя ПО, так как легко можно защитить уже полностью готовое и оттестированное ПО (обычно процесс установки защиты максимально автоматизирован и сводится к указанию имени защищаемого файла и нажатию "Enter"), а потому и наиболее популярны. В то же время стойкость этих систем достаточно низка (в зависимости от принципа действия СЗ), так как для обхода защиты достаточно определить точку завершения работы "конверта" защиты и передачи управления защищенной программе, а затем принудительно ее сохранить в незащищенном виде.
Системы второго типа неудобны для производителя П.О, так как возникает необходимость обучать персонал работе с программным интерфейсом (API) системы защиты с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования П.О и снижается его надежность, так как кроме самого П.О ошибки может содержать API системы защиты или процедуры, его использующие. Но такие системы являются более стойкими к атакам, потому что здесь исчезает четкая граница между системой защиты и как таковым П.О.
Для защиты ПО используется ряд методов, таких как:
- Алгоритмы запутывания - используются хаотические переходы в разные части кода, внедрение ложных процедур - "пустышек", холостые циклы, искажение количества реальных параметров процедур ПО, разброс участков кода по разным областям ОЗУ и т.п.
- Алгоритмы мутации - создаются таблицы соответствия операндов - синонимов и замена их друг на друга при каждом запуске программы по определенной схеме или случайным образом, случайные изменения структуры программы.
- Алгоритмы компрессии данных - программа упаковывается, а затем распаковывается по мере выполнения.
- Алгоритмы шифрования данных - программа шифруется, а затем расшифровывается по мере выполнения.
- Вычисление сложных математических выражений в процессе отработки механизма защиты - элементы логики защиты зависят от результата вычисления значения какой-либо формулы или группы формул.
- Методы затруднения дизассемблирования - используются различные приемы, направленные на предотвращение дизассемблирования в пакетном режиме.
- Методы затруднения отладки - используются различные приемы, направленные на усложнение отладки программы.
- Эмуляция процессоров и операционных систем - создается вирту