Paranoid Sysadmin -vs- Versão desatualizada do PHP

8

Como um administrador de sistemas paranóico pode manter-se atualizado com segurança com as últimas versões estáveis ​​do PHP? (as correções de segurança são recebidas regularmente).

Este é um servidor de produção e, portanto, "quebrar coisas" está assustando meu rapaz até a morte. O tempo de inatividade para manutenção não é o problema.

Especificamente, estamos executando um Suse Enterprise Linux recente, mas uma resposta genérica ou mais geral é perfeitamente aceitável.

Como você lida com atualizações de segurança nas máquinas de produção? Do que somos tão ignorantes quanto a esse cara ter tanto medo de usar o gerenciador de pacotes para "atualizar"?

Algum conselho?

covarde anônimo
fonte
2
ser paranóico sobre QUALQUER patch php, gtk + wrapper, atualização de driver do Windows, etc, é uma coisa boa IMHO - isso é mais do que apenas PHP, é uma filosofia geral de patch, consulte serverfault.com/questions/104665/… para uma boa discussão sobre patch em geral .
Zypher
@ Zypher Obrigado pelo link. A situação aqui não é ideal, mas estamos trabalhando para isso. Evidência clara de que as coisas precisam se apressar e chegar lá. =)
covarde anônimo

Respostas:

6

Lido com o PHP da mesma maneira que lida com todo o resto: atualize o ambiente de desenvolvimento (um clone de produção VMWare) primeiro, teste a regressão rapidamente e depois promova-o para produção usando os mesmos modelos de implantação que usamos para os hosts VMWare. (Se você estiver usando gerenciadores de pacotes para fazer suas atualizações, usaria os mesmos pacotes).

Como uma camada extra de isolamento, nosso ambiente de produção é composto por hosts redundantes emparelhados, e um host é retirado da rotação de produção para sua atualização e testado exaustivamente antes de passarmos para esse host para atualizar seu parceiro.

Como regra geral, as atualizações de segurança são aplicadas o mais rápido possível, e as atualizações de correções não relacionadas à segurança / não críticas são aplicadas trimestralmente para minimizar o tempo de inatividade.

voretaq7
fonte
Ter a redundância é ótimo. Estamos mudando muitas coisas para o virtual, o que tornará isso muito mais fácil. Apenas me certificando de que minhas suposições não eram loucas. =) Obrigado pela sua resposta.
covarde anônimo
As VMs são uma invenção maravilhosa - em teoria, os sistemas de produção redundantes podem ser VMs, o que representa uma enorme economia de custos se você estiver pagando por sua própria energia :) Outras vantagens incluem a capacidade de capturar instantaneamente suas VMs antes de fazer as atualizações por quase um ano. reversão instantânea.
precisa saber é o seguinte
4

O PHP está na minha lista principal de itens a serem atualizados para a versão atual. Confio menos do que na maioria das coisas.

Por fim, sua melhor aposta é revisar todos os registros de alterações da sua versão atual para os mais recentes e ponderar tangivelmente o risco.

Se você está falando em atualizar versões menores, como 5.3.1 a 5.3.2, não me preocuparia muito.

Se você estiver atualizando do 5.2.x para o 5.3.x, é provável que introduza alguns problemas de compatibilidade.

Se você estiver usando pacotes do sistema, normalmente as distribuições não apresentarão atualizações que afetarão o desempenho existente. O RHEL e o CentOS corrigem versões antigas para correções até que um grande lançamento de distribuição seja lançado. Faça o teste para você, normalmente, o que reduz o risco. Eu esperaria que a empresa SuSE fosse semelhante.

Para caminhos de atualização, a melhor aposta seria construir um servidor de teste e testar o aplicativo com a versão mais recente antes de atualizar a produção.

Warner
fonte
Eu achava que os sistemas de gerenciamento de pacotes usavam pacotes controlados e geralmente livres de interrupção, desde que sua caixa não estivesse terrivelmente devastada. É bom ter isso afirmado. Obrigado.
Covarde anônimo
O gerenciamento de pacotes pode ser muito imprevisível - geralmente funciona bem, mas eu tive problemas com o nível de patch em um pacote, mesmo quando o fornecedor anterior diz que nenhuma alteração de quebra de compatibilidade foi introduzida. Definitivamente, uma situação de teste antes de implantar na minha experiência.
precisa saber é o seguinte
Você estava usando apenas pacotes do sistema ou também tinha um software que foi compilado?
Warner
1

Outra resposta menos apreciada é criar uma lista de permissões de URLs e recursos permitidos. No Apache, você pode fazer isso combinando os recursos de proxy e reescrita.

Basicamente, você faz duas instalações, uma que possui uma configuração simplificada: proxy, reescrita e nenhuma execução de código; etc. Qualquer URL "permitido" (com parâmetros, etc) é transferido por proxy para a segunda instalação.

Em seguida, adicione-se à lista de desenvolvedores do PHP e monitore as notas de versão com cuidado. Sempre que vir algo que parece ser uma vulnerabilidade de segurança, você constrói um calço na primeira instalação para detectar esse tipo de falha e envia um erro ao usuário.

Em uma configuração como essa, você desejará redirecionar o POST para um filtro (se você precisar do POST; alguns sites se saem muito bem ao permitir o POST apenas a partir de alguns endereços IP!) Que podem procurar fontes permitidas e pré- valide tudo.

Essa lista de permissões leva muito tempo para ser configurada, mas para aplicativos de missão crítica que precisam ser executados por mais tempo do que a vida útil estável do PHP (que parece levar apenas alguns anos), essa pode ser uma excelente maneira de aproveitar o grande número de PHP aplicativos sem obter suas vulnerabilidades também.

geocar
fonte
1

Além do acima, você pode ativar a reversão de pacotes apenas por precaução.

Então, se algo interromper a produção, que você tinha certeza absoluta de que estava funcionando bem no desenvolvimento , você pode pelo menos desfazer a alteração rapidamente antes de solucionar o problema.

Veja Rollback YUM package para um exemplo em Yum. Estou certo de que outros sistemas de gerenciamento de pacotes têm similar.

Eu sei que é cinto e aparelho e concordo com a Warner com lançamentos pontuais. Pequenas alterações não devem quebrar nada. Pessoalmente, não tive problemas nas atualizações do PHP, mas é sempre melhor prevenir do que remediar.

Richard Holloway
fonte