Langsung ke konten utama

Buffer OverFlow

Pengertian
Buffer overflow adalah sebuah kelemahan yang mudah untuk ditemukan dan dimanfaatkan oleh hacker dalam sebuah sistem. Aplikasi dan Operating System (OS) menyimpan untuk sementara perintah yang mereka dapat di memori tertentu yang biasa disebut buffer memory. 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.
Beberapa serangan umum dari 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
Buffer overflow memiliki arti suatu keadaan di mana data yang diisikan ke suatu buffer mempunyai ukuran yang lebih besar dibandingkan ukuran buffer itu sendiri. Untuk lebih memahami buffer overflow, dapat dianalogikan dengan kehidupan sehari-hari, yaitu saat kita mengisi bak mandi melebihi daya tampungnya, maka air yang kita isikan akan meluap (overflow).
Berikut ini contoh sebuah program dalam bahasa C yang mengandung buffer overflow.
# Coba2.c
#include
void fungsi(char* txt)
{
       char buffer[4];
      
       strcpy(buffer, txt);
}
int main()
{
       char buffer[17];
int i;
for (I=0; i<16 o:p="">
     buffer[i]=0x19;
fungsi(buffer);
return 0;
     }
Setelah sukses dikompilasi maka ketika program diatas dieksekusi akan ada pesan segmentation violation. Mengapa demikian ? Karena di fungsi fungsi(), variable array buffer didefinisikan hanya berukuran 4 byte, sedangkan data yang disalinkan kepadanya berukuran sebesar 17 byte. Sebagai catatan, fungsi stcpy() akan menyalinkan data yang direferensi oleh pointer txt ke buffer sampai karakter null ditemukan di txt.
Berikut ini adalah sintaks fungsi strcpy :
Char *strcpy(char *dest, const char *src);
Kondisi blok memori stack saat ter-overflow setelah pemanggilan fungsi diatas dapat dilihat pada gambar.


Seperti terlihat pada gambar, data yang mempunyai nilai karakter 0x19 sebesar 17 byte disalinkan ke memori stack mulai dari alamat buffer[0] ke arah stack bawah sampai memori stack yang mempunyai pointer *txt. Akibat yang fatal adalah termodifikasinya memori stack yang menyimpan alamat fungsi kembali RET. Dalam hal ini nilai RET berubah menjadi 0x19191919 yang merupakan alamat memori yang instruksinya akan dipanggil setelah fungsi fungsi() selesai dikerjakan. Tentu hal ini akan menyebabkan kesalahan karena instruksi yang terdapat pada alamat memori tersebut bukanlah instruksi yang valid.
Kondisi diatas menjadi prinsip apa yang disebut dengan eksploitasi buffer overflow, yaitu membuat buffer ter-overflow sehingga nilai dari RET termodifikasi untuk mengubah alur dari instruksi program sesuai dengan keinginan kita.

Komentar

Postingan populer dari blog ini

Pro Evolution Soccer 2011-RELOADED [ Mediafire ]

Release Group: RELOADED Release Name: Pro.Evolution.Soccer.2011-RELOADED Release Date: 01-10-2010 Retail Date: 08-10-2010 Filename: rld-pe11 Source: DVD 9 Size: 5.19 GB Genre: Sports Critics: N/A Published by: Konami Developed by: Winning Eleven Productions

Sistem Terdistribusi

sistem terdistribusi adalah sebuah sistem dimana komponen software atau hardware-nya terletak di dalam jaringan komputer dan saling berkomunikasi menggunakan message passing (Message passing adalah sebuah teknik untuk melakukan sinkronisasi dan komunikasi antara proses-proses yang saling berinteraksi). Ada juga yang mengatakan Sistem Terdistribusi adalah sebuah sistem yang terdiri dari beberapa komponen yang terdapat di dalam sebuah jaringan komputer. Komponen-komponen tersebut saling berinteraksi dan berkomunikasi hanya dengan melalui pengiriman pesan. Dengan menjalankan sistem terdistribusi, komputer dapat melakukan :  Koordinasi Aktifitas  Berbagi sumber daya : hardware, software dan data Dengan definisi tersebut diatas maka internet sesungguhnya bukanlah suatu sistem terdistribusi, melainkan infrastruktur dimana sistem terdistribusi dapat di aplikasikan pada jaringan tersebut. Contoh Sistem Terdistribusi 1. Internet: Jaringan komputer dan aplika

Tips untuk menghindari virus dari Flash Drive

Sering banget kan kita mendapat virus dari flashdisk atau removable disk lain ke dalam komputer kita. Virus-virus ini memang menyebalkan, seperti tamu yang ga diundang aja. Tiba-tiba nyelonong masuk ke dalam flashdisk, lalu menginfeksi komputer kita. Logikanya virus akan berjalan jika kita mengeksekusinya. Namun biasanya kita tidak pernah merasa mengeksekusi file yang mengandung virus, lalu kapan virus tersebut kita eksekusi?