Authorization
Pendahuluan
Authorization (otorisasi) adalah proses menentukan apa yang boleh dilakukan oleh pengguna atau proses yang sudah terotentikasi. Jika authentication menjawab "siapa kamu?", maka authorization menjawab "apa yang boleh kamu lakukan?". Keduanya adalah konsep yang terpisah namun saling melengkapi.
Perbedaan Authentication vs Authorization
| Aspek | Authentication | Authorization |
|---|---|---|
| Fungsi | Verifikasi identitas | Menentukan hak akses |
| Urutan | Dilakukan pertama | Setelah authentication berhasil |
| Data | Kredensial (password, biometric) | Kebijakan, ACL, permission |
| Contoh | Login dengan password | User A boleh membaca file X |
Discretionary Access Control (DAC)
DAC adalah model di mana pemilik sumber daya dapat menentukan sendiri siapa yang memiliki akses. Implementasi paling umum adalah permission Unix (rwx) yang dimiliki oleh user dan group. Karakteristik DAC:
- Pemilik file dapat mengubah permission secara bebas.
- Akses dikontrol berdasarkan identitas pengguna.
- Kurang ketat dibanding MAC - rentan terhadap program jahat yang dijalankan oleh user.
Mandatory Access Control (MAC)
MAC adalah model di mana kebijakan keamanan ditetapkan oleh administrator sistem, bukan oleh pemilik file. Sistem operasi menegakkan aturan secara wajib. Dua implementasi utama di Linux:
SELinux
Security-Enhanced Linux (SELinux) dikembangkan oleh NSA. Menggunakan label keamanan (security context) pada setiap objek (file, proses, port). Setiap aksi dicek terhadap kebijakan yang telah ditentukan. Mode:
- Enforcing - kebijakan ditegakkan, aksi dilarang.
- Permissive - pelanggaran dicatat tapi tidak diblokir.
- Disabled - SELinux dimatikan.
AppArmor
AppArmor menggunakan profil berbasis path untuk membatasi kemampuan program. Lebih sederhana dibanding SELinux. Setiap profil mendefinisikan file apa yang boleh diakses, kemampuan jaringan, dan kapabilitas lain.
Role-Based Access Control (RBAC)
RBAC mengelompokkan hak akses berdasarkan peran (role). Pengguna tidak diberi hak langsung, melainkan ditugaskan ke role. Contoh:
- Role admin - akses penuh ke sistem.
- Role user - akses terbatas ke file sendiri.
- Role auditor - akses baca ke log.
RBAC mempermudah manajemen hak akses di organisasi besar.
Permission Bits (Unix)
Model permission Unix menggunakan 12 bit:
- 9 bit untuk user/group/others - rwx (read=4, write=2, execute=1).
- 3 bit special - SUID (4), SGID (2), Sticky Bit (1).
Contoh: chmod 750 file = owner read+write+execute, group
read+execute, others no access.
Access Control List (ACL)
ACL memperluas model permission Unix tradisional dengan memungkinkan beberapa user dan group memiliki hak akses berbeda pada file yang sama. Perintah:
getfacl file- melihat ACL.setfacl -m u:username:rwx file- menambah ACL untuk user tertentu.
Sudoers
File /etc/sudoers (diedit dengan visudo)
mendefinisikan siapa yang boleh menjalankan perintah sebagai user
lain (biasanya root). Format:
username ALL=(ALL:ALL) ALL
%group ALL=(ALL) NOPASSWD: ALL
Direktori /etc/sudoers.d/ memungkinkan konfigurasi
modular.
Security Context
Security context adalah metadata yang digunakan oleh sistem MAC untuk menentukan hak akses. Di SELinux, context terdiri dari:
- User - identitas SELinux.
- Role - peran dalam kebijakan.
- Type - tipe objek (paling penting untuk Type Enforcement).
- Level - tingkat keamanan (MLS).
Access Token
Di sistem Windows, access token adalah objek yang berisi identitas dan hak pengguna setelah login. Token mencakup:
- User SID (Security Identifier).
- Group SIDs.
- Privileges (hak istimewa).
- Integrity level.
Setiap proses yang dijalankan user mewarisi token ini. Windows memeriksa token terhadap DACL (Discretionary Access Control List) sumber daya.
Kesimpulan
Authorization adalah komponen kritikal yang memastikan pengguna hanya dapat melakukan apa yang diizinkan. Model DAC, MAC, dan RBAC memiliki trade-off masing-masing. Sistem operasi modern sering menggunakan kombinasi ketiganya untuk pertahanan berlapis yang optimal.