+62 896 6423 0232 | info@idmetafora.com
Software ERP Indonesia IDMETAFORA


Mengenal Apa itu Buffer Overflow: Jenis, serta Cara Pencegahannya Dengan Tepat

3 October, 2022   |   Pojiah

Mengenal Apa itu Buffer Overflow: Jenis, serta Cara Pencegahannya Dengan Tepat

Buffer overflow adalah kerentanan sistem yang dapat dieksploitasi oleh peretas untuk serangan siber, dalam beberapa kasus, peretas menyerang situs web untuk menyebabkan buffer overflows dan kinerja lambat. Jika tidak ditangani dengan benar, buffer overflow ini dapat merusak reputasi website bisnis Anda. Jadi apa jenis serangan buffer overflow yang ada? Bagaimana mencegah sesuatu? Untuk menjawab pertanyaan tersebut, simak penjelasan lengkapnya di artikel ini. Artikel ini memberikan informasi penting tentang buffer overflow, termasuk apa itu, jenisnya, dan cara mencegahnya.


Apa itu Buffer Overflow

Buffer overflow terdiri dari dua kata buffer dan overflow, dalam hal ini buffer diartikan sebagai tempat untuk menyimpan data. Melimpah berarti melimpah, jadi buffer overflow sederhana adalah kondisi di mana penyimpanan data kelebihan beban berbagai ancaman keamanan jaringan yang harus diwaspadai. Buffer overflow adalah situasi di mana program yang sedang berjalan mencoba untuk menulis data di luar buffer memori yang tidak dirancang untuk menampung data tersebut. Dalam hal ini, kita berbicara tentang buffer overflow atau situasi buffer overflow.

Buffer memori adalah area di memori komputer (RAM) yang dirancang untuk menyimpan data sementara. Buffer jenis ini ditemukan di semua program dan digunakan untuk menyimpan data untuk input, output, dan pemrosesan contoh data buffer adalah kredensial server FTP atau nama host. Data lain yang disimpan sementara sebelum diproses juga dapat disimpan dalam buffer. Itu benar-benar dapat berupa apa saja dari bidang input pengguna seperti bidang nama pengguna dan kata sandi hingga file input yang digunakan untuk mengimpor file konfigurasi tertentu.

Buffer memori meluap ketika jumlah data yang ditulis ke buffer melebihi jumlah data yang diharapkan. Misalnya, ini akan terjadi jika nama pengguna 8 byte atau kurang diharapkan dan nama pengguna 10 byte diberikan dan ditulis ke buffer. Dalam hal ini, buffer melebihi dua byte dan overflow akan terjadi jika hal ini tidak dicegah. Hal ini sering disebabkan oleh pemrograman yang buruk dan kurangnya sanitasi input.

Buffer overflows juga dapat dilihat sebagai metode yang biasa digunakan oleh hacker untuk mengeksploitasi sistem aplikasi komputer. Tindakan ini, juga dikenal sebagai serangan validasi input, dapat mengakibatkan sistem crash atau buffer overflow jika peretas memasukkan data yang melebihi kapasitas memori aplikasi. Apa jenis serangan buffer overflow yang ada? Peretas dapat menyerang sistem Anda dan menyebabkan buffer overflows dalam beberapa cara. Di bawah ini adalah beberapa jenis serangan buffer overflow yang paling umum.

1. Serangan stack overflow
Ini adalah jenis serangan buffer overflow yang paling umum digunakan oleh hacker. Tumpukan adalah struktur data LIFO (masuk terakhir, keluar pertama) dan mendukung dua operasi PUSH dan POP. Operasi PUSH digunakan untuk nilai data, dan POP digunakan untuk mengekstrak nilai data. Jika penyimpanan data di tumpukan rusak, data yang masuk disimpan dalam alamat memori yang berurutan. Ini dapat memengaruhi data yang disimpan sebelumnya. Jenis serangan ini biasanya disebabkan oleh kerentanan pada sistem yang menggunakan bahasa pemrograman C atau C++.

2. Serangan tumpukan overflow
Peretas biasanya menargetkan data yang terdapat dalam kumpulan memori terbuka, yang juga dikenal sebagai heap. Heap overflow dapat terjadi ketika memori ditetapkan sebagai heap dan data disimpan dalam memori tersebut tanpa pemeriksaan. Hal ini dapat mengakibatkan struktur penting di hape seperti seperti heap reader, atau data berbasis heap lainnya. Seperti pointer objek dinamis yang menimpa tabel fungsi.

