Komuniti Linux kernel sedang menangani kelemahan keselamatan yang telah lama wujud dalam pengendalian core dump yang telah melanda sistem selama bertahun-tahun. Dengan keluaran kernel 5.13 yang akan datang, perubahan ketara sedang dilaksanakan untuk membetulkan kelemahan keselamatan kritikal ini yang mempengaruhi cara sistem memproses core dump daripada proses yang tidak mempunyai keistimewaan.
Core dump adalah tangkapan memori dan keadaan program apabila ia ranap, membantu pembangun menyahpepijat masalah. Walau bagaimanapun, pelaksanaan semasa telah mewujudkan risiko keselamatan serius yang boleh dieksploitasi oleh penyerang untuk mendapatkan keistimewaan yang lebih tinggi pada sistem.
Tetapan Global Mewujudkan Risiko Keselamatan
Salah satu masalah terbesar dengan sistem core dump Linux semasa adalah sifat globalnya. Pengendali core dump berjalan dengan keistimewaan root penuh dalam namespace root , menjadikannya hanya boleh diakses oleh pentadbir sistem. Kelemahan reka bentuk ini bermakna apabila program ranap, proses core dump berpotensi dieksploitasi oleh penyerang untuk mendapatkan akses seluruh sistem.
Komuniti telah lama mengiktiraf isu reka bentuk asas ini. Pembangun telah mencadangkan penyelesaian seperti pengasingan namespace atau mewakilkan pengendalian core dump kepada proses tertentu, tetapi percubaan sebelum ini untuk melaksanakan pembaikan ini tidak pernah berjaya masuk ke dalam kernel utama.
Kelemahan Keselamatan Core Dump:
- Tetapan core dump global hanya boleh diakses oleh pengguna root
- Pengendali core dump berjalan dengan keistimewaan penuh dalam ruang nama root
- Penyerang boleh memintas soket dan proses core dump
- Program set-uid-root mewujudkan peluang peningkatan keistimewaan melalui core dump
- Kelemahan time-of-check-time-of-use semasa pengendalian ranap sistem
Peningkatan Keistimewaan Melalui Core Dump
Kelemahan keselamatan menjadi sangat berbahaya apabila berurusan dengan program yang berjalan dengan keistimewaan yang ditinggikan. Apabila program sedemikian ranap dan menghasilkan core dump , penyerang berpotensi memintas atau memanipulasi proses core dump untuk mengekalkan keistimewaan yang ditinggikan tersebut. Ini mewujudkan laluan untuk serangan peningkatan keistimewaan yang boleh menjejaskan keseluruhan sistem.
Pendekatan semasa kernel untuk menjalankan pengendali core dump sebagai pembantu mod pengguna dengan keistimewaan penuh dalam namespace root memungkinkan serangan ini berlaku. Penyerang boleh mengeksploitasi tetingkap masa antara apabila ranap berlaku dan apabila pengendali core dump mengamankan proses.
Model Keselamatan Berasaskan Namespace Baharu
Pembaikan yang akan datang memperkenalkan pendekatan berasaskan namespace untuk pengendalian core dump . Daripada menjalankan semua operasi core dump dalam namespace root dengan keistimewaan penuh, sistem baharu memastikan bahawa pengendali core dump beroperasi dalam namespace yang sama dengan proses yang ranap. Pendekatan pembendungan ini mengurangkan permukaan serangan dengan ketara.
Perubahan tersebut termasuk pengubahsuaian kepada cara kernel menjejaki pemilikan proses dan kelayakan namespace . Dengan memastikan bahawa pengendali core dump mewarisi konteks namespace yang betul, sistem boleh menghalang penyerang daripada menggunakan core dump untuk melarikan diri dari sempadan keselamatan yang dimaksudkan.
Perubahan Keselamatan Utama dalam Linux Kernel 5.13:
- Pengendali core dump kini beroperasi dalam ruang nama proses yang rosak dan bukannya ruang nama root
- Tetapan prctl baharu membenarkan proses memilih untuk core dump rawak
- Penjejakan kelayakan ruang nama menghalang serangan peningkatan keistimewaan
- Pengendali core dump mod pengguna tidak lagi berjalan dengan keistimewaan root penuh secara lalai
Komuniti Membahaskan Butiran Pelaksanaan
Perbincangan teknikal dalam komuniti telah memberi tumpuan kepada pendekatan alternatif untuk mengamankan pengendalian core dump . Sesetengah pembangun mempersoalkan mengapa pengendali core dump tidak dijalankan sebagai pengguna khusus dengan keistimewaan terhad dan bukannya sebagai proses root .
Anda boleh membayangkan API yang menetapkan UID pengguna ini, dan kernel boleh dengan mudah menjalankan pengendali coredump sebagai pengguna tersebut, tetapi kernel tidak boleh dengan mudah mengautomasikan penciptaan namespace yang rumit untuk mengandungi proses tersebut.
Yang lain telah mencadangkan bahawa kerumitan menghantar fail core kepada container mungkin tidak berbaloi dengan risiko keselamatan yang terlibat, terutamanya kerana kebanyakan infrastruktur pelaporan ranap beroperasi pada tahap yang lebih tinggi.
Cabaran pelaksanaan adalah ketara kerana menyediakan pengasingan namespace yang betul memerlukan operasi kernel yang kompleks yang mesti berlaku sebelum sebarang kod yang berpotensi dieksploitasi berjalan. Kekangan masa ini menjadikan penyelesaian yang lebih mudah seperti penurunan keistimewaan berasaskan pengguna tidak mencukupi untuk keselamatan yang lengkap.
Kesan Terhadap Pentadbiran Sistem
Penambahbaikan keselamatan ini akan mengubah cara pentadbir sistem menguruskan pengumpulan dan analisis core dump . Walaupun perubahan ini menjadikan sistem lebih selamat, ia juga mungkin mempengaruhi alat dan aliran kerja sedia ada yang bergantung kepada tingkah laku core dump semasa.
Pembaikan ini mewakili kerja penyelidikan dan pembangunan keselamatan selama bertahun-tahun, menangani kelemahan yang telah wujud dalam sistem Linux untuk tempoh yang panjang. Pentadbir sistem dan pasukan keselamatan harus bersiap sedia untuk perubahan ini apabila ia dilancarkan dengan kernel 5.13 dan versi kemudian.
Respons komuniti secara amnya positif, dengan ramai yang mengiktiraf bahawa penambahbaikan keselamatan yang telah lama tertunda ini adalah perlu walaupun kerumitannya. Perubahan ini menunjukkan bagaimana teknologi container dan namespace moden sedang digunakan untuk menyelesaikan masalah keselamatan Unix tradisional.