Penjelasan nodev dan nosuid di fstab

44

Saya melihat dua opsi yang terus-menerus disarankan di web ketika seseorang menjelaskan cara me-mount tmpfs atau ramfs. Seringkali juga dengan noexec tapi saya secara khusus tertarik pada nodev dan nosuid. Saya pada dasarnya benci hanya mengulangi secara membabi buta apa yang disarankan seseorang, tanpa pemahaman yang nyata. Dan karena saya hanya melihat petunjuk copy / paste di internet mengenai hal ini, saya bertanya di sini.

Ini dari dokumentasi:
nodev - Jangan menafsirkan blok perangkat khusus pada sistem file.
nosuid - Memblokir operasi bit suid, dan sgid.

Tapi saya ingin penjelasan praktis apa yang bisa terjadi jika saya meninggalkan keduanya. Katakanlah saya telah mengonfigurasi tmpfs atau ramfs (tanpa dua set opsi yang disebutkan ini) yang dapat diakses (baca + tulis) oleh pengguna (non-root) tertentu pada sistem. Apa yang dapat dilakukan pengguna untuk merusak sistem? Tidak termasuk kasus mengkonsumsi semua memori sistem yang tersedia dalam kasus ramfs

Ivan Kovacevic
sumber
1
Ini adalah jawaban yang bagus untuk Q Anda: unix.stackexchange.com/questions/188601/…
Tampilan elips

Jawaban:

36

Anda tidak harus mengikuti ini secara membabi buta sebagai aturan yang sulit. Tetapi alasan untuk situasi yang lebih berfokus pada keamanan adalah sebagai berikut.

  • Opsi mount nodev menentukan bahwa sistem file tidak dapat berisi perangkat khusus: Ini adalah tindakan pencegahan keamanan. Anda tidak ingin sistem file yang dapat diakses pengguna dunia seperti ini memiliki potensi untuk pembuatan perangkat karakter atau akses ke perangkat keras perangkat acak.

  • Opsi mount nosuid menentukan bahwa sistem file tidak dapat berisi file set userid. Mencegah binari setuid pada filesystem yang dapat ditulis oleh dunia masuk akal karena ada risiko eskalasi root atau kesedihan lainnya di sana.

Untuk apa nilainya, saya tidak sering menggunakan parameter ini ... hanya pada sistem yang menghadap publik di mana ada pertimbangan kepatuhan lainnya.

putih
sumber
1
Saya sebenarnya memiliki sistem yang menghadap publik karena perangkat lunak berjalan di bawah akun yang terbuka ke internet. Jadi saya bertanya-tanya tentang skenario bagaimana-jika di sini. Bagaimana jika seseorang mendapatkan akses shell melalui beberapa kerentanan. Tentu saja ada hal-hal lain yang bisa dia lakukan untuk meningkatkan hak tetapi saya lebih suka meminimalkannya. Jadi saya bertanya-tanya misalnya untuk suid bukankah pengguna masih tidak dapat mengubah bendera itu terlepas dari apakah filesystem memungkinkan atau tidak. Apakah opsi nosuid hanya mencegah perangkat lunak yang tidak terkonfigurasi secara tidak sengaja (oleh root)? Atau bisakah pengguna mengeksploitasinya sendiri?
Ivan Kovacevic
1
@IvanKovacevic Anda tidak harus menggunakan opsi pemasangan sistem file yang disarankan. Mereka ada untuk mengurangi vektor serangan. Namun, memeriksa skenario bagaimana-mungkin berada di luar cakupan pertanyaan ini.
ewwhite
3
@ewwhite: menyangkut nosuidbukankah setuid bit diabaikan? (bukannya The nosuid mount option specifies that the filesystem cannot contain set userid files)
user2284570