Выбор программного обеспечения для наилучшей защиты PHP-скриптов
Автор: Горошкин Антон Андреевич, Жердев Алексей Александрович
Журнал: Горные науки и технологии @gornye-nauki-tekhnologii
Статья в выпуске: 7, 2011 года.
Бесплатный доступ
Рассмотрены методы защиты PHP-скриптов. Произведен анализ представителей программного обеспечения каждого из трех рассмотренных методов защиты. Произведен выбор программного обеспечения для наилучшей защиты PHP-скриптов.
Интеллектуальная собственность, обфускация, защита php, защита скриптов, защита на стороне сервера
Короткий адрес: https://sciup.org/140215355
IDR: 140215355
Текст научной статьи Выбор программного обеспечения для наилучшей защиты PHP-скриптов
В настоящее время развитие сети Интернет происходит ускоренными темпами, даже несмотря на то, что она уже довольно давно активно используется человечеством. Современный Интернет – это совокупность разнородной информации из различных областей науки, техники, искусства и многих других. Для её создания и обработки используются различные языки программирования и разметки.
Современные WEB-ресурсы представлены разработками на основе технологий HTML, ASP.NET, PHP, PERL, Java-script, Python и др. [2]. Следует отметить, что PHP занимает лидирующую позицию по числу реализованных с его использованием проектов.
PHP представляет собой язык программирования общего назначения с открытым исходным кодом [6]. Распространяется он под своей собственной лицензией (PHP License), которая позволяет свободно его использовать.
Файлы с исходным кодом PHP хранятся и исполняются на стороне сервера. В случае несанкционированного доступа к серверу злоумышленнику сразу же становится доступна вся интеллектуальная собственность, которая хранится в PHP скриптах, поэтому защита их кода от несанкционированного доступа является важной и актуальной.
Целью настоящей работы является повышение уровня информационной безопасности использования PHP-скриптов за счет применения специализированного программного обеспечения. Для достижения указанной цели необходимо решить следующие задачи:
-
1) Выбор критериев оценки программного обеспечения для защиты PHP-скриптов.
-
2) Сравнительный анализ существующих программных средств защиты PHP-скриптов на основе выбранных критериев.
-
3) Разработка рекомендаций по повышению уровня информационной безопасности на основе результатов проведенного
анализа.
Методы защиты php-скриптов от анализа и модификации
Все существующие методы для защиты PHP-скриптов подразделяются на три категории:
-
• Методы, обеспечивающие защиту на уровне сервера
-
• Методы, обеспечивающие защиту на уровне исходного кода
-
• Методы, использующие обфускацию
-
1) Методы, обеспечивающие защиту на уровне сервера, переводят PHP-скрипты из текстового вида в специальный байт-код, такой же, как генерирует сам интерпретатор PHP при трансляции скрипта. При этом теряется структура (вложенные блоки с циклами и ветвлениями становятся линейным кодом с переходами и условными переходами). Для использования этих методов необходима установка специального программного обеспечения на сервере, что не всегда возможно (разные тарифы хостингов, разные ограничения). Такой подход обеспечивает относительно большую надежность по сравнению с остальными.
-
2) Методы, обеспечивающие защиту на уровне исходного кода, шифруют обрабатываемый скрипт с помощью различных алгоритмов шифрования. Они могут работать практически на всех хостингах с поддержкой PHP, но не представляют большой сложности для взлома.
-
3) В отдельную подгруппу можно выделить обфускаторы исходного кода. Обфускация или запутывание кода — приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции. Обфускаторы не кодируют исходный код. Цель их работы – это сделать код скрипта непонятным и запутанным для человека, сохранив при этом его работоспособность.
Критерии оценки
Для того что бы качественно оценить и сделать правильный выбор программного обеспечения, выделим следующие критерии оценки:
― Надежность – показатель степени защищенности программного обеспечения. Этот фактор характеризует устойчивость исходного кода перед взломом и несанкционированным доступом к информации.
― Функциональность – возможность защищать и кодировать не только PHP-скрипты, но и другую интеллектуальную собственность, использование одновременно нескольких методов защиты.
― Кросплатформенность – работоспособность программного обеспечения в различных операционных системах.
― Стоимость – совокупная стоимость приобретения, установки, настройки и обслуживания программного обеспечения.
Средства, обеспечивающие защиту на уровне сервераZendEncoder / ZendSafeGuardSuite
ZendEncoder/ZendSafeGuardSuite - наиболее популярная коммерческая защита, сочетающая мощные средства лицензирования с надежными инструментами шифрования. Содержит в себе два модуля.
Первый модуль ZendEncoder преобразует исходные сценарии PHP в зашифрованные двоичные файлы, которые могут свободно распространяться. Программный код, содержащийся в зашифрованных файлах, надежно защищен от незаконного копирования, а по своим функциональным возможностям такие файлы ничем не отличаются от оригинальных скриптов.
Модуль ZendLicenseManager усиливает защиту приложений, позволяя наложить на зашифрованные файлы лицензионные ограничения. Также существует опция определения сроков действия программы, которые можно установить сроки действия программы с помощью специальных инструментов.
Zend предоставляет привязку скриптов к доменам и IP, установку времени триальной работы скриптов и мощную обфускацию. Поддерживаются все операционные системы.
Однако, в публичном доступе имеется несколько вариантов утилит для снятия Zend'а, все они представляют собой модифицированный PHP 4й и 5-й версии. Старые версии Zend'а снимаются без проблем, в последних же возникают сложности из-за обфускации исходного кода.
Стоимость данного предложения 719$ [5]
ДОСТОИНСТВА
-
2 уровня защиты.
Привязка скриптов к доменам и IP.
Установка триального периода для скрипта.
Дополнен обфускацией.
НЕДОСТАТКИ
Старые версии уязвимы ко взлому.
NuSphereNuCoder
Новая, активно развивающаяся коммерческая защита. На уровне собственных API предоставляет взаимодействие с защищаемыми скриптами. Поддерживаются операционные системы Windows и Linux.
Суть работы данной программы состоит в следующем: исходный код скрипта с помощью шифрования PHP кода преобразуется в байт-код PHP, скомпилированный для повышения скорости исполнения и максимальной безопасности.
В программу встроен и так называемый «менеджер лицензий», который предоставляет разработчику второй уровень защиты, т.е. позволяет гибко управлять распределением PHP-приложений. Также имеется привязка к конкретному железу, что позволяет использовать скрипты только с определенного веб-сервера.
Стоимость данного предложения 299$ [4]
ДОСТОИНСТВА
-
2 уровня защиты.
В байт-коде увеличивается скорость исполнения, что уменьшает время обработки скрипта.
Имеется менеджер лицензий, который позволяет управлять распространением PHP-приложений.
НЕДОСТАТКИ
Недостаточно разрекламирован.
ionCube PHP Encoder
The ionCube PHP encoder обеспечивает защиту скриптов PHP и позволяет блокировать скрипты PHP по времени, ограничивать их для определенных машин. Закодированные файлы могут работать на Linux, Windows, Solaris, FreeBSD, OSX и других системах быстрее, чем первоначальный (оригинальный) источник.
IonCube так же позволяет шифровать не только скрипты, но и шаблоны, XML-документы, изображения, бинарные файлы. Привязывает защищенные файлы к серверам, использует мощный обфускатор.
Стоимость данного предложения 199$ [3]
ДОСТОИНСТВА
Установка триального периода для скрипта.
Привязка к машинам.
Повышение скорости обработки скрипта.
Шифрует 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-скрипта. Его легко установить на локальном или удалённом сервере [1].
Существует множество различных обфускаторов, но их алгоритмы сводятся к одному и тому же — запутыванию, поэтому рассмотрение их всех не является целесообразным.
Из полученных данных можно сделать вывод о том, что наилучшая защита обеспечивается использованием программного обеспечения, реализованного на основе первого метода - защита на стороне сервера. Вполне логично, что высокая надежность и широкий набор функций обуславливают более высокую стоимость таких программных продуктов по сравнению с другими. При наличии соответствующего финансирования использование средств, обеспечивающих защиту на уровне сервера, является обоснованным и предпочтительным.
При необходимости минимизации затрат либо при наличии ограниченного бюджета обычно выбирают программные продукты, основанные на двух других методах.
Таблица 1
Сравнение ПО для защиты кода по различным критериям
Надежно сть |
Функцио нал |
Кроссплатформен ность |
Стоимо сть |
|
Средства, обеспечивающие защиту на уровне сервера |
||||
ZendEncoder / ZendSafeGuardS uite |
Высокая |
Высокий |
Полная |
Высока я |
NuSphereNuCod er |
Высокая |
Высокий |
Windows и Linux |
Средняя |
ionCube PHP Encoder. |
Средняя |
Высокий |
Полная |
Низкая |
Средства, обеспечивающие защиту на уровне исходного кода |
||||
PHP LockIt |
Низкая |
Средний |
Windows и Linux |
Freewar e |
PHP Cipher |
Низкая |
Низкий |
On-line |
Freewar e |
SourceCop PHP Protector |
Низкая |
Низкий |
On-line |
Freewar e |
Free PHP Encoder |
Низкая |
Низкий |
On-line |
Free Trial |
FREE Encrypted PHP |
Низкая |
Средний |
On-line |
Freewar e |
Обфускаторы |
||||
POBS |
Низкая |
Высокий |
On-line |
Freewar e |
Заключение
Результатом проведенной работы, которая описана в настоящей статье, является повышение уровня информационной безопасности использования PHP скриптов, за счет выбора программного обеспечения для их наилучшей защиты. Для этого были решены следующие задачи:
-
1) Выбраны критерии оценки программного обеспечения для защиты PHP-скриптов.
-
2) Проведен сравнительный анализ существующих программных средств защиты PHP-скриптов на основе выбранных критериев.
-
3) Разработаны рекомендации по повышению уровня информационной безопасности на основе результатов проведенного анализа.
Список литературы Выбор программного обеспечения для наилучшей защиты PHP-скриптов
- Защита PHP-скриптов, методы защиты. [Электронный ресурс] URL:http://www.manhunter.ru/webmaster/22_zaschita_php_skriptov_ot_analiza _i_modifikacii.html [26.04.2011].
- Игорь Григин, Руководство программиста. PHP 5.1 -Москва 2006 [27.04.2011].
- Официальный сайт ionCube. [Электронный ресурс] URL: http://www.ioncube.com/sa_encoder.php [25.04.2011].
- Официальный сайт компании nuSphere. [Электронный ресурс] URL: shop.nusphere.com [25.04.2011].
- Официальный сайт компании Zend. [Электронный ресурс] URL: http://shop.zend.com [25.04.2011].
- Тим Конверс, Джойс П арк и Кларк Морган, PHP 5 и MySQL -М., 2006 [25.04.2011].