понедельник, 25 января 2016 г.

Установка заплаток безопасности для Magento на примере SUPEE-6788

Доброго дня. Раскажу про свой первый опыт установки заплатки Supee-6788 на существующий проект Magento 1.9.0.1

Заплатка Мадженто - это такой скрипт, который содержит в себе diffs изменения и выполняет определённые действия перед применением изменений и после. Скрипт проверяет зависимости к другим заплаткам, проверяет возможность применения diffs, применяет diffs, оставляет пометки в окружении Magento про выполнение скрипта.


Официальное описание про патчи можно найти ЗДЕСЬ:

Патч - это хорошая штука, но не факт, что он закроет все уязвимости системы:

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


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

Открыт вопрос по заплаткам для дополнительных расширений, или всё таки придётся изменять самостоятельно код сторонних расширений.


Перед началом работы, советую ознакомиться с проектом лучше, используя утилиту MPDB - https://github.com/AOEpeople/mpmd . Данная утилита поможет установить уровень модификации ядра и перекрытия функциональности ядра.

Проведите подготовительные работы:
Перед началом работы, советую ознакомиться с проектом лучше, используя утилиту MPDB - https://github.com/AOEpeople/mpmd . Данная утилита поможет установить уровень модификации ядра и перекрытия функциоанльности ядра.
Ознакомтесь с заплаткой https://magento.com/security/patches , https://magento.com/security/patches/supee-6788-technical-details . Понадобится в процессе самостоятельной замены.

Установка заплатки.
Заплатку можете найти здесь - https://github.com/brentwpeterson/magento-patches . В моем случае файл - https://raw.githubusercontent.com/brentwpeterson/magento-patches/master/CE1.9-EE1.14/PATCH_SUPEE-6788_CE_1.9.0.1_v1-2015-10-26-11-46-45.sh . Параметры выбора заплатки: заплатка SUPEE-6788 для версии Magento 1.9.0.1 . Заплатка размещается в корне проекта и выполняется.

sh ./PATCH_SUPEE-6788_CE_1.9.0.1_v1-2015-10-26-11-46-45.sh

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

Патч привносит некоторые нововведения, которые могуг поломать совместимость со стороними расширениями. Режим совместимости включен, его можно отключить через админку. Данный скрипт пытается востановить совместимость, но не решает проблемы, которые решает данная заплатка. Скрипт оключет режим совместимости и пытается решить конфликты.

https://github.com/rhoerr/supee-6788-toolbox

После выполнения скрипта, сайт должен заработать, скрипт генерирует логи. Обратите внимание на файлы, которые отметил скрипт.

php -f fixSUPEE6788.php -- fix

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

Последний этап: Анализ модулей пула local, поиск мест уязвимостей, решение уязвимостей.

Комментариев нет:

Отправить комментарий