Privilege Management
Pendahuluan
Privilege management mengatur hak istimewa yang dimiliki pengguna dan proses dalam sistem operasi. Manajemen privilege yang buruk adalah penyebab utama kebocoran keamanan - baik karena pengguna mendapatkan akses berlebihan maupun karena penyerang berhasil melakukan privilege escalation.
Sudo Configuration
/etc/sudoers
File /etc/sudoers adalah konfigurasi utama untuk sudo di
Linux. File ini harus selalu diedit menggunakan perintah
visudo yang melakukan validasi sintaks sebelum
menyimpan, mencegah konfigurasi rusak yang dapat mengunci akses
administratif.
Format dasar:
user hostname=(runas:group) commands
Contoh:
# User dapat menjalankan semua perintah sebagai root
budi ALL=(ALL:ALL) ALL
# User hanya dapat menjalankan perintah tertentu
sari ALL=(ALL) /usr/bin/systemctl, /usr/bin/journalctl
# Grup admin dapat menjalankan semua tanpa password
%admin ALL=(ALL) NOPASSWD: ALL
/etc/sudoers.d/
Direktori /etc/sudoers.d/ memungkinkan konfigurasi sudo
modular. Setiap file di direktori ini secara otomatis di-include
oleh sudoers utama. Berguna untuk:
- Memberikan akses ke aplikasi tertentu (misal:
/etc/sudoers.d/database). - Konfigurasi per role atau per tim.
- Memudahkan otomatisasi dengan tools konfigurasi manajemen.
Privilege Escalation Prevention
Mencegah privilege escalation adalah prioritas utama:
- Batasi akses sudo - berikan perintah
spesifik, bukan
ALL. - Hapus SUID/SGID yang tidak perlu - gunakan
find / -perm /4000. - Konfigurasi
secure_pathdi sudoers - mencegah path hijacking. - Gunakan
noexecpada /tmp dan /home - mencegah eksekusi binary di direktori writable. - Aktifkan SELinux/AppArmor - memberikan lapisan keamanan tambahan.
- Batasi
ptrace- melalui kernel.yama.ptrace_scope=1. - Pantau log sudo - di
/var/log/auth.log.
User Groups vs Sudo
Memberikan akses administratif dapat dilakukan melalui dua pendekatan:
| Pendekatan | Keuntungan | Kerugian |
|---|---|---|
| Group (wheel/sudo) | Sederhana, semua anggota grup setara | Tidak ada audit trail perintah |
| Sudo rules spesifik | Audit trail, kontrol granular, dapat batasi perintah | Konfigurasi lebih kompleks |
Rekomendasi: gunakan sudo rules spesifik daripada sekadar menambah user ke grup sudo/wheel.
Linux Capabilities vs Full Root
Linux capabilities memungkinkan pemberian hak istimewa spesifik tanpa memberikan akses root penuh:
# Memberikan kemampuan bind ke port rendah (tanpa root)
setcap cap_net_bind_service=+ep /usr/bin/myapp
# Melihat capabilities file
getcap /usr/bin/myapp
Namun, capabilities bukan pengganti penuh untuk root - beberapa operasi tetap membutuhkan root penuh (misal: mount filesystem, load kernel module).
Windows UAC
User Account Control (UAC) di Windows adalah mekanisme yang memisahkan hak standar dari hak administratif:
- User standar - menjalankan aplikasi dengan hak terbatas.
- Administrator - mendapatkan dua token: filter token (standar) dan full token (admin).
- Saat aksi administratif diperlukan, UAC meminta persetujuan (Consent Prompt) di Secure Desktop.
UAC efektif mencegah malware yang berjalan sebagai user standar untuk mengubah pengaturan sistem, namun tidak melindungi dari admin yang ceroboh.
Runas
Perintah runas di Windows memungkinkan menjalankan
program dengan kredensial berbeda:
runas /user:domain\admin "cmd.exe"
Praktik keamanan:
- Gunakan runas hanya untuk tugas spesifik, bukan untuk sesi penuh.
- Pertimbangkan RunAsUser di PowerShell (Invoke-Command) untuk konteks yang lebih aman.
- Kombinasikan dengan Group Policy untuk membatasi penggunaan runas.
Local Privilege Escalation (LPE)
LPE adalah teknik yang digunakan penyerang untuk meningkatkan hak akses dari user terbatas menjadi lebih tinggi (biasanya root/system).
Common Vectors
SUID/SGID Binary
Binary dengan SUID bit dijalankan dengan hak pemiliknya (biasanya root). Eksploitasi:
- Vulnerable SUID binary - binary SUID yang memiliki bug (buffer overflow, path injection, race condition).
- SUID shell script - lebih berbahaya karena rentan terhadap SHELL variable manipulation.
- Custom SUID binary - binary SUID yang dibuat dengan konfigurasi tidak aman.
Mitigasi: temukan SUID binary dengan find / -perm -4000
dan audit secara berkala.
Token Manipulation
Di Windows, penyerang dapat mencuri atau memanipulasi access token:
- Token stealing - mencuri token proses yang memiliki hak lebih tinggi.
- Token duplication - menduplikasi token untuk membuat proses baru dengan hak yang sama.
- Incognito toolkit - tools untuk token manipulation di Meterpreter.
Mitigasi: batasi SeDebugPrivilege, gunakan Protected Processes, dan pantau event ID 4672 (Special Logon).
Kernel Exploit
Eksploitasi kerentanan di kernel untuk mendapatkan akses root. Vektor umum:
- Dirty Pipe (CVE-2022-0847) - overwrite file read-only di kernel Linux.
- Dirty Cow (CVE-2016-5195) - race condition di COW (Copy-on-Write) kernel.
- EternalBlue (MS17-010) - SMB vulnerability di Windows.
Mitigasi: patch kernel secara rutin, aktifkan KPTI (Kernel Page Table Isolation).
Service Misconfiguration
Kesalahan konfigurasi layanan yang dapat dieksploitasi:
- Unquoted service path - Windows menjalankan path dengan spasi tanpa tanda kutip.
- Weak service permission - user biasa dapat mengubah konfigurasi layanan.
- Binary hijacking - mengganti binary layanan yang writable.
- DLL hijacking - menyusupkan DLL jahat ke direktori yang dicari oleh layanan.
Other LPE Vectors
- Cron jobs - task terjadwal yang writable oleh user biasa.
- LD_PRELOAD - memuat shared library jahat (jika sudo memiliki env_keep).
- Capabilities exploit - binary dengan capabilities yang dapat dieksploitasi.
- Named pipe impersonation - di Windows, meniru pengguna yang terhubung ke pipe.
- AlwaysInstallElevated - registry MSI yang mengizinkan install sebagai SYSTEM.
Kesimpulan
Privilege management adalah area keamanan yang paling sering menjadi titik masuk penyerang. Konfigurasi sudo yang baik, pemahaman tentang capabilities, penghapusan SUID yang tidak perlu, dan mitigasi LPE adalah keterampilan esensial. Prinsip paling penting: berikan hak seminimal mungkin, audit secara berkala, dan selalu patch sistem.