Minggu, 28 Juli 2013

ABAS WISARTONIM : STI201000536


SUHOSIN

Suhosin adalah semacam proteksi untuk melindungi aplikasi PHP yang kita buat atau core-PHP itu sendiri dab suhosin mulai diimplementasikan pada installer php di januari 2007. Suhosin termasuk juga mengenkripsi COOKIES sehingga jika anda mengimplementasikan SESSION, maka perlu hati-hati.

Sesuai dengan yang sudah saya lakukan, SESSION di PHP tidak akan dikenal di sub folder dan sub domain jika suhosin masih aktif walaupun sudah menggunakan syntax session.cookie_domain. So, bagaimana cara mengatasinya? satu-satunya jalan dengan mematikan di php.ini untuk:

suhosin.cookie.encrypt=Off

suhosin.session.encrypt=Off

Trus bagaimana caranya jika tidak bisa mengubah php.ini di server hosting kita? mudah saja, biasanya php me-load master php.ini tetapi juga me-load local php.ini jika di folder/sub domain yang mengandung php.ini
Contoh: jika ingin mematikan suhosin di subdomain, buat file php.ini dengan isi seperti di atas pada folder dimana sub-domain tersebut berada

Suhosin juga merupakan sistem proteksi canggih untuk instalasi PHP. Dirancang untuk melindungi server dan user dari cacat yang dikenali maupun yang tidak dikenali dalam aplikasi PHP dan PHP core. Suhosin hadir dalam dua bagian yang independen, dapat digunakan secara terpisah atau dikombinasikan. Bagian pertama adalah sebuah patch kecil yang melawan PHP core, yang menerapkan beberapa proteksi low-level yang melawan bufferoverflows atau kerentanan terhadap format string, dan bagian kedua adalah sebuah ekstensi PHP yang powerful yang mengimplementasikan semua proteksi yang lain. Tidak seperti PHP Hardening-Patch, Suhosin kompatibel terhadap instalasi PHP secara normal, yang berarti kompatibel juga untuk 3rd party binary extension seperti ZendOptimizer. Patch-patch dan extensi Suhosin dapat didownload pada
http://www.hardened-php.net/suhosin/download.html
Kenapa?
Pertanyaan paling penting untuk pengguna baru suhosin adalah, kenapa mereka harus menggunakan suhosin, jika benar-benar dibutuhkan dan apa yang mereka dapatkan dengan menggunakan patch, extension, atau kombinasi dari keduanya?  Jawaban dari pertanyaan tersebut bergantung pada untuk apa anda menggunakan PHP. Jika Anda menggunakan PHP hanya untuk server Anda sendiri dan hanya untuk script dan aplikasi milik Anda sendiri, maka Anda bisa menilai sendiri, jika Anda cukup mempercayai code Anda sendiri. Dalam kasus seperti ini kemungkinan besar Anda tidak memerlukan extension Suhosin. Karena sebagian besar fitur-fiturnya dimaksudkan untuk melindungi server dari serangan tehnik-tehnik kerentanan programming. Bagaimanapun PHP adalah sebuah bahasa pemrograman yang sangat kompleks dengan banyak perangkap yang jarang diawasi selama pengembangan aplikasi. Bahkan programmer PHP core menulis code secara tidak aman dari waktu ke waktu, karena mereka tidak tahu tentang adanya perangkap
PHP. Karena itu memiliki Suhosin sebagai jaring pengaman Anda adalah sebuah ide
yang bagus. Suhosin-patch disisi lain datang dengan perlindungan Zend Engine, fitur yang melindungi server Anda dari kemungkinan bufferoverflows dan kerentanan di dalam Zend Engine. Sejarah telah menunjukkan bahwa beberapa bug ini selalu ada di versi PHP sebelumnya.
            Jika Anda tidak hanya menjalankan skrip PHP Anda sendiri, tetapi juga hostig 3rd party PHP application untuk diri sendiri dan bahkan mungkin untuk pelanggan, maka Anda tidak bisa mempercayai kualitas code dari aplikasi PHP yang Anda gunakan. Sayangnya itu adalah kenyataan bahwa perangkap bahasa PHP tersebut tidak banyak diketahui oleh para pemrogram.  Jika Anda menginginkan perlindungan tambahan untuk server dan bisnis Anda, penggunaan extensi dan patch suhosin sangat direkomendasikan. Selalu ingat bahwa anda tidak hanya melindungi diri sendiri dan pengguna anda, tetapi juga orang lain di internet, yang mungkin akan diserang oleh server anda dengan serangan Spam/DDoS.

Instalasi

