info

Выбор программного обеспечения для наилучшей защиты PHP-скриптов

Presentation mode
head
Горошкин Антон Андреевич
Факультет АИ, 3 курс, гр. ИС-08
Научный руководитель: Жердев Алексей Александрович
ассистент
МГГУ кафедра ЭИС

(Software selection for the best PHP-scripts protection)

Введение

В настоящее время развитие сети Интернет происходит ускоренными темпами, даже несмотря на то, что она уже довольно давно активно используется человечеством. Современный Интернет – это совокупность разнородной информации из различных областей науки, техники, искусства и многих других. Для её создания и обработки используются различные языки программирования и разметки.

Современные WEB-ресурсы представлены разработками на основе технологий HTML, ASP.NET, PHP, PERL, Java-script, Python и др. Следует отметить, что PHP занимает лидирующую позицию по числу реализованных с его использованием проектов.

PHP представляет собой язык программирования общего назначения с открытым исходным кодом [6]. Распространяется он под своей собственной лицензией (PHP License), которая позволяет свободно его использовать.

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

Целью настоящей работы является повышение уровня информационной безопасности использования PHP-скриптов за счет применения специализированного программного обеспечения. Для достижения указанной цели необходимо решить следующие задачи:

  • Выбор критериев оценки программного обеспечения для защиты PHP-скриптов.
  • Сравнительный анализ существующих программных средств защиты PHP-скриптов на основе выбранных критериев.
  • Разработка рекомендаций по повышению уровня информационной безопасности на основе результатов проведенного анализа.

Методы защиты php-скриптов от анализа и модификации

Все существующие методы для защиты PHP-скриптов подразделяются на три категории:

  1. Методы, обеспечивающие защиту на уровне сервера
  2. Методы, обеспечивающие защиту на уровне исходного кода
  3. Методы, использующие обфускацию

Методы, обеспечивающие защиту на уровне сервера

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

Методы, обеспечивающие защиту на уровне исходного кода

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

Обфускаторы

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

Критерии оценки

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

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

Средства, обеспечивающие защиту на уровне сервера

ZendEncoder / ZendSafeGuardSuite

ZendEncoder/ZendSafeGuardSuite - наиболее популярная коммерческая защита, сочетающая мощные средства лицензирования с надежными инструментами шифрования. Содержит в себе два модуля.

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

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

Zend предоставляет привязку скриптов к доменам и IP, установку времени триальной работы скриптов и мощную обфускацию. Поддерживаются все операционные системы.

Однако, в публичном доступе имеется несколько вариантов утилит для снятия Zend'а, все они представляют собой модифицированный PHP 4-й и 5-й версии. Старые версии Zend'а снимаются без проблем, в последних же возникают сложности из-за обфускации исходного кода.

Стоимость данного предложения 719$

Достоинства

  • 2 уровня защиты.
  • Привязка скриптов к доменам и IP.
  • Установка триального периода для скрипта.
  • Дополнен обфускацией.

Недостатки

  • Старые версии уязвимы ко взлому.

NuSphereNuCoder

Новая, активно развивающаяся коммерческая защита. На уровне собственных API предоставляет взаимодействие с защищаемыми скриптами. Поддерживаются операционные системы Windows и Linux.

Суть работы данной программы состоит в следующем: исходный код скрипта с помощью шифрования PHP кода преобразуется в байт-код PHP, скомпилированный для повышения скорости исполнения и максимальной безопасности.

В программу встроен и так называемый «менеджер лицензий», который предоставляет разработчику второй уровень защиты, т.е. позволяет гибко управлять распределением PHP-приложений. Также имеется привязка к конкретному железу, что позволяет использовать скрипты только с определенного веб-сервера.

Стоимость данного предложения 299$

Достоинства

  • 2 уровня защиты.
  • В байт-коде увеличивается скорость исполнения, что уменьшает время обработки скрипта.
  • Имеется менеджер лицензий, который позволяет управлять распространением PHP-приложений.

Недостатки

  • Недостаточно разрекламирован.

ionCube PHP Encoder

The ionCube PHP encoder обеспечивает защиту скриптов PHP и позволяет блокировать скрипты PHP по времени, ограничивать их для определенных машин. Закодированные файлы могут работать на Linux, Windows, Solaris, FreeBSD, OSX и других системах быстрее, чем первоначальный (оригинальный) источник.

IonCube так же позволяет шифровать не только скрипты, но и шаблоны, XML-документы, изображения, бинарные файлы. Привязывает защищенные файлы к серверам, использует мощный обфускатор.

Стоимость данного предложения 199$

Достоинства

  • Установка триального периода для скрипта.
  • Привязка к машинам.
  • Повышение скорости обработки скрипта.
  • Шифрует XML-документы, изображения, бинарные файлы.
  • Дополнен обфускацией.
  • Кроссплатформенность.

Недостатки

  • Может быть легко взломан.

Средства, обеспечивающие защиту на уровне исходного кода

PHP LockIt

Популярная коммерческая защита, встречается очень часто, в основном в скриптах зарубежных разработчиков. Позволяет устанавливать триальный срок работы скриптов, привязку к доменам и IP-адресам, сжимает скрипты штатными средствами PHP (gzinflate). Единственная сложность – хороший обфускатор. Различные версии защиты отличаются только модификацией модуля распаковки. Легко снимается как в ручном, так и в автоматическом режиме. Без обфускатора снимается в точности до исходного кода, с обфускатором требует дополнительной обработки

