Tautan Cepat
Sudah DigunakanMeningkatkan Status AndaAnda Meningkatkan Status ProgramPerintah Linux yang Menggunakan SUIDMengatur Bit SUIDBit SGIDBit LengketPengingat SUID, SGID, dan Bit Lengket adalah izin khusus yang kuat yang dapat Anda atur untuk file yang dapat dieksekusi dan direktori di Linux. Kami akan berbagi manfaat—dan potensi kerugian—dari penggunaannya.
Mereka Sudah Digunakan
Membangun keamanan ke dalam sistem operasi multipengguna menghadirkan beberapa kesulitan. Ambil contoh (yang tampaknya) konsep dasar kata sandi. Semuanya harus disimpan sehingga setiap kali seseorang log in, sistem dapat membandingkan kata sandi yang diketiknya dengan salinan yang disimpan. Tentu saja, karena kata sandi adalah kunci kerajaan, maka kata sandi harus dijaga.
Di Linux, kata sandi yang disimpan dilindungi dengan dua cara: kata sandi tersebut dienkripsi, dan hanya seseorang dengan hak akses root yang dapat mengakses file yang berisi kata sandi tersebut. Kedengarannya bagus, namun hal ini menimbulkan kebingungan: Jika hanya orang dengan hak akses root yang dapat mengakses kata sandi yang disimpan, bagaimana mereka yang tidak memiliki akses tersebut dapat mengubah kata sandinya?
Meningkatkan Status Anda
Biasanya, perintah dan program Linux dijalankan dengan izin yang sama dengan orang yang meluncurkan program tersebut. Ketika root menjalankan perintah passwd untuk mengubah kata sandi, perintah tersebut dijalankan dengan izin root. Artinya perintah passwd dapat dengan leluasa mengakses password yang tersimpan di file /etc/shadow.
Yang ideal adalah skema di mana siapa pun di sistem dapat meluncurkan program passwd, namun program passwd tetap mempertahankan hak istimewa root. Ini akan memberdayakan siapa pun untuk mengubah kata sandinya sendiri.
Skenario di atas persis seperti yang dilakukan bit Set User ID (SUID). Ini menjalankan program dan perintah dengan izin dari pemilik file, bukan izin dari orang yang meluncurkan program.
Anda Meningkatkan Status Program
Namun ada masalah lain. Orang tersebut harus dicegah untuk mencampuri kata sandi orang lain. Linux menggunakan skema SUID yang memungkinkannya menjalankan aplikasi dengan serangkaian izin yang dipinjam sementara—tetapi itu hanya separuh dari kisah keamanannya.
Mekanisme kontrol yang mencegah seseorang menggunakan kata sandi orang lain terdapat dalam program passwd, bukan sistem operasi dan skema SUID.
Program yang dijalankan dengan hak istimewa yang lebih tinggi dapat menimbulkan risiko keamanan jika tidak dibuat dengan pola pikir “keamanan berdasarkan desain”. Itu berarti keamanan adalah hal pertama yang Anda pertimbangkan, dan kemudian Anda mengembangkannya. Jangan menulis program Anda, dan kemudian mencoba memberikannya lapisan keamanan setelahnya.
Keuntungan terbesar perangkat lunak sumber terbuka adalah Anda dapat melihat sendiri kode sumbernya atau merujuk pada tinjauan sejawat yang tepercaya. Pada source code program passwd terdapat pengecekan sehingga dapat dilihat apakah yang menjalankan program tersebut adalah root. Kemampuan berbeda diperbolehkan jika seseorang adalah root (atau seseorang menggunakan sudo).
Ini adalah kode yang mendeteksi apakah seseorang sudah root.
Berikut ini adalah contoh yang diperhitungkan. Karena root dapat mengubah kata sandi apa pun, program ini tidak perlu repot dengan pemeriksaan yang biasanya dilakukan untuk melihat kata sandi mana yang izinnya diubah oleh orang tersebut. Jadi, untuk root, ia melewatkan pemeriksaan tersebut dan keluar dari fungsi pemeriksaan.
Dengan perintah dan utilitas inti Linux, Anda dapat yakin bahwa keamanan telah tertanam di dalamnya dan kode tersebut telah ditinjau berkali-kali. Tentu saja, selalu ada ancaman eksploitasi yang belum diketahui. Namun, tambalan atau pembaruan segera muncul untuk mengatasi kerentanan yang baru teridentifikasi.
Ini adalah perangkat lunak pihak ketiga—terutama yang bukan sumber terbuka—Anda harus sangat berhati-hati dalam menggunakan SUID. Kami tidak mengatakan jangan lakukan itu, namun jika Anda melakukannya, Anda ingin memastikan sistem Anda tidak terkena risiko. Anda tidak ingin meninggikan hak istimewa suatu program yang tidak dapat mengatur dirinya sendiri dan orang yang menjalankannya dengan benar.
Perintah Linux yang Menggunakan SUID
Berikut ini adalah beberapa perintah Linux yang menggunakan bit SUID untuk memberikan perintah hak istimewa yang lebih tinggi ketika dijalankan oleh pengguna biasa:
ls -l /bin/su
ls -l / bin/ping
ls -l /bin/mount
ls -l /bin/umount
ls -l /usr/bin/passwd
Perhatikan bahwa nama file disorot dengan warna merah, yang menunjukkan bit SUID telah disetel.
Izin pada file atau direktori biasanya diwakili oleh tiga grup yang terdiri dari tiga karakter: rwx. Ini berarti membaca, menulis, dan mengeksekusi. Jika suratnya ada, izin itu telah diberikan. Namun, jika ada tanda hubung (-) dan bukan huruf, izin tersebut belum diberikan.
Ada tiga grup izin ini (dari kiri ke kanan): izin untuk pemilik file, untuk anggota grup file, dan untuk lainnya. Ketika bit SUID disetel pada file, huruf “s” mewakili izin eksekusi pemilik.
Jika bit SUID disetel pada file yang tidak memiliki kemampuan yang dapat dieksekusi, huruf besar “S” menandakannya.
Kita akan melihat contohnya. Pengguna biasa Dave mengetikkan perintah passwd : nb
Itulah konten tentang Cara Menggunakan SUID, SGID, dan Sticky Bits di Linux, semoga bermanfaat.