.: Dee Personal Blog :.

Subtitle

Blog

Memperbaiki (Patch) Terhadap Celah Keamanan Ghost Vulnerability pada Centos 6

Posted on January 28, 2015 at 11:05 AM


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 :)

Categories: Tutorials, Tips & Tricks

Post a Comment

Oops!

Oops, you forgot something.

Oops!

The words you entered did not match the given text. Please try again.

You must be a member to comment on this page. Sign In or Register

0 Comments