
Salam sejahtera pembaca tercinta
blog ini, apa kabar? Semoga dalam keadaan sehat selalu. Pada awal bulan Januari 2015 ini penulis sudah
mensharing tentang bagaimana cara meminimalisir celah keamanan
poodle vulnerability pada Centos 6, yang bisa dibaca di
http://dee-x-cisadane.webs.com/apps/blog/show/42986891-meminimalisir-celah-keamanan-poodle-vulnerability-pada-centos-6. Nah pada kesempatan kali ini penulis ingin membagi tutorial cara melakukan perbaikan (
patch) pada celah keamanan
Ghost vulnerability di Centos 6. Vulnerability ini masih baru, kira-kira menggemparkan dunia maya pada tanggal 27 Januari 2015, dan tentunya menghantui beberapa
distro Linux. Distro besar dari banyaknya macam
distro Linux telah merilis
patch untuk
vulnerability yang baru saja ditemukan, diketahui
vulnerability tersebut dapat memungkinkan
hacker untuk melancarkan serangan
remote code execution terhadap sistem operasi Linux. Vulnerability yang diberi nama
"Ghost" dinilai cukup krusial sebagaimana hal ini bisa digunakan untuk melakukan eksploitasi untuk memberikan sarana bagi
hacker agar dapat menguasai sistem secara
remote dan
local tanpa memerlukan akses yang legal.
Celah keamanan berupa buffer overflow yang berada di library C (bahasa pemrograman) milik Linux pertama kali ditemukan oleh firma keamanan Qualys, sebagaimana mereka langsung memberikan peringatan kepada komunitas pengembang distro Linux agar segera melakukan rilis patch terhadap vulnerability tersebut. Kenapa vulnerability tersebut diberi nama Ghost? Usut punya usut, vulnerability tersebut dipicu oleh fungsi gethostbyname() pada glibc. Seperti yang pembaca ketahui library glibc ini memang banyak digunakan oleh komponen program di sistem operasi Linux, library ini berisi fungsi standar pada bahasa pemrograman C/C++ untuk mengerjakan tugas-tugas tertentu. Vulnerability ini juga berlaku untuk program-program yang dibuat menggunakan bahasa pemrograman Ruby, Python dan yang lainnya yang berhubungan dengan glibc ini. Sebenarnya pernah ada vulnerability pada glibc, vulnerability tersebut pertama kali muncul pada tahun 2000 (versi glibc-2.2) dan telah diperbaiki pada 21 Mei 2013 dengan dirilisnya versi glibc-2.17 dan glibc-2.18. Namun pada saat itu kerentanan tersebut belum diketahui (belum ditemukan) karena fokus pada perbaikan di bagian lain.
Seorang hacker dapat mengeksploitasi sistem dengan memicu sebuah kerentanan buffer overflow melalui fungsi nss_hostname_digits_dots() yang digunakan oleh fungsi pemanggilan gethostbyname() dan gethostbyname2() pada glibc. Fungsi ini umumnya digunakan pada banyak distro Linux, misalnya saat sebuah perangkat yang menggunakan sistem operasi Linux melakukan akses ke sebuah jaringan yang biasanya menggunakan file /etc/hosts. Atau bahkan dengan aplikasi atau program yang menggunakan glibc yang bisa mengakses DNS resolver (yang mengkonversi nama host menjadi alamat IP). Kok bisa? Saat buffer overflow dipicu menggunakan sebuah argument yang menyatakan sebuah host tidak valid/tidak ada (invalid) maka aplikasi/program tersebut akan melakukan resolution pada DNS. Dan di sini lah vulnerability ini menimbulkan resiko berupa remote code execution yang membuatnya sangat mudah untuk dieksploitasi oleh hacker hanya dengan privilege user.
Contoh nyatanya, hacker dapat mengirim pesan email khusus melalui Exim Mail Server yang berjalan menggunakan glibc yang memiliki kerentanan Ghost ini dan otomatis mendapatkan remote shell untuk mengendalikan sistem. Mengingat banyaknya distro Linux yang menggunakan glibc maka vulnerability ini masuk ke dalam jajaran celah keamanan besar seperti : heartbleed, shellshock dan poodle. Adapun distro linux yang rentan terhadap vulnerability ini adalah Novell, Debian 7 (Wheezy), RHEL 5, 6, dan 7, CentOS 6 dan 7 and Ubuntu 12.04. Tentunya jika pembaca menggunakan distro Linux yang disebutkan oleh penulis tersebut haruslah segera melakukan patching dengan cara yang penulis paparkan di bawah ini untuk mencegah hal-hal yang tidak diinginkan.
Hal pertama yang harus pembaca lakukan adalah mencheck versi glibc yang digunakan oleh sistem operasi linux yang pembaca gunakan, caranya cukup simpel dengan mengetikkan perintah ldd --version melalui terminal/shell, seperti pada gambar di bawah ini :
Nah setelah muncul hasilnya seperti pada gambar di atas, pembaca bisa mengetahui versi dari
glibc yang digunakan oleh sistem operasi Linux yang pembaca gunakan. Kemudian pembaca lakukan testing apakah
glibcc versi tersebut rentan terhadap Ghost
vulnerability dengan cara membuat
file baru dengan nama
ghosttest.c melalui
vi/vim/nano. Misalnya saja menggunakan
nano dengan perintah
nano ghosttest.c, kemudian
copy paste script dari
http://pastebin.com/nP4Fhc1Y ke dalam
file tersebut, seperti pada gambar di bawah ini :

Jika sudah, silahkan disimpan kemudian lakukan chmod +x ghosttest.c. Setelah itu compile dengan menggunakan perintah gcc ghosttest.c -o ghosttest. Jika tidak ada error apapun, jalankan file hasil compile tersebut dengan menggunakan perintah ./ghosttest. Apabila hasilnya vulnerable berarti pembaca harus segera melakukan patching. Pembaca juga bisa mengecheck aplikasi/program/paket instalasi yang ada di sistem operasi Linux yang pembaca gunakan (yang tentunya menggunakan glibc) dengan menggunakan perintah lsof | grep | awk '{print $1}' | sort | uniq, seperti pada gambar di bawah ini :
Kemudian pembaca lakukan perintah ini sudo yum clean all lalu sudo yum update (distro Linux yang penulis gunakan adalah Centos 6), maka proses update akan dilakukan. Agar lebih jelas perhatikan gambar di bawah ini :

Setelah proses
update dan instalasi pembaharuan paket-paket selesai, lakukan
reboot. Kemudian setelah kembali
login,
check lagi versi
glibc nya menggunakan cara yang penulis jelaskan sebelumnya. Lalu lakukan lagi pemeriksaan menggunakan
script ghosttest tadi, eksekusi perintah
./ghosttest dari
terminal/shell. Jika hasilnya
not vulnerable, maka
patch sudah berhasil dilakukan. Untuk memastikannya, buatlah sebuah
file baru dengan nama
rhel-GHOST-test.sh menggunakan
vi/vim/nano rhel-GHOST-test.sh, kemudian isikan (
copy paste)
file tersebut dengan
script dari sini
http://pastebin.com/YdmRg8RA. Jika sudah selesai, lakukan
chmod +x rhel-GHOST-test.sh. Nah terakhir, jalankan perintah berikut
bash rhel-GHOST-test.sh, jika hasilnya
not vulnerable maka sistem operasi Linux yang pembaca gunakan telah aman dari
vulnerability ini.
Sekian, semoga berguna bagi para pembaca setia
blog ini

Oops!
Oops, you forgot something.