Berkenalan Dengan Bug Null Pointer Dereference [Versi Lawas]

Intro

Setelah tahun 2008 silam bug yang dipublish oleh Dan Kaminsky (bailiwicked dns attack) memunculkan buzz dimana-mana, maka menjelang akhir tahun 2009 sepertinya bug NULL pointer dereference pada kernel Linux yang ramai dibicarakan oleh berbagai pihak.

Muhammad Rasyid Sahputra
Muhammad Rasyid Sahputra

Jakarta, Indonesia

Intro

Beragam diskusi menarik seputar eksploitasi kernel linux dimulai semenjak Brad Spender merilis eksploit yang diberi nama cheddar bay. Eksploit ini menguak beberapa hal penting yang mungkin bagi kalangan security / underground sering disebut sebagai 0day technique, dan kemudian dibahas oleh para developer linux, salah satunya dapat dilihat pada LWN[1][2].

Eksploitasi pada kernel Linux ini memanfaatkan bug NULL Pointer Dereference, walaupun mungkin ada beberapa jenis bug lain yang juga menarik dan muncul ke permukaan akhir-akhir ini[3] namun pembahasan kita kali ini terbatas pada jenis bug Null Pointer Dereference. Pada artikel ini pembahasan akan dimulai dari teori awal hingga mekanisme eksploitasinya dan juga disertai dengan pembahasan singkat mengenai eksploit yang beberapa minggu terakhir ini banyak digunakan oleh publik.

Sebelumnya saya tekankan bahwa target sistem operasi pada pembahasan ini adalah Linux, yang berarti kernel dari sistem operasi berbasis Linux. Saat tulisan ini dibuat (tahun 2009), versi stabil terakhir dari kernel linux adalah 2.6.30.5 (v2.6) dan 2.4.37.5 (v2.4). Seluruh contoh kode dalam artikel ini telah ditest sebelumnya menggunakan kernel 2.6.30.3 (distro: Gentoo Linux) dan kernel 2.6.5 (distro: SuSe 9 Enterprise).

Penggunaan kernel dari tree 2.4 tidak dilakukan untuk mempersempit area diskusi artikel ini agar tidak melebar terlalu jauh, sehingga uji coba menggunakan kernel 2.4 akan diserahkan kepada pembaca :).