Paranoid Sysadmin -vs- Versi PHP kedaluwarsa


8

Bagaimana seorang paranoid sysadmin percaya diri tetap up-to-date dengan versi PHP stabil terbaru? (perbaikan keamanan telah datang cukup teratur).

Ini adalah server Produksi, jadi "memecahkan barang" membuat orangku ketakutan sampai mati. Downtime untuk pemeliharaan bukan masalah.

Secara khusus, kami menjalankan Suse Enterprise Linux baru-baru ini, tetapi jawaban umum atau yang lebih umum sangat dapat diterima.

Bagaimana Anda menangani pembaruan keamanan untuk mesin produksi? Apa yang kita begitu tidak tahu bahwa orang ini sangat takut untuk hanya menggunakan manajer paket untuk "memperbarui"?

Ada saran?


2
menjadi paranoid tentang APAPUN patch php, gtk + wrapper, pembaruan driver windows, dll adalah hal yang baik IMHO - ini lebih dari sekedar PHP itu adalah filosofi patch umum, lihat serverfault.com/questions/104665/... untuk diskusi yang baik tentang patching secara umum .
Zypher

@ Zypher Terima kasih atas tautannya. Situasi di sini tidak ideal, tetapi kami sedang mengusahakannya. Bukti jelas bahwa segala sesuatunya perlu bergegas dan sampai di sana. =)
pengecut anonim

Jawaban:


6

Saya menangani PHP dengan cara yang sama dengan saya menangani yang lain: Tingkatkan lingkungan pengembangan (klon produksi VMWare) pertama, uji regresi, lalu promosikan ke produksi menggunakan templat penyebaran yang sama yang kami gunakan untuk host VMWare. (Jika Anda menggunakan manajer paket untuk melakukan peningkatan, Anda akan menggunakan paket yang sama).

Sebagai lapisan tambahan insulasi, lingkungan produksi kami terdiri dari host-host redundan berpasangan, dan satu host dikeluarkan dari rotasi produksi untuk peningkatannya, kemudian diuji secara menyeluruh sebelum kami beralih ke host tersebut untuk meningkatkan mitranya.

Sebagai aturan umum, pembaruan keamanan diterapkan secepat mungkin, dan pembaruan bugfix non-keamanan / non-kritis diterapkan setiap triwulan untuk meminimalkan waktu henti.


Memiliki redundansi itu bagus. Kami memindahkan banyak hal ke virtual, yang akan membuat ini jauh lebih mudah. Memastikan asumsi saya tidak gila. =) Terima kasih atas jawaban Anda.
pengecut anonim

VM adalah penemuan yang luar biasa - Secara teori sistem produksi yang berlebihan semuanya bisa menjadi VM yang merupakan penghematan biaya besar jika Anda membayar untuk kekuatan Anda sendiri :) Keuntungan lain termasuk kemampuan untuk mengambil gambar VM Anda sebelum Anda melakukan upgrade untuk hampir rollback-instan.
voretaq7

4

PHP ada di daftar teratas saya untuk terus diperbarui ke versi saat ini. Saya kurang percaya pada kebanyakan hal.

Pada akhirnya, taruhan terbaik Anda adalah meninjau setiap changelog dari versi Anda saat ini ke yang terbaru dan secara nyata menimbang risiko.

Jika Anda berbicara tentang peningkatan versi minor, seperti 5.3.1 ke 5.3.2, saya tidak akan terlalu khawatir.

Jika Anda meningkatkan dari 5.2.x ke 5.3.x, Anda mungkin akan memperkenalkan beberapa masalah kompatibilitas.

Jika Anda menggunakan paket sistem, biasanya distribusi tidak akan memperkenalkan pemutakhiran yang akan merusak kinerja yang ada. RHEL dan CentOS menambal versi lama untuk perbaikan sampai rilis distribusi utama keluar. Lakukan pengujian untuk Anda, biasanya, yang mengurangi risiko. Saya berharap perusahaan SuSE serupa.

Untuk jalur peningkatan, taruhan terbaik adalah membangun server uji dan menguji aplikasi terhadap versi terbaru sebelum meningkatkan produksi.


Saya memang berpikir bahwa sistem manajemen paket menggunakan paket yang sudah diperiksa, umumnya bebas, selama kotak Anda tidak rusak parah di antaranya. Senang ditegaskan. Terima kasih.
pengecut anonim

Manajemen paket bisa sangat hit atau miss - ini biasanya bekerja dengan baik, tetapi saya memiliki tonjolan patch-level dalam paket meledak di wajah saya bahkan ketika vendor hulu mengatakan tidak ada perubahan pemecahan kompatibilitas yang diperkenalkan. Jelas merupakan situasi uji-sebelum-Anda-menyebarkan dalam pengalaman saya.
voretaq7

Apakah Anda hanya menggunakan paket sistem atau apakah Anda memiliki perangkat lunak yang Anda kompilasi sendiri?
Warner

1

Jawaban lain yang kurang dihargai adalah membuat daftar putih url dan fitur yang diizinkan. Di Apache Anda dapat melakukan ini dengan menggabungkan fitur proxy dan penulisan ulang.

Pada dasarnya, Anda membuat dua instalasi, satu yang memiliki konfigurasi stripped down: Proxy, menulis ulang, dan tidak ada eksekusi kode; dll. Setiap URL yang "diizinkan" (dengan parameter, dll) akan diproksi untuk pemasangan kedua.

Kemudian, tambahkan diri Anda ke daftar pengembang PHP, dan pantau catatan rilis dengan hati-hati. Setiap kali Anda melihat sesuatu yang terlihat seperti kerentanan keamanan, Anda membangun shim di instalasi pertama untuk mendeteksi kegagalan semacam ini, dan mengirim kesalahan kepada pengguna.

Dalam pengaturan seperti ini, Anda akan ingin mengarahkan POST ke filter (jika Anda membutuhkan POST sama sekali; beberapa situs mendapatkan apa-apa dengan mengizinkan POST hanya dari beberapa alamat IP!) Yang dapat mencari sumber yang diizinkan, dan memvalidasi semuanya.

Daftar putih semacam itu sangat memakan waktu untuk diatur, tetapi untuk aplikasi misi kritis yang harus berjalan lebih lama dari umur PHP yang stabil (yang tampaknya hanya beberapa tahun), ini bisa menjadi cara terbaik untuk memanfaatkan sejumlah besar PHP aplikasi tanpa mendapatkan kerentanannya juga.


1

Selain hal di atas, Anda dapat mengaktifkan paket roll back untuk berjaga-jaga.

Kemudian jika ada sesuatu yang rusak pada produksi yang Anda benar - benar yakin bekerja dengan baik pada pengembangan , Anda setidaknya dapat membatalkan perubahan dengan cepat sebelum memecahkan masalah.

Lihat paket Rollback YUM untuk contoh dalam Yum. Saya yakin sistem manajemen paket lainnya memiliki kesamaan.

Saya tahu itu adalah sabuk dan kawat gigi dan saya setuju dengan Warner dengan rilis poin. Perubahan kecil seharusnya tidak merusak apa pun. Secara pribadi saya tidak memiliki masalah dalam upgrade PHP, tetapi selalu lebih baik aman daripada menyesal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.