После шифрования скрипты становятся просто неузнаваемыми, а главное – по-прежнему рабочими. Метод скрытия значительно отличается от предыдущей программы. Коды намного сложнее, но в то же время и занимают больше места.

Достоинства

  • Установка триального периода для скрипта.
  • Привязка к IP и доменам.
  • Более сложные алгоритмы запутывания.

Недостатки

  • Усложнение кода ведет к увеличению размера файлов.

PHPCipher

Защита представляет собой он-лайн сервис. На сайт загружается архив со скриптами и обратно скачивается уже защищенный. Платная лицензия позволяет подписывать защищенные скрипты своими данными и использовать для коммерческих целей. Сама защита представляет собой защищенный Zend'ом PHP-модуль, который подключается к защищенным скриптам. После deZend'а модуля защиты и получения из него всех необходимых констант снимается полностью до исходного кода. Функции обфускатора нет.

SourceCop PHP Protector

Очень популярная у отечественных разработчиков защита. Представляет собой сильно «замусоренный» пустым кодом модуль защиты, который подключается к защищенным скриптам. Алгоритм декодирования очень простой, не вызывает никаких сложностей в ручном и автоматическом снятии. Во всех случаях снимается полностью до исходного кода, функции обфускатора нет.

Free PHP Encoder

Бесплатный он-лайн сервис для кодирования php-скриптов. Модуль защиты представляет собой подключаемый PHP-скрипт, используемый Zend'ом, который надо скачать с сайта. После снятия Zend'а и разбора алгоритма защита легко снимается полностью до исходного кода. Алгоритм защиты неизменный, функции обфускатора нет.

FREE Encrypted PHP

Бесплатный он-лайн сервис для шифрования файлов, выполняющий привязку к серверу и ограничивающий по времени работы скрипта. К зашифрованным скриптам подключается модуль расшифровки, используемый ionCube. После открытия алгоритма расшифровки легко снимается.

Обфускаторы

PHP UnReader

PHP UnReader - это обфускатор PHP кода. Обфускация позволяет привести код в абсолютно нечитабельный вид для защиты интеллектуальной собственности. Процесс обфускации является необратимым - никакие алгоритмы обработки не вернут исходному коду прежний вид и возможность осознания человеком, при этом код остаётся полностью работоспособным. PHP UnReader реализован в виде PHP-скрипта. Его легко установить на локальном или удалённом сервере.

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

Сравнение ПО для защиты кода по различным критериям.

НазваниеНадежностьФункционалКроссплатформенностьСтоимость
Средства, обеспечивающие защиту на уровне сервера
ZendEncoder / ZendSafeGuardSuiteВысокаяВысокийПолнаяВысокая
NuSphereNuCoderВысокаяВысокийWindows и LinuxСредняя
ionCube PHP Encoder.СредняяВысокийПолнаяНизкая
Средства, обеспечивающие защиту на уровне исходного кода
PHP LockItНизкаяСреднийWindows и LinuxFreeware
PHP CipherНизкаяНизкийOn-lineFreeware
SourceCop PHP ProtectorНизкаяНизкийOn-lineFreeware
Free PHP EncoderНизкаяНизкийOn-lineFree Trial
FREE Encrypted PHPНизкаяСреднийOn-lineFreeware
Обфускаторы
POBSНизкаяВысокийOn-lineFreeware

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

При необходимости минимизации затрат либо при наличии ограниченного бюджета обычно выбирают программные продукты, основанные на двух других методах.

Заключение

Результатом проведенной работы, которая описана в настоящей статье, является повышение уровня информационной безопасности использования PHP скриптов, за счет выбора программного обеспечения для их наилучшей защиты. Для этого были решены следующие задачи:

  1. Выбраны критерии оценки программного обеспечения для защиты PHP-скриптов.
  2. Проведен сравнительный анализ существующих программных средств защиты PHP-скриптов на основе выбранных критериев.
  3. Разработаны рекомендации по повышению уровня информационной безопасности на основе результатов проведенного анализа.

Литература

  1. Защита PHP-скриптов, методы защиты. [Электронный ресурс] URL:http://www.manhunter.ru/webmaster/22_zaschita_php_skriptov_ot_analiza_i_modifikacii.html [26.04.2011].
  2. Игорь Григин, Руководство программиста. PHP 5.1 – Москва 2006 [27.04.2011].
  3. Официальный сайт ionCube. [Электронный ресурс] URL: http://www.ioncube.com/sa_encoder.php [25.04.2011].
  4. Официальный сайт компании nuSphere. [Электронный ресурс] URL: shop.nusphere.com [25.04.2011].
  5. Официальный сайт компании Zend. [Электронный ресурс] URL: http://shop.zend.com [25.04.2011].
  6. Тим Конверс, Джойс П арк и Кларк Морган, PHP 5 и MySQL – Москва 2006 [25.04.2011].

Аннотация

Рассмотрены методы защиты PHP-скриптов. Произведен анализ представителей программного обеспечения каждого из трех рассмотренных методов защиты. Произведен выбор программного обеспечения для наилучшей защиты PHP-скриптов.

We consider methods of protecting PHP-scripts. The analysis of the representatives of the software each of the three methods of protection. Produced by selection of software for the bestprotection PHP-scripts.

Ключевые слова

Интеллектуальная собственность, обфускация, защита PHP, защита скриптов, защита на стороне сервера.

Intellectual property, obfuscation, protection PHP, script protection, protection on the server side.