3. Serangan luapan bilangan bulat
Integer overflow adalah jenis kesalahan aritmatika di mana operasi integer mungkin tidak mengalokasikan memori yang dialokasikan. Dalam kebanyakan bahasa pemrograman, nilai integer biasanya memiliki sejumlah bit dalam memori, secara umum, kondisi integer overflow hanya menyebabkan bug bahasa pemrograman, bukan kerentanan serius. Namun, dalam beberapa kasus integer overflow dapat menyebabkan risiko serius seperti pemalsuan data keuangan.

4. Unicode meluap
Unicode overflow dapat menyebabkan buffer overflow dengan memasukkan karakter Unicode dalam input ASCII (American Standard Code for Information Interchange) yang diharapkan. Kasus serangan buffer overflow sangat jarang terjadi di Indonesia. Namun, serangan siber bisa datang dari mana saja kapan saja, jadi Anda harus waspada akan hal ini.
 

Bagaimana mencegah serangan buffer overflow?

Perlu mencegah serangan peretas yang menyebabkan buffer overflows di sistem saya, karena jika Anda tidak mencegah peretas melakukannya, mereka dapat secara aktif mengambil alih sistem Anda dan menyebabkan kerusakan data, bagaimana mencegah serangan buffer overflow yaitu sebagai berikut:

1. Hindari menggunakan file perpustakaan
Menggunakan file library dalam bahasa pemrograman sangat tidak aman karena dapat menjadi sasaran empuk bagi peretas. Kerentanan dalam file perpustakaan akan ditemukan di aplikasi apa pun yang menggunakan file perpustakaan tersebut, ini bisa menjadi celah bagi peretas untuk melakukan serangan buffer overflow.

2. Filter masukan dari pengguna
Menjalankan filter dan memfilter HTML dan karakter berbahaya juga dapat membantu mencegah terjadinya buffer overflows. Misalnya, kode ASP tidak boleh memasukkan beberapa tanda terbalik seperti tanda kutip, tanda kutip, dan ampersand di input pengguna ini akan mengakibatkan crash atau buffer overflow.

3. Melakukan tes aplikasi
Sebelum Anda menginstal aplikasi, Anda harus mengujinya terlebih dahulu pastikan semua pengkodean Anda baik dan aman. Jika ada masalah dengan aplikasi, Anda harus memperbaikinya sebelum peretas dapat mengeksploitasi kerentanan untuk menyebabkan buffer overflows. Menjaga sebuah website sangat penting untuk menghindari serangan cyber. Alasan untuk ini adalah bahwa meskipun situs web perusahaan terganggu dan terjadi pelanggaran data, reputasinya dapat menurun dengan cepat. Untuk mengatasi buffer overflows dan meningkatkan keamanan situs web, Anda dapat menggunakan layanan VPC (Virtual Private Cloud) dan WAF (Web Application Firewall) Cloudmatika. Anda dapat mengintegrasikan layanan ini dengan berbagai sistem untuk melindungi data Anda dari serangan siber dengan lebih baik.


Apa yang terjadi ketika buffer overflow terjadi?

Ketika buffer overflow memori terjadi dan data dihapus dari buffer, program yang berjalan dapat menjadi tidak stabil, crash, atau mengembalikan informasi yang rusak. Bagian memori yang ditimpa mungkin berisi data penting lainnya untuk aplikasi yang sedang berjalan. Data ini sekarang telah ditimpa dan tidak lagi tersedia untuk program, buffer overflows bahkan dapat mengeksekusi program atau perintah (berbahaya) lainnya, yang berpotensi menyebabkan eksekusi kode arbitrer.


Eksekusi kode arbitrer dan eskalasi hak istimewa

Jika kerentanan buffer overflow dapat digunakan untuk menulis data berbahaya ke dalam memori dan memungkinkan penyerang untuk mengontrol aliran eksekusi suatu program, maka Anda menghadapi kerentanan keamanan yang serius. Buffer overflows bisa menjadi masalah keamanan yang serius. Kerentanan keamanan ini dapat dimanfaatkan oleh peretas untuk mendapatkan kendali (jarak jauh) dari sebuah host, melakukan eskalasi hak istimewa, atau melakukan yang lebih buruk sebagai akibat dari eksekusi kode arbitrer, saat Anda menjalankan kode arbitrer, kode tersebut dimasukkan ke dalam buffer dan dieksekusi.

