Mengapa FUSE dapat dianggap tidak aman di server?

2

OpenSUSE hadir dengan beberapa pengaturan izin yang telah ditentukan sebelumnya. Paranoid yang paling membatasi. Sementara saya mengerti mengapa ia memblokir hal-hal seperti virtualisasi atau siaran tty untuk pengguna non-root, saya tidak benar-benar mengerti mengapa itu juga memblokir fuse. Apakah ada masalah keamanan nyata yang diperkenalkan oleh sekering pada misalnya server bersama?

Lapsio
sumber
3
Sudahkah Anda melihat halaman Web ini? cs.nmsu.edu/~pfeiffer/fuse-tutorial/html/security.html
MariusMatutiae

Jawaban:

1

Komentar yang berguna ini menghubungkan ke halaman Web ini . Di bawah ini adalah kutipan dari halaman:

Perhatian pada keamanan

Menulis dan menggunakan sistem file FUSE dapat memiliki beberapa masalah keamanan berukuran Metrodome yang mungkin atau mungkin tidak jelas, tetapi patut disebutkan. Di bagian ini, saya akan berbicara tentang peningkatan hak istimewa, memberikan beberapa catatan tentang memeriksa hak akses, dan menyebutkan kondisi ras.

Eskalasi Privilege

Poin utama yang harus dibuat adalah bahwa filesystem itu sendiri dijalankan dengan hak akses dari proses yang menjalankannya, bukan pada proses yang menggunakan filesystem tersebut. Berikut ini cara bermainnya dalam beberapa skenario umum:

Kasus Umum: Pengguna Menjalankan Sistem File Tanpa allow_otherOpsi

Ini adalah kasus normal; filesystem berjalan dengan hak istimewa dari pengguna yang menjalankannya, dan hanya pengguna yang dapat mengakses filesystem tersebut. FUSE tidak membuka masalah keamanan tertentu dalam kasus ini.

Seorang Pengguna Menjalankan Sistem File Dengan Opsi allow_other

Dalam hal ini, filesystem berjalan dengan hak istimewa pengguna yang memintanya, bukan hak istimewa dari pengguna mana pun yang memanfaatkan sistem berkas. Adalah tanggung jawab pengguna yang memasang sistem file untuk memastikan hak akses yang tidak pantas tidak diberikan kepada pengguna lain. Secara umum, pengguna hanya bisa melukai diri mereka sendiri dengan cara ini, karena mereka hanya bisa memberikan hak istimewa yang sudah mereka miliki.

Perlu dicatat bahwa opsi user_allow_other,, harus diatur /etc/fuse.confuntuk mengaktifkan opsi ini.

Root Menjalankan Sistem File

Ini benar-benar sama dengan dua kasus sebelumnya (tergantung pada apakah allow_otheropsi diatur), tetapi root adalah kasus yang cukup khusus yang layak disebutkan. Dalam hal ini, setiap pengguna yang menggunakan sistem file memiliki hak root pada sistem file itu! Jika proses memiliki akses ke sistem file yang sebenarnya, ini dapat dengan mudah digunakan untuk mendapatkan akses yang tidak terbatas.

Subbagian berikutnya akan berbicara sedikit tentang memeriksa hak akses, tetapi cara paling sederhana di sini adalah dengan tidak mengizinkan root untuk me-mount sistem file. [...]

Memeriksa Hak Akses

Secara umum, sistem file yang mungkin dijalankan dengan allow_otherflag perlu mengambil langkah-langkah untuk memastikan keamanannya sendiri. fuse.hdokumen yang memerlukan beberapa panggilan untuk memeriksa apakah akses yang diminta diizinkan; selain itu, ada beberapa orang lain yang juga memerlukan pemeriksaan akses (seperti chown()). Merupakan tanggung jawab programmer untuk memastikan peringatan ini diikuti!

[...]

Akses Serentak dan Kondisi Ras

Secara default, FUSE menjalankan multi-threaded: ini berarti (secara singkat) bahwa permintaan kedua dapat ditangani oleh sistem file sebelum permintaan sebelumnya selesai; ini pada gilirannya meningkatkan kemungkinan bahwa utas yang berbeda dapat secara bersamaan memodifikasi struktur data tunggal, yang akan menyebabkan bug yang sangat sulit untuk di-debug.

[...]

Kamil Maciorowski
sumber