Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Buffer overrun adalah salah satu sumber risiko keamanan yang paling umum. Buffer overrun pada dasarnya disebabkan oleh perlakuan terhadap input eksternal yang tidak diperiksa sebagai data yang dapat dipercaya. Tindakan menyalin data ini, menggunakan operasi seperti CopyMemory, strcat, strcpy, atau wcscpy, dapat membuat hasil yang tidak terduga, yang memungkinkan kerusakan sistem. Dalam kasus terbaik, aplikasi Anda akan berhenti dengan core dump, kesalahan segmentasi, atau pelanggaran akses. Dalam kasus terburuk, penyerang dapat mengeksploitasi kelebihan buffer dengan memperkenalkan dan mengeksekusi kode berbahaya lainnya dalam proses yang Anda kerjakan. Menyalin masukan data yang tidak diperiksa ke dalam buffer berbasis tumpukan adalah penyebab paling umum dari kerentanan yang dapat dieksploitasi.
Buffer overruns dapat terjadi dengan berbagai cara. Daftar berikut ini menyediakan pengenalan singkat tentang beberapa jenis kasus buffer overrun dan menawarkan beberapa ide serta sumber daya untuk membantu Anda menghindari menciptakan risiko baru dan mengurangi yang ada.
-
buffer statik kelebihan batas
-
Overrun buffer statis terjadi ketika buffer, yang telah dinyatakan pada stack, ditulis dengan lebih banyak data daripada kapasitas alokasi yang dimilikinya. Versi kesalahan ini yang kurang jelas terjadi ketika data input pengguna yang tidak diverifikasi disalin langsung ke variabel statis, menyebabkan potensi kerusakan tumpukan.
-
Tumpukan Meluap
-
Overrun heap, seperti overrun buffer statis, dapat menyebabkan kerusakan memori dan stack. Karena heap overrun terjadi dalam memori heap dibandingkan pada stack, beberapa orang menganggapnya kurang dapat menyebabkan masalah serius; namun demikian, heap overrun memerlukan perhatian pemrograman yang nyata dan sama mampu menimbulkan risiko sistem seperti overrun buffer statis.
-
kesalahan pengindeksan Array
-
Kesalahan pengindeksan pada array juga merupakan sumber kelebihan memori. Pemeriksaan batas yang cermat dan manajemen indeks akan membantu mencegah jenis kelebihan memori ini.
Mencegah buffer overrun terutama bergantung pada penulisan kode yang baik. Selalu validasi semua input Anda dan tangani kegagalan dengan bijak jika perlu. Untuk informasi selengkapnya tentang menulis kode aman, lihat sumber daya berikut:
- Maguire, Steve [1993], Menulis Kode yang Solid, ISBN 1-55615-551-4, Microsoft Press, Redmond, Washington.
- Howard, Michael dan LeBlanc, David [2003], Menulis Kode Aman, 2d ed., ISBN 0-7356-1722-8, Microsoft Press, Redmond, Washington.
Nota
Sumber daya ini mungkin tidak tersedia di beberapa bahasa dan negara.
Penanganan string yang aman adalah masalah jangka panjang yang terus ditangani baik dengan mengikuti praktik pemrograman yang baik dan seringkali dengan menggunakan dan meretrofit sistem yang ada dengan fungsi penanganan string yang aman. Contoh sekumpulan fungsi seperti itu untuk shell Windows dimulai dengan StringCbCat.