Mengatasi buffer overflow

June 5th, 2010 | by admin |

Dari pembahasan-pembahasan sebelumnya, kita mengetahui apa itu buffer overflow dan apa yang dapat diakibatkan oleh security hole tersebut.

Pada pembahasan kali ini, kita akan mencoba membahas bagaimana cara mengantisipasi masalah tersebut.

Ada 3 poin yang ingin saya angkat dalam pembahasan mengantisipasi buffer overflow:

  1. Memperbaiki Program
  2. Program harus selalu memperhitungkan input atau nilai dari variabel, sehingga variabel yang disediakan tidak dapat disalahgunakan. Akan tetapi, program-program ini sangat banyak jumlahnya sehingga untuk memberantas security hole ini sangatlah sulit

  3. Memperbaiki Programmer
  4. Pendidikan terhadap programmer baru untuk tidak membuat program-program yang mengandung security hole sangatlah penting. Terkadang kita lebih mementingkan pemahaman dasar pemrograman tanpa mengindahkan kaidah-kaidah program secure coding.
    Akan tetapi, sama seperti poin pertama di atas, masih sangatlah

  5. Memperbaiki Mekanisme Memori (Stack, dll)
  6. Dari susunan paragraf di atas, kita bisa menerka bahwa cara ini lebih baik dari kedua cara di atas.
    Perlu digaris bawahi bahwa, program yang normal berada di kawasan “segment text” (lihat catatan sebelumnya). Segmen text merupakan “read-only” memori. Program yang baik tidak pernah mengeksekusi program di luar wilayah ini. (misal: wilayahheap atau wilayah stack). Cara yang efektif untuk mengatasi buffer overflow adalah dengan mengaktifkan fungsi pada kernel (di unix-based system) untuk tidak mengizinkan program yang ingin mengeksekusi kode di wilah stack, heap, dan lainnya. Mekanisme ini disebut stack operation.
    Aktivasi stack protection ini memerlukan kerjasama antara kernel dengan memory management unit pada CPU. Support pada hardware (antara lain sejak Pentium 4 atau 6-bit intel dan AMD processor) juga mulai dilakukan. Mekanisme pada hardware ini disebut “NX bit”. Mengenai “NX bit”, referensi berikut akan cukup bermanfaat http://en.wikipedia.org/wiki/Nx_bit. Kernel sejak 2.6.8 mensupport fungsi NX bit. Fungsi ini dapat dinonaktifkan dengan setting noexec=off.
    Selain pendekatan hardware di atas, Admantix Linux project mengeluarkan pendekatan mekanisme kernel, dengan mengeluarkan patch yang disebut grsecurity (lihat: http://grsecurity.org)
    Jika kita mengaktifkan salah satu atau kedua mekanismei atas, masalah mungkin akan muncul jika aplikasi yang digunakan memuat perintah untuk mengakses kode yang ditulisi di luar wilayah “segmen text”. karena itu, sebelum menggunakan setting di atas, sangatlah dianjurkan untuk mentest aplikasi program Anda.

Post a Comment