Pendahuluan

Salah satu teknik paling lama dan masih digunakan dalam serangan siber adalah buffer overflow  kondisi ketika program menerima data lebih banyak dari yang bisa ditampung, sehingga penyerang bisa menulis kode berbahaya ke memori. Untuk melindungi sistem dari serangan seperti ini, banyak sistem operasi modern menerapkan dua teknologi penting: ASLR (Address Space Layout Randomization) dan DEP (Data Execution Prevention).

Apa Itu Buffer Overflow?

Bayangkan ada sebuah kotak surat berisi 10 slot surat. Tapi seseorang memasukkan 30 surat ke sana. Sisanya akan tumpah ke meja, lantai, bahkan bisa merusak barang lain. Begitu juga di memori: ketika program tidak membatasi input, data bisa “tumpah” dan mengganggu atau bahkan menimpa bagian penting dari sistem  seperti alamat eksekusi program. Inilah celah yang sering dimanfaatkan hacker.

1. ASLR (Address Space Layout Randomization)

Fungsi:

Mengacak lokasi bagian penting dari program di memori  seperti library, stack, heap, dan lainnya  setiap kali program dijalankan.

 Tujuan:

Agar penyerang tidak tahu di mana lokasi targetnya di memori.

Kalau sebelumnya penyerang bisa menarget langsung ke alamat tertentu, sekarang alamat itu selalu berubah-ubah, membuat eksploitasi jadi jauh lebih sulit.

  Contoh Implementasi:

  • Windows: ASLR aktif sejak Windows Vista dan diperkuat di Windows 10+.
  • Linux: Menggunakan fitur randomize_va_space dan PIE (Position-Independent Executable).
  • macOS: ASLR aktif secara default sejak macOS 10.5 (Leopard).

2. DEP (Data Execution Prevention)

 Fungsi:

Mencegah bagian memori tertentu dari dieksekusi sebagai kode.

 Tujuan:

Agar meskipun penyerang berhasil menyuntikkan kode berbahaya, kode itu tidak bisa dijalankan.

Secara teknis, DEP melabeli bagian memori (seperti stack dan heap) sebagai “data-only”, sehingga sistem tidak akan menjalankan apapun dari sana.

 Contoh Implementasi:

  • Windows: DEP aktif untuk proses penting sejak Windows XP SP2.
  • Linux: Menggunakan NX bit (No eXecute) lewat hardware + PaX atau grsecurity.
  • macOS: Menggunakan W^X (Write XOR Execute) prinsip di memori.

Bagaimana Keduanya Bekerja Bersama?

ASLR dan DEP sering digunakan bersamaan. Analogi sederhananya: ASLR menyembunyikan kunci rumah dari maling, sedangkan DEP memasang gembok tambahan agar maling tidak bisa masuk meski tahu posisi kunci. Dengan kombinasi ini, serangan buffer overflow jadi jauh lebih sulit dilakukan, karena: Hacker tidak tahu di mana menaruh payload (ASLR), dan payload-nya tidak bisa dijalankan sembarangan (DEP).

Apakah ASLR & DEP Sempurna?

Tidak. Teknologi ini mengurangi risiko, bukan menghilangkannya sepenuhnya. Penyerang masih bisa melakukan serangan info leak untuk mencari tahu posisi alamat (bypass ASLR),dan menyusun serangan ROP (Return-Oriented Programming) untuk menghindari DEP. Namun tetap, tanpa ASLR dan DEP, serangan buffer overflow akan jauh lebih mudah dan umum terjadi.

Kesimpulan

Sistem operasi modern menggunakan ASLR dan DEP sebagai benteng utama dalam melawan serangan buffer overflow: ASLR = mengacak posisi bagian program di memori → menyulitkan penyerang, DEP = melarang eksekusi dari bagian memori tertentu → mencegah kode jahat dijalankan. Meskipun tidak sempurna, kombinasi ini sangat efektif dan wajib diaktifkan untuk sistem yang aman.