Mengapa Audit Permission Linux Sangat Penting?
Banyak administrator fokus pada firewall, IDS, atau patch keamanan, tetapi sering melupakan satu hal yang sangat mendasar: file permission.
Padahal, sebagian besar serangan privilege escalation pada Linux memanfaatkan kesalahan konfigurasi permission, file world-writable, atau binary yang memiliki SUID berbahaya.
Ibarat sebuah gedung dengan sistem keamanan canggih, namun masih ada pintu belakang yang tidak terkunci. Hacker tidak perlu membobol tembok jika mereka bisa masuk melalui pintu tersebut.
Karena itu, audit permission dan SUID harus menjadi bagian dari checklist keamanan rutin setiap administrator Linux.
Apa Itu SUID?
SUID (Set User ID) adalah permission khusus yang memungkinkan sebuah program berjalan menggunakan hak akses pemilik file, bukan hak akses pengguna yang menjalankannya.
Biasanya pemilik file tersebut adalah root.
Artinya, user biasa dapat menjalankan program tertentu dengan privilege yang lebih tinggi.
Contoh Sederhana
Ketika user mengubah password menggunakan perintah:
passwd
Program tersebut harus mengubah isi file:
/etc/shadow
Padahal file tersebut hanya dapat diakses oleh root.
Agar proses tersebut bisa berjalan, binary passwd diberi SUID root.
Mengapa SUID Berbahaya?
Jika sebuah binary memiliki SUID root dan ternyata rentan terhadap eksploitasi, maka penyerang dapat memperoleh akses root secara penuh.
Inilah alasan mengapa SUID sering menjadi target utama dalam privilege escalation.
Contoh kasus:
- Binary custom buatan developer
- Tools lama yang tidak pernah diperbarui
- Program pihak ketiga
- Software hasil kompilasi manual
Jika salah satu di antaranya memiliki SUID root, risiko kompromi sistem meningkat drastis.
Cara Mencari Semua File SUID
Jalankan perintah berikut:
find / -perm -4000 -type f 2>/dev/null
Atau:
find / -type f -perm -u=s 2>/dev/null
Contoh output:
/bin/ping
/usr/bin/passwd
/usr/bin/sudo
/usr/sbin/exim4
Daftar Binary SUID yang Umumnya Normal
Beberapa binary memang membutuhkan SUID untuk berfungsi.
Contohnya:
/bin/ping
/usr/bin/passwd
/usr/bin/sudo
/usr/sbin/exim4
/usr/bin/chsh
/usr/bin/chfn
/usr/bin/mount
/usr/bin/umount
Namun daftar ini dapat berbeda tergantung distribusi Linux yang digunakan.
Cara Mengidentifikasi SUID yang Mencurigakan
Misalnya ditemukan:
/usr/local/bin/backup
/opt/tools/netadmin
/home/admin/test
Pertanyaan yang harus diajukan:
Apakah Binary Ini Dikenal?
Jika tidak mengetahui asal usulnya, lakukan investigasi.
Siapa Pemilik File?
ls -lah /usr/local/bin/backup
Paket Apa yang Menginstalnya?
Debian/Ubuntu:
dpkg -S /usr/local/bin/backup
RHEL/CentOS:
rpm -qf /usr/local/bin/backup
Apakah Binary Tersebut Dimodifikasi?
Hitung checksum:
sha256sum /usr/local/bin/backup
Bandingkan dengan versi resmi vendor.
Cara Menghapus SUID yang Tidak Diperlukan
Jika binary tidak memerlukan privilege root:
chmod u-s /usr/local/bin/backup
Verifikasi:
ls -lah /usr/local/bin/backup
Contoh sebelum:
-rwsr-xr-x
Sesudah:
-rwxr-xr-x
Huruf “s” akan hilang.
Audit World-Writable Files
Apa Itu World-Writable File?
File world-writable adalah file yang dapat ditulis oleh siapa saja.
Permission seperti ini sangat berbahaya.
Contoh:
-rw-rw-rw-
atau
666
Penyerang dapat:
- Menyisipkan backdoor
- Mengubah konfigurasi
- Menambahkan malware
- Mengganti script otomatis
Cara Mencari World-Writable Files
Jalankan:
find / -perm -o+w -type f 2>/dev/null
Atau:
find / -type f -perm -0002 2>/dev/null
Contoh output:
/tmp/test.txt
/opt/scripts/backup.sh
/home/user/install.sh
Cara Memperbaiki Permission
Misalnya ditemukan:
-rw-rw-rw- backup.sh
Ubah menjadi:
chmod 644 backup.sh
Atau:
chmod 640 backup.sh
Tergantung kebutuhan akses.
Audit Permission File Sistem Penting
Permission /etc/passwd
Periksa:
ls -l /etc/passwd
Permission yang benar:
-rw-r--r--
atau:
644
Setel ulang jika diperlukan:
chmod 644 /etc/passwd
Permission /etc/shadow
Periksa:
ls -l /etc/shadow
Permission yang direkomendasikan:
640
atau bahkan:
000
pada beberapa hardening policy.
Perbaiki dengan:
chmod 640 /etc/shadow
Audit Ownership File Sistem
Periksa file yang tidak memiliki owner:
find / -nouser -o -nogroup 2>/dev/null
File seperti ini sering muncul setelah:
- User dihapus
- Migrasi server
- Restorasi backup tidak sempurna
Jika ditemukan, segera perbaiki ownership.
Langkah Audit Permission Server Linux Secara Praktis
Langkah 1: Audit SUID
find / -perm -4000 -type f 2>/dev/null
Catat seluruh hasil.
Langkah 2: Audit World-Writable
find / -perm -o+w -type f 2>/dev/null
Periksa setiap file.
Langkah 3: Audit Permission File Penting
ls -l /etc/passwd
ls -l /etc/shadow
Langkah 4: Audit Ownership
find / -nouser -o -nogroup 2>/dev/null
Langkah 5: Dokumentasikan Temuan
Buat laporan:
| Temuan | Risiko | Tindakan |
|---|---|---|
| SUID tidak dikenal | Tinggi | Hapus SUID |
| World writable | Tinggi | Ubah permission |
| Owner hilang | Sedang | Perbaiki ownership |
| Shadow salah permission | Kritis | Hardening segera |
Tips Hardening Permission Linux
Terapkan Principle of Least Privilege
Berikan hak akses seminimal mungkin.
Hindari Permission 777
Jangan menggunakan:
chmod 777
kecuali benar-benar diperlukan.
Audit Berkala
Minimal:
- Mingguan untuk server produksi
- Bulanan untuk server internal
Gunakan Lynis
Tool audit keamanan Linux:
lynis audit system
Pantau Perubahan File
Gunakan:
- AIDE
- Auditd
- Wazuh
- OSSEC
Kesimpulan
Kesalahan konfigurasi file permission merupakan salah satu penyebab utama privilege escalation pada Linux. Audit SUID, world-writable files, ownership, dan permission file sistem penting dapat membantu administrator menemukan celah keamanan sebelum dimanfaatkan oleh penyerang.
Semakin cepat menemukan anomali permission, semakin kecil peluang terjadinya kompromi sistem. Jadikan audit permission sebagai prosedur rutin dalam pengelolaan server Linux agar lingkungan tetap aman, stabil, dan sesuai praktik keamanan terbaik.
Frequently Asked Questions (FAQ)
1. Apa fungsi SUID pada Linux?
SUID memungkinkan program berjalan menggunakan hak akses pemilik file, biasanya root.
2. Mengapa SUID bisa berbahaya?
Karena jika binary rentan dieksploitasi, penyerang dapat memperoleh privilege lebih tinggi hingga root.
3. Apa risiko file world-writable?
Siapa pun dapat memodifikasi file tersebut sehingga berpotensi digunakan sebagai backdoor atau malware.
4. Berapa permission yang benar untuk /etc/passwd?
Umumnya menggunakan permission 644.
5. Berapa permission yang direkomendasikan untuk /etc/shadow?
Biasanya 640 atau lebih ketat sesuai kebijakan hardening.
6. Seberapa sering audit permission dilakukan?
Idealnya mingguan untuk server produksi dan bulanan untuk server non-kritis.
Apakah Anda pernah menemukan binary SUID mencurigakan atau permission yang salah pada server Linux?
Bagikan pengalaman Anda di kolom komentar. Jika artikel ini bermanfaat, jangan lupa membagikannya ke rekan administrator sistem, tim DevOps, maupun komunitas Linux Anda.
Ikuti juga artikel terbaru seputar Linux Server, Cyber Security, Networking, Cloud Computing, dan System Administration agar tidak ketinggalan tips keamanan terbaru.