Minggu, Oktober 13, 2019
Text Size

Search

Update Berita

SSL to secure from hacker attacks

Open-source software developer Kai Engert has proposed an overhaul to the Internet's SSL...

Cara Menghemat Bandwidth Internet, mempercepat browsing

Ada situasi ketika menggunakan internet kita harus benar-benar hemat dengan penggunaan bandwidth ...

Istana Merespons Aksi 313 Berhentikan Ahok

Juru Bicara Presiden Joko Widodo, Johan Budi Sapto Pribowo menegaskan, Presiden Jokowi sangat...

Twitter Bakal Sediakan Layanan Berbayar?

KOMPAS.com - Setelah selama ini hanya meyediakan layanan gratis yang didukung iklan, Twitter...

Megawati: Ahok, Sudahlah Jangan Cerewet

.   Kompas.com - Megawati menasihati Ahok agar tidak terlalu banyak bicara. Mengingat kondi...

  • Tips mengatasi bosen dalam pekerjaan

    Kamis, 01 November 2012 07:48
  • Grunt Mars probe stranded in Earth orbit

    Kamis, 10 November 2011 09:40
  • SSL to secure from hacker attacks

    Senin, 27 Februari 2012 21:09
  • Cara Menghemat Bandwidth Internet, mempercepat browsing

    Minggu, 23 September 2012 18:03
  • Istana Merespons Aksi 313 Berhentikan Ahok

    Kamis, 30 Maret 2017 19:45
  • Twitter Bakal Sediakan Layanan Berbayar?

    Kamis, 30 Maret 2017 19:49
  • Megawati: Ahok, Sudahlah Jangan Cerewet

    Kamis, 30 Maret 2017 19:54
  • Cloud Vultr

    Senin, 01 Juli 2019 04:39
Konsep Buffer Overflow Vurnabilities dan Pencegahannya.
SocialTwist Tell-a-Friend

Konsep Buffer Overflow Vurnabilities dan Pencegahannya.

Penilaian Pengunjung: / 4
KurangTerbaik 

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.

ibaratnya seperti ini,,

si Attacker : Kamu akan saya hipnotis, tidur lebih dalam dan lebih lelap dari pada sebelumnya,,,

si Program  : monggo mas Attacker silahkan, diapakan saja, aku rela,,,,
Di dalam artikel ini, saya mencoba sedikit memberikan penjelasan bagaimana buffer overflow itu bekerja, dan bagaimana cara mengatisipasinya. Buffer overflow biasa terjadi karena sebagai berikut ;

  • Program yang begitu kompleks, sehinnga programmer sendiri tidak mengetahui kelemahan programnya
  • Relies on external data to control pada program

Buffer adalah alokasi yang disediakan di memory seperti array atau pointer di C. di bahasa C dan C++, tidak ada pembatasan otomatis pada buffernya, yang mana user dapat menulis input melewati buffer. Sebagai contoh :

int main () {
int buffer[10];
buffer[20] = 10;
}

Program bahasa C diatas adalah program yang valid, dan setiap compiler dapat mengkompil ini tanpa error. Tetapi, program ini dapat dijahili dengan menuliskan input melebihi batas buffer memory yang telah ditentukan, yang mana akan menghasilkan kesalahan pada program.

Sebuah proses adalah program dalam eksekusi. Program yang tereksekusi di dalam disk   mengandung beberapa set instruksi binary yang di kerjakan oleh prosessor; beberapa read-only data, seperti printf string format; global dan data statis yang output terakhir eksekusi program; and sebuah brk pointer yang menjaga jalur dari malloced memory. Fungsi local variabel adalah otomatisasi terbentuknya variabel dalam stack ketika fungsi di eksekusi.

bufferoverflow1

Ilustrasi di atas memperlihatkan layout memory di Linux. Sebuah proses dimulai dengan koding program-program dan data. Kode dan data berada dalam instruksi prgram dan inisialisasi dan uninialisasi statis dan global data secara berturut-turut. Setelah itu adalah run-time heap (Dibuat menggunakan malloc/calloc), dan di posisi atas adalah users stack. Stack ini digunakan ketika sebuah fungsi di panggil.

Bagian Stack.

