Paranoid Sysadmin -vs- Устаревшая версия PHP


8

Как параноик-сисадмин может быть в курсе последних стабильных версий PHP? (исправления безопасности приходили довольно регулярно).

Это производственный сервер, и поэтому "взломанные вещи" пугают моего парня до смерти. Время простоя для обслуживания не проблема.

В частности, мы используем последнюю версию Suse Enterprise Linux, но общий или более общий ответ вполне приемлем.

Как вы обрабатываете обновления безопасности для производственных машин? Что мы так не знаем о том, что этот парень так напуган, чтобы просто использовать менеджер пакетов для «обновления»?

Любой совет?


2
параноик о каком - либо исправлениях PHP, GTK + обертка, окно обновлении драйверов и т.д. хорошая вещь ИМХО - это больше , чем просто PHP это общий патч philosiphy см serverfault.com/questions/104665/... для хорошего обсуждения заплат в целом ,
Зайфер

@Zypher Спасибо за ссылку. Ситуация здесь не идеальная, но мы работаем над этим. Явное свидетельство того, что нужно поторопиться и добраться туда. =)
анонимный трус

Ответы:


6

Я работаю с PHP так же, как и со всем остальным: сначала обновите среду разработки (производственный клон VMWare), регрессивно протестируйте ее, а затем продвиньте ее в производство, используя те же шаблоны развертывания, которые мы использовали для хостов VMWare. (Если вы используете менеджеры пакетов для ваших обновлений, вы бы использовали те же пакеты).

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

Как правило, обновления безопасности применяются как можно скорее, а обновления, не связанные с безопасностью / некритическими исправлениями ошибок, применяются ежеквартально, чтобы минимизировать время простоя.


Наличие избыточности - это здорово. Мы перемещаем много вещей в виртуальный, что сделает это намного проще. Просто убедившись, что мои предположения не были безумными. =) Спасибо за ваш ответ.
анонимный трус

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

4

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

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

Если вы говорите об обновлении минорных версий, таких как 5.3.1 до 5.3.2, я бы не стал сильно беспокоиться.

Если вы обновляете с версии 5.2.x до 5.3.x, вы, вероятно, столкнетесь с некоторыми проблемами совместимости.

Если вы используете системные пакеты, как правило, в дистрибутивах не будет обновлений, которые нарушат существующую производительность. RHEL и CentOS исправляют старые версии, пока не выйдет основной дистрибутив. Обычно это тестирование для вас, что снижает риск. Я ожидаю, что предприятие SuSE будет похожим.

Для путей обновления лучше всего создать тестовый сервер и протестировать приложение на последней версии перед обновлением производства.


Я действительно думал, что системы управления пакетами использовали проверенные, как правило, безаварийные пакеты, пока ваш ящик не был ужасно разрушен между ними. Хорошо, что это подтвердили. Спасибо.
анонимный трус

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

Использовали ли вы только системные пакеты или у вас было программное обеспечение, которое вы сами скомпилировали?
Уорнер

1

Другой, менее ценный ответ - создать белый список разрешенных URL-адресов и функций. В Apache вы можете сделать это, комбинируя функции прокси и перезаписи.

По сути, вы делаете две установки, одна из которых имеет урезанную конфигурацию: прокси, перезапись и отсутствие выполнения кода; и т. д. Любой «разрешенный» URL (с параметрами и т. д.) передается во второй установке.

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

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

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


1

В дополнение к вышесказанному вы можете включить откат пакета на всякий случай.

Затем, если что-то не работает в процессе производства, и вы абсолютно уверены, что оно работает нормально в процессе разработки , вы можете, по крайней мере, быстро отменить изменения, прежде чем устранять проблему.

Посмотрите пакет Rollback YUM для примера в Yum. Я уверен, что другие системы управления пакетами имеют подобное.

Я знаю, что это пояс и брекеты, и я согласен с Warner с точечными релизами. Незначительные изменения не должны сломать ничего. Лично у меня не было проблем с обновлением PHP, но всегда лучше быть в безопасности, чем потом сожалеть.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.