Pengertian Buffer Overflow :
Buffer overflow merupakan salah satu cara yang digunakan hacker untuk mengekploitasi sebuah sistem komputer yang mempunyai kelemahan pada salah satu aplikasi yang berada di sistem tersebut. Sebuah aplikasi dapat di-buffer-overflow karena memang aplikasi tersebut tidak memiliki kontrol data yang baik, dan biasanya ini tidak di sadari oleh si pembuat program tersebut. Lalu bagaimana seorang hacker dapat memperoleh hak akses terhadap sistem hanya dengan memanfaatkan kelemahan dari suatu aplikasi yang ada di sistem komputer target? Tentu hal ini berkaitan erat dengan
akses yang di miliki oleh aplikasi tersebut.
Pemahaman buffer overflow sendiri adalah keadaan di mana buffer (variabel yang di gunakan suatu aplikasi untuk menyimpan datanya di memori) terisi dengan data yang ukurannya melebihi kapasitasnya sendiri dan akibatnya kelebihan data itu akan mengisi alamat memori lain yang bukan milik variabel tersebut atau dalam hal ini di sebut dengan overwrite.
Kalau OS atau program tidak bisa dikode
secara sempurna maka hacker bisa membuat komputer korban jadi terganggu
dengan mengirimkan perintah yang dibuat khusus yang membuat gangguan
jadi berlangsung lebih lama. Windows 95 paling rentan kalau sudah
berhadapan dengan serangan seperti buffer overflow yang banyak
dilancarkan lewat internet ini.Saat ini serangan serupa sudah jarang
dilancarkan pada sebuah komputer. Namun terkadang hacker masih sering
melakukannya untuk memperlambat kinerja sebuah situs.
Kelemahan Buffer Overflow :
Kelemahan Buffer overflow adalah salah satu dari banyak kelemahan
dari keamanan komputer.Kelemahan jenis ini dapat digunakan pada remote
access atau local access, karena ini dapat memberikan si Attacker
kesempatan untuk melanjarkan jurus-jurus dengan koding dikomputer
target.
Serangan Buffer overflow terjadi ketika si Attacker memberikan input
yang berlebihan pada program yang di jalankan, sehingga program
mengalami kelebihan muatan dan memory tidak dapat mengalokasikannya. Ini
memberikan kesempatan kepada Attacker untuk menindih data pada program
dan men-takeover kontroll program yang dieksekusi attacker.
Buffee overflow hasil dari dari kelemahan bahasa pemrograman c, c++,
fortran, dan assembly, yang tidak secara otomatis melakukan pengecekan
batas input ketika program dieksekusi. Sebagai akibat dari Buffer
overflow dapat menyebatkan crash pada program, atau mempersilahkan si
Attacker untuk mengeksekusi perintah atau koding jahatnya untuk
menguasai sistem target, seperti tujuan mengambil alih akun root
menggunakan metode Buffer overflow.
Macam-macam Serangan Buffer Overflow :
Beberapa serangan yang biasa dilakukan dengan teknik Buffer Overflow antara lain :
a. Buffer overruns pada kebanyakan Web server
Webserver
Apache dan IIS memiliki celah keamanan. Worm seperti Code Red (untuk
IIS) dan Linux. Slapper (untuk Apache) menjadikan celah keamanan
yang lebar.
b. DNS overflow
Beberapa
server DNS (BIND) sebelumnya tergolong rentan terhadap overflow.
Suatu serangan yang akan memberikan nama DNS sangat panjang. Nama DNS
dibatasi hingga 64-byte per subkomponen dan 256 byte secara
keseluruhan.
c. Serangan DNS
Server
DNS biasanya dijalankan pada mode ‘Trust’ oleh service dan user –
maksudnya bahwa server DNS dapat dikompromikan agar melancarkan
serangan lebih jauh pada user dan service lainnya. Hal ini menjadikan
server DNS merupakan target utama serangan para hacker.
d. Mengelabui cache DNS
Serangan
yang umum terhadap server DNS. Sederhananya, bekerja dengan
mengirimkan suatu pertanyaan untuk meminta domain yang sesungguhnya
(“siapakah www.test.com ini?) dan akan disediakan jawaban yang tentu
saja salah (“www.test.com adalah 127.0.01″).
Pencegahan dari buffer overflow :
Tindakan Untuk Mencegah Buffer Overflow : Tidak ada satupun metode yang dijelaskan di bawah yang benar-benar
bisa mencegah kemungkinan serangan, namanya juga manusia tempatnya salah
dan lupa. Tetapi metode di bawah ini, dapat meminimalisir dari kegiatan
buffer overflows yang mengakibatkan kerusakan stack, antara lain :
1. Menulis kode yang aman : Buffer overflow adalah hasil dari input
yang berlebihan ke dalam buffer. C library seperti strcpy(), strcat(),
sprintf() dan vsprintf() beroperasi pada null terminated strings dan
tidak mengecek batasan input. gets() juga fungsi lainnya yang
memasukkan input ke dalam buffer dari stdin. Pada scanf() juga bisa
mengakibatkan buffer overflows.
2. Stack execute invalidation : Karena koding jahat (contoh,
instruksi assembly untuk mengambil alih root shell) merupakan input
argument ke dalam program, ini tersimpan ke dalam stack dan bukan dalam
code segment. Oleh karena itu, solusi mudahnya adalah tidak
mempebolehkan stack mengeksekusi instruksi apapun. Kode apapun yang
dieksekusi dengan kode lainnya di dalam stack dapat mengakibatkan
segmentation violation.
3. Compiler tools : Beberapa tahun terakhir, compiler mempunyai
kemampuan lebih. Beberapa compiler dilengkapi peringatan dalam
penggunakan konstruk yang tidak aman seperti gets(), strcpy() dan
sejenisnya.
Tidak ada komentar:
Posting Komentar