Dalam dunia keamanan komputer, privilege escalation adalah salah satu teknik berbahaya yang sering digunakan oleh hacker. Dengan teknik ini, seorang pengguna biasa bisa mendapatkan hak akses lebih tinggi, misalnya menjadi admin atau root. Hal ini tentu sangat berbahaya karena mereka bisa mengendalikan seluruh sistem.

Untuk mencegah hal ini terjadi, salah satu cara yang bisa dilakukan adalah dengan menerapkan defensive programming. Teknik ini digunakan sejak tahap awal pembuatan program agar kode lebih aman dan tidak mudah disalahgunakan.

 

Apa Itu Defensive Programming?

Defensive programming adalah cara menulis program dengan mengantisipasi kemungkinan kesalahan sejak awal. Artinya, programmer menulis kode dengan asumsi bahwa kesalahan bisa saja terjadi—baik karena input pengguna yang tidak valid, sistem yang tidak stabil, atau bahkan serangan dari luar.

Tujuan dari teknik ini adalah agar program tetap berjalan dengan aman meskipun ada kesalahan, dan tidak membuka celah bagi hacker untuk masuk.

 

Bagaimana Privilege Escalation Bisa Terjadi dari Kode?

Privilege escalation seringkali terjadi bukan karena sistem operasi yang lemah, tapi karena kesalahan dalam pembuatan kode. Berikut beberapa contoh:

  • Input tidak dicek dengan baik: Misalnya, program menerima perintah dari user tanpa validasi.
  • File permission yang salah: File yang harusnya hanya dibaca oleh admin malah bisa ditulis oleh semua user.
  • Menggunakan fungsi berbahaya seperti exec(): Fungsi ini bisa mengeksekusi perintah sistem, dan jika disalahgunakan bisa jadi pintu masuk hacker.
  • Password disimpan di dalam kode (hardcoded): Jika ada yang membongkar kode program, maka password bisa diketahui dengan mudah.

Contoh nyata: Ada sebuah skrip admin di Linux yang bisa dijalankan oleh siapa saja karena permission-nya salah. Seorang user biasa bisa menjalankan skrip itu dan mendapatkan akses root. Ini adalah privilege escalation karena kesalahan kecil dalam pengaturan file.

 

Prinsip-Prinsip Defensive Programming untuk Mencegah Privilege Escalation

Berikut beberapa prinsip sederhana yang bisa dilakukan saat menulis kode:

✅ Validasi Input

Jangan pernah percaya begitu saja pada input dari pengguna. Selalu periksa apakah input tersebut sesuai format, panjang, dan tidak mengandung karakter berbahaya. Gunakan whitelist (hanya menerima input yang dikenal aman), bukan blacklist.

🔐 Batasi Hak Akses

Jalankan program atau service dengan hak akses paling rendah yang dibutuhkan. Jangan menjalankan semua hal sebagai admin. Jika hanya perlu baca file, cukup beri izin baca saja.

⚠️ Tangani Error dengan Baik

Jangan biarkan program berhenti tiba-tiba saat ada error. Tangani semua kemungkinan error dengan aman agar hacker tidak bisa mengeksploitasi celah tersebut.

📋 Logging dan Audit

Catat semua aktivitas penting, terutama yang berkaitan dengan akses atau perubahan file. Log bisa membantu mendeteksi upaya privilege escalation lebih awal.

🔍 Lakukan Review dan Pengujian

Sebelum program digunakan, cek ulang kode bersama tim (code review) dan lakukan pengujian keamanan seperti penetration testing atau menggunakan static analysis tools.

 

Alat dan Praktik Tambahan

Selain prinsip di atas, ada beberapa alat dan metode tambahan untuk membantu:

  • AppArmor dan SELinux: Alat untuk membatasi apa yang boleh dilakukan oleh program di sistem Linux.
  • Sandboxing: Jalankan program di lingkungan yang terisolasi, sehingga jika ada yang rusak tidak merusak sistem utama.
  • Gunakan compiler flags untuk melindungi program dari buffer overflow dan celah keamanan lain.
  • Pilih framework yang sudah dirancang aman, seperti Laravel untuk PHP atau Django untuk Python.

 

Kesimpulan

Privilege escalation bisa terjadi karena kesalahan kecil dalam kode. Oleh karena itu, penting bagi developer untuk menerapkan defensive programming sejak awal.

Dengan menulis kode yang aman dan waspada terhadap kemungkinan kesalahan, kita bisa mencegah hacker “naik pangkat” dari user biasa menjadi penguasa sistem. Ingat, mencegah lebih baik daripada memperbaiki setelah sistem dibobol.

 

 

Nama: Damarudin
NIM: 23156201034
Prodi: Sistem Komputer