Peningkatan hak istimewa dicapai dengan memanfaatkan kerentanan buffer overflow untuk mengeksekusi kode arbitrer dalam program yang berjalan dengan hak istimewa sistem. Kode yang dieksekusi mungkin berupa shellcode yang memberikan penyerang sebuah shell OS (seperti hak administrator) atau menambahkan pengguna baru (administrator) ke sistem, bahkan dengan buffer overflows, kode yang dieksekusi terlihat dalam konteks aplikasi yang sedang berjalan. 


Denial of Service (DoS)

Tidak semua kerentanan buffer overflow dapat dieksploitasi untuk mengeksekusi kode arbitrer, serangan penolakan layanan (jarak jauh) juga dapat dilakukan jika Anda menjalankan program yang mogok. Serangan DoS tidak terbatas pada pelayanan atau komputer, karena kerentanan buffer overflow dapat muncul dalam perangkat lunak. Router, perangkat firewall IoT, dan apa pun yang menjalankan sistem operasi juga dapat diserang. Contoh dari situasi ini adalah eksploitasi buffer overflow Cisco ASA IKEv1 dan IKEv2 baru-baru ini. Beberapa dari eksploitasi jarak jauh ini hanya membuat crash dan memaksa firewall untuk reboot, menyebabkan beberapa menit waktu henti.
 

Bagaimana saya bisa mencegah terjadinya buffer overflows?

Pelimpahan buffer perangkat lunak dapat dicegah atau dikurangi dengan beberapa cara, mitigasi adalah proses meminimalkan dampak ancaman sebelum atau sesudah terjadi adapun buffer overflows, inilah yang harus kita lakukan mereka dapat dicegah sebelum terjadi (proaktif). Namun, karena buffer overflows akan terus terjadi bahkan jika tindakan proaktif telah diambil, maka diperlukan mekanisme untuk meminimalkan dampak (tindakan pasca-kesalahan) mari kita lihat bagaimana pencegahan dan mitigasi buffer overflow bekerja.


Bagaimana mencegah buffer overflow

Solusi terbaik dan paling efektif adalah menghindari buffer overflows dalam kode Anda. Misalnya, jika maksimum 8 byte data input diharapkan, jumlah data yang dapat ditulis ke buffer dibatasi hingga 8 byte setiap kali, selain itu pemrograman perlu menggunakan fungsi memori, kode uji, dan kode debug. Metode pencegahan buffer overflow proaktif seperti ini harus selalu digunakan untuk membatasi kerentanan buffer overflow.


Menangani buffer overflows

Cara lain untuk mencegah buffer overflows adalah dengan mendeteksinya saat terjadi dan mengurangi situasi. Ini adalah pendekatan pasif dan berfokus pada meminimalkan efek berbahaya. Contoh mitigasi yang efektif adalah sistem operasi modern yang melindungi area memori tertentu agar tidak ditulis atau dieksekusi. Ini mencegah penyerang menulis kode arbitrer ke memori jika terjadi buffer overflow, implementasi seperti DEP, ASLR, SHOP, dan executable space dan proteksi pointer berusaha meminimalkan efek negatif buffer overflows ini tidak mencegah terjadinya buffer overflows, tetapi meminimalkan dampaknya.

Jenis lain dari deteksi buffer overflow pasif menggunakan sistem deteksi intrusi (IDS) untuk menganalisis lalu lintas jaringan, IDS dapat mendeteksi tanda tangan dalam lalu lintas jaringan yang diketahui mengeksploitasi kerentanan buffer overflow, IDS dapat mengurangi serangan dan mencegah muatan dari mengeksekusi pada sistem target bagaimana cara kerja buffer overflow dan seperti apa tampilannya dalam kode Mari kita lihat kode program dan lihat bagaimana buffer overflow bekerja.

Liputan Software ERP IDMETAFORA Indonesia!

Jika anda merasa artikel ini bermanfaat, bagikan ke pengikut anda melalui tombol dibawah ini:



Software ERP Indonesia

Artikel rekomendasi untuk Anda