(Penafian:Saya bukan otoritas pada OpenVZ. Jawaban ini lebih beropini daripada jawaban saya biasanya, jadi jangan ragu untuk mengkritik!)
OpenVZ mungkin "lebih" aman karena tidak berintegrasi dengan seluruh kernel, sehingga permukaan serangannya sedikit lebih rendah. Padahal, pada dasarnya OpenVZ adalah yang menjadi inspirasi untuk ruang nama dan karenanya pada akhirnya, LXC dan Docker. Saya tidak percaya ini akan berlanjut lama karena solusi yang lebih lengkap itu, yah, lengkap.
Seperti yang ditunjukkan oleh WhiteWinterWolf salah satu perbedaan besar adalah bahwa LXC akhirnya dapat menggunakan ruang nama pengguna, membuka kemampuan pengguna yang tidak memiliki hak untuk menjalankan wadah dan memastikan bahwa kode yang keluar dari wadah mempertahankan hak istimewa pengguna yang tidak memiliki hak. Juga, wadah berbasis namespace pada akhirnya dapat sepenuhnya berlabel SELinux. Kontainer Docker biasanya sudah ada, dan Dan Walsh sedang mengerjakan cara untuk membuat SELinux secara otomatis menerapkan lapisan isolasi tambahan di antara kontainer dengan menggunakan kategori yang dibuat secara acak untuk proses yang dimuat.
Singkatnya, kontainer lebih baik karena:- Mereka sebagian dapat menggagalkan beberapa penembusan kontainer (membatasinya ke UID yang tidak memiliki hak istimewa), membuat eskalasi hak istimewa di dalam kontainer tidak relevan.- Mereka lebih didukung dan dikembangkan lebih aktif, dan khususnya mereka akan sangat diuntungkan dari dukungan SELinux.
Dan mereka lebih buruk karena:- TCB mereka sangat besar, di seluruh kernel dan bug akan terjadi sesekali yang mengarah ke eksploitasi dan breakout.- Namespace pengguna terasa bagi saya seperti kasus tepi. Anda biasanya mencapai eskalasi hak istimewa melalui bug di SCI (yang dapat Anda reproduksi setelah pelarian Anda) atau serangan wakil yang membingungkan pada layanan istimewa (yang kemungkinan besar tetap ada di luar penampung Anda). Jadi, Anda masih perlu membatasi dengan ketat UID yang menjalankan container untuk menjalankan container.
Singkatnya, terus latih pertahanan secara mendalam, dan terus pikirkan tentang bagaimana Anda membiarkan proses yang terkandung berinteraksi dengan dunia luar dan bagaimana Anda menjalankan kontainer. Perbedaan ada tetapi seperti yang Anda lihat agak minim.