Saya pasti ini pernah berlaku kepada anda: anda cuba memasang bekas untuk kegunaan peribadi, anda mahu menjadikannya lebih selamat digunakan kontena yang tidak bernasib baik Dan tiba-tiba, anda mendapati diri anda terperangkap dalam labirin ralat kebenaran. Sungguh mengecewakan apabila menghabiskan berjam-jam mengkonfigurasi folder dalam direktori utama pengguna hanya untuk mendapati bahawa bekas tersebut tidak boleh menulis kepada mereka, atau apabila ia berlaku, fail yang terhasil pada hos rosak. mustahil untuk diuruskan kerana ia milik pengguna hantu.
Realitinya ialah, walaupun pengkontenaan telah mempercepatkan penghantaran perisian, ia telah membuka pintu kepada risiko yang besar. Menurut data terkini, sebahagian besar imej pengeluaran membawa [tidak jelas - mungkin "tidak jelas" atau "tidak jelas"] kelemahan kritikalIni menjadikan keselamatan sebagai tonggak yang tidak boleh dirundingkan. Ia bukan sekadar menghalang penggodam daripada menyerang kita, tetapi juga memahami cara sistem berfungsi. proses pengasingan supaya infrastruktur kita tidak menjadi penapis.
Memahami ekosistem keselamatan kontena
Untuk berhenti meneka dengan kebenaran, pertama sekali kita perlu tahu apa yang kita lindungi. Seni bina kontena dibahagikan kepada beberapa lapisan kritikal. Pertama, kita mempunyai imej bekas ituyang merupakan pelan tindakan asal; jika ini terdedah, semua tika yang anda gunakan akan menjadi tidak selamat. Itulah sebabnya penting untuk digunakan imej asas yang dipercayai dan sentiasa memaklumkan mereka tentang perkembangan terkini.
Kemudian masa jalanyang bertindak sebagai penentu antara sistem pengendalian hos dan aplikasi. Jika masa jalan sudah ketinggalan zaman, risiko kontena melarikan diri meningkat secara mendadak. Untuk ini kita mesti menambah orkestrasi, seperti Kubernetes, di mana kawalan akses berasaskan peranan (RBAC) Ia adalah satu-satunya penghalang sebenar terhadap akses tanpa kebenaran kepada API pengurusan.
Kita tidak boleh melupakan sistem pengendalian hosJika penyerang berjaya menjejaskan kernel hos, mereka memegang kunci kepada keseluruhan domain. Cadangan di sini adalah jelas: gunakan sistem pengendalian minimum untuk mengurangkan permukaan serangan. Akhir sekali, rangkaian merupakan titik masuk yang paling biasa; hampir 30% pelanggaran berlaku disebabkan oleh kegagalan sambungan, jadi segmentasi rangkaian dan penyulitan TLS/SSL Mereka wajib.
Sakit kepala kebenaran dan pengguna root
Masalah biasa bagi penggemar hobi ialah aliran kerja dengan volume. Anda mencipta folder, memasangnya, dan kemudian, boom!, ralat berlaku. kebenaran ditolakIni berlaku kerana, secara lalai, banyak bekas bermula sebagai root. Apabila anda cuba memaksa UID dan GID pada 0 Untuk memadankannya dengan pengguna hos anda, anda sedang mencipta jambatan yang berbahaya. Jika bekas tidak membenarkan anda mengkonfigurasi ID ini, anda akan membuang masa untuk cuba mengetahui pengguna dalaman yang digunakan oleh aplikasi untuk melakukan chown Buku panduan.
Penyelesaian yang cekap adalah dengan mengaplikasikan prinsip keistimewaan yang paling sedikitAnda tidak sepatutnya menjalankan apa-apa sebagai root melainkan benar-benar perlu. Untuk menyelesaikan masalah fail yang dicipta oleh kontena yang tidak boleh anda padamkan pada hos, adalah penting untuk mengkonfigurasi Dockerfile dengan arahan berikut: PENGGUNA, mentakrifkan pengguna tanpa keistimewaan sebelum aplikasi bermula.
Jika anda menggunakan Podman, konsep bekas tanpa akar Ia asli dan sangat membantu, tetapi ia memerlukan anda memahami bagaimana pengguna hos dipetakan kepada pengguna kontena. Untuk mengelakkan kebenaran daripada menjadi di luar kawalan, idealnya aplikasi harus direka bentuk untuk menulis ke laluan tertentu dan pemetaan isipadu Ia dilakukan dengan mempertimbangkan UID sebenar pengguna yang melancarkan proses tersebut.
Strategi untuk membina imej berperisai
Jika anda ingin menghentikan penderitaan, anda perlu mengubah cara anda membina imej anda. Satu teknik yang sangat berkesan ialah... binaan berbilang peringkatPada asasnya, anda menggunakan imej kelas berat dengan semua alat binaan untuk menjana binari, dan kemudian anda hanya menyalin fail itu ke imej akhir. sangat ringan.
Anda juga boleh pergi lebih jauh menggunakan imej tersebut menggaruIni mewujudkan sebuah bekas yang langsung tidak mempunyai apa-apa: tiada shell, tiada pengurus pakej, hanya aplikasi anda. Ini menjadikannya hampir mustahil bagi penyerang untuk melaksanakan arahan berniat jahat jika mereka berjaya masuk, memandangkan Tiada penterjemah arahan didapati.
Satu lagi langkah keselamatan adalah membersihkan imej mana-mana binari dengan kebenaran setuid atau setgidKebenaran ini membenarkan fail dilaksanakan dengan keistimewaan pemilik fail dan bukan pengguna yang melancarkannya, yang merupakan jalan raya untuk... peningkatan keistimewaanArahan mudah untuk mencari dan mengalih keluar bit-bit ini semasa pembinaan imej boleh menjimatkan banyak masalah.
Bahaya mod istimewa dan keupayaan Linux
Kadangkala, kerana terdesak kerana tidak dapat menyelesaikan masalah kebenaran, kita terjerumus ke dalam godaan untuk menggunakan bendera tersebut –berkeistimewaanLupakan tentang perkara itu. Mod keistimewaan memecahkan pengasingan kontena dan memberi anda akses penuh kepada peranti hos. Ia seperti memberikan kunci rumah anda kepada orang yang tidak dikenali hanya kerana mereka tidak tahu cara membuka pintu pagar taman.
Sebaliknya, anda harus bermain dengan Keupayaan LinuxDocker memberikan satu set kebenaran lalai (seperti CAP_CHOWN atau CAP_NET_RAW). Jika aplikasi anda tidak perlu memanipulasi rangkaian pada tahap rendah, pendekatan paling bijak ialah menghapuskan keupayaan yang tidak perlu dan hanya tambah yang dikehendaki oleh --cap-add.
Bagi mereka yang menguruskan persekitaran yang lebih serius, terdapat pemalam kebenaran seperti opa-docker-authz. Ini membolehkan memintas panggilan ke API daemon Docker dan menyekat sebarang percubaan untuk melancarkan kontena dalam mod istimewa, memastikan tiada sesiapa, walaupun secara tidak sengaja, meninggalkan pintu terbuka kepada hos.
Pengoptimuman dan penyelenggaraan persekitaran
Jangan terlalu memikirkan saiz imej 5MB apabila menggunakan Alpine Linux jika ia menyebabkan masalah keserasian dengan pustaka. Kadangkala imej Debian yang sedikit lebih besar adalah lebih baik. stabil dan diketahui oleh pasukan. Apa yang penting ialah melaksanakan pengimbasan kerentanan Saluran paip CI/CD automatik untuk mengesan CVE sebelum imej mencapai pengeluaran.
Berkenaan storan, ia menghalang aplikasi daripada menulis ke sistem fail root. Konfigurasikan sistem fail baca sahaja (rootfs) dan mentakrifkan isipadu tertentu hanya untuk data yang perlu dikekalkan. Ini bukan sahaja lebih selamat, tetapi ia juga memaksa seni bina yang lebih bersih dan tanpa hartamemudahkan penskalaan mendatar.
Untuk proses yang dijadualkan, jangan letakkan cron job di dalam bekas laman web. Peraturan utama ialah satu proses setiap bekasPendekatan paling bersih adalah dengan menggunakan imej aplikasi anda untuk melancarkan bekas sementara yang melaksanakan tugas dan kemudian memusnahkan dirinya sendiri, atau untuk mengurus cron daripada hos dengan memanggil enjin bekas menggunakan arahan.
Keselamatan kontena merupakan proses berterusan yang melibatkan penghapusan akses root, penyekatan keupayaan kernel dan penghapusan alatan yang tidak diperlukan daripada imej kontena. Dengan menggabungkan pengguna yang tidak berkemampuan dengan pengerasan masa jalan dan pemantauan berterusan, persekitaran dicapai di mana fungsi tidak menjejaskan integriti sistem hos.
Penulis yang bersemangat tentang dunia bait dan teknologi secara umum. Saya suka berkongsi pengetahuan saya melalui penulisan, dan itulah yang akan saya lakukan dalam blog ini, menunjukkan kepada anda semua perkara yang paling menarik tentang alat, perisian, perkakasan, trend teknologi dan banyak lagi. Matlamat saya adalah untuk membantu anda mengemudi dunia digital dengan cara yang mudah dan menghiburkan.