Stack adalah beberapa blok dari memory yang berisi data. Sebuah stack pointer (SP) menunjuk paling atas dalam stack. Ketika pemanggilan fungsi terbentuk, parameter fungsi masuk ke dalam stack dari kanan ke kiri. Kemudian alamat pengembalian nilai (alamat yang akan dieksekusi setelah pengembalian nilai fungsi yang ditunjuk oleh frame pointer (FP), masuk ke dalam stack. Frame pointer digunakan sebagai referensi variabel lokal dan parameter fungsi, karena itu semua adalah kesatuan dari FP. otomatisasi lokal variabel masuk ke dalam stack setelah FP. Dalam Implementasinya,
stack terpenuhi dari alamat memory yang besar ke yang kecil.

bufferoverflow2

Ilustrasi di atas adalah bagian-bagian dari stack ketika sebuah fungsi dieksekusi. Perhatikan FP berada di antar local dan return addresses. Sebuah contoh dalam bahasa C,

void function (int a, int b, int c) {
char buffer1[5];
char buffer2[10];
}
int main() {
function(1,2,3);
}

function stack seperti di bawah ini;

bufferoverflow3
Seperti yang anda lihat, buffer1 menggunakan 8 bytes dan buffer2 12 byter,
di memory dapat dialamatkan hanya dalam beberapa bytes (4 byters). Sebagai
tambahan, FP digunakan untuk mengakses variabel a,b,c, buffer1 dan buffer2.
Semua variabel di bersihkan dalam stack sebagai function terminates. Variabel
tersebut tidak mengambil space dalam disk copy eksekusi.

Buffer Overflow : Detailnya

Contoh lain dalam bahasa C:

void function (char *str) {
char buffer[16];
strcpy (buffer, str);
}
int main () {
char *str = “I am greater than 16 bytes”; // panjang dari str = 27 bytes
function (str);
}

Program ini dijamin setelah di kompil, akan menghasilkan error, karena string (str) sebesar 27 bytes terkopi ke dalam lokasi (buffer) yang hanya dialokasikan sebesar 16 bytes. Ekstra bytes melewati buffer dan menimpa ruang yang dialokasikan untuk FP, return address juga terkena. Hal ini, menyebabkan corrupt dalam proses stack. Funsi yang digunakan untuk kopi string adalah strcpy, yang tidak memeriksa batasan inputnya. Menggunakan strncpy akan menghindari kejadian ini di dalam stack. Bagaimanapun, contoh klasik ini, menunjukkan bagaimana konsep buffer overflow dalam menimpa sebua fungsi return address, dan dilanjutkan dengan menjalankan beberapa malicious code.

Overwriting Function’s Return Addresses

Seperti yang kita tahu, sangat mudah untuk melakukan overwriting function’s return addresses, Attacker menggunakan teknik buffer overflow untuk mendapatkan akses root. Attacker mencoba mengeksekusi buffer overflowwing area, menimpa nilai dari return address yang mengisi nilai ke buffer dan mengeksekusi kode jahatnya. Seperti kode yang bisa dimasukkan ke dalam program menggunakan
environment variables atau program input parameters. Sebagai contoh koding yang bisa mendapatkan shell akun root pada paper yang ditulis oleh Aleph One untu Phrack Magazine di http://destroy.net/machines/security/P49-14-Aleph-One males juga untuk diceritakan lagi.

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.

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, sebagai contoh :

int main () {
char *str = (char *)malloc(10);// mengalokasikan 10 bytes untuk str
gets (str); // membaca input dari stdin dan disimpan ke str
}

setelah di kompile, makan muncul warning:

/tmp/cc203ViF.o: In function “main”:
/tmp/cc203ViF.o(.text+0×1f): the “gets” function is dangerous and should not be used.

Modern compilers tool mempunayi fitur untuk bounds checking, jadi meng-generate kode yang built-in tanpa mengubah struktur kode yang dapat menghindarkan penggunaan ilegal addressess. Kode apapun yang dicoba untuk mengakses illegal address tidak diperbolehkan untuk dieksekusi. gunakanlah
patch GCC untuk mendapatkan fitur bounds checking, dapat anda temui di http://web.inter.nl.net/hcc/Haj.Ten.Brugge patch ini juga mencegah tindakan penimpaan return address, seperti yang banyak terjadi. dan juga gunakan tools StackShield di http://www.angelfire.com/sk/stackshield/index.html

references :

- en.wikipedia.org/wiki/Buffer_overflow
- www.linuxjournal.com/article/6701
- www.owasp.org/index.php/Buffer_Overflow
- www.securiteam.com/securityreviews/5OP0B006UQ.html

http://logsmylife.wordpress.com/2009/03/31/konsep-buffer-overflow-vurnabilities-dan-pencegahannya/

Comments
Add New Search
sutarja   |103.22.201.xxx |2013-02-06 11:01:51
berarti dapat di bayangkan si program adalah seorang cwe cakep n bohay trus
si hackers cwo ganteng....hehehe
thank's untuk informasinya.....
pubg esp download  - Konsep Buffer Overflow Vurnabilities dan Pencegaha   |162.158.62.xxx |2018-06-23 07:36:01
I like this site because so much useful stuff on here : D.
Write comment
Name:
Email:
 
Website:
Title:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.25 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Advertisement Site




Ads - World Friend

Ads - World Friend

Berita lain-lainnya

Facebook akan meluncurkan video chat
04/07/2011 | Indra Febria Widy
article thumbnail

Pengumuman besar yang akan diumumkan oleh Facebook pekan depan telah bocor, jejaring sosial tersebut dikabarkan akan mengungkap platform video-chat yang diperkuat oleh Sype. 

Menurut sumber di Te [ ... ]


Menkeu Tak Acungkan Jari Tengah Kepada Pedemo
31/01/2010 | Indra Febria Widy
article thumbnail

Menteri Keuangan, Sri Mulyani secara tiba-tiba meninggalkan acara diskusi yang diselenggarakan di Restoran Warung Daun, Cikini, Jakarta, tadi pagi, Sabtu 30 Jan [ ... ]