Preparation
Bila anda ingin menginstal PHP dengan Suhosin-Patch anda harus terlebih dahulu melakukan beberapa langkah persiapan.
Langkah 1 : instalasi signaturekey project hardened-PHP Terlebih dahulu anda ambil salinan dari http://www.hardened-php.net/hardened-php-signature-key.asc dan impor ke GNU Privacy Guard keychain anda
#> gpg --import < hardened-php-signature-key.asc gpg: /root/.gnupg/trustdb.gpg: trust-db erzeugt
gpg: key 0A864AA1: public key "Hardened-PHP Signature Key" imported
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg: importiert: 1
Langkah 2 : men-download dan memeriksa file yang diperlukan Sekarang saatnya untuk ambil salinan tarball PHP terbaru dan versi terbaru dari suhosin-patch. Sebagai tambahan anda harus mendapatkan tandatangan digital
(*.sig) file. Anda bisa ambil semua ini di
http://www.hardened-
php.net/suhosin/download.html
Sebagai tindakan pencegahan pertama anda dapat memeriksa MD5 Hash dari file download terhadap orang-orang yang anda temukan pada halaman download
#> md5sum php-5.1.4.tar.bz2
66a806161d4a2d3b5153ebe4cd0f2e1c php-5.1.4.tar.bz2
#> md5sum suhosin-patch-5.1.4-0.9.0.patch.gz
ea9026495c4ce34a329fd0a87474f1ba suhosin-patch-5.1.4-0.9.0.patch.gz
bila nilai hash MD5 yang berlaku anda dapat memeriksa tandatangan digital seperti
ini.
#> gpg php-5.1.4.tar.bz2.sig
gpg: Signature made Di 16 Mai 2006 23:39:04 CEST using DSA key ID 0A864AA1
gpg: Good signature from "Hardened-PHP Signature Key"
#> gpg suhosin-patch-5.1.4-0.9.0.patch.gz.sig
gpg: Signature made So 21 August 2006 20:02:53 CEST using DSA key ID 0A864AA1
gpg: Good signature from "Hardened-PHP Signature Key"
Langkah 3 : Unpacking dan Patching
Anda sekarang harus mengekstrak tarbal PHP, gunzip patchfile dan kemudian menerapkan patch.
#> tar -xfj php-5.1.4.tar.bz2
#> gunzip suhosin-patch-5.1.4-0.9.0.patch.gz
#> cd php-5.1.4
#> patch -p 1 -i ../suhosin-patch-5.1.4-0.9.0.patch
 Jika anda lebih suka memilih suhosin sebagai extension builtin anda juga dapat mendownload source code extension suhosin dan mengcopy file src ke direktori ext/suhosin dengan menggunakan PHP source tree anda
Instalasi pada Linux/Unix
Setelah menyelesaikan persiapan pada PHP source tree, langkah selanjutnya tidak begitu berbeda dengan instalasi PHP seperti biasanya. Jika anda mengcopy extension suhosin ke direktori ext anda juga harus mengaktifkannya.
#> [./buildconf - in case you want to compile suhosin statically]
#> ./configure --with-whatever-you-want [--enable-suhosin]
#> make
#> make test
#> make install
Dengan mengeksekusi make test anda dapat memverifikasi, bahwa PHP masih bekerja dan tidak merusak apapun.
If you are upgrading from a previous installation of PHP you do not need to recompile all installed PHP modules and extensions unless you are upgrading to a PHP version that breaks  binary compatibility. However recompiling the extensions after having installed PHP with the Suhosin-Patch can protect them from possible format string vulnerabilities, which was built into the header files. After having recompiled and installed everything, have a look at the bundled php.ini files for  examples how to use the new configuration directives. For a documentation of the new directives consult the Configuration section. Binary extensions from for example
Zend should continue flawlessly. If you encounter any  problem contact us immediately. Installing the Extension Unlike the Hardening-Patch for PHP, nearly all of 

Suhosin
´s features are within the extension. Therefore you might want to only install the extension and use a plain unpatched PHP. Depending on the system we might already offer binary packages. You can check our Suhosin
Downloads page. In that case you only need to activate the extension inside your php.ini and maybe add Configuration directives if you are not satisfied by the default values. Before you continue compiling the
Suhosin-Extension you should verify the file integrity. Please check the  preparation section of this guide. The next step is unpacking the extension tarball and performing the usual compilation steps for PHP extensions.
#> cd suhosin
#> phpize
#> ./configure
#> make
#> make install
This should install suhosin in the correct extension directory. The final step is adding a load directive to php.ini extension=suhosin.so and optionally add some Configuration directives in case you do not like the default values. Special Instructions Some distributions already come with Suhosin source or binary packages. Here is a small overview how to install Suhosin on this distributions. Installing on Gentoo Installing and using Suhosin on Gentoo is very easy. At the moment the Suhosin patches and extensions are only available in the external PHP Overlay, and not yet in the Portage tree, you can expect them to also be available in the main Portage tree during October 2006. Let’s install the PHP Overlay then:
#> emerge layman
#> layman -f
#> layman -a php-testing
 Now let’s install PHP with the Suhosin patch and extension:
#> echo "dev-lang/php" >> /etc/portage/package.keywords (unstable version needed)
#> USE="suhosin" emerge =php-4* for PHP4, or =php-5* for PHP5 (NOTE: you cannot also have the "hardenedphp" USE flag enabled at the same
time!)
That’s it, your PHP on Gentoo is now running with the Suhosin patch enabled, and the Suhosin extension was automatically installed (from the dev-php{4,5}/suhosin package).Installing on FreeBSD The Suhosin-Patch and the Suhosin extension are both within the FreeBSD ports. Therefore installing it on FreeBSD is very simple. The Suhosin-Patch is an option which you can choose when you install the lang/php4 or  lang/php5 port. To install the patch just do
#> cd /usr/ports/lang/php5
#> make
... now select the menu item that says: Enable Suhosin Protection
#> make install
To install the extension just do
#> cd /usr/ports/security/php-suhosin
#> make
#> make install After these simple steps Suhosin-Patch is successfully installed on your system. Upgrading Upgrading to a new PHP or new Suhosin-Patch version is quite identical to the normal installation process. This is like upgrading a normal PHP. That means, if the binary compatibility was broken between PHP versions you have to recompile all installed PHP modules/extension. Upgrading the Suhosin-Extension on the other hand is as simple as recompiling it (or using a  binary), replacing the file and restarting your webserver.




Tidak ada komentar:

Posting Komentar