pembukaan
saya terus mendengar orang mengulangi kesalahpahaman dari seluruh internet .. dengan demikian, saya akan mencoba memberikan beberapa klarifikasi
pertama; berapa banyak kecelakaan penemuan telah ada sudah, yang hanya .. karena sebab dan akibat , akhirnya digunakan untuk sesuatu yang lain dari tujuan yang telah ditetapkan?
apa itu, dan apa itu, penjara Chroot
Chroot awalnya dirancang untuk mengubah direktori root untuk proses atau pengguna (bagus untuk mengkompilasi perangkat lunak dari sumber yang tidak dikenal). ini memberikan keamanan ke sistem dasar, serta alat tempat tidur uji cepat, termasuk pembersihan yang mudah. tahun telah berlalu sejak itu, dan konsepnya serta penggunaan yang tersirat tentu saja telah berubah, juga.
chroot telah digunakan secara efektif , dan secara langsung di basis kode untuk beberapa program dan pustaka (yaitu openSSHd, apache2 + mod_security2 / mod_chroot, dovecot, sendmail, openVPN, pam_chroot, dan banyak lagi ). dengan asumsi bahwa semua aplikasi utama ini telah menerapkan solusi keamanan yang salah sama sekali tidak benar
chroot adalah solusi untuk virtualisasi sistem file: tidak kurang, tidak lebih. asumsi bahwa Anda dapat dengan mudah keluar dari chroot juga tidak benar ... selama Anda mematuhi pedoman proses yang berjalan di dalam chroot jail.
beberapa langkah untuk mengamankan chroot jail Anda
yaitu JANGAN menjalankan proses sebagai ROOT. ini bisa membuka vektor eskalasi root (yang juga benar di dalam atau di luar chroot). jangan menjalankan proses di dalam chroot, menggunakan pengguna yang sama dengan proses lain di luar chroot. pisahkan setiap proses dan pengguna ke Chrootnya sendiri untuk membatasi permukaan serangan, dan memberikan privasi. hanya me-mount file, perpustakaan, dan perangkat yang diperlukan. terakhir, chroot BUKAN pengganti untuk keamanan sistem dasar. mengamankan sistem secara keseluruhan.
catatan penting lainnya: banyak orang berpikir bahwa OpenVZ adalah Rusak, atau itu tidak setara dengan virtualisasi sistem penuh. mereka membuat asumsi ini karena pada dasarnya Chroot, dengan tabel proses yang telah disterilkan. dengan langkah-langkah keamanan di perangkat dan perangkat keras. sebagian besar yang dapat Anda terapkan dalam chroot.
tidak setiap admin memiliki tingkat pengetahuan yang diperlukan untuk mengamankan semua parameter kernel yang diperlukan pada server khusus atau di bawah virtualisasi sistem penuh. ini berarti menggunakan OpenVZ berarti bahwa pelanggan Anda akan memiliki permukaan serangan yang jauh lebih sedikit untuk mencoba dan melindungi dan mengamankan sebelum menggunakan aplikasi mereka. tuan rumah yang baik akan melakukan pekerjaan dengan baik mengamankan parameter ini, dan pada gilirannya, ini lebih baik untuk tidak hanya semua orang di Node, atau di pusat data, tetapi untuk internet secara keseluruhan ...
sebagaimana dinyatakan, chroot menyediakan virtualisasi sistem file. Anda harus memastikan bahwa tidak ada executable setuid ', aplikasi tidak aman, perpustakaan, menggantung symlink tanpa pemilik, dll. jika penyerang dapat berkompromi mengikat, mereka akan perlu menjelajahi sistem file virtual untuk sesuatu yang buffer overrun, bermain dengan deskriptor file, atau dengan cara lain mengkompromikan sesuatu yang berada di dalam chroot- melarikan diri dari penjara biasanya melalui eskalasi hak istimewa atau menyuntikkan muatannya ke dalam sistem pangkalan.
jika ini terjadi, itu biasanya hasil dari pembaruan yang buruk, eksploitasi nol hari, atau kesalahan manusia idiomatik .
mengapa chroot masih digunakan, sebagai lawan dari virtualisasi sistem penuh
pertimbangkan skenario ini: Anda menjalankan Virtual Private Server, dengan node host menjalankan OpenVZ. Anda tidak bisa menjalankan apa pun yang berfungsi pada level kernel. ini juga berarti Anda tidak dapat menggunakan virtualisasi sistem operasi untuk memisahkan proses, dan memberikan keamanan tambahan. dengan demikian, Anda HARUS menggunakan chroot untuk tujuan ini.
Selain itu, chroot berkelanjutan pada sistem apa pun, terlepas dari sumber daya yang tersedia. sederhananya, itu memiliki overhead paling sedikit dari jenis virtualisasi. ini berarti masih penting pada banyak kotak kelas bawah.
pertimbangkan skenario lain: Anda memiliki apache berjalan di dalam lingkungan yang tervirtualisasi. Anda ingin memisahkan setiap pengguna. menyediakan sistem file tervirtualisasi melalui chroot add on ke apache (mod_chroot, mod_security, dll) akan menjadi pilihan terbaik untuk memastikan privasi maksimal antara pengguna akhir. ini juga membantu mencegah pengumpulan intel, dan menawarkan lapisan keamanan lainnya.
sederhananya, penting untuk menerapkan keamanan berlapis-lapis . Chroot berpotensi menjadi salah satunya. tidak semua orang dan setiap sistem memiliki kemewahan memiliki akses ke Kernel, oleh karena itu, chroot MASIH melayani tujuan. ada berbagai aplikasi di mana virtuaisation sistem penuh pada dasarnya berlebihan.
Menanggapi pertanyaan Anda
saya tidak terlalu menggunakan CentOS, tetapi saya tahu bahwa Bind sekarang menjatuhkan haknya sebelum operasi. saya akan berasumsi, bahwa ikatan diikat karena sejarah vektor serangan dan kerentanan potensial.
juga ... lebih masuk akal untuk secara otomatis chroot aplikasi ini, daripada tidak, karena tidak semua orang memiliki akses ke sistem penuh / virtualisasi tingkat sistem operasi. ini pada gilirannya, dan secara teori, membantu memberikan keamanan kepada basis pengguna CentOS:
Penyedia sistem operasi hanya tidak berkeliling dengan asumsi setiap orang menjalankan sistem yang sama. dengan cara ini, mereka dapat membantu memberikan lapisan keamanan tambahan pada ...
ada alasan mengapa begitu banyak aplikasi menggunakan ini , dan mengapa jelas OS Anda tidak secara default: karena ini digunakan sebagai fitur keamanan, dan itu TIDAK berfungsi. dengan persiapan yang hati-hati, seperti yang dinyatakan sebelumnya, itu adalah rintangan lain yang harus diatasi oleh penyerang potensial - sebagian besar waktu, membatasi kerusakan hanya pada penjara